Browse Source

使用定时任务实现称重工序的流程

zhifei 1 year ago
parent
commit
e6a710d998
51 changed files with 915 additions and 99 deletions
  1. 0 2
      warewms-admin/src/main/resources/application.yml
  2. 1 1
      warewms-system/src/main/java/com/warewms/hailiang/MES/MesService.java
  3. 20 3
      warewms-system/src/main/java/com/warewms/hailiang/MES/impl/MesServiceImpl.java
  4. 6 2
      warewms-system/src/main/java/com/warewms/hailiang/connect/CodeReader12Connect.java
  5. 6 2
      warewms-system/src/main/java/com/warewms/hailiang/connect/CodeReader13Connect.java
  6. 6 2
      warewms-system/src/main/java/com/warewms/hailiang/connect/CodeReader14Connect.java
  7. 6 1
      warewms-system/src/main/java/com/warewms/hailiang/connect/CodeReader3Connect.java
  8. 5 2
      warewms-system/src/main/java/com/warewms/hailiang/connect/CodeReader5Connect.java
  9. 5 2
      warewms-system/src/main/java/com/warewms/hailiang/connect/CodeReader6Connect.java
  10. 6 3
      warewms-system/src/main/java/com/warewms/hailiang/connect/CodeReader7Connect.java
  11. 6 2
      warewms-system/src/main/java/com/warewms/hailiang/connect/CodeReader8Connect.java
  12. 6 2
      warewms-system/src/main/java/com/warewms/hailiang/connect/CodeReader9Connect.java
  13. 7 0
      warewms-system/src/main/java/com/warewms/hailiang/connect/InkjetPrintersConnect.java
  14. 1 0
      warewms-system/src/main/java/com/warewms/hailiang/connect/TCPConnectBase.java
  15. 3 3
      warewms-system/src/main/java/com/warewms/hailiang/connect/handler/CodeReader12Handler.java
  16. 3 3
      warewms-system/src/main/java/com/warewms/hailiang/connect/handler/CodeReader13Handler.java
  17. 3 3
      warewms-system/src/main/java/com/warewms/hailiang/connect/handler/CodeReader14Handler.java
  18. 4 2
      warewms-system/src/main/java/com/warewms/hailiang/connect/handler/CodeReader3Handler.java
  19. 3 3
      warewms-system/src/main/java/com/warewms/hailiang/connect/handler/CodeReader5Handler.java
  20. 3 2
      warewms-system/src/main/java/com/warewms/hailiang/connect/handler/CodeReader6Handler.java
  21. 3 3
      warewms-system/src/main/java/com/warewms/hailiang/connect/handler/CodeReader7Handler.java
  22. 3 3
      warewms-system/src/main/java/com/warewms/hailiang/connect/handler/CodeReader8Handler.java
  23. 3 3
      warewms-system/src/main/java/com/warewms/hailiang/connect/handler/CodeReader9Handler.java
  24. 4 5
      warewms-system/src/main/java/com/warewms/hailiang/connect/handler/InkjetPrintersHandler.java
  25. 1 5
      warewms-system/src/main/java/com/warewms/hailiang/contoller/DeviceController.java
  26. 1 1
      warewms-system/src/main/java/com/warewms/hailiang/contoller/DeviceLogController.java
  27. 1 1
      warewms-system/src/main/java/com/warewms/hailiang/domian/Device.java
  28. 1 1
      warewms-system/src/main/java/com/warewms/hailiang/domian/DeviceLog.java
  29. 148 0
      warewms-system/src/main/java/com/warewms/hailiang/domain/RetroactiveHistory.java
  30. 168 0
      warewms-system/src/main/java/com/warewms/hailiang/domain/RetroactiveNow.java
  31. 24 0
      warewms-system/src/main/java/com/warewms/hailiang/enums/DaoJiaoPlcEnum.java
  32. 25 0
      warewms-system/src/main/java/com/warewms/hailiang/enums/DeviceNameEnum.java
  33. 5 9
      warewms-system/src/main/java/com/warewms/hailiang/enums/WeighPlcEnum.java
  34. 6 1
      warewms-system/src/main/java/com/warewms/hailiang/init/PlcConnectServiceRunner.java
  35. 13 14
      warewms-system/src/main/java/com/warewms/hailiang/init/TcpServiceRunner.java
  36. 109 0
      warewms-system/src/main/java/com/warewms/hailiang/job/TraceJob.java
  37. 1 1
      warewms-system/src/main/java/com/warewms/hailiang/mapper/DeviceLogMapper.java
  38. 18 0
      warewms-system/src/main/java/com/warewms/hailiang/mapper/RetroactiveHistoryMapper.java
  39. 18 0
      warewms-system/src/main/java/com/warewms/hailiang/mapper/RetroactiveNowMapper.java
  40. 1 2
      warewms-system/src/main/java/com/warewms/hailiang/service/DeviceLogService.java
  41. 1 5
      warewms-system/src/main/java/com/warewms/hailiang/service/DeviceService.java
  42. 17 0
      warewms-system/src/main/java/com/warewms/hailiang/service/ProcessRealizationService.java
  43. 13 0
      warewms-system/src/main/java/com/warewms/hailiang/service/RetroactiveHistoryService.java
  44. 16 0
      warewms-system/src/main/java/com/warewms/hailiang/service/RetroactiveNowService.java
  45. 1 2
      warewms-system/src/main/java/com/warewms/hailiang/service/impl/DeviceLogServiceImpl.java
  46. 1 3
      warewms-system/src/main/java/com/warewms/hailiang/service/impl/DeviceServiceImpl.java
  47. 74 0
      warewms-system/src/main/java/com/warewms/hailiang/service/impl/ProcessRealizationServiceImpl.java
  48. 22 0
      warewms-system/src/main/java/com/warewms/hailiang/service/impl/RetroactiveHistoryServiceImpl.java
  49. 60 0
      warewms-system/src/main/java/com/warewms/hailiang/service/impl/RetroactiveNowServiceImpl.java
  50. 28 0
      warewms-system/src/main/resources/mapper/hailiang/RetroactiveHistoryMapper.xml
  51. 29 0
      warewms-system/src/main/resources/mapper/hailiang/RetroactiveNowMapper.xml

+ 0 - 2
warewms-admin/src/main/resources/application.yml

@@ -10,8 +10,6 @@ plc:
   plcList[0]:
     ip: 172.20.52.21
     enable: false
-    slot: 1
-    rack: 0
     name: ChengZhongPlc
     ePlcType: S1200
     heartbeat: DB11.0.0

+ 1 - 1
warewms-system/src/main/java/com/warewms/hailiang/MES/MesService.java

@@ -20,7 +20,7 @@ public interface MesService {
      * @param prodLine 产线编号
      * @return
      */
-    public JSONObject getBatchNoByWeight(Double weight,String prodLine);
+    public String getBatchNoByWeight(Double weight,String prodLine);
 
     /**
      * 获取批次号反馈

+ 20 - 3
warewms-system/src/main/java/com/warewms/hailiang/MES/impl/MesServiceImpl.java

@@ -5,8 +5,11 @@ import cn.hutool.http.HttpResponse;
 import cn.hutool.http.HttpUtil;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
+import com.warewms.common.annotation.Log;
+import com.warewms.common.exception.ServiceException;
 import com.warewms.hailiang.MES.MesService;
 import io.swagger.util.Json;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
@@ -20,6 +23,7 @@ import org.springframework.stereotype.Service;
  * Description: MES对接实现类
  **/
 @Service
+@Slf4j
 public class MesServiceImpl implements MesService {
     @Value("${MES.address}")
     private String MESAddress;
@@ -33,12 +37,25 @@ public class MesServiceImpl implements MesService {
 
 
     @Override
-    public JSONObject getBatchNoByWeight(Double weight,String prodLine) {
+    public String getBatchNoByWeight(Double weight,String prodLine) {
         JSONObject entries = new JSONObject();
         entries.set("Weight",weight);
         entries.set("prodLine",prodLine);
-        String body = HttpRequest.post(MESAddress + getBatchNoUrl).body(entries.toString()).execute().body();
-        return JSONUtil.parseObj(body);
+        log.info("调用MES系统拿铜管批次号,body:{}",entries);
+        String body = null;
+        try {
+          body = HttpRequest.post(MESAddress + getBatchNoUrl).body(entries.toString()).execute().body();
+
+        }catch (Exception e){
+            log.error("调用MES系统拿铜管批次号失败,msg:{}",e.getMessage());
+            return null;
+        }
+        JSONObject jsonObject = JSONUtil.parseObj(body);
+        if ("false".equals(jsonObject.get("ret"))){
+            log.error("调用MES系统拿铜管批次号失败,msg:{}",jsonObject.get("message"));
+            return null;
+        }
+        return JSONUtil.parseObj(body).get("BatchNo").toString();
     }
 
     @Override

+ 6 - 2
warewms-system/src/main/java/com/warewms/hailiang/connect/CodeReader12Connect.java

@@ -3,8 +3,7 @@ package com.warewms.hailiang.connect;
 import cn.hutool.extra.spring.SpringUtil;
 import com.github.rholder.retry.*;
 import com.warewms.hailiang.connect.handler.CodeReader12Handler;
-import com.warewms.hailiang.connect.handler.CodeReader3Handler;
-import com.warewms.hailiang.domian.Device;
+import com.warewms.hailiang.domain.Device;
 import io.netty.bootstrap.Bootstrap;
 import io.netty.channel.ChannelFuture;
 import io.netty.channel.ChannelInitializer;
@@ -118,4 +117,9 @@ public class CodeReader12Connect implements TCPConnectBase {
         group.shutdownGracefully();
     }
 
+
+    @Override
+    public String getDeviceName() {
+        return deviceName;
+    }
 }

+ 6 - 2
warewms-system/src/main/java/com/warewms/hailiang/connect/CodeReader13Connect.java

@@ -3,8 +3,7 @@ package com.warewms.hailiang.connect;
 import cn.hutool.extra.spring.SpringUtil;
 import com.github.rholder.retry.*;
 import com.warewms.hailiang.connect.handler.CodeReader13Handler;
-import com.warewms.hailiang.connect.handler.CodeReader3Handler;
-import com.warewms.hailiang.domian.Device;
+import com.warewms.hailiang.domain.Device;
 import io.netty.bootstrap.Bootstrap;
 import io.netty.channel.ChannelFuture;
 import io.netty.channel.ChannelInitializer;
@@ -118,4 +117,9 @@ public class CodeReader13Connect implements TCPConnectBase {
         group.shutdownGracefully();
     }
 
+
+    @Override
+    public String getDeviceName() {
+        return deviceName;
+    }
 }

+ 6 - 2
warewms-system/src/main/java/com/warewms/hailiang/connect/CodeReader14Connect.java

@@ -3,8 +3,7 @@ package com.warewms.hailiang.connect;
 import cn.hutool.extra.spring.SpringUtil;
 import com.github.rholder.retry.*;
 import com.warewms.hailiang.connect.handler.CodeReader14Handler;
-import com.warewms.hailiang.connect.handler.CodeReader3Handler;
-import com.warewms.hailiang.domian.Device;
+import com.warewms.hailiang.domain.Device;
 import io.netty.bootstrap.Bootstrap;
 import io.netty.channel.ChannelFuture;
 import io.netty.channel.ChannelInitializer;
@@ -118,4 +117,9 @@ public class CodeReader14Connect implements TCPConnectBase {
         group.shutdownGracefully();
     }
 
+
+    @Override
+    public String getDeviceName() {
+        return deviceName;
+    }
 }

+ 6 - 1
warewms-system/src/main/java/com/warewms/hailiang/connect/CodeReader3Connect.java

@@ -3,7 +3,7 @@ package com.warewms.hailiang.connect;
 import cn.hutool.extra.spring.SpringUtil;
 import com.github.rholder.retry.*;
 import com.warewms.hailiang.connect.handler.CodeReader3Handler;
-import com.warewms.hailiang.domian.Device;
+import com.warewms.hailiang.domain.Device;
 import io.netty.bootstrap.Bootstrap;
 import io.netty.channel.ChannelFuture;
 import io.netty.channel.ChannelInitializer;
@@ -117,4 +117,9 @@ public class CodeReader3Connect implements TCPConnectBase {
         group.shutdownGracefully();
     }
 
+    @Override
+    public String getDeviceName() {
+        return deviceName;
+    }
+
 }

+ 5 - 2
warewms-system/src/main/java/com/warewms/hailiang/connect/CodeReader5Connect.java

@@ -2,9 +2,8 @@ package com.warewms.hailiang.connect;
 
 import cn.hutool.extra.spring.SpringUtil;
 import com.github.rholder.retry.*;
-import com.warewms.hailiang.connect.handler.CodeReader3Handler;
 import com.warewms.hailiang.connect.handler.CodeReader5Handler;
-import com.warewms.hailiang.domian.Device;
+import com.warewms.hailiang.domain.Device;
 import io.netty.bootstrap.Bootstrap;
 import io.netty.channel.ChannelFuture;
 import io.netty.channel.ChannelInitializer;
@@ -118,4 +117,8 @@ public class CodeReader5Connect implements TCPConnectBase {
         group.shutdownGracefully();
     }
 
+    @Override
+    public String getDeviceName() {
+        return deviceName;
+    }
 }

+ 5 - 2
warewms-system/src/main/java/com/warewms/hailiang/connect/CodeReader6Connect.java

@@ -2,9 +2,8 @@ package com.warewms.hailiang.connect;
 
 import cn.hutool.extra.spring.SpringUtil;
 import com.github.rholder.retry.*;
-import com.warewms.hailiang.connect.handler.CodeReader3Handler;
 import com.warewms.hailiang.connect.handler.CodeReader6Handler;
-import com.warewms.hailiang.domian.Device;
+import com.warewms.hailiang.domain.Device;
 import io.netty.bootstrap.Bootstrap;
 import io.netty.channel.ChannelFuture;
 import io.netty.channel.ChannelInitializer;
@@ -118,4 +117,8 @@ public class CodeReader6Connect implements TCPConnectBase {
         group.shutdownGracefully();
     }
 
+    @Override
+    public String getDeviceName() {
+        return deviceName;
+    }
 }

+ 6 - 3
warewms-system/src/main/java/com/warewms/hailiang/connect/CodeReader7Connect.java

@@ -2,10 +2,8 @@ package com.warewms.hailiang.connect;
 
 import cn.hutool.extra.spring.SpringUtil;
 import com.github.rholder.retry.*;
-import com.warewms.hailiang.connect.handler.CodeReader3Handler;
-import com.warewms.hailiang.connect.handler.CodeReader6Handler;
 import com.warewms.hailiang.connect.handler.CodeReader7Handler;
-import com.warewms.hailiang.domian.Device;
+import com.warewms.hailiang.domain.Device;
 import io.netty.bootstrap.Bootstrap;
 import io.netty.channel.ChannelFuture;
 import io.netty.channel.ChannelInitializer;
@@ -119,4 +117,9 @@ public class CodeReader7Connect implements TCPConnectBase {
         group.shutdownGracefully();
     }
 
+
+    @Override
+    public String getDeviceName() {
+        return deviceName;
+    }
 }

+ 6 - 2
warewms-system/src/main/java/com/warewms/hailiang/connect/CodeReader8Connect.java

@@ -2,9 +2,8 @@ package com.warewms.hailiang.connect;
 
 import cn.hutool.extra.spring.SpringUtil;
 import com.github.rholder.retry.*;
-import com.warewms.hailiang.connect.handler.CodeReader3Handler;
 import com.warewms.hailiang.connect.handler.CodeReader8Handler;
-import com.warewms.hailiang.domian.Device;
+import com.warewms.hailiang.domain.Device;
 import io.netty.bootstrap.Bootstrap;
 import io.netty.channel.ChannelFuture;
 import io.netty.channel.ChannelInitializer;
@@ -118,4 +117,9 @@ public class CodeReader8Connect implements TCPConnectBase {
         group.shutdownGracefully();
     }
 
+
+    @Override
+    public String getDeviceName() {
+        return deviceName;
+    }
 }

+ 6 - 2
warewms-system/src/main/java/com/warewms/hailiang/connect/CodeReader9Connect.java

@@ -2,9 +2,8 @@ package com.warewms.hailiang.connect;
 
 import cn.hutool.extra.spring.SpringUtil;
 import com.github.rholder.retry.*;
-import com.warewms.hailiang.connect.handler.CodeReader3Handler;
 import com.warewms.hailiang.connect.handler.CodeReader9Handler;
-import com.warewms.hailiang.domian.Device;
+import com.warewms.hailiang.domain.Device;
 import io.netty.bootstrap.Bootstrap;
 import io.netty.channel.ChannelFuture;
 import io.netty.channel.ChannelInitializer;
@@ -118,4 +117,9 @@ public class CodeReader9Connect implements TCPConnectBase {
         group.shutdownGracefully();
     }
 
+
+    @Override
+    public String getDeviceName() {
+        return deviceName;
+    }
 }

+ 7 - 0
warewms-system/src/main/java/com/warewms/hailiang/connect/InkjetPrintersConnect.java

@@ -32,6 +32,8 @@ public class InkjetPrintersConnect implements TCPConnectBase {
 
     private final int PORT = 9999;
 
+    private final String deviceName ="InkjetPrinters";
+
     private ChannelFuture future;
 
     private Bootstrap bootstrap;
@@ -106,4 +108,9 @@ public class InkjetPrintersConnect implements TCPConnectBase {
         group.shutdownGracefully();
     }
 
+
+    @Override
+    public String getDeviceName() {
+        return deviceName;
+    }
 }

+ 1 - 0
warewms-system/src/main/java/com/warewms/hailiang/connect/TCPConnectBase.java

@@ -20,4 +20,5 @@ public interface TCPConnectBase {
 
     void close();
 
+    String getDeviceName();
 }

+ 3 - 3
warewms-system/src/main/java/com/warewms/hailiang/connect/handler/CodeReader12Handler.java

@@ -23,7 +23,7 @@ import org.springframework.stereotype.Component;
 @Component
 public class CodeReader12Handler extends ChannelInboundHandlerAdapter  {
 
-
+    private final String deviceName ="CodeReader12";
     @Override
     public void channelActive(ChannelHandlerContext ctx) throws Exception {
         ctx.writeAndFlush(Unpooled.copiedBuffer("T", CharsetUtil.UTF_8));
@@ -37,8 +37,8 @@ public class CodeReader12Handler extends ChannelInboundHandlerAdapter  {
 
     @Override
     public void channelInactive(ChannelHandlerContext ctx) throws Exception {
-        log.error("倒角读码器连接已断开!");
-        InkjetPrintersConnect inkjetPrintersConnect = (InkjetPrintersConnect) TcpServiceRunner.getTCPInstanceList().get("InkjetPrintersConnect");
+        log.error("设备:{}连接已断开!",deviceName);
+        InkjetPrintersConnect inkjetPrintersConnect = (InkjetPrintersConnect) TcpServiceRunner.getTCPInstanceList((deviceName));
         inkjetPrintersConnect.retry();
         super.channelInactive(ctx);
     }

+ 3 - 3
warewms-system/src/main/java/com/warewms/hailiang/connect/handler/CodeReader13Handler.java

@@ -23,7 +23,7 @@ import org.springframework.stereotype.Component;
 @Component
 public class CodeReader13Handler extends ChannelInboundHandlerAdapter  {
 
-
+    private final String deviceName ="CodeReader13";
     @Override
     public void channelActive(ChannelHandlerContext ctx) throws Exception {
         ctx.writeAndFlush(Unpooled.copiedBuffer("T", CharsetUtil.UTF_8));
@@ -37,8 +37,8 @@ public class CodeReader13Handler extends ChannelInboundHandlerAdapter  {
 
     @Override
     public void channelInactive(ChannelHandlerContext ctx) throws Exception {
-        log.error("倒角读码器连接已断开!");
-        InkjetPrintersConnect inkjetPrintersConnect = (InkjetPrintersConnect) TcpServiceRunner.getTCPInstanceList().get("InkjetPrintersConnect");
+        log.error("设备:{}连接已断开!",deviceName);
+        InkjetPrintersConnect inkjetPrintersConnect = (InkjetPrintersConnect) TcpServiceRunner.getTCPInstanceList((deviceName));
         inkjetPrintersConnect.retry();
         super.channelInactive(ctx);
     }

+ 3 - 3
warewms-system/src/main/java/com/warewms/hailiang/connect/handler/CodeReader14Handler.java

@@ -23,7 +23,7 @@ import org.springframework.stereotype.Component;
 @Component
 public class CodeReader14Handler extends ChannelInboundHandlerAdapter  {
 
-
+    private final String deviceName ="CodeReader14";
     @Override
     public void channelActive(ChannelHandlerContext ctx) throws Exception {
         ctx.writeAndFlush(Unpooled.copiedBuffer("T", CharsetUtil.UTF_8));
@@ -37,8 +37,8 @@ public class CodeReader14Handler extends ChannelInboundHandlerAdapter  {
 
     @Override
     public void channelInactive(ChannelHandlerContext ctx) throws Exception {
-        log.error("倒角读码器连接已断开!");
-        InkjetPrintersConnect inkjetPrintersConnect = (InkjetPrintersConnect) TcpServiceRunner.getTCPInstanceList().get("InkjetPrintersConnect");
+        log.error("设备:{}连接已断开!",deviceName);
+        InkjetPrintersConnect inkjetPrintersConnect = (InkjetPrintersConnect) TcpServiceRunner.getTCPInstanceList((deviceName));
         inkjetPrintersConnect.retry();
         super.channelInactive(ctx);
     }

+ 4 - 2
warewms-system/src/main/java/com/warewms/hailiang/connect/handler/CodeReader3Handler.java

@@ -25,6 +25,8 @@ import org.springframework.stereotype.Component;
 @Component
 public class CodeReader3Handler extends ChannelInboundHandlerAdapter  {
 
+    private final String deviceName ="CodeReader3";
+
 
     @Override
     public void channelActive(ChannelHandlerContext ctx) throws Exception {
@@ -39,8 +41,8 @@ public class CodeReader3Handler extends ChannelInboundHandlerAdapter  {
 
     @Override
     public void channelInactive(ChannelHandlerContext ctx) throws Exception {
-        log.error("倒角读码器连接已断开!");
-        InkjetPrintersConnect inkjetPrintersConnect = (InkjetPrintersConnect) TcpServiceRunner.getTCPInstanceList().get("InkjetPrintersConnect");
+        log.error("设备:{}连接已断开!",deviceName);
+        InkjetPrintersConnect inkjetPrintersConnect = (InkjetPrintersConnect) TcpServiceRunner.getTCPInstanceList((deviceName));
         inkjetPrintersConnect.retry();
         super.channelInactive(ctx);
     }

+ 3 - 3
warewms-system/src/main/java/com/warewms/hailiang/connect/handler/CodeReader5Handler.java

@@ -23,7 +23,7 @@ import org.springframework.stereotype.Component;
 @Component
 public class CodeReader5Handler extends ChannelInboundHandlerAdapter  {
 
-
+    private final String deviceName ="CodeReader5";
     @Override
     public void channelActive(ChannelHandlerContext ctx) throws Exception {
         ctx.writeAndFlush(Unpooled.copiedBuffer("T", CharsetUtil.UTF_8));
@@ -37,8 +37,8 @@ public class CodeReader5Handler extends ChannelInboundHandlerAdapter  {
 
     @Override
     public void channelInactive(ChannelHandlerContext ctx) throws Exception {
-        log.error("倒角读码器连接已断开!");
-        InkjetPrintersConnect inkjetPrintersConnect = (InkjetPrintersConnect) TcpServiceRunner.getTCPInstanceList().get("InkjetPrintersConnect");
+        log.error("设备:{}连接已断开!",deviceName);
+        InkjetPrintersConnect inkjetPrintersConnect = (InkjetPrintersConnect) TcpServiceRunner.getTCPInstanceList((deviceName));
         inkjetPrintersConnect.retry();
         super.channelInactive(ctx);
     }

+ 3 - 2
warewms-system/src/main/java/com/warewms/hailiang/connect/handler/CodeReader6Handler.java

@@ -23,6 +23,7 @@ import org.springframework.stereotype.Component;
 @Component
 public class CodeReader6Handler extends ChannelInboundHandlerAdapter  {
 
+    private final String deviceName ="CodeReader6";
 
     @Override
     public void channelActive(ChannelHandlerContext ctx) throws Exception {
@@ -37,8 +38,8 @@ public class CodeReader6Handler extends ChannelInboundHandlerAdapter  {
 
     @Override
     public void channelInactive(ChannelHandlerContext ctx) throws Exception {
-        log.error("倒角读码器连接已断开!");
-        InkjetPrintersConnect inkjetPrintersConnect = (InkjetPrintersConnect) TcpServiceRunner.getTCPInstanceList().get("InkjetPrintersConnect");
+        log.error("设备:{}连接已断开!",deviceName);
+        InkjetPrintersConnect inkjetPrintersConnect = (InkjetPrintersConnect) TcpServiceRunner.getTCPInstanceList((deviceName));
         inkjetPrintersConnect.retry();
         super.channelInactive(ctx);
     }

+ 3 - 3
warewms-system/src/main/java/com/warewms/hailiang/connect/handler/CodeReader7Handler.java

@@ -23,7 +23,7 @@ import org.springframework.stereotype.Component;
 @Component
 public class CodeReader7Handler extends ChannelInboundHandlerAdapter  {
 
-
+    private final String deviceName ="CodeReader7";
     @Override
     public void channelActive(ChannelHandlerContext ctx) throws Exception {
         ctx.writeAndFlush(Unpooled.copiedBuffer("T", CharsetUtil.UTF_8));
@@ -37,8 +37,8 @@ public class CodeReader7Handler extends ChannelInboundHandlerAdapter  {
 
     @Override
     public void channelInactive(ChannelHandlerContext ctx) throws Exception {
-        log.error("倒角读码器连接已断开!");
-        InkjetPrintersConnect inkjetPrintersConnect = (InkjetPrintersConnect) TcpServiceRunner.getTCPInstanceList().get("InkjetPrintersConnect");
+        log.error("设备:{}连接已断开!",deviceName);
+        InkjetPrintersConnect inkjetPrintersConnect = (InkjetPrintersConnect) TcpServiceRunner.getTCPInstanceList((deviceName));
         inkjetPrintersConnect.retry();
         super.channelInactive(ctx);
     }

+ 3 - 3
warewms-system/src/main/java/com/warewms/hailiang/connect/handler/CodeReader8Handler.java

@@ -23,7 +23,7 @@ import org.springframework.stereotype.Component;
 @Component
 public class CodeReader8Handler extends ChannelInboundHandlerAdapter  {
 
-
+    private final String deviceName ="CodeReader8";
     @Override
     public void channelActive(ChannelHandlerContext ctx) throws Exception {
         ctx.writeAndFlush(Unpooled.copiedBuffer("T", CharsetUtil.UTF_8));
@@ -37,8 +37,8 @@ public class CodeReader8Handler extends ChannelInboundHandlerAdapter  {
 
     @Override
     public void channelInactive(ChannelHandlerContext ctx) throws Exception {
-        log.error("倒角读码器连接已断开!");
-        InkjetPrintersConnect inkjetPrintersConnect = (InkjetPrintersConnect) TcpServiceRunner.getTCPInstanceList().get("InkjetPrintersConnect");
+        log.error("设备:{}连接已断开!",deviceName);
+        InkjetPrintersConnect inkjetPrintersConnect = (InkjetPrintersConnect) TcpServiceRunner.getTCPInstanceList((deviceName));
         inkjetPrintersConnect.retry();
         super.channelInactive(ctx);
     }

+ 3 - 3
warewms-system/src/main/java/com/warewms/hailiang/connect/handler/CodeReader9Handler.java

@@ -23,7 +23,7 @@ import org.springframework.stereotype.Component;
 @Component
 public class CodeReader9Handler extends ChannelInboundHandlerAdapter  {
 
-
+    private final String deviceName ="CodeReader9";
     @Override
     public void channelActive(ChannelHandlerContext ctx) throws Exception {
         ctx.writeAndFlush(Unpooled.copiedBuffer("T", CharsetUtil.UTF_8));
@@ -37,8 +37,8 @@ public class CodeReader9Handler extends ChannelInboundHandlerAdapter  {
 
     @Override
     public void channelInactive(ChannelHandlerContext ctx) throws Exception {
-        log.error("倒角读码器连接已断开!");
-        InkjetPrintersConnect inkjetPrintersConnect = (InkjetPrintersConnect) TcpServiceRunner.getTCPInstanceList().get("InkjetPrintersConnect");
+        log.error("设备:{}连接已断开!",deviceName);
+        InkjetPrintersConnect inkjetPrintersConnect = (InkjetPrintersConnect) TcpServiceRunner.getTCPInstanceList((deviceName));
         inkjetPrintersConnect.retry();
         super.channelInactive(ctx);
     }

+ 4 - 5
warewms-system/src/main/java/com/warewms/hailiang/connect/handler/InkjetPrintersHandler.java

@@ -28,11 +28,10 @@ import javax.annotation.Resource;
 @Component
 public class InkjetPrintersHandler extends ChannelInboundHandlerAdapter  {
 
-
+    private final String deviceName ="InkjetPrinters";
     @Override
     public void channelActive(ChannelHandlerContext ctx) throws Exception {
-//        ParseMsgTools.StringTohexString("23071115000");
-        ctx.writeAndFlush(Unpooled.copiedBuffer(ParseMsgTools.StringTohexString("23071115000"), CharsetUtil.UTF_8));
+        ctx.writeAndFlush(Unpooled.copiedBuffer(ParseMsgTools.StringTohexString(""), CharsetUtil.UTF_8));
     }
 
     @Override
@@ -43,8 +42,8 @@ public class InkjetPrintersHandler extends ChannelInboundHandlerAdapter  {
 
     @Override
     public void channelInactive(ChannelHandlerContext ctx) throws Exception {
-        log.error("喷码机连接已断开!");
-        InkjetPrintersConnect inkjetPrintersConnect = (InkjetPrintersConnect) TcpServiceRunner.getTCPInstanceList().get("InkjetPrintersConnect");
+        log.error("设备:{}连接已断开!",deviceName);
+        InkjetPrintersConnect inkjetPrintersConnect = (InkjetPrintersConnect) TcpServiceRunner.getTCPInstanceList((deviceName));
         inkjetPrintersConnect.retry();
         super.channelInactive(ctx);
     }

+ 1 - 5
warewms-system/src/main/java/com/warewms/hailiang/contoller/DeviceController.java

@@ -1,10 +1,6 @@
 package com.warewms.hailiang.contoller;
 
-import com.warewms.common.core.domain.base.page.PageDomain;
-import com.warewms.common.core.domain.base.page.TableDataInfo;
-import com.warewms.hailiang.domian.Device;
-import com.warewms.hailiang.domian.DeviceLog;
-import com.warewms.hailiang.service.DeviceLogService;
+import com.warewms.hailiang.domain.Device;
 import com.warewms.hailiang.service.DeviceService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;

+ 1 - 1
warewms-system/src/main/java/com/warewms/hailiang/contoller/DeviceLogController.java

@@ -2,7 +2,7 @@ package com.warewms.hailiang.contoller;
 
 import com.warewms.common.core.domain.base.page.PageDomain;
 import com.warewms.common.core.domain.base.page.TableDataInfo;
-import com.warewms.hailiang.domian.DeviceLog;
+import com.warewms.hailiang.domain.DeviceLog;
 import com.warewms.hailiang.service.DeviceLogService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;

+ 1 - 1
warewms-system/src/main/java/com/warewms/hailiang/domian/Device.java

@@ -1,4 +1,4 @@
-package com.warewms.hailiang.domian;
+package com.warewms.hailiang.domain;
 
 
 import com.baomidou.mybatisplus.annotation.TableId;

+ 1 - 1
warewms-system/src/main/java/com/warewms/hailiang/domian/DeviceLog.java

@@ -1,4 +1,4 @@
-package com.warewms.hailiang.domian;
+package com.warewms.hailiang.domain;
 
 
 import com.baomidou.mybatisplus.annotation.TableId;

+ 148 - 0
warewms-system/src/main/java/com/warewms/hailiang/domain/RetroactiveHistory.java

@@ -0,0 +1,148 @@
+package com.warewms.hailiang.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import lombok.Data;
+
+/**
+ * 生产历史追溯表
+ * @TableName retroactive_history
+ */
+@TableName(value ="retroactive_history")
+@Data
+public class RetroactiveHistory implements Serializable {
+    /**
+     * 追溯id
+     */
+    @TableId
+    private String retroactiveId;
+
+    /**
+     * 产线
+     */
+    private String productionLine;
+
+    /**
+     * 批次号
+     */
+    private String batchNo;
+
+    /**
+     * 托盘号
+     */
+    private String lotNo;
+
+    /**
+     * 重量
+     */
+    private Double weight;
+
+    /**
+     * 生产状态
+     */
+    private String status;
+
+    /**
+     * 设备编号
+     */
+    private String deviceId;
+
+    /**
+     * 创建者
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新者
+     */
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        RetroactiveHistory other = (RetroactiveHistory) that;
+        return (this.getRetroactiveId() == null ? other.getRetroactiveId() == null : this.getRetroactiveId().equals(other.getRetroactiveId()))
+            && (this.getProductionLine() == null ? other.getProductionLine() == null : this.getProductionLine().equals(other.getProductionLine()))
+            && (this.getBatchNo() == null ? other.getBatchNo() == null : this.getBatchNo().equals(other.getBatchNo()))
+            && (this.getLotNo() == null ? other.getLotNo() == null : this.getLotNo().equals(other.getLotNo()))
+            && (this.getWeight() == null ? other.getWeight() == null : this.getWeight().equals(other.getWeight()))
+            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
+            && (this.getDeviceId() == null ? other.getDeviceId() == null : this.getDeviceId().equals(other.getDeviceId()))
+            && (this.getCreateBy() == null ? other.getCreateBy() == null : this.getCreateBy().equals(other.getCreateBy()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+            && (this.getUpdateBy() == null ? other.getUpdateBy() == null : this.getUpdateBy().equals(other.getUpdateBy()))
+            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
+            && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getRetroactiveId() == null) ? 0 : getRetroactiveId().hashCode());
+        result = prime * result + ((getProductionLine() == null) ? 0 : getProductionLine().hashCode());
+        result = prime * result + ((getBatchNo() == null) ? 0 : getBatchNo().hashCode());
+        result = prime * result + ((getLotNo() == null) ? 0 : getLotNo().hashCode());
+        result = prime * result + ((getWeight() == null) ? 0 : getWeight().hashCode());
+        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
+        result = prime * result + ((getDeviceId() == null) ? 0 : getDeviceId().hashCode());
+        result = prime * result + ((getCreateBy() == null) ? 0 : getCreateBy().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getUpdateBy() == null) ? 0 : getUpdateBy().hashCode());
+        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
+        result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", retroactiveId=").append(retroactiveId);
+        sb.append(", productionLine=").append(productionLine);
+        sb.append(", batchNo=").append(batchNo);
+        sb.append(", lotNo=").append(lotNo);
+        sb.append(", weight=").append(weight);
+        sb.append(", status=").append(status);
+        sb.append(", deviceId=").append(deviceId);
+        sb.append(", createBy=").append(createBy);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateBy=").append(updateBy);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append(", remark=").append(remark);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 168 - 0
warewms-system/src/main/java/com/warewms/hailiang/domain/RetroactiveNow.java

@@ -0,0 +1,168 @@
+package com.warewms.hailiang.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 生产追溯表
+ * @TableName retroactive_now
+ */
+@TableName(value ="retroactive_now")
+@Data
+@NoArgsConstructor
+public class RetroactiveNow implements Serializable {
+    /**
+     * 追溯id
+     */
+    @TableId
+    private String retroactiveId;
+
+    /**
+     * 产线
+     */
+    private String productionLine;
+
+    /**
+     * 批次号
+     */
+    private String batchNo;
+
+    /**
+     * 托盘号
+     */
+    private String lotNo;
+
+    /**
+     * 重量
+     */
+    private Double weight;
+
+    /**
+     * 生产状态
+     */
+    private String status;
+
+    /**
+     * 设备编号
+     */
+    private String deviceId;
+
+    /**
+     * 创建者
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新者
+     */
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        RetroactiveHistory other = (RetroactiveHistory) that;
+        return (this.getRetroactiveId() == null ? other.getRetroactiveId() == null : this.getRetroactiveId().equals(other.getRetroactiveId()))
+                && (this.getProductionLine() == null ? other.getProductionLine() == null : this.getProductionLine().equals(other.getProductionLine()))
+                && (this.getBatchNo() == null ? other.getBatchNo() == null : this.getBatchNo().equals(other.getBatchNo()))
+                && (this.getLotNo() == null ? other.getLotNo() == null : this.getLotNo().equals(other.getLotNo()))
+                && (this.getWeight() == null ? other.getWeight() == null : this.getWeight().equals(other.getWeight()))
+                && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
+                && (this.getDeviceId() == null ? other.getDeviceId() == null : this.getDeviceId().equals(other.getDeviceId()))
+                && (this.getCreateBy() == null ? other.getCreateBy() == null : this.getCreateBy().equals(other.getCreateBy()))
+                && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+                && (this.getUpdateBy() == null ? other.getUpdateBy() == null : this.getUpdateBy().equals(other.getUpdateBy()))
+                && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
+                && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getRetroactiveId() == null) ? 0 : getRetroactiveId().hashCode());
+        result = prime * result + ((getProductionLine() == null) ? 0 : getProductionLine().hashCode());
+        result = prime * result + ((getBatchNo() == null) ? 0 : getBatchNo().hashCode());
+        result = prime * result + ((getLotNo() == null) ? 0 : getLotNo().hashCode());
+        result = prime * result + ((getWeight() == null) ? 0 : getWeight().hashCode());
+        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
+        result = prime * result + ((getDeviceId() == null) ? 0 : getDeviceId().hashCode());
+        result = prime * result + ((getCreateBy() == null) ? 0 : getCreateBy().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getUpdateBy() == null) ? 0 : getUpdateBy().hashCode());
+        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
+        result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", retroactiveId=").append(retroactiveId);
+        sb.append(", productionLine=").append(productionLine);
+        sb.append(", batchNo=").append(batchNo);
+        sb.append(", lotNo=").append(lotNo);
+        sb.append(", weight=").append(weight);
+        sb.append(", status=").append(status);
+        sb.append(", deviceId=").append(deviceId);
+        sb.append(", createBy=").append(createBy);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateBy=").append(updateBy);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append(", remark=").append(remark);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+
+    /**
+     *
+     * @param weight 重量
+     * @param batchNo 批次号
+     * @param productionLine 产线
+     */
+    public RetroactiveNow(Double weight,String batchNo,String productionLine) {
+        this.weight = weight;
+        this.batchNo = batchNo;
+        this.productionLine = productionLine;
+        this.retroactiveId = new StringBuilder()
+                .append(productionLine).append("_")
+                .append(batchNo)
+                .append("_")
+                .append(String.valueOf(weight).split("\\.")[0]).toString();
+    }
+
+}

+ 24 - 0
warewms-system/src/main/java/com/warewms/hailiang/enums/DaoJiaoPlcEnum.java

@@ -0,0 +1,24 @@
+package com.warewms.hailiang.enums;
+
+/**
+ * 倒角plc数据块枚举
+ */
+public enum DaoJiaoPlcEnum {
+
+    CHECKFINISH("");
+
+    private String metadata;
+
+
+    DaoJiaoPlcEnum(String metadata){
+        this.metadata = metadata;
+    }
+
+    public String getMetadata() {
+        return metadata;
+    }
+
+    public void setMetadata(String metadata) {
+        this.metadata = metadata;
+    }
+}

+ 25 - 0
warewms-system/src/main/java/com/warewms/hailiang/enums/DeviceNameEnum.java

@@ -0,0 +1,25 @@
+package com.warewms.hailiang.enums;
+
+/**
+ * 设备名枚举
+ */
+public enum DeviceNameEnum {
+    WEIGHTPLC("ChengZhongPlc"),
+
+    DAOJIAOPLC("DaoJiaoJiPlc");
+
+    private String deviceName;
+
+
+    DeviceNameEnum(String deviceName){
+        this.deviceName = deviceName;
+    }
+
+    public String getDeviceName() {
+        return deviceName;
+    }
+
+    public void setDeviceName(String deviceName) {
+        this.deviceName = deviceName;
+    }
+}

+ 5 - 9
warewms-system/src/main/java/com/warewms/hailiang/enums/WeighPlcEnum.java

@@ -25,19 +25,15 @@ public enum WeighPlcEnum {
      */
     returnWeight("");
 
-    private String db;
+    private String metadata;
 
 
-    WeighPlcEnum(String db) {
-        this.db = db;
+    WeighPlcEnum(String metadata) {
+        this.metadata = metadata;
     }
 
-    public String getDb() {
-        return db;
-    }
-
-    public void setDb(String db) {
-        this.db = db;
+    public String getMetadata() {
+        return metadata;
     }
 
 }

+ 6 - 1
warewms-system/src/main/java/com/warewms/hailiang/init/PlcConnectServiceRunner.java

@@ -94,8 +94,13 @@ public class PlcConnectServiceRunner implements CommandLineRunner {
             }
         });
     }
-    
 
+
+    /**
+     *
+     * @param key plc设备名
+     * @return
+     */
     public S7PLC getPlcServer(String key) {
         return plcToolsMap.get(key);
     }

+ 13 - 14
warewms-system/src/main/java/com/warewms/hailiang/init/TcpServiceRunner.java

@@ -40,23 +40,22 @@ public class TcpServiceRunner implements CommandLineRunner {
             Object o = aClass.newInstance();
             if (o instanceof TCPConnectBase) {
                 TCPConnectBase nodeModel = (TCPConnectBase) o;
-//                threadPoolTaskExecutor.execute(() -> {
-//                    try {
-//                        nodeModel.init();
-//                        System.out.println(aClass.getSimpleName());
-//                        TCPInstanceList.put(aClass.getSimpleName(),nodeModel);
-//                    } catch (IOException e) {
-//                        nodeModel.close();
-//                        throw new RuntimeException(e);
-//                    } catch (InterruptedException e) {
-//                        throw new RuntimeException(e);
-//                    }
-//                });
+                threadPoolTaskExecutor.execute(() -> {
+                    try {
+                        nodeModel.init();
+                        TCPInstanceList.put(nodeModel.getDeviceName(),nodeModel);
+                    } catch (IOException e) {
+                        nodeModel.close();
+                        throw new RuntimeException(e);
+                    } catch (InterruptedException e) {
+                        throw new RuntimeException(e);
+                    }
+                });
             }
         }
     }
 
-    public static HashMap getTCPInstanceList(){
-        return TCPInstanceList;
+    public static TCPConnectBase getTCPInstanceList(String key){
+        return TCPInstanceList.get(key);
     }
 }

+ 109 - 0
warewms-system/src/main/java/com/warewms/hailiang/job/TraceJob.java

@@ -0,0 +1,109 @@
+package com.warewms.hailiang.job;
+
+import com.warewms.hailiang.enums.DaoJiaoPlcEnum;
+import com.warewms.hailiang.enums.DeviceNameEnum;
+import com.warewms.hailiang.enums.WeighPlcEnum;
+import com.warewms.hailiang.init.PlcConnectServiceRunner;
+import com.warewms.hailiang.init.TcpServiceRunner;
+import com.warewms.hailiang.service.ProcessRealizationService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 溯源系統定時任務
+ */
+@Component("traceJob")
+@Slf4j
+public class TraceJob {
+
+    @Autowired
+    PlcConnectServiceRunner plcConnectServiceRunner;
+
+    @Autowired
+    TcpServiceRunner tcpServiceRunner;
+
+    @Autowired
+    ProcessRealizationService processRealizationService;
+
+
+    /**
+     * 获取称重信号
+     */
+    public void getWeightSignal() throws InterruptedException {
+        //获取plc实例对象读取称重信号
+        boolean b = plcConnectServiceRunner.getPlcServer(DeviceNameEnum.WEIGHTPLC.getDeviceName()).readBoolean(WeighPlcEnum.IsRead.getMetadata());
+        log.info("称重信号:{}", b);
+        if (b) {
+            processRealizationService.weightProcess();
+        }
+
+    }
+
+    /**
+     * 获取倒角完成信号
+     */
+    public void getTheChamferCompletionSignal() {
+        boolean b = plcConnectServiceRunner.getPlcServer(DeviceNameEnum.DAOJIAOPLC.getDeviceName()).readBoolean(DaoJiaoPlcEnum.CHECKFINISH.getMetadata());
+        log.info("倒角完成信号:{}", b);
+        if (b) {
+            processRealizationService.DaoJiaoProcess();
+        }
+    }
+
+    /**
+     * 获取铣面读码信号
+     */
+    public void obtainTheMillingFaceReadingSignal() {
+
+    }
+
+    /**
+     * 获取轧制读码信号
+     */
+    public void getARollingReadingSignal() {
+
+    }
+
+    /**
+     * 获取行车1读码信号
+     */
+    public void getTheDriving1CodeReadingSignal() {
+
+    }
+
+    /**
+     * 获取行车2读码信号
+     */
+    public void getTheDriving2CodeReadingSignal() {
+
+    }
+
+    /**
+     * 获取行车3读码信号
+     */
+    public void getTheDriving3CodeReadingSignal() {
+
+    }
+
+    /**
+     * 获取行车4读码信号
+     */
+    public void getTheDriving4CodeReadingSignal() {
+
+    }
+
+    /**
+     * 获取上料读码信号
+     */
+    public void obtainTheLoadingReadingSignal() {
+
+    }
+
+    /**
+     * 获取下料读码信号
+     */
+    public void obtainTheUnloadingReadingSignal() {
+
+    }
+}

+ 1 - 1
warewms-system/src/main/java/com/warewms/hailiang/mapper/DeviceLogMapper.java

@@ -2,7 +2,7 @@ package com.warewms.hailiang.mapper;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.warewms.hailiang.domian.DeviceLog;
+import com.warewms.hailiang.domain.DeviceLog;
 
 /**
 * @author AD

+ 18 - 0
warewms-system/src/main/java/com/warewms/hailiang/mapper/RetroactiveHistoryMapper.java

@@ -0,0 +1,18 @@
+package com.warewms.hailiang.mapper;
+
+import com.warewms.hailiang.domain.RetroactiveHistory;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author AD
+* @description 针对表【retroactive_history(生产历史追溯表)】的数据库操作Mapper
+* @createDate 2023-08-22 14:02:21
+* @Entity com.warewms.hailiang.domain.RetroactiveHistory
+*/
+public interface RetroactiveHistoryMapper extends BaseMapper<RetroactiveHistory> {
+
+}
+
+
+
+

+ 18 - 0
warewms-system/src/main/java/com/warewms/hailiang/mapper/RetroactiveNowMapper.java

@@ -0,0 +1,18 @@
+package com.warewms.hailiang.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.warewms.hailiang.domain.RetroactiveNow;
+
+/**
+* @author AD
+* @description 针对表【retroactive_now(生产追溯表)】的数据库操作Mapper
+* @createDate 2023-08-22 11:02:17
+* @Entity hailiang.domain.RetroactiveNow
+*/
+public interface RetroactiveNowMapper extends BaseMapper<RetroactiveNow> {
+
+}
+
+
+
+

+ 1 - 2
warewms-system/src/main/java/com/warewms/hailiang/service/DeviceLogService.java

@@ -4,8 +4,7 @@ package com.warewms.hailiang.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.warewms.common.core.domain.base.page.PageDomain;
 import com.warewms.common.core.domain.base.page.TableDataInfo;
-import com.warewms.hailiang.domian.DeviceLog;
-import org.springframework.stereotype.Service;
+import com.warewms.hailiang.domain.DeviceLog;
 
 /**
 * @author AD

+ 1 - 5
warewms-system/src/main/java/com/warewms/hailiang/service/DeviceService.java

@@ -1,10 +1,6 @@
 package com.warewms.hailiang.service;
 
-import com.warewms.common.core.domain.base.page.PageDomain;
-import com.warewms.common.core.domain.base.page.TableDataInfo;
-import com.warewms.hailiang.domian.Device;
-import com.warewms.hailiang.domian.DeviceLog;
-import org.springframework.stereotype.Service;
+import com.warewms.hailiang.domain.Device;
 
 import java.util.List;
 

+ 17 - 0
warewms-system/src/main/java/com/warewms/hailiang/service/ProcessRealizationService.java

@@ -0,0 +1,17 @@
+package com.warewms.hailiang.service;
+
+/**
+ * 工艺流程实现
+ */
+public interface ProcessRealizationService {
+
+    /**
+     * 称重工艺流程实现
+     */
+    void weightProcess() throws InterruptedException;
+
+    /**
+     * 倒角工艺完成喷码、读码流程实现
+     */
+    void DaoJiaoProcess();
+}

+ 13 - 0
warewms-system/src/main/java/com/warewms/hailiang/service/RetroactiveHistoryService.java

@@ -0,0 +1,13 @@
+package com.warewms.hailiang.service;
+
+import com.warewms.hailiang.domain.RetroactiveHistory;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+* @author AD
+* @description 针对表【retroactive_history(生产历史追溯表)】的数据库操作Service
+* @createDate 2023-08-22 14:02:21
+*/
+public interface RetroactiveHistoryService extends IService<RetroactiveHistory> {
+
+}

+ 16 - 0
warewms-system/src/main/java/com/warewms/hailiang/service/RetroactiveNowService.java

@@ -0,0 +1,16 @@
+package com.warewms.hailiang.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.warewms.hailiang.domain.RetroactiveNow;
+
+/**
+* @author AD
+* @description 针对表【retroactive_now(生产追溯表)】的数据库操作Service
+* @createDate 2023-08-22 11:02:17
+*/
+public interface RetroactiveNowService extends IService<RetroactiveNow> {
+
+    int insertData(RetroactiveNow retroactiveNow);
+
+    RetroactiveNow selectTheOneByParameter(RetroactiveNow retroactiveNow);
+}

+ 1 - 2
warewms-system/src/main/java/com/warewms/hailiang/service/impl/DeviceLogServiceImpl.java

@@ -1,14 +1,13 @@
 package com.warewms.hailiang.service.impl;
 
 
-import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.warewms.common.core.domain.base.page.PageDomain;
 import com.warewms.common.core.domain.base.page.TableDataInfo;
 import com.warewms.common.utils.StringUtils;
-import com.warewms.hailiang.domian.DeviceLog;
+import com.warewms.hailiang.domain.DeviceLog;
 import com.warewms.hailiang.mapper.DeviceLogMapper;
 import com.warewms.hailiang.service.DeviceLogService;
 import org.springframework.beans.factory.annotation.Autowired;

+ 1 - 3
warewms-system/src/main/java/com/warewms/hailiang/service/impl/DeviceServiceImpl.java

@@ -1,9 +1,7 @@
 package com.warewms.hailiang.service.impl;
 
-import com.warewms.common.core.domain.base.page.TableDataInfo;
-import com.warewms.hailiang.domian.Device;
+import com.warewms.hailiang.domain.Device;
 import com.warewms.hailiang.service.DeviceService;
-import org.apache.ibatis.annotations.Update;
 import org.springframework.context.event.EventListener;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;

+ 74 - 0
warewms-system/src/main/java/com/warewms/hailiang/service/impl/ProcessRealizationServiceImpl.java

@@ -0,0 +1,74 @@
+package com.warewms.hailiang.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.warewms.common.utils.StringUtils;
+import com.warewms.hailiang.MES.MesService;
+import com.warewms.hailiang.domain.RetroactiveNow;
+import com.warewms.hailiang.enums.DeviceNameEnum;
+import com.warewms.hailiang.enums.WeighPlcEnum;
+import com.warewms.hailiang.init.PlcConnectServiceRunner;
+import com.warewms.hailiang.init.TcpServiceRunner;
+import com.warewms.hailiang.service.ProcessRealizationService;
+import com.warewms.hailiang.service.RetroactiveNowService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+/**
+ * 工艺流程实现
+ */
+@Service
+@Slf4j
+public class ProcessRealizationServiceImpl implements ProcessRealizationService {
+
+    @Autowired
+    PlcConnectServiceRunner plcConnectServiceRunner;
+
+    @Autowired
+    TcpServiceRunner tcpServiceRunner;
+
+    @Autowired
+    MesService mesService;
+
+    @Autowired
+    RetroactiveNowService retroactiveNowService;
+    @Override
+    public void weightProcess() throws InterruptedException {
+        //读取称重信息
+        double weight = plcConnectServiceRunner.getPlcServer(DeviceNameEnum.WEIGHTPLC.getDeviceName()).readFloat64(WeighPlcEnum.ReadWeight.getMetadata());
+        if(weight==0){
+            log.error("重量信息有误,为0");
+        }else {
+            //调用MES系统拿到批次号
+            String BatchNo = mesService.getBatchNoByWeight(weight, "Z1");
+            if (StringUtils.isNotEmpty(BatchNo)){
+                //数据库记录批次号
+                RetroactiveNow z1 = new RetroactiveNow(weight,BatchNo,"Z1");
+                z1.setCreateBy("system");
+                z1.setStatus("1");
+                int insert = retroactiveNowService.insertData(z1);
+                if (insert==1){
+                    log.info("追溯记录生成成功,BatchNo:{}",BatchNo);
+                    //反馈plc成功拿到重量生成追溯记录
+                    plcConnectServiceRunner.getPlcServer(DeviceNameEnum.WEIGHTPLC.getDeviceName()).writeBoolean(WeighPlcEnum.returnWeight.getMetadata(),true);
+                    Thread.sleep(5000);
+                    plcConnectServiceRunner.getPlcServer(DeviceNameEnum.WEIGHTPLC.getDeviceName()).writeBoolean(WeighPlcEnum.IsRead.getMetadata(),false);
+                }else {
+                    log.info("追溯记录生成失败,BatchNo:{}",BatchNo);
+                }
+            }
+        }
+
+    }
+
+    @Override
+    public void DaoJiaoProcess() {
+        //获取数据库中的批次号
+        RetroactiveNow retroactiveNow = new RetroactiveNow();
+        retroactiveNow.setStatus("1");
+        retroactiveNow =  retroactiveNowService.selectTheOneByParameter(retroactiveNow);
+        if (ObjectUtil.isNotNull(retroactiveNow)){
+            //更新喷码机条码内容
+
+        }
+    }
+}

+ 22 - 0
warewms-system/src/main/java/com/warewms/hailiang/service/impl/RetroactiveHistoryServiceImpl.java

@@ -0,0 +1,22 @@
+package com.warewms.hailiang.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.warewms.hailiang.domain.RetroactiveHistory;
+import com.warewms.hailiang.service.RetroactiveHistoryService;
+import com.warewms.hailiang.mapper.RetroactiveHistoryMapper;
+import org.springframework.stereotype.Service;
+
+/**
+* @author AD
+* @description 针对表【retroactive_history(生产历史追溯表)】的数据库操作Service实现
+* @createDate 2023-08-22 14:02:21
+*/
+@Service
+public class RetroactiveHistoryServiceImpl extends ServiceImpl<RetroactiveHistoryMapper, RetroactiveHistory>
+    implements RetroactiveHistoryService{
+
+}
+
+
+
+

+ 60 - 0
warewms-system/src/main/java/com/warewms/hailiang/service/impl/RetroactiveNowServiceImpl.java

@@ -0,0 +1,60 @@
+package com.warewms.hailiang.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.warewms.common.utils.StringUtils;
+import com.warewms.hailiang.domain.RetroactiveHistory;
+import com.warewms.hailiang.domain.RetroactiveNow;
+import com.warewms.hailiang.mapper.RetroactiveHistoryMapper;
+import com.warewms.hailiang.service.RetroactiveNowService;
+import com.warewms.hailiang.mapper.RetroactiveNowMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+* @author AD
+* @description 针对表【retroactive_now(生产追溯表)】的数据库操作Service实现
+* @createDate 2023-08-22 11:02:17
+*/
+@Service
+@Slf4j
+public class RetroactiveNowServiceImpl extends ServiceImpl<RetroactiveNowMapper, RetroactiveNow>
+    implements RetroactiveNowService{
+
+    @Autowired
+    private RetroactiveNowMapper retroactiveNowMapper;
+
+    @Autowired
+    private RetroactiveHistoryMapper retroactiveHistoryMapper;
+
+    @Override
+    @Transactional
+    public int insertData(RetroactiveNow retroactiveNow) {
+        List<RetroactiveNow> retroactiveNows = retroactiveNowMapper.selectList(new LambdaQueryWrapper<RetroactiveNow>()
+                .eq(RetroactiveNow::getBatchNo, retroactiveNow.getBatchNo())
+        );
+        if (retroactiveNows.size()>0){
+            log.info("数据库中已存在相同批次号");
+            return 0;
+        }
+        retroactiveNowMapper.insert(retroactiveNow);
+        return retroactiveHistoryMapper.insert(BeanUtil.copyProperties(retroactiveNow,RetroactiveHistory.class));
+    }
+
+    @Override
+    public RetroactiveNow selectTheOneByParameter(RetroactiveNow retroactiveNow) {
+        return retroactiveNowMapper.selectOne(new LambdaQueryWrapper<RetroactiveNow>()
+                .eq(StringUtils.isNotEmpty(retroactiveNow.getBatchNo()),RetroactiveNow::getBatchNo,retroactiveNow.getBatchNo())
+                .eq(StringUtils.isNotEmpty(retroactiveNow.getStatus()),RetroactiveNow::getStatus,retroactiveNow.getStatus())
+        );
+    }
+}
+
+
+
+

+ 28 - 0
warewms-system/src/main/resources/mapper/hailiang/RetroactiveHistoryMapper.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.warewms.hailiang.mapper.RetroactiveHistoryMapper">
+
+    <resultMap id="BaseResultMap" type="com.warewms.hailiang.domain.RetroactiveHistory">
+            <id property="retroactiveId" column="retroactive_id" jdbcType="VARCHAR"/>
+            <result property="productionLine" column="production_line" jdbcType="VARCHAR"/>
+            <result property="batchNo" column="batch_no" jdbcType="VARCHAR"/>
+            <result property="lotNo" column="lot_no" jdbcType="VARCHAR"/>
+            <result property="weight" column="weight" jdbcType="DOUBLE"/>
+            <result property="status" column="status" jdbcType="CHAR"/>
+            <result property="deviceId" column="device_id" jdbcType="VARCHAR"/>
+            <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        retroactive_id,production_line,batch_no,
+        lot_no,weight,status,
+        device_id,create_by,create_time,
+        update_by,update_time,remark
+    </sql>
+</mapper>

+ 29 - 0
warewms-system/src/main/resources/mapper/hailiang/RetroactiveNowMapper.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.warewms.hailiang.mapper.RetroactiveNowMapper">
+
+    <resultMap id="BaseResultMap" type="com.warewms.hailiang.domain.RetroactiveNow">
+        <id property="retroactiveId" column="retroactive_id" jdbcType="VARCHAR"/>
+        <result property="productionLine" column="production_line" jdbcType="VARCHAR"/>
+        <result property="batchNo" column="batch_no" jdbcType="VARCHAR"/>
+        <result property="lotNo" column="lot_no" jdbcType="VARCHAR"/>
+        <result property="weight" column="weight" jdbcType="DOUBLE"/>
+        <result property="status" column="status" jdbcType="CHAR"/>
+        <result property="deviceId" column="device_id" jdbcType="VARCHAR"/>
+        <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+        <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+        <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
+        <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+        <result property="remark" column="remark" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        retroactive_id
+        ,production_line,batch_no,
+        lot_no,weight,status,
+        create_by,create_time,update_by,
+        update_time,remark
+    </sql>
+</mapper>