From 7607eeb6f4972298801ea076796119bf8bd17cca Mon Sep 17 00:00:00 2001 From: zhangzq Date: Mon, 8 Jul 2024 15:14:19 +0800 Subject: [PATCH] =?UTF-8?q?rev:=E4=BF=AE=E6=94=B9=E5=A4=9A=E5=B1=82?= =?UTF-8?q?=E5=AD=90=E6=B5=81=E7=A8=8B=E6=97=B6=E9=80=8F=E4=BC=A0=E5=87=BD?= =?UTF-8?q?=E6=95=B0=E5=A5=97=E5=A8=83=E9=97=AE=E9=A2=98=EF=BC=9B=20add:?= =?UTF-8?q?=E7=BD=91=E5=85=B3=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=8A=A8=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E4=BD=9C=E4=B8=BA=E7=A9=BA=E8=8A=82=E7=82=B9=E4=BD=BF?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/nl/AppRun.java | 4 +- .../java/org/nl/common/enums/StatusEnum.java | 4 +- .../nl/common/function/PermeateFunction.java | 14 ++- .../org/nl/common/utils/InterationUtil.java | 1 + .../java/org/nl/common/utils/SpelUtil.java | 13 ++- .../clientSocket/HeartClientServer.java | 72 ++++++++++++ .../clientSocket/HeartConsumerHandler.java | 50 +++++++++ .../clientSocket/RunClientHeartMain.java | 26 +++++ .../heartSocket/serverSocket/HeartServer.java | 88 +++++++++++++++ .../serverSocket/HeartServerHandler.java | 55 +++++++++ .../serverSocket/RunHeartMain.java | 28 +++++ .../main/java/org/nl/config/DruidFilter.java | 4 +- .../StIvtBsrealstorattrController.java | 14 ++- .../handler/decisioner/Decisioner.java | 5 + .../impl/base/NearbyRuleHandler.java | 1 - .../task/handler/impl/ToPickPlatformTask.java | 106 ++++++++++++++++++ .../task/service/TaskScheduleService.java | 17 ++- .../execution/ExecutionController.java | 2 +- .../behavior/FlowNodeActivityBehavior.java | 4 +- .../impl/GateWayActivityBehavior.java | 7 ++ .../impl/SubProcessActivityBehavior.java | 3 +- .../entity/node/base/impl/FlowElement.java | 1 + .../node/impl/Sequence/SequenceFlow.java | 3 + .../execution/IFlowOperationService.java | 5 +- .../impl/FlowOperationServiceImpl.java | 5 +- .../monitor/FlowContinueEventListener.java | 3 +- .../pick/service/PickingService.java | 8 +- .../resources/config/application-dev3.yml | 8 +- .../src/views/wms/base_manage/sect/index.vue | 18 +-- .../views/wms/base_manage/struct/index.vue | 4 +- .../wms/flow_manage/act/execution/index.vue | 2 +- .../stor_manage/warehouse/pick/TaskDialog.vue | 2 +- 32 files changed, 522 insertions(+), 55 deletions(-) create mode 100644 wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/clientSocket/HeartClientServer.java create mode 100644 wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/clientSocket/HeartConsumerHandler.java create mode 100644 wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/clientSocket/RunClientHeartMain.java create mode 100644 wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/serverSocket/HeartServer.java create mode 100644 wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/serverSocket/HeartServerHandler.java create mode 100644 wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/serverSocket/RunHeartMain.java create mode 100644 wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/ToPickPlatformTask.java diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/AppRun.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/AppRun.java index 692f5b13..ef41ce7c 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/AppRun.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/AppRun.java @@ -41,8 +41,8 @@ public class AppRun implements CommandLineRunner { } @Override - public void run(String... args) throws Exception { - System.out.println(111); + public void run(String... args) { + System.out.println("--------项目启动完成--------"); } // @Bean diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/enums/StatusEnum.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/enums/StatusEnum.java index c3046173..b5951a14 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/enums/StatusEnum.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/enums/StatusEnum.java @@ -26,13 +26,13 @@ public enum StatusEnum { /** * 单据状态 */ - FORM_STATUS(ForkMap.of("生成", "10",null,"已分配", "13", null,"执行中", "20",null,"暂停", "30",null,"完成", "80",null,"取消", "90",null)), + FORM_STATUS(ForkMap.of("生成", "10",null,"已分配", "13", null,"下发", "15", null,"执行中", "20",null,"暂停", "30",null,"完成", "80",null,"取消", "90",null)), /** * 出入库单据类型 */ IOBILL_TYPE_IN(ForkMap.of("生产入库", "10","inStorageTask", "调拨入库", "11","inStorageTask", "退货入库", "12","inStorageTask","拣选回库", "13","inStorageTask","盘点入库", "14","inStorageTask","托盘入库", "30","inStorageTask")), - IOBILL_TYPE_OUT(ForkMap.of("销售出库", "20","outStorageTask","生产出库", "21","outStorageTask", "调拨出库", "22","outStorageTask","拣选出库", "23","conveyorOutStorageTask","盘点出库", "24","outStorageTask", "托盘出库", "40","outStorageTask")), + IOBILL_TYPE_OUT(ForkMap.of("销售出库", "20","outStorageTask","生产出库", "21","outStorageTask", "调拨出库", "22","outStorageTask","拣选出库", "23","conveyorOutStorageTask","盘点出库", "24","outStorageTask","出库拣选", "25","toPickPlatformTask","托盘出库", "40","outStorageTask")), IOBILL_TYPE_MOVE(ForkMap.of("移库", "50","moveStorageTask")), profit_loss(ForkMap.of("盘亏", "0",null,"盘盈", "1",null,"实盘", "2",null)), diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/function/PermeateFunction.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/function/PermeateFunction.java index 944ee93f..b330f01b 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/function/PermeateFunction.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/function/PermeateFunction.java @@ -14,16 +14,18 @@ import java.util.function.Supplier; * @Date 2024/6/19 17:44 */ @FunctionalInterface -public interface PermeateFunction { - - +public interface PermeateFunction{ + PermeateFunction[] Ext_PF = new PermeateFunction[1]; void accept(T t,U u); //函数透传方式 default PermeateFunction andThen(Supplier middle) { + PermeateFunction permeateFunction = Ext_PF[0]; + if (permeateFunction==null){ + Ext_PF[0]=this; + } Objects.requireNonNull(middle); - return (inst_id,vehicle)->{ - accept(inst_id,middle.get()); - }; + U extU = middle.get(); + return (t, u) -> Ext_PF[0].accept(t, extU); } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/utils/InterationUtil.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/utils/InterationUtil.java index b602c60d..1d75788f 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/utils/InterationUtil.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/utils/InterationUtil.java @@ -35,6 +35,7 @@ public class InterationUtil { String url = acsUrl + api; try { String resultMsg = HttpRequest.post(url) + .timeout(1000) .body(String.valueOf(param)) .execute().body(); JSONObject response = JSONObject.parseObject(resultMsg); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/utils/SpelUtil.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/utils/SpelUtil.java index ed4d7ec1..a782121e 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/utils/SpelUtil.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/utils/SpelUtil.java @@ -27,13 +27,13 @@ public class SpelUtil { private static SpelExpressionParser SPEL_PARSER = new SpelExpressionParser(); - public static void main2(String[] args) { + public static void main(String[] args) { JSONObject source = new JSONObject(); JSONObject model = new JSONObject(); JSONObject FBillType = new JSONObject(); JSONArray FARRAY = new JSONArray(); - source.put("FID","120222"); + source.put("FID",""); source.put("Model",model); model.put("FDATA", DateUtil.now()); model.put("FCODE", IdUtil.getStringId()); @@ -42,8 +42,11 @@ public class SpelUtil { model.put("FARRAY", FARRAY); FARRAY.add(MapOf.of("ARR1","子子子数字")); FARRAY.add(MapOf.of("ARR2","子子子数字2")); - Map parse = SpelUtil.parse(source, MapOf.of("FID", "#M['FID']", "SSD", "#M['Model']['FDATA']","ARR1", "#M['Model']['FARRAY2'][1]['ARR2']")); - System.out.println(parse.toString()); + Map parse = SpelUtil.parse(source, MapOf.of("FID", "#M['FID']")); + Boolean parse1 = SpelUtil.parse(source, "#M['FID'] != 'true'", Boolean.class); + Boolean parse2 = SpelUtil.parse(source, "#M['']", Boolean.class); + System.out.println(parse2); + System.out.println(parse1); /* { "FID": "120222", @@ -105,7 +108,7 @@ public class SpelUtil { } } - public static void main(String[] args) { + public static void main2(String[] args) { String a= "{\"item\":[{\"t\":{\"stor_code\":\"FStockId\",\"create_time\":\"2024-06-19 11:13:06\",\"task_code\":\"28510\",\"material_spec\":\"45CCL1 1/8\",\"form_data\":{},\"group_id\":\"1803264719126138880\",\"qty\":120,\"proc_inst_id\":\"1803320414961799168\",\"is_lock\":false,\"pcsn\":\"11\",\"material_id\":\"FMaterialId\",\"id\":\"1803264718849314816\",\"has_child\":false,\"frozen_qty\":0,\"vehicle_code\":\"D00012\",\"source_form_id\":\"1803264490947612672\",\"unit_id\":\"16\",\"material_name\":\"A345度等径承插口弯头45CCL1 1/8USNA0131010\",\"source_form_type\":\"st_ivt_iostorinvdtl\",\"create_name\":\"管理员\",\"material_code\":\"24001097S\"},\"form_id\":\"1803264718849314816\",\"form_type\":\"md_pb_vehicleMater\",\"source_form_id\":\"1803264490947612672\",\"source_form_type\":\"st_ivt_iostorinvdtl\"}],\"t\":{\"code\":\"ZP20240619023\",\"stor_code\":\"FStockId\",\"create_time\":\"2024-06-19 11:13:06\",\"update_name\":\"管理员\",\"update_time\":\"2024-06-19 11:15:31\",\"form_data\":{},\"id\":\"1803264719126138880\",\"vehicle_code\":\"D00012\",\"source_form_id\":\"1803264490947612672\",\"struct_code\":\"L03-03-01\",\"source_form_type\":\"st_ivt_iostorinvdtl\",\"status\":\"10\",\"create_name\":\"管理员\"},\"form_id\":\"1803264719126138880\",\"form_type\":\"md_group_dick\",\"source_form_id\":\"1803264490947612672\",\"source_form_type\":\"st_ivt_iostorinvdtl\"}"; JSONObject jsonObject = JSONObject.parseObject(a); String parse = SpelUtil.parse(jsonObject.getJSONObject("t"),"#M['stor_code'] == 'FStockId'", String.class); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/clientSocket/HeartClientServer.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/clientSocket/HeartClientServer.java new file mode 100644 index 00000000..b4b66e8c --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/clientSocket/HeartClientServer.java @@ -0,0 +1,72 @@ +package org.nl.common.websocket.heartSocket.clientSocket; + +import io.netty.bootstrap.Bootstrap; +import io.netty.channel.ChannelFuture; +import io.netty.channel.ChannelInitializer; +import io.netty.channel.ChannelOption; +import io.netty.channel.EventLoopGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.socket.SocketChannel; +import io.netty.channel.socket.nio.NioSocketChannel; +import io.netty.handler.codec.string.StringDecoder; +import io.netty.handler.codec.string.StringEncoder; +import io.netty.handler.timeout.IdleStateHandler; +import io.netty.util.concurrent.Future; +import org.nl.config.lucene.remote.AbstraceServer; + +import java.net.SocketAddress; +import java.util.concurrent.TimeUnit; + +import static java.util.concurrent.TimeUnit.MILLISECONDS; + +/* + * @author ZZQ + * @Date 2024/7/5 14:53 + */ +public class HeartClientServer extends AbstraceServer { + + private static EventLoopGroup group = new NioEventLoopGroup(); + + public HeartClientServer(SocketAddress address) { + super(address); + } + + @Override + public void doOpen() { + server = new Bootstrap(); + server.group(group) +// .option(ChannelOption.SO_KEEPALIVE, true) + .channel(NioSocketChannel.class); + + server.handler(new ChannelInitializer() { + @Override + protected void initChannel(SocketChannel ch) throws Exception { + ch.pipeline() + .addLast("client-idle-handler", new IdleStateHandler(0, 5,0 , TimeUnit.SECONDS)) + .addLast( new StringEncoder()) + .addLast( new StringDecoder()) + .addLast( new HeartConsumerHandler()); + + } + }); + } + + @Override + public void doClose() { + super.doClose(); + Future bossGroupShutdownFuture = group.shutdownGracefully(); + bossGroupShutdownFuture.syncUninterruptibly(); + } + + @Override + public void doConnect() { + try { + ChannelFuture connect = ((Bootstrap) server).connect(address); + connect.syncUninterruptibly(); + channel = connect.channel(); + } catch (Throwable t) { + this.doClose(); + throw t; + } + } +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/clientSocket/HeartConsumerHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/clientSocket/HeartConsumerHandler.java new file mode 100644 index 00000000..e78a1d1f --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/clientSocket/HeartConsumerHandler.java @@ -0,0 +1,50 @@ +package org.nl.common.websocket.heartSocket.clientSocket; + +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; +import io.netty.channel.ChannelFutureListener; +import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.ChannelInboundHandlerAdapter; +import io.netty.channel.SimpleChannelInboundHandler; +import io.netty.handler.timeout.IdleState; +import io.netty.handler.timeout.IdleStateEvent; +import io.netty.util.CharsetUtil; +import org.nl.config.lucene.remote.RemoteLogServer; + +/* + * @author ZZQ + * @Date 2024/1/22 10:24 + */ +public class HeartConsumerHandler extends SimpleChannelInboundHandler { + + @Override + public void channelInactive(ChannelHandlerContext ctx) throws Exception { + System.out.println("断开连接---"); + //重新建立 + super.channelInactive(ctx); + } + + @Override + public void channelActive(ChannelHandlerContext ctx) throws Exception { + System.out.println("连接"); + super.channelActive(ctx); + } + + + @Override + protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception { + System.out.println("接收到消息"+msg.toString()); + super.channelRead(ctx, msg); + } + + @Override + public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { + if (evt instanceof IdleStateEvent){ + IdleStateEvent stateEvent = (IdleStateEvent) evt; + if (stateEvent.state() == IdleState.WRITER_IDLE) { + //如果五秒内写失败,说明服务网络异常 + } + } + super.userEventTriggered(ctx, evt); + } +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/clientSocket/RunClientHeartMain.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/clientSocket/RunClientHeartMain.java new file mode 100644 index 00000000..1be64e36 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/clientSocket/RunClientHeartMain.java @@ -0,0 +1,26 @@ +package org.nl.common.websocket.heartSocket.clientSocket; + +import com.alibaba.fastjson.JSON; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; +import io.netty.util.CharsetUtil; +import org.nl.common.websocket.heartSocket.serverSocket.HeartServer; + +import java.net.InetSocketAddress; +import java.nio.charset.StandardCharsets; + +/* + * @author ZZQ + * @Date 2024/7/5 15:15 + */ +public class RunClientHeartMain { + public static void main(String[] args) throws InterruptedException { + HeartClientServer heartServer = new HeartClientServer(new InetSocketAddress("127.0.0.1", 20889)); + while (true){ + Thread.sleep(2000); + System.out.println("-----chilend-------"); + ByteBuf log = Unpooled.copiedBuffer("ping--333-", CharsetUtil.UTF_8); + heartServer.channel.writeAndFlush(log); + } + } +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/serverSocket/HeartServer.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/serverSocket/HeartServer.java new file mode 100644 index 00000000..b1c70efd --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/serverSocket/HeartServer.java @@ -0,0 +1,88 @@ +package org.nl.common.websocket.heartSocket.serverSocket; + +import io.netty.bootstrap.Bootstrap; +import io.netty.bootstrap.ServerBootstrap; +import io.netty.buffer.PooledByteBufAllocator; +import io.netty.channel.*; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.socket.SocketChannel; +import io.netty.channel.socket.nio.NioServerSocketChannel; +import io.netty.channel.socket.nio.NioSocketChannel; +import io.netty.handler.codec.LengthFieldBasedFrameDecoder; +import io.netty.handler.codec.LengthFieldPrepender; +import io.netty.handler.codec.string.StringDecoder; +import io.netty.handler.codec.string.StringEncoder; +import io.netty.handler.timeout.IdleStateHandler; +import io.netty.util.concurrent.Future; +import org.nl.common.websocket.heartSocket.clientSocket.HeartConsumerHandler; +import org.nl.config.lucene.remote.AbstraceServer; +import org.nl.config.lucene.remote.coder.LogProviderHandler; + +import java.net.SocketAddress; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +import static java.util.concurrent.TimeUnit.MILLISECONDS; + +/* + * @author ZZQ + * @Date 2024/7/5 14:53 + */ +public class HeartServer extends AbstraceServer { + + public static Map Heart_Connection = new HashMap(); + + + private static EventLoopGroup boss = new NioEventLoopGroup(); + private static EventLoopGroup worker = new NioEventLoopGroup(); + + public HeartServer(SocketAddress address) { + super(address); + } + + // 非阻塞IO线程组 + @Override + public void doOpen() { + ServerBootstrap bootstrap = new ServerBootstrap(); + bootstrap + .group(boss, worker) + .channel(NioServerSocketChannel.class) +// .childOption(ChannelOption.SO_KEEPALIVE, Boolean.TRUE) + .childHandler(new ChannelInitializer() { + @Override + protected void initChannel(SocketChannel ch) throws Exception { + ch.pipeline() + .addLast("client-idle-handler", new IdleStateHandler(4, 0, 0, TimeUnit.SECONDS)) + .addLast( new StringEncoder()) + .addLast( new StringDecoder()) + .addLast(new HeartServerHandler()); + } + }); + server = bootstrap; + } + + @Override + public void doClose(){ + Future bossGroupShutdownFuture = boss.shutdownGracefully(); + Future workerGroupShutdownFuture = worker.shutdownGracefully(); + bossGroupShutdownFuture.syncUninterruptibly(); + workerGroupShutdownFuture.syncUninterruptibly(); + } + + @Override + public void doConnect() { + ChannelFuture future = server.bind(address); + boolean ret = future.awaitUninterruptibly(3000, MILLISECONDS); + if (ret && future.isSuccess()) { + Channel newChannel = future.channel(); + if (channel != null) { + channel.close(); + channel = newChannel; + } + } else if (future.cause() != null) { + Throwable cause = future.cause(); + cause.printStackTrace(); + } + } +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/serverSocket/HeartServerHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/serverSocket/HeartServerHandler.java new file mode 100644 index 00000000..ed4c9c00 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/serverSocket/HeartServerHandler.java @@ -0,0 +1,55 @@ +package org.nl.common.websocket.heartSocket.serverSocket; + +import com.alibaba.fastjson.JSON; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; +import io.netty.channel.ChannelFutureListener; +import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.ChannelInboundHandlerAdapter; +import io.netty.channel.SimpleChannelInboundHandler; +import io.netty.handler.timeout.IdleState; +import io.netty.handler.timeout.IdleStateEvent; +import io.netty.util.CharsetUtil; +import org.nl.config.lucene.remote.RemoteLogServer; + +/* + * @author ZZQ + * @Date 2024/1/22 10:24 + */ +public class HeartServerHandler extends SimpleChannelInboundHandler { + + @Override + public void channelInactive(ChannelHandlerContext ctx) throws Exception { + System.out.println("服务端断开连接-----"); + HeartServer.Heart_Connection.remove(ctx.channel().id().asLongText()); + //重新建立 + super.channelInactive(ctx); + } + + @Override + public void channelActive(ChannelHandlerContext ctx) throws Exception { + System.out.println("服务端收到连接-----连接"); + HeartServer.Heart_Connection.put(ctx.channel().id().asLongText(),ctx.channel()); + super.channelActive(ctx); + } + + + @Override + protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception { + System.out.println("接收到消息"+msg.toString()); + } + + @Override + public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { + if (evt instanceof IdleStateEvent){ + IdleStateEvent stateEvent = (IdleStateEvent) evt; + System.out.println(stateEvent.state()); + if (stateEvent.state() == IdleState.READER_IDLE) { + //向服务端发送消息 +// ctx.writeAndFlush("ping") +// .addListener(ChannelFutureListener.CLOSE_ON_FAILURE); + } + } + super.userEventTriggered(ctx, evt); + } +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/serverSocket/RunHeartMain.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/serverSocket/RunHeartMain.java new file mode 100644 index 00000000..a08d49a7 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/serverSocket/RunHeartMain.java @@ -0,0 +1,28 @@ +package org.nl.common.websocket.heartSocket.serverSocket; + +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; +import io.netty.channel.Channel; +import io.netty.util.CharsetUtil; +import org.nl.common.websocket.heartSocket.serverSocket.HeartServer; + +import java.net.InetSocketAddress; +import java.nio.charset.StandardCharsets; + +/* + * @author ZZQ + * @Date 2024/7/5 15:15 + */ +public class RunHeartMain { + public static void main(String[] args) throws InterruptedException { + HeartServer heartServer = new HeartServer(new InetSocketAddress("127.0.0.1", 20889)); +// while (true){ +// Thread.sleep(5000); +// for (Channel value : HeartServer.Heart_Connection.values()) { +// System.out.println("-----server-------"); +// ByteBuf log = Unpooled.copiedBuffer("ping--2222-", CharsetUtil.UTF_8); +// value.writeAndFlush(log); +// } +// } + } +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/config/DruidFilter.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/config/DruidFilter.java index a985330f..e286abf2 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/config/DruidFilter.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/config/DruidFilter.java @@ -54,7 +54,7 @@ public class DruidFilter extends FilterEventAdapter { } executeSql = SQLUtils.format(executeSql, JdbcUtils.MYSQL, params); } - log.info("[----SQL----][update][ SQL: {} ]", executeSql); +// log.info("[----SQL----][update][ SQL: {} ]", executeSql); } super.statementExecuteAfter(statement, sql, result); } @@ -81,7 +81,7 @@ public class DruidFilter extends FilterEventAdapter { }catch (Exception ex){ log.warn("[-SQL解析异常-][{}]",ex.getMessage()); } - log.info("[----SQL----][select][执行结果:{}][ SQL: {} ]",result, executeSql); +// log.info("[----SQL----][select][执行结果:{}][ SQL: {} ]",result, executeSql); } return rs; } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/bsrealstorattr/controller/StIvtBsrealstorattrController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/bsrealstorattr/controller/StIvtBsrealstorattrController.java index 4e98cc2a..6ed6da6d 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/bsrealstorattr/controller/StIvtBsrealstorattrController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/bsrealstorattr/controller/StIvtBsrealstorattrController.java @@ -4,6 +4,7 @@ package org.nl.wms.base_manage.bsrealstorattr.controller; import cn.dev33.satoken.annotation.SaIgnore; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; +import com.google.common.collect.Lists; import org.nl.common.domain.entity.PageQuery; import org.nl.common.utils.IdUtil; import org.nl.wms.base_manage.bsrealstorattr.service.IStIvtBsrealstorattrService; @@ -20,7 +21,10 @@ import org.springframework.web.bind.annotation.*; import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.function.Function; /** *

@@ -101,7 +105,7 @@ public class StIvtBsrealstorattrController { attr.setStor_code(stor_code); String ny = (y < 10) ? "0" + y : "" + y; String nz = (z < 10) ? "0" + z : "" + z; - attr.setStruct_code("T0"+x+"-"+ny+"-"+nz); + attr.setStruct_code("L0"+x+"-"+ny+"-"+nz); attr.setStruct_name(x+"排"+y+"列"+z+"层"); attr.setCreate_id("1"); attr.setRow_num(x); @@ -112,11 +116,17 @@ public class StIvtBsrealstorattrController { attr.setCreate_name("Admin"); attr.setIs_temp(false); attr.setIs_used(true); + System.out.println(attr.toString()); list.add(attr); } } } - iStIvtStructattrService.saveBatch(list); + Lists.partition(list,1000).stream().map((Function, CompletableFuture>) o->CompletableFuture.runAsync(() -> { + for (StIvtStructattr stIvtStructattr : o) { + iStIvtStructattrService.save(stIvtStructattr); + } + })).parallel().forEach(CompletableFuture::join); + return new ResponseEntity<>(HttpStatus.OK); } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/Decisioner.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/Decisioner.java index 8971bf32..70166373 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/Decisioner.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/Decisioner.java @@ -2,12 +2,14 @@ package org.nl.wms.decision_manage.handler.decisioner; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.nl.common.domain.exception.BadRequestException; import org.nl.common.utils.SpringContextHolder; import org.nl.wms.decision_manage.service.IStStrategyConfigService; import org.nl.wms.decision_manage.service.dao.StStrategyConfig; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.ResolvableType; +import org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -28,6 +30,9 @@ public abstract class Decisioner implements InitializingBean { public void afterPropertiesSet(){ String type = SpringContextHolder.getApplicationContext().getBeanNamesForType(ResolvableType.forClass(this.getClass()))[0]; this.strategyConfig =iStStrategyConfigService.getOne(new QueryWrapper().eq("strategy_code",type)); + if (this.strategyConfig == null){ + throw new BadRequestException("启动失败:当前策略"+type+"没有实例信息"); + } } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/base/NearbyRuleHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/base/NearbyRuleHandler.java index 9df07701..5a13e5bd 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/base/NearbyRuleHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/base/NearbyRuleHandler.java @@ -22,7 +22,6 @@ import java.util.List; @Service("nearby") public class NearbyRuleHandler extends Decisioner { //每个策略的配置信息 - private static StStrategyConfig stStrategyConfig; /** * 出入库明细服务 */ diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/ToPickPlatformTask.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/ToPickPlatformTask.java new file mode 100644 index 00000000..803f116a --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/ToPickPlatformTask.java @@ -0,0 +1,106 @@ +package org.nl.wms.dispatch_manage.task.handler.impl; + +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import org.apache.commons.lang3.StringUtils; +import org.nl.common.domain.constant.DictConstantPool; +import org.nl.common.domain.exception.BadRequestException; +import org.nl.common.enums.StatusEnum; +import org.nl.common.utils.CodeUtil; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.dispatch_manage.task.handler.AbstractTask; +import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService; +import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask; +import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService; +import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater; +import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService; +import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr; +import org.nl.wms.system_manage.service.param.ISysParamService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.stream.Collectors; + +/* + * @author ZZQ + * @Date 2024/5/6 14:34 + * 出库任务入库任务 + */ +@Service +public class ToPickPlatformTask extends AbstractTask { + + @Autowired + private ISchBaseTaskService taskService; + @Autowired + private ISysParamService iSysParamService; + + @Autowired + private IStIvtStructattrService iStIvtStructattrService; + @Autowired + private IMdPbVehicleMaterService iMdPbVehicleMaterService; + + @Override + @Transactional + public JSONObject createTask(JSONObject from) { + String vehicle_code = from.getString("vehicle_code"); + String target_point = from.getString("target_point"); + //通过全局变量获取目标位置 + if (StringUtils.isEmpty(vehicle_code) ||StringUtils.isEmpty(target_point)){ + throw new BadRequestException("创建任务失败:方法请求参数不能为空"); + } + List list = taskService.list(new QueryWrapper().eq("vehicle_code", vehicle_code) + .ne("status", StatusEnum.FORM_STATUS.code("完成"))); + if (!CollectionUtils.isEmpty(list)){ + throw new BadRequestException("当前载具存在任务:"+list.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(","))); + } + StIvtStructattr struct = iStIvtStructattrService.getOne(new QueryWrapper().eq("vehicle_code", vehicle_code)); + + SchBaseTask task = new SchBaseTask(); + task.setId(IdUtil.getStringId()); + task.setTask_code(CodeUtil.getNewCode("TASK_CODE")); + task.setStatus(StatusEnum.FORM_STATUS.code("生成")); + task.setHandle_class(this.getClass().getName()); + task.setAcs_type(StatusEnum.ACS_TYPE.code("立库")); + task.setCreate_time(DateUtil.now()); + task.setCreate_name(SecurityUtils.getCurrentNickName()); + task.setTask_type(from.getString("task_type")); + task.setVehicle_code(vehicle_code); + task.setPoint_code1(struct.getStruct_code()); + task.setPoint_code2(target_point); + taskService.save(task); + iMdPbVehicleMaterService.update(new LambdaUpdateWrapper() + .set(MdPbVehicleMater::getTask_code,task.getTask_code()) + .eq(MdPbVehicleMater::getVehicle_code,task.getVehicle_code())); + //TODO:是否下发 + Boolean isSend = from.getBoolean("is_send"); + if (isSend){ + //参数封装,调acs接口 + } + return (JSONObject)JSON.toJSON(task); + } + + @Override + @Transactional + public void updateStatus(JSONObject data) { + this.updateTask(data); + } + + @Override + public void finish(JSONObject data) { + this.updateTask(data); + SchBaseTask schBaseTask = taskService.getOne(new QueryWrapper().eq("task_code", data.getString("task_code"))); + iStIvtStructattrService.changeStruct(schBaseTask.getPoint_code1(),schBaseTask.getVehicle_code(),schBaseTask.getTask_type(), null,Boolean.FALSE); + } + + @Override + public void cancel(JSONObject data) { + this.updateTask(data); + } +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/TaskScheduleService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/TaskScheduleService.java index 742f691b..f15f63b2 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/TaskScheduleService.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/TaskScheduleService.java @@ -6,7 +6,6 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; -import com.baomidou.mybatisplus.extension.conditions.update.UpdateChainWrapper; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @@ -14,7 +13,6 @@ import org.nl.common.TableDataInfo; import org.nl.common.enums.StatusEnum; import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask; import org.nl.wms.external_system.acs.service.WmsToAcsService; -import org.slf4j.MDC; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -35,7 +33,7 @@ public class TaskScheduleService { private ReentrantLock lock = new ReentrantLock(); @Autowired - private ISchBaseTaskService taskService; + private ISchBaseTaskService iSchBaseTaskService; @Autowired private WmsToAcsService wmsToAcsService; @@ -46,22 +44,29 @@ public class TaskScheduleService { try { if (islock){ //查询所有自动下发的任务 - List list = taskService.list(new QueryWrapper().eq("is_send", true) + List list = iSchBaseTaskService.list(new QueryWrapper().eq("is_send", true) .eq("status", StatusEnum.FORM_STATUS.code("生成"))); if (!CollectionUtils.isEmpty(list)){ + List taskCodes = list.stream().map(SchBaseTask::getTask_code).collect(Collectors.toList()); TableDataInfo response = wmsToAcsService.interationToExt(list, "createTask"); - if (response.getCode().equals(String.valueOf(HttpStatus.HTTP_BAD_REQUEST))){ + if (!response.getCode().equals(String.valueOf(HttpStatus.HTTP_OK))){ JSONArray results = (JSONArray)JSON.toJSON(response.getData()); if (!CollectionUtils.isEmpty(results)){ for (Object result : results) { Map resultM = (Map) result; - taskService.update(new UpdateWrapper() + taskCodes.remove(resultM.get("task_code")); + iSchBaseTaskService.update(new UpdateWrapper() .eq("task_code",resultM.get("task_code")) .set("status",StatusEnum.FORM_STATUS.code("暂停")) .set("update_time", DateUtil.now()).set("remark",resultM.get("error"))); } } } + if (!CollectionUtils.isEmpty(taskCodes)){ + iSchBaseTaskService.update(new UpdateWrapper() + .set("status",StatusEnum.FORM_STATUS.code("下发")) + .in("task_code",taskCodes)); + } } } }finally { diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/controller/execution/ExecutionController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/controller/execution/ExecutionController.java index 30978a0f..fe182310 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/controller/execution/ExecutionController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/controller/execution/ExecutionController.java @@ -103,7 +103,7 @@ public class ExecutionController { @GetMapping(value = "/confirm/{proc_inst_id}") public ResponseEntity flowConfirm(@PathVariable String proc_inst_id) { - return new ResponseEntity<>(flowOperationService.flowConfirm(proc_inst_id, null, null), HttpStatus.OK); + return new ResponseEntity<>(flowOperationService.flowConfirm(proc_inst_id, null, null, null), HttpStatus.OK); } @GetMapping(value = "/queryByParentId/{id}") diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/FlowNodeActivityBehavior.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/FlowNodeActivityBehavior.java index 27c88e6e..4b1088a9 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/FlowNodeActivityBehavior.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/FlowNodeActivityBehavior.java @@ -109,7 +109,9 @@ public abstract class FlowNodeActivityBehavior { } } if (flowElement instanceof SequenceFlow){ - CommandExecutor.getAgenda().planOperation(new SequenceFlowOperation(entity)); + if (((SequenceFlow)flowElement).getPassNode()){ + CommandExecutor.getAgenda().planOperation(new SequenceFlowOperation(entity)); + } } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/impl/GateWayActivityBehavior.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/impl/GateWayActivityBehavior.java index 9468a749..27202c0c 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/impl/GateWayActivityBehavior.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/impl/GateWayActivityBehavior.java @@ -3,6 +3,7 @@ package org.nl.wms.flow_manage.flow.framework.engine.behavior.impl; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang3.StringUtils; import org.nl.common.domain.exception.BadRequestException; import org.nl.common.utils.ListOf; import org.nl.common.utils.MapOf; @@ -37,9 +38,14 @@ public class GateWayActivityBehavior extends FlowNodeActivityBehavior ((JSONObject) o).getJSONObject("t").getString("vehicle_code"))); + String vehicle_code = ((JSONObject) o).getJSONObject("t").getString("vehicle_code"); + subEntity.setCallback(entity.getCallback().andThen(() -> vehicle_code)); } subEntity.setT(o); //在endEvent中有个所有子流程结束的判断:如果判断成功会触发父流程:startEvent暂时通过等待处理防止自动流程导致endEvent判断出错 diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/entity/node/base/impl/FlowElement.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/entity/node/base/impl/FlowElement.java index fc7b673e..51b1fc4d 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/entity/node/base/impl/FlowElement.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/entity/node/base/impl/FlowElement.java @@ -24,6 +24,7 @@ public abstract class FlowElement extends BaseElement { protected String type; protected String name; protected String documentation; + /** * 是否自动触发下个节点 */ diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/entity/node/impl/Sequence/SequenceFlow.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/entity/node/impl/Sequence/SequenceFlow.java index 72a3eab0..2ce54452 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/entity/node/impl/Sequence/SequenceFlow.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/entity/node/impl/Sequence/SequenceFlow.java @@ -29,6 +29,9 @@ public class SequenceFlow extends FlowElement { protected FlowNode targetFlowElement; + protected Boolean passNode = Boolean.TRUE; + + /** * Graphical information: a list of waypoints: x1, y1, x2, y2, x3, y3, .. * diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/execution/IFlowOperationService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/execution/IFlowOperationService.java index 958972b9..4d9de792 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/execution/IFlowOperationService.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/execution/IFlowOperationService.java @@ -5,9 +5,6 @@ import com.alibaba.fastjson.JSONObject; import org.nl.common.function.PermeateFunction; import org.nl.wms.flow_manage.flow.framework.entity.ExecutionDto; -import java.util.function.BiConsumer; -import java.util.function.Consumer; - /** * @program: flow * @description: 表单流程操作类 @@ -19,5 +16,5 @@ public interface IFlowOperationService { String startUp(String model_key, PermeateFunction callback, ExecutionDto dto, JSONObject auxParam); - Boolean flowConfirm(String proc_inst_id,JSONObject auxParam,ExecutionDto dto); + Boolean flowConfirm(String proc_inst_id,PermeateFunction callback,JSONObject auxParam,ExecutionDto dto); } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/execution/impl/FlowOperationServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/execution/impl/FlowOperationServiceImpl.java index 47d59bda..05581b82 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/execution/impl/FlowOperationServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/service/execution/impl/FlowOperationServiceImpl.java @@ -27,8 +27,6 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.List; -import java.util.function.BiConsumer; -import java.util.function.Consumer; /* * @author ZZQ @@ -83,7 +81,7 @@ public class FlowOperationServiceImpl implements IFlowOperationService { @Override - public Boolean flowConfirm(String proc_inst_id, JSONObject auxParam, ExecutionDto dto) { + public Boolean flowConfirm(String proc_inst_id, PermeateFunction callback, JSONObject auxParam, ExecutionDto dto) { if (StringUtils.isNotEmpty(proc_inst_id)){ //当前流程 ActRuExecution execution = iActRuExecutionService.getOne(new QueryWrapper() @@ -111,6 +109,7 @@ public class FlowOperationServiceImpl implements IFlowOperationService { FlowNode flowNode = bpmnModel.getProcesses().get(execution.getActivity_id()); ExecutionEntity entity = new ExecutionEntity(); entity.setCurrentFlowElement(flowNode); + entity.setCallback(callback); entity.setProc_inst_id(execution.getProc_inst_id()); entity.setParent_id(execution.getParent_id()); entity.setAuxParam(execution.getAux_param()); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/monitor/FlowContinueEventListener.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/monitor/FlowContinueEventListener.java index 7eca410c..e098389c 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/monitor/FlowContinueEventListener.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/monitor/FlowContinueEventListener.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import org.nl.common.publish.AbstraceListener; import org.nl.wms.flow_manage.flow.service.execution.IFlowOperationService; import org.nl.wms.flow_manage.monitor.event.FlowContinueEvent; -import org.nl.wms.flow_manage.monitor.event.FlowStartEvent; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -24,7 +23,7 @@ public class FlowContinueEventListener extends AbstraceListener().in("vehicle_code", vehicleCodes)); if (mCode>0){ - throw new BadRequestException("当前载具以存在载具物料信息"); + throw new BadRequestException("当前载具"+vehicleCodes.toString()+"以存在载具物料信息"); } String now = DateUtil.now(); String user = SecurityUtils.getCurrentNickName(); @@ -131,8 +132,9 @@ public class PickingService { dto.setSource_form_id(mst.getSource_form_id()); dto.setT(mstJ); dto.setItem(packageT(mstJ,"id")); - - FlowContinueEvent continueEvent = new FlowContinueEvent(mst.getProc_inst_id(), null,null) + //只有透传才有vehicle_code参数否则只有inst_id + FlowContinueEvent continueEvent = new FlowContinueEvent(mst.getProc_inst_id(), (PermeateFunction) (inst_id, vehicle_code) -> iMdPbVehicleMaterService.update(new UpdateWrapper() + .set("proc_inst_id",inst_id).eq("vehicle_code",vehicle_code)), null) .setDto(dto); continueEvent.setCallback(emp->{ iFormDataService.update(new UpdateWrapper() diff --git a/wms_pro/hd/nladmin-system/src/main/resources/config/application-dev3.yml b/wms_pro/hd/nladmin-system/src/main/resources/config/application-dev3.yml index ffb5d076..8e7dffbe 100644 --- a/wms_pro/hd/nladmin-system/src/main/resources/config/application-dev3.yml +++ b/wms_pro/hd/nladmin-system/src/main/resources/config/application-dev3.yml @@ -1,6 +1,11 @@ server: port: 8012 max-http-header-size: 65536 + tomcat: + accept-count: 300 + threads: + max: 300 + min-spare: 30 #配置数据源 spring: datasource: @@ -8,6 +13,7 @@ spring: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver url: jdbc:mysql://${DB_HOST:192.168.81.251}:${DB_PORT:3306}/${DB_NAME:wms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false +# url: jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:wms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false username: ${DB_USER:root} password: ${DB_PWD:123456} @@ -20,7 +26,7 @@ spring: # 是否自动回收超时连接 remove-abandoned: true # 超时时间(以秒数为单位) - remove-abandoned-timeout: 180 + remove-abandoned-timeout: 10 # 获取连接超时时间 max-wait: 9000 # 连接有效性检测时间 diff --git a/wms_pro/qd/src/views/wms/base_manage/sect/index.vue b/wms_pro/qd/src/views/wms/base_manage/sect/index.vue index 42f2c000..2da8f89c 100644 --- a/wms_pro/qd/src/views/wms/base_manage/sect/index.vue +++ b/wms_pro/qd/src/views/wms/base_manage/sect/index.vue @@ -12,7 +12,7 @@ > @@ -71,17 +71,17 @@ - + @@ -231,7 +231,7 @@ const defaultForm = { export default { name: 'Sectattr', dicts: ['st_sect_type', 'is_used'], - tableEnums: [ 'st_ivt_bsrealstorattr#stor_name#id' ], + tableEnums: [ 'st_ivt_bsrealstorattr#stor_name#stor_code' ], components: { pagination, crudOperation, rrOperation, udOperation }, mixins: [presenter(), header(), form(defaultForm), crud()], cruds() { diff --git a/wms_pro/qd/src/views/wms/base_manage/struct/index.vue b/wms_pro/qd/src/views/wms/base_manage/struct/index.vue index cb5a2191..b9780975 100644 --- a/wms_pro/qd/src/views/wms/base_manage/struct/index.vue +++ b/wms_pro/qd/src/views/wms/base_manage/struct/index.vue @@ -11,7 +11,7 @@ > - + diff --git a/wms_pro/qd/src/views/wms/stor_manage/warehouse/pick/TaskDialog.vue b/wms_pro/qd/src/views/wms/stor_manage/warehouse/pick/TaskDialog.vue index 5cba333d..4fd46e80 100644 --- a/wms_pro/qd/src/views/wms/stor_manage/warehouse/pick/TaskDialog.vue +++ b/wms_pro/qd/src/views/wms/stor_manage/warehouse/pick/TaskDialog.vue @@ -191,7 +191,7 @@