add:手持海柔出入库顺序表
This commit is contained in:
@@ -80,7 +80,6 @@ public enum AcsTaskEnum {
|
|||||||
///api/dict/dictDetail/api/dict/dictDetail/api/dict/dictDetail
|
///api/dict/dictDetail/api/dict/dictDetail/api/dict/dictDetail
|
||||||
AGV_SYSTEM_NB("1","诺宝机器人任务"),
|
AGV_SYSTEM_NB("1","诺宝机器人任务"),
|
||||||
AGV_SYSTEM_XC("2","叉车任务"),
|
AGV_SYSTEM_XC("2","叉车任务"),
|
||||||
AGV_SYSTEM_HR("3","海柔任务任务"),
|
|
||||||
|
|
||||||
ACS_TASK_TYPE_NOBLE_DOUBLE_TASK("1","诺宝双工任务"),
|
ACS_TASK_TYPE_NOBLE_DOUBLE_TASK("1","诺宝双工任务"),
|
||||||
ACS_TASK_TYPE_NOBLE_SINGLE_TASK("2","诺宝单工任务"),
|
ACS_TASK_TYPE_NOBLE_SINGLE_TASK("2","诺宝单工任务"),
|
||||||
|
|||||||
@@ -7,32 +7,20 @@ package org.nl.common.lucene;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import ch.qos.logback.classic.spi.ILoggingEvent;
|
import ch.qos.logback.classic.spi.ILoggingEvent;
|
||||||
import ch.qos.logback.classic.spi.LoggingEvent;
|
|
||||||
import ch.qos.logback.core.AppenderBase;
|
|
||||||
import com.alibaba.ttl.TransmittableThreadLocal;
|
|
||||||
import com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender;
|
import com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.lucene.analysis.Analyzer;
|
import org.nl.common.lucene.netty.RemoteLogServer;
|
||||||
import org.apache.lucene.document.*;
|
|
||||||
import org.apache.lucene.index.IndexWriter;
|
|
||||||
import org.apache.lucene.index.IndexWriterConfig;
|
|
||||||
import org.apache.lucene.store.Directory;
|
|
||||||
import org.apache.lucene.store.FSDirectory;
|
|
||||||
import org.nl.common.domain.Property;
|
|
||||||
import org.nl.common.utils.YmlConfigFileUtil;
|
|
||||||
import org.slf4j.MDC;
|
import org.slf4j.MDC;
|
||||||
import org.wltea.analyzer.lucene.IKAnalyzer;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.nio.file.Paths;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Properties;
|
|
||||||
|
|
||||||
public class AsyncLuceneAppender extends AspectLogbackAsyncAppender {
|
public class AsyncLuceneAppender extends AspectLogbackAsyncAppender {
|
||||||
|
|
||||||
|
|
||||||
|
public AsyncLuceneAppender() {
|
||||||
|
RemoteLogServer.asyncLuceneAppender = this;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void append(ILoggingEvent event) {
|
protected void append(ILoggingEvent event) {
|
||||||
String traceId = LuceneAppender.traceIdTL.get();
|
String traceId = LuceneAppender.traceIdTL.get();
|
||||||
@@ -44,6 +32,9 @@ public class AsyncLuceneAppender extends AspectLogbackAsyncAppender {
|
|||||||
}
|
}
|
||||||
MDC.clear();
|
MDC.clear();
|
||||||
}
|
}
|
||||||
|
RemoteLogServer.writeLog(event);
|
||||||
|
}
|
||||||
|
public void appendSync(ILoggingEvent event){
|
||||||
super.append(event);
|
super.append(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
package org.nl.common.lucene.netty;
|
||||||
|
|
||||||
|
import io.netty.bootstrap.AbstractBootstrap;
|
||||||
|
import io.netty.channel.Channel;
|
||||||
|
|
||||||
|
import java.net.SocketAddress;
|
||||||
|
import java.util.concurrent.locks.Lock;
|
||||||
|
import java.util.concurrent.locks.ReentrantLock;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @author ZZQ
|
||||||
|
* @Date 2024/1/22 10:01
|
||||||
|
*/
|
||||||
|
public abstract class AbstraceServer {
|
||||||
|
|
||||||
|
|
||||||
|
public AbstraceServer(SocketAddress address) {
|
||||||
|
this.address = address;
|
||||||
|
if (channel!=null){
|
||||||
|
channel.close();
|
||||||
|
}
|
||||||
|
doOpen();
|
||||||
|
doConnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
public AbstractBootstrap server;
|
||||||
|
public SocketAddress address;
|
||||||
|
public Channel channel;
|
||||||
|
|
||||||
|
private final Lock connectLock = new ReentrantLock();
|
||||||
|
|
||||||
|
public abstract void doOpen();
|
||||||
|
|
||||||
|
public void doClose(){
|
||||||
|
if (channel!=null){
|
||||||
|
channel.close();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
public abstract void doConnect();
|
||||||
|
|
||||||
|
public void doDisConnect() throws Throwable{
|
||||||
|
channel.close();
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,100 @@
|
|||||||
|
package org.nl.common.lucene.netty;
|
||||||
|
|
||||||
|
import ch.qos.logback.classic.spi.ILoggingEvent;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import io.netty.buffer.ByteBuf;
|
||||||
|
import io.netty.buffer.Unpooled;
|
||||||
|
import io.netty.util.CharsetUtil;
|
||||||
|
import lombok.SneakyThrows;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.nl.common.lucene.AsyncLuceneAppender;
|
||||||
|
import org.nl.common.lucene.netty.AbstraceServer;
|
||||||
|
import org.nl.common.lucene.netty.impl.ClientServer;
|
||||||
|
import org.nl.common.lucene.netty.impl.RemoteServer;
|
||||||
|
import org.nl.common.utils.MapOf;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.SmartLifecycle;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.net.Inet4Address;
|
||||||
|
import java.net.InetAddress;
|
||||||
|
import java.net.InetSocketAddress;
|
||||||
|
import java.net.SocketAddress;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @author ZZQ
|
||||||
|
* @Date 2024/1/22 09:06
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class RemoteLogServer implements SmartLifecycle {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private StringRedisTemplate redisTemplate;
|
||||||
|
|
||||||
|
public static volatile Boolean LOCAL_LOG = Boolean.TRUE;
|
||||||
|
|
||||||
|
private Integer port = 20888;
|
||||||
|
|
||||||
|
public static AbstraceServer server;
|
||||||
|
|
||||||
|
public static AsyncLuceneAppender asyncLuceneAppender;
|
||||||
|
|
||||||
|
public static void writeLog(ILoggingEvent event){
|
||||||
|
if (LOCAL_LOG){
|
||||||
|
asyncLuceneAppender.appendSync(event);
|
||||||
|
}else {
|
||||||
|
ByteBuf log = Unpooled.copiedBuffer(JSON.toJSONString(event), CharsetUtil.UTF_8);
|
||||||
|
server.channel.writeAndFlush(log);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
@SneakyThrows
|
||||||
|
@Override
|
||||||
|
public void start() {
|
||||||
|
try {
|
||||||
|
String provider = redisTemplate.opsForValue().get("providers");
|
||||||
|
if (StringUtils.isEmpty(provider)){
|
||||||
|
String ip = Inet4Address.getLocalHost().getHostAddress();
|
||||||
|
Map<String,Object> config = MapOf.of("ip", ip, "port", port);
|
||||||
|
redisTemplate.opsForValue().set("provider", JSON.toJSONString(config));
|
||||||
|
Runtime.getRuntime().addShutdownHook(new Thread(() ->{
|
||||||
|
System.out.println("------服务关闭-升级从变主-------");
|
||||||
|
server.doClose();
|
||||||
|
redisTemplate.delete("providers");
|
||||||
|
try {
|
||||||
|
Thread.sleep(5000);
|
||||||
|
}catch (Exception ex){}
|
||||||
|
}));
|
||||||
|
server = new RemoteServer(new InetSocketAddress(ip, port));
|
||||||
|
LOCAL_LOG =Boolean.TRUE;
|
||||||
|
}else {
|
||||||
|
Map<String,String> map = JSONObject.parseObject(provider, HashMap.class);
|
||||||
|
String ip = map.get("ip");
|
||||||
|
Integer port = Integer.valueOf(map.get("port"));
|
||||||
|
server = new ClientServer(new InetSocketAddress(ip, port));
|
||||||
|
LOCAL_LOG = Boolean.FALSE;
|
||||||
|
}
|
||||||
|
}catch (Exception ex){
|
||||||
|
ex.printStackTrace();
|
||||||
|
throw ex;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void stop() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isRunning() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
package org.nl.common.lucene.netty.coder;
|
||||||
|
|
||||||
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
|
import io.netty.channel.ChannelInboundHandlerAdapter;
|
||||||
|
import io.netty.handler.timeout.IdleStateEvent;
|
||||||
|
import org.nl.common.lucene.netty.RemoteLogServer;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @author ZZQ
|
||||||
|
* @Date 2024/1/22 10:24
|
||||||
|
*/
|
||||||
|
public class LogConsumerHandler extends ChannelInboundHandlerAdapter {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void channelInactive(ChannelHandlerContext ctx) throws Exception {
|
||||||
|
System.out.println("断开连接---");
|
||||||
|
RemoteLogServer.LOCAL_LOG = Boolean.TRUE;
|
||||||
|
RemoteLogServer.server.doClose();
|
||||||
|
//重新建立
|
||||||
|
super.channelInactive(ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void channelActive(ChannelHandlerContext ctx) throws Exception {
|
||||||
|
System.out.println("连接");
|
||||||
|
super.channelActive(ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
|
||||||
|
System.out.println("接收到消息");
|
||||||
|
super.channelRead(ctx, msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
|
||||||
|
if (evt instanceof IdleStateEvent){
|
||||||
|
IdleStateEvent stateEvent = (IdleStateEvent) evt;
|
||||||
|
System.out.println(stateEvent.state());
|
||||||
|
}
|
||||||
|
super.userEventTriggered(ctx, evt);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package org.nl.common.lucene.netty.coder;
|
||||||
|
|
||||||
|
import ch.qos.logback.classic.spi.LoggingEvent;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
|
import io.netty.channel.SimpleChannelInboundHandler;
|
||||||
|
import org.nl.common.lucene.netty.RemoteLogServer;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @author ZZQ
|
||||||
|
* @Date 2024/1/22 10:24
|
||||||
|
*/
|
||||||
|
public class LogProviderHandler extends SimpleChannelInboundHandler<String> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void channelInactive(ChannelHandlerContext ctx) throws Exception {
|
||||||
|
System.out.println("断开连接---");
|
||||||
|
super.channelInactive(ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void channelRead0(ChannelHandlerContext ctx, String c){
|
||||||
|
LoggingEvent event = JSONObject.parseObject(c, LoggingEvent.class);
|
||||||
|
RemoteLogServer.asyncLuceneAppender.appendSync(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void channelActive(ChannelHandlerContext ctx) throws Exception {
|
||||||
|
System.out.println("创建了连接----");
|
||||||
|
super.channelActive(ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
package org.nl.common.lucene.netty.impl;
|
||||||
|
|
||||||
|
import io.netty.bootstrap.Bootstrap;
|
||||||
|
import io.netty.buffer.PooledByteBufAllocator;
|
||||||
|
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.LengthFieldPrepender;
|
||||||
|
import io.netty.handler.timeout.IdleStateHandler;
|
||||||
|
import io.netty.util.concurrent.Future;
|
||||||
|
import org.nl.common.lucene.netty.AbstraceServer;
|
||||||
|
import org.nl.common.lucene.netty.coder.LogConsumerHandler;
|
||||||
|
|
||||||
|
import java.net.SocketAddress;
|
||||||
|
|
||||||
|
import static java.util.concurrent.TimeUnit.MILLISECONDS;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @author ZZQ
|
||||||
|
* @Date 2024/1/22 10:01
|
||||||
|
*/
|
||||||
|
public class ClientServer extends AbstraceServer {
|
||||||
|
|
||||||
|
private static EventLoopGroup group = new NioEventLoopGroup();
|
||||||
|
|
||||||
|
public ClientServer(SocketAddress address) {
|
||||||
|
super(address);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 非阻塞IO线程组
|
||||||
|
@Override
|
||||||
|
public void doOpen() {
|
||||||
|
server = new Bootstrap();
|
||||||
|
server.group(group)
|
||||||
|
.option(ChannelOption.SO_KEEPALIVE, true)
|
||||||
|
.option(ChannelOption.TCP_NODELAY, true)
|
||||||
|
.option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT)
|
||||||
|
.channel(NioSocketChannel.class);
|
||||||
|
|
||||||
|
server.handler(new ChannelInitializer<SocketChannel>() {
|
||||||
|
@Override
|
||||||
|
protected void initChannel(SocketChannel ch) throws Exception {
|
||||||
|
ch.pipeline()
|
||||||
|
.addLast("client-idle-handler", new IdleStateHandler(500, 0,0 , MILLISECONDS))
|
||||||
|
.addLast(new LengthFieldPrepender(2))
|
||||||
|
.addLast( new LogConsumerHandler());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
package org.nl.common.lucene.netty.impl;
|
||||||
|
|
||||||
|
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.handler.codec.LengthFieldBasedFrameDecoder;
|
||||||
|
import io.netty.handler.codec.LengthFieldPrepender;
|
||||||
|
import io.netty.handler.codec.string.StringDecoder;
|
||||||
|
import io.netty.handler.timeout.IdleStateHandler;
|
||||||
|
import io.netty.util.concurrent.Future;
|
||||||
|
import org.nl.common.lucene.netty.AbstraceServer;
|
||||||
|
import org.nl.common.lucene.netty.coder.LogProviderHandler;
|
||||||
|
|
||||||
|
import java.net.SocketAddress;
|
||||||
|
|
||||||
|
import static java.util.concurrent.TimeUnit.MILLISECONDS;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @author ZZQ
|
||||||
|
* @Date 2024/1/22 10:01
|
||||||
|
*/
|
||||||
|
public class RemoteServer extends AbstraceServer {
|
||||||
|
|
||||||
|
private static EventLoopGroup boss = new NioEventLoopGroup();
|
||||||
|
private static EventLoopGroup worker = new NioEventLoopGroup();
|
||||||
|
|
||||||
|
public RemoteServer(SocketAddress address) {
|
||||||
|
super(address);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 非阻塞IO线程组
|
||||||
|
@Override
|
||||||
|
public void doOpen() {
|
||||||
|
ServerBootstrap bootstrap = new ServerBootstrap();
|
||||||
|
bootstrap
|
||||||
|
.group(boss, worker)
|
||||||
|
.channel(NioServerSocketChannel.class)
|
||||||
|
.option(ChannelOption.SO_REUSEADDR, Boolean.TRUE)
|
||||||
|
.childOption(ChannelOption.TCP_NODELAY, Boolean.TRUE)
|
||||||
|
.childOption(ChannelOption.SO_KEEPALIVE, Boolean.TRUE)
|
||||||
|
.childOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT)
|
||||||
|
.childHandler(new ChannelInitializer<SocketChannel>() {
|
||||||
|
@Override
|
||||||
|
protected void initChannel(SocketChannel ch) throws Exception {
|
||||||
|
ch.pipeline()
|
||||||
|
.addLast("client-idle-handler", new IdleStateHandler(500, 0, 0, MILLISECONDS))
|
||||||
|
.addLast(new LengthFieldBasedFrameDecoder(8089, 0, 2, 0, 2))
|
||||||
|
.addLast(new LengthFieldPrepender(2))
|
||||||
|
.addLast("encode",new StringDecoder())
|
||||||
|
.addLast(new LogProviderHandler());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -6,7 +6,6 @@ import cn.hutool.http.HttpRequest;
|
|||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.nl.common.enums.StatusEnum;
|
import org.nl.common.enums.StatusEnum;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.modules.wql.core.bean.WQLObject;
|
import org.nl.modules.wql.core.bean.WQLObject;
|
||||||
@@ -37,14 +36,7 @@ public class AcsUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//ACS地址:127.0.0.1:8010
|
//ACS地址:127.0.0.1:8010
|
||||||
String acsUrlCode = "acs_url";
|
String acsUrl = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("acs_url").getValue();
|
||||||
if (list.size()>0){
|
|
||||||
String acs = list.getJSONObject(0).getString("acs");
|
|
||||||
if (StringUtils.isNotEmpty(acs)){
|
|
||||||
acsUrlCode=acs;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
String acsUrl = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(acsUrlCode).getValue();
|
|
||||||
|
|
||||||
String url = acsUrl + api;
|
String url = acsUrl + api;
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -39,13 +39,14 @@ public class DruidFilter extends FilterEventAdapter {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void statementExecuteAfter(StatementProxy statement, String sql, boolean result) {
|
protected void statementExecuteAfter(StatementProxy statement, String sql, boolean result) {
|
||||||
|
String traceId = MDC.get("traceId");
|
||||||
int size = statement.getParametersSize();
|
int size = statement.getParametersSize();
|
||||||
String executeSql = sql;
|
String executeSql = sql;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
try {
|
try {
|
||||||
count=statement.getUpdateCount();
|
count=statement.getUpdateCount();
|
||||||
}catch (Exception ex){ }
|
}catch (Exception ex){ }
|
||||||
if (count>0) {
|
if (StringUtils.isNotBlank(traceId) && count>0) {
|
||||||
if (size > 0) {
|
if (size > 0) {
|
||||||
Collection<JdbcParameter> values = statement.getParameters().values();
|
Collection<JdbcParameter> values = statement.getParameters().values();
|
||||||
List<Object> params = new ArrayList<>();
|
List<Object> params = new ArrayList<>();
|
||||||
@@ -63,6 +64,7 @@ public class DruidFilter extends FilterEventAdapter {
|
|||||||
ResultSetProxy rs = super.statement_getResultSet(chain, statement);
|
ResultSetProxy rs = super.statement_getResultSet(chain, statement);
|
||||||
String executeSql = statement.getLastExecuteSql();
|
String executeSql = statement.getLastExecuteSql();
|
||||||
String traceId = MDC.get("traceId");
|
String traceId = MDC.get("traceId");
|
||||||
|
if (StringUtils.isNotBlank(traceId)){
|
||||||
int result = 0;
|
int result = 0;
|
||||||
if (rs != null) {
|
if (rs != null) {
|
||||||
ResultSetImpl rss = rs.getResultSetRaw().unwrap(ResultSetImpl.class);
|
ResultSetImpl rss = rs.getResultSetRaw().unwrap(ResultSetImpl.class);
|
||||||
@@ -82,6 +84,7 @@ public class DruidFilter extends FilterEventAdapter {
|
|||||||
log.warn("[-SQL解析异常-][{}]",ex.getMessage());
|
log.warn("[-SQL解析异常-][{}]",ex.getMessage());
|
||||||
}
|
}
|
||||||
log.info("[----SQL----][select][执行结果:{}][ SQL: {} ]",result, executeSql);
|
log.info("[----SQL----][select][执行结果:{}][ SQL: {} ]",result, executeSql);
|
||||||
|
}
|
||||||
return rs;
|
return rs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -406,7 +406,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{
|
|||||||
// 调用入库分配规则
|
// 调用入库分配规则
|
||||||
StIvtSectattr sect = sectattrService.getOne(
|
StIvtSectattr sect = sectattrService.getOne(
|
||||||
new QueryWrapper<StIvtSectattr>().lambda()
|
new QueryWrapper<StIvtSectattr>().lambda()
|
||||||
.eq(StIvtSectattr::getSect_name, "三线半成品库区")
|
.eq(StIvtSectattr::getSect_name, "海柔半成品库区")
|
||||||
);
|
);
|
||||||
JSONObject jo = new JSONObject();
|
JSONObject jo = new JSONObject();
|
||||||
jo.put("sect_id", sect.getSect_id());
|
jo.put("sect_id", sect.getSect_id());
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import com.alibaba.fastjson.JSONObject;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nl.common.enums.AcsTaskEnum;
|
|
||||||
import org.nl.common.enums.StatusEnum;
|
import org.nl.common.enums.StatusEnum;
|
||||||
import org.nl.common.utils.AcsUtil;
|
import org.nl.common.utils.AcsUtil;
|
||||||
import org.nl.common.utils.IdUtil;
|
import org.nl.common.utils.IdUtil;
|
||||||
@@ -138,7 +137,6 @@ public class WmsToAcsServiceImpl implements WmsToAcsService{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> issueTaskToAcs4(JSONArray arr) {
|
public Map<String, Object> issueTaskToAcs4(JSONArray arr) {
|
||||||
String HR_TASK_TYPE = "18";
|
|
||||||
JSONArray form = new JSONArray();
|
JSONArray form = new JSONArray();
|
||||||
for (Object o : arr) {
|
for (Object o : arr) {
|
||||||
JSONObject task = (JSONObject) o;
|
JSONObject task = (JSONObject) o;
|
||||||
@@ -150,14 +148,13 @@ public class WmsToAcsServiceImpl implements WmsToAcsService{
|
|||||||
, "task_group_id", task.getString("task_group_id")
|
, "task_group_id", task.getString("task_group_id")
|
||||||
, "start_point_code", task.getString("point_code1")
|
, "start_point_code", task.getString("point_code1")
|
||||||
, "next_point_code", task.getString("point_code3")
|
, "next_point_code", task.getString("point_code3")
|
||||||
, "task_type", HR_TASK_TYPE
|
, "task_type", "18"
|
||||||
, "storage_task_type", task.getString("acs_task_type")
|
, "storage_task_type", task.getString("acs_task_type")
|
||||||
, "task_group_id", StringUtils.isBlank(task.getString("task_group_id"))? IdUtil.getStringId():task.getString("task_group_id")
|
, "task_group_id", StringUtils.isBlank(task.getString("task_group_id"))? IdUtil.getStringId():task.getString("task_group_id")
|
||||||
, "priority", task.getString("priority")
|
, "priority", task.getString("priority")
|
||||||
, "is_send", task.getBoolean("is_send")?"1":"0"
|
, "is_send", task.getBoolean("is_send")?"1":"0"
|
||||||
, "vehicle_code", task.getString("vehicle_code")
|
, "vehicle_code", task.getString("vehicle_code")
|
||||||
, "agv_system_type", AcsTaskEnum.AGV_SYSTEM_HR.getCode()
|
, "agv_system_type", task.getString("agv_system_type")
|
||||||
, "acs", "A3_acs_url"
|
|
||||||
));
|
));
|
||||||
form.add(param);
|
form.add(param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,9 +18,6 @@
|
|||||||
mater.material_name LIKE '%${query.material_code}%' or
|
mater.material_name LIKE '%${query.material_code}%' or
|
||||||
mater.material_spec LIKE '%${query.material_code}%')
|
mater.material_spec LIKE '%${query.material_code}%')
|
||||||
</if>
|
</if>
|
||||||
<if test="query.product_area != null and query.product_area != ''">
|
|
||||||
AND mater.product_area = #{query.product_area}
|
|
||||||
</if>
|
|
||||||
order by mater.material_code ASC
|
order by mater.material_code ASC
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
@@ -90,9 +90,6 @@ public class MdPbStoragevehicleinfoServiceImpl extends ServiceImpl<MdPbStorageve
|
|||||||
case "05":
|
case "05":
|
||||||
code = "VEHICCLE_CODE_LX";
|
code = "VEHICCLE_CODE_LX";
|
||||||
break;
|
break;
|
||||||
case "06":
|
|
||||||
code = "VEHICCLE_CODE_HR";
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
JSONArray resultCodeArr = new JSONArray();
|
JSONArray resultCodeArr = new JSONArray();
|
||||||
int num = MapUtil.getInt(map, "num");
|
int num = MapUtil.getInt(map, "num");
|
||||||
@@ -211,9 +208,6 @@ public class MdPbStoragevehicleinfoServiceImpl extends ServiceImpl<MdPbStorageve
|
|||||||
case "05":
|
case "05":
|
||||||
term = "VEHICCLE_CODE_LX";
|
term = "VEHICCLE_CODE_LX";
|
||||||
break;
|
break;
|
||||||
case "06":
|
|
||||||
term = "VEHICCLE_CODE_HR";
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HashMap<String, String> map = new HashMap<>();
|
HashMap<String, String> map = new HashMap<>();
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ import org.nl.common.utils.SecurityUtils;
|
|||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.modules.system.util.CodeUtil;
|
import org.nl.modules.system.util.CodeUtil;
|
||||||
import org.nl.modules.wql.util.SpringContextHolder;
|
import org.nl.modules.wql.util.SpringContextHolder;
|
||||||
import org.nl.wms.ext_manage.acs.service.WmsToAcsService;
|
|
||||||
import org.nl.wms.ext_manage.acs.service.impl.WmsToAcsServiceImpl;
|
import org.nl.wms.ext_manage.acs.service.impl.WmsToAcsServiceImpl;
|
||||||
import org.nl.wms.scheduler_manage.service.extendtask.manage.AbstractAcsTask;
|
import org.nl.wms.scheduler_manage.service.extendtask.manage.AbstractAcsTask;
|
||||||
import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum;
|
import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum;
|
||||||
@@ -167,14 +166,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
|||||||
}
|
}
|
||||||
JSONArray array = new JSONArray();
|
JSONArray array = new JSONArray();
|
||||||
array.add(JSON.toJSON(task));
|
array.add(JSON.toJSON(task));
|
||||||
Map<String, Object> result;
|
Map<String, Object> result = WmsToAcsServiceImpl.staticIssueTaskToAcs(array);
|
||||||
if (task.getProduct_area().equals("A3")){
|
|
||||||
WmsToAcsService bean = SpringContextHolder.getBean(WmsToAcsService.class);
|
|
||||||
result = bean.issueTaskToAcs4(array);
|
|
||||||
}else {
|
|
||||||
result = WmsToAcsServiceImpl.staticIssueTaskToAcs(array);
|
|
||||||
}
|
|
||||||
|
|
||||||
String status = String.valueOf(result.get("status"));
|
String status = String.valueOf(result.get("status"));
|
||||||
if (!status.equals("200")) {
|
if (!status.equals("200")) {
|
||||||
throw new BadRequestException(result.get("message") != null ? String.valueOf(result.get("message")) : "acs反馈异常");
|
throw new BadRequestException(result.get("message") != null ? String.valueOf(result.get("message")) : "acs反馈异常");
|
||||||
|
|||||||
@@ -1,69 +0,0 @@
|
|||||||
package org.nl.wms.storage_manage.pda.controller;
|
|
||||||
|
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaIgnore;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
||||||
import com.github.pagehelper.PageHelper;
|
|
||||||
import org.nl.common.TableDataInfo;
|
|
||||||
import org.nl.common.anno.Log;
|
|
||||||
import org.nl.common.domain.query.PageQuery;
|
|
||||||
import org.nl.wms.storage_manage.pda.service.PdaStHrBcpInService;
|
|
||||||
import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.IStIvtIostorinvOrderService;
|
|
||||||
import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dao.StIvtIostorinvOrder;
|
|
||||||
import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dto.HrBcpIostorOrderQuery;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.http.HttpStatus;
|
|
||||||
import org.springframework.http.ResponseEntity;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* 手持半成品出入库顺序 前端控制器
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author Liuxy
|
|
||||||
* @since 2023-08-30
|
|
||||||
*/
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("/api/pda/hrBcp/order")
|
|
||||||
public class PdaStHrBcpOrderController {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
protected IStIvtIostorinvOrderService iStIvtIostorinvOrderService; // 出入顺序服务
|
|
||||||
|
|
||||||
@GetMapping
|
|
||||||
@Log("获取出入库顺序表")
|
|
||||||
@SaIgnore
|
|
||||||
public ResponseEntity<Object> getMaterial(HrBcpIostorOrderQuery query, PageQuery page) {
|
|
||||||
Page<StIvtIostorinvOrder> result = iStIvtIostorinvOrderService.page(page.build(), query.build());
|
|
||||||
return new ResponseEntity<>(TableDataInfo.build(result), HttpStatus.OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@PostMapping
|
|
||||||
@Log("获取出入库顺序表")
|
|
||||||
@SaIgnore
|
|
||||||
public ResponseEntity<Object> getMaterial(@RequestBody StIvtIostorinvOrder order) {
|
|
||||||
if (order!=null){
|
|
||||||
iStIvtIostorinvOrderService.updateById(order);
|
|
||||||
}
|
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
@DeleteMapping
|
|
||||||
@Log("删除入库顺序表")
|
|
||||||
@SaIgnore
|
|
||||||
public ResponseEntity<Object> delete(@RequestBody Long[] ids){
|
|
||||||
if (ids!=null && ids.length>0){
|
|
||||||
iStIvtIostorinvOrderService.removeByIds(Arrays.asList(ids));
|
|
||||||
}
|
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -15,7 +15,6 @@ public class PdaQuery extends BaseQuery<StIvtShutframeinvBcp> {
|
|||||||
|
|
||||||
|
|
||||||
private String material_code;
|
private String material_code;
|
||||||
private String product_area;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void paramMapping() {
|
public void paramMapping() {
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ public class PdaStHrBcpEmpOutServiceImpl implements PdaStHrBcpEmpOutService {
|
|||||||
|
|
||||||
StIvtSectattr sect = sectattrService.getOne(
|
StIvtSectattr sect = sectattrService.getOne(
|
||||||
new QueryWrapper<StIvtSectattr>().lambda()
|
new QueryWrapper<StIvtSectattr>().lambda()
|
||||||
.eq(StIvtSectattr::getSect_name, "三线半成品库区")
|
.eq(StIvtSectattr::getSect_name, "海柔半成品库区")
|
||||||
);
|
);
|
||||||
|
|
||||||
List<StIvtStructattr> list = new ArrayList<>();
|
List<StIvtStructattr> list = new ArrayList<>();
|
||||||
|
|||||||
@@ -65,12 +65,10 @@ public class PdaStHrBcpInServiceImpl implements PdaStHrBcpInService {
|
|||||||
List<MdMeMaterialbase> list1 = iMdMeMaterialbaseService.list(
|
List<MdMeMaterialbase> list1 = iMdMeMaterialbaseService.list(
|
||||||
new QueryWrapper<MdMeMaterialbase>().lambda()
|
new QueryWrapper<MdMeMaterialbase>().lambda()
|
||||||
.eq(MdMeMaterialbase::getMaterial_type_id, "1528555445302726656")
|
.eq(MdMeMaterialbase::getMaterial_type_id, "1528555445302726656")
|
||||||
.eq(MdMeMaterialbase::getProduct_area, "A3")
|
|
||||||
);
|
);
|
||||||
list = list1.subList(0, Math.min(list1.size(), size));
|
list = list1.subList(0, Math.min(list1.size(), size));
|
||||||
totalCount = list1.size();
|
totalCount = list1.size();
|
||||||
} else {
|
} else {
|
||||||
whereJson.setProduct_area("A3");
|
|
||||||
List list1 = iMdMeMaterialbaseService.getPdaBcpGetMaterial(whereJson, pageQuery);
|
List list1 = iMdMeMaterialbaseService.getPdaBcpGetMaterial(whereJson, pageQuery);
|
||||||
list = list1.subList(0, Math.min(list1.size(), size));
|
list = list1.subList(0, Math.min(list1.size(), size));
|
||||||
totalCount = list1.size();
|
totalCount = list1.size();
|
||||||
|
|||||||
@@ -167,7 +167,6 @@ public class StIvtCheckmstHrBcpServiceImpl extends ServiceImpl<StIvtCheckmstHrBc
|
|||||||
.acs_task_type("15")
|
.acs_task_type("15")
|
||||||
.type(AcsTaskEnum.TASK_STRUCT_HR_CHECK)
|
.type(AcsTaskEnum.TASK_STRUCT_HR_CHECK)
|
||||||
.point_code1(struct.getStruct_code())
|
.point_code1(struct.getStruct_code())
|
||||||
//TODO:盘点位没确定
|
|
||||||
.point_code3(struct.getStruct_code())
|
.point_code3(struct.getStruct_code())
|
||||||
.vehicle_code(dtl.getStoragevehicle_code())
|
.vehicle_code(dtl.getStoragevehicle_code())
|
||||||
.task_group_id(task_group_id)
|
.task_group_id(task_group_id)
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ public class IosHrTask extends AbstractAcsTask {
|
|||||||
// 2.判断device_code2、barcode2 是否为空
|
// 2.判断device_code2、barcode2 是否为空
|
||||||
if (ObjectUtil.isNotEmpty(json.getString("device_code2")) && ObjectUtil.isNotEmpty(json.getString("barcode2"))) {
|
if (ObjectUtil.isNotEmpty(json.getString("device_code2")) && ObjectUtil.isNotEmpty(json.getString("barcode2"))) {
|
||||||
|
|
||||||
param.put("device_code", device_code1);
|
param.put("device_code", json.getString("device_code2"));
|
||||||
param.put("barcode", json.getString("barcode2"));
|
param.put("barcode", json.getString("barcode2"));
|
||||||
iStIvtIostorinvHrBcpInService.fullIn(param);
|
iStIvtIostorinvHrBcpInService.fullIn(param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -227,10 +227,6 @@ public class StIvtIostorinvHrBcp implements Serializable {
|
|||||||
* 入库点
|
* 入库点
|
||||||
*/
|
*/
|
||||||
private String point_code;
|
private String point_code;
|
||||||
/**
|
|
||||||
* 所属工序
|
|
||||||
*/
|
|
||||||
private String workprocedure_id;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
package org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dto;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
import org.nl.common.domain.query.BaseQuery;
|
|
||||||
import org.nl.common.domain.query.QParam;
|
|
||||||
import org.nl.common.enums.QueryTEnum;
|
|
||||||
import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvBcp;
|
|
||||||
import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dao.StIvtIostorinvOrder;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @author LXY
|
|
||||||
* @Date 2023/08/01 19:49
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class HrBcpIostorOrderQuery extends BaseQuery<StIvtIostorinvOrder> {
|
|
||||||
/**
|
|
||||||
* 载具码
|
|
||||||
*/
|
|
||||||
private String bar_code;
|
|
||||||
/**
|
|
||||||
* 出入库类型
|
|
||||||
*/
|
|
||||||
private String type;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -76,7 +76,7 @@ public class StIvtIostorinvEmpBcpServiceImpl implements IStIvtIostorinvEmpBcpSe
|
|||||||
// 1.找一个空货位
|
// 1.找一个空货位
|
||||||
StIvtSectattr sect = sectattrService.getOne(
|
StIvtSectattr sect = sectattrService.getOne(
|
||||||
new QueryWrapper<StIvtSectattr>().lambda()
|
new QueryWrapper<StIvtSectattr>().lambda()
|
||||||
.eq(StIvtSectattr::getSect_name, "三线半成品库区")
|
.eq(StIvtSectattr::getSect_name, "海柔半成品库区")
|
||||||
);
|
);
|
||||||
|
|
||||||
JSONObject jo = new JSONObject();
|
JSONObject jo = new JSONObject();
|
||||||
@@ -173,7 +173,7 @@ public class StIvtIostorinvEmpBcpServiceImpl implements IStIvtIostorinvEmpBcpSe
|
|||||||
// 1.找一个空载具的货位
|
// 1.找一个空载具的货位
|
||||||
StIvtSectattr sect = sectattrService.getOne(
|
StIvtSectattr sect = sectattrService.getOne(
|
||||||
new QueryWrapper<StIvtSectattr>().lambda()
|
new QueryWrapper<StIvtSectattr>().lambda()
|
||||||
.eq(StIvtSectattr::getSect_name, "三线半成品库区")
|
.eq(StIvtSectattr::getSect_name, "海柔半成品库区")
|
||||||
);
|
);
|
||||||
|
|
||||||
JSONObject jo = new JSONObject();
|
JSONObject jo = new JSONObject();
|
||||||
|
|||||||
@@ -174,7 +174,6 @@ public class StIvtIostorinvHrBcpInServiceImpl extends ServiceImpl<StIvtIostorinv
|
|||||||
mst.setBase_bill_code(row.getString("base_bill_code"));
|
mst.setBase_bill_code(row.getString("base_bill_code"));
|
||||||
mst.setQty_unit_name(row.getString("base_unit_name"));
|
mst.setQty_unit_name(row.getString("base_unit_name"));
|
||||||
mst.setUnit_weight(row.getBigDecimal("unit_weight"));
|
mst.setUnit_weight(row.getBigDecimal("unit_weight"));
|
||||||
mst.setWorkprocedure_id(row.getString("workprocedure_id"));
|
|
||||||
// 载具信息
|
// 载具信息
|
||||||
{
|
{
|
||||||
MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getOne(
|
MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getOne(
|
||||||
@@ -276,7 +275,6 @@ public class StIvtIostorinvHrBcpInServiceImpl extends ServiceImpl<StIvtIostorinv
|
|||||||
.canuse_qty(mst.getPlan_qty())
|
.canuse_qty(mst.getPlan_qty())
|
||||||
.workshop_id(mst.getWorkshop_id())
|
.workshop_id(mst.getWorkshop_id())
|
||||||
.unit_weight(mst.getUnit_weight())
|
.unit_weight(mst.getUnit_weight())
|
||||||
.workprocedure_id(mst.getWorkprocedure_id())
|
|
||||||
.build();
|
.build();
|
||||||
structivtBcpService.save(ivtDao);
|
structivtBcpService.save(ivtDao);
|
||||||
|
|
||||||
@@ -312,10 +310,6 @@ public class StIvtIostorinvHrBcpInServiceImpl extends ServiceImpl<StIvtIostorinv
|
|||||||
.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
|
.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
|
||||||
.eq(SchBaseTask::getTask_id, mst.getTask_id())
|
.eq(SchBaseTask::getTask_id, mst.getTask_id())
|
||||||
);
|
);
|
||||||
//删除入库顺序表
|
|
||||||
iStIvtIostorinvOrderService.update(new UpdateWrapper<StIvtIostorinvOrder>()
|
|
||||||
.set("is_delete",true)
|
|
||||||
.eq("bar_code",mst.getStoragevehicle_code()));
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -456,8 +450,8 @@ public class StIvtIostorinvHrBcpInServiceImpl extends ServiceImpl<StIvtIostorinv
|
|||||||
// 1.从出入顺序表中找到对应数据: 根据来源设备和条码找到最近的一条
|
// 1.从出入顺序表中找到对应数据: 根据来源设备和条码找到最近的一条
|
||||||
StIvtIostorinvOrder orderDao = iStIvtIostorinvOrderService.getOne(
|
StIvtIostorinvOrder orderDao = iStIvtIostorinvOrderService.getOne(
|
||||||
new QueryWrapper<StIvtIostorinvOrder>().lambda()
|
new QueryWrapper<StIvtIostorinvOrder>().lambda()
|
||||||
|
.eq(StIvtIostorinvOrder::getIn_device, device_code)
|
||||||
.eq(StIvtIostorinvOrder::getBar_code, barcode)
|
.eq(StIvtIostorinvOrder::getBar_code, barcode)
|
||||||
.eq(StIvtIostorinvOrder::getIs_delete, false)
|
|
||||||
.eq(StIvtIostorinvOrder::getType, IOSEnum.IO_TYPE.code("入库"))
|
.eq(StIvtIostorinvOrder::getType, IOSEnum.IO_TYPE.code("入库"))
|
||||||
.orderByDesc(StIvtIostorinvOrder::getCreate_time)
|
.orderByDesc(StIvtIostorinvOrder::getCreate_time)
|
||||||
, false
|
, false
|
||||||
@@ -473,14 +467,12 @@ public class StIvtIostorinvHrBcpInServiceImpl extends ServiceImpl<StIvtIostorinv
|
|||||||
jsonMst.put("product_code", "A3" );
|
jsonMst.put("product_code", "A3" );
|
||||||
jsonMst.put("point_code", device_code );
|
jsonMst.put("point_code", device_code );
|
||||||
jsonMst.put("stor_id", IOSEnum.STOR_CODE.code("海柔半成品"));
|
jsonMst.put("stor_id", IOSEnum.STOR_CODE.code("海柔半成品"));
|
||||||
jsonMst.put("workprocedure_id", IOSEnum.STOR_CODE.code("海柔半成品"));
|
|
||||||
jsonMst.put("auto_send", "1"); // 是否自动创建任务并下发
|
jsonMst.put("auto_send", "1"); // 是否自动创建任务并下发
|
||||||
|
|
||||||
JSONArray tableData = new JSONArray();
|
JSONArray tableData = new JSONArray();
|
||||||
|
|
||||||
JSONObject jsonDtl = new JSONObject();
|
JSONObject jsonDtl = new JSONObject();
|
||||||
jsonDtl.put("material_id", orderDao.getMaterial_id());
|
jsonDtl.put("material_id", orderDao.getMaterial_id());
|
||||||
jsonDtl.put("workprocedure_id", orderDao.getWorkprocedure_id());
|
|
||||||
jsonDtl.put("pcsn", "");
|
jsonDtl.put("pcsn", "");
|
||||||
jsonDtl.put("plan_qty", orderDao.getQty());
|
jsonDtl.put("plan_qty", orderDao.getQty());
|
||||||
jsonDtl.put("quality_scode", IVTEnum.QUALITY_SCODE.code("合格品"));
|
jsonDtl.put("quality_scode", IVTEnum.QUALITY_SCODE.code("合格品"));
|
||||||
@@ -510,13 +502,11 @@ public class StIvtIostorinvHrBcpInServiceImpl extends ServiceImpl<StIvtIostorinv
|
|||||||
);
|
);
|
||||||
|
|
||||||
// 解锁仓位
|
// 解锁仓位
|
||||||
if (mstDao !=null){
|
|
||||||
structattrService.update(
|
structattrService.update(
|
||||||
new UpdateWrapper<StIvtStructattr>().lambda()
|
new UpdateWrapper<StIvtStructattr>().lambda()
|
||||||
.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||||
.eq(StIvtStructattr::getStruct_id, mstDao.getStruct_id())
|
.eq(StIvtStructattr::getStruct_id, mstDao.getStruct_id())
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
// 删除任务
|
// 删除任务
|
||||||
iSchBaseTaskService.update(
|
iSchBaseTaskService.update(
|
||||||
|
|||||||
@@ -468,8 +468,6 @@ public class StIvtIostorinvHrBcpOutServiceImpl extends ServiceImpl<StIvtIostorin
|
|||||||
.task_group_id(IdUtil.getStringId())
|
.task_group_id(IdUtil.getStringId())
|
||||||
.point_code3(mst.getPoint_code())
|
.point_code3(mst.getPoint_code())
|
||||||
.point_code1(mst.getStruct_code())
|
.point_code1(mst.getStruct_code())
|
||||||
.extParam(MapOf.of("material_id",mst.getMaterial_id(),
|
|
||||||
"material_qty",mst.getPlan_qty(),"table_fk_id",mst.getIostorinv_id()))
|
|
||||||
.vehicle_code(mst.getStoragevehicle_code())
|
.vehicle_code(mst.getStoragevehicle_code())
|
||||||
.product_area(mst.getWorkshop_id())
|
.product_area(mst.getWorkshop_id())
|
||||||
.callback((Consumer<String>) mst::setTask_id)
|
.callback((Consumer<String>) mst::setTask_id)
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ public class StIvtMoveinvHrBcpServiceImpl extends ServiceImpl<StIvtMoveinvHrBcpM
|
|||||||
|
|
||||||
// 新增
|
// 新增
|
||||||
mst.setMoveinv_id(IdUtil.getStringId());
|
mst.setMoveinv_id(IdUtil.getStringId());
|
||||||
mst.setBill_code(CodeUtil.getNewCode("MOVE_CODE"));
|
mst.setBill_code(CodeUtil.getNewCode("BCP_MOVE_CODE"));
|
||||||
mst.setBuss_type(form.getString("buss_type"));
|
mst.setBuss_type(form.getString("buss_type"));
|
||||||
mst.setBill_type(form.getString("buss_type"));
|
mst.setBill_type(form.getString("buss_type"));
|
||||||
mst.setStor_id(form.getString("stor_id"));
|
mst.setStor_id(form.getString("stor_id"));
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ public class StIvtMoveinvdtlHrBcpServiceImpl extends ServiceImpl<StIvtMoveinvdtl
|
|||||||
StIvtMoveinvdtlHrBcp moveinvdtlCp = list.get(0);
|
StIvtMoveinvdtlHrBcp moveinvdtlCp = list.get(0);
|
||||||
PointEvent event = PointEvent.builder()
|
PointEvent event = PointEvent.builder()
|
||||||
.type(AcsTaskEnum.TASK_STRUCT_BCP_HR_MOVE)
|
.type(AcsTaskEnum.TASK_STRUCT_BCP_HR_MOVE)
|
||||||
.acs_task_type("19")
|
.acs_task_type(AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode())
|
||||||
.task_group_id(IdUtil.getStringId())
|
.task_group_id(IdUtil.getStringId())
|
||||||
.point_code1(form.getString("turnout_struct_code"))
|
.point_code1(form.getString("turnout_struct_code"))
|
||||||
.point_code3(form.getString("turnin_struct_code"))
|
.point_code3(form.getString("turnin_struct_code"))
|
||||||
|
|||||||
@@ -101,9 +101,5 @@ public class StIvtStructivtHrBcp implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private BigDecimal unit_weight;
|
private BigDecimal unit_weight;
|
||||||
|
|
||||||
/**
|
|
||||||
* 车间标识
|
|
||||||
*/
|
|
||||||
private String workprocedure_id;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,16 +43,13 @@
|
|||||||
AND
|
AND
|
||||||
sa.lock_type = '0'
|
sa.lock_type = '0'
|
||||||
<if test="query.material_search != null and query.material_search != ''">
|
<if test="query.material_search != null and query.material_search != ''">
|
||||||
and (mb.material_code = #{query.material_search} ORs
|
and (mb.material_code = #{query.material_search} OR
|
||||||
mb.material_name = #{query.material_search} OR
|
mb.material_name = #{query.material_search} OR
|
||||||
mb.material_spec = #{query.material_search})
|
mb.material_spec = #{query.material_search})
|
||||||
</if>
|
</if>
|
||||||
<if test="query.sect_id != null and query.sect_id != ''">
|
<if test="query.sect_id != null and query.sect_id != ''">
|
||||||
and sa.sect_id = #{query.sect_id}
|
and sa.sect_id = #{query.sect_id}
|
||||||
</if>
|
</if>
|
||||||
<if test="query.sect_code != null and query.sect_code != ''">
|
|
||||||
and sa.sect_code = #{query.sect_code}
|
|
||||||
</if>
|
|
||||||
<if test="query.struct_search != null and query.struct_search != ''">
|
<if test="query.struct_search != null and query.struct_search != ''">
|
||||||
and (sa.struct_code = #{query.struct_search} OR sa.struct_name = #{query.struct_search})
|
and (sa.struct_code = #{query.struct_search} OR sa.struct_name = #{query.struct_search})
|
||||||
</if>
|
</if>
|
||||||
@@ -167,13 +164,11 @@
|
|||||||
attr.sect_code,
|
attr.sect_code,
|
||||||
attr.sect_name,
|
attr.sect_name,
|
||||||
attr.stor_name,
|
attr.stor_name,
|
||||||
attr.storagevehicle_code,
|
attr.storagevehicle_code
|
||||||
wp.workprocedure_name
|
|
||||||
FROM
|
FROM
|
||||||
st_ivt_structivt_hr_bcp ivt
|
st_ivt_structivt_hr_bcp ivt
|
||||||
LEFT JOIN md_me_materialbase mater ON ivt.material_id = mater.material_id
|
LEFT JOIN md_me_materialbase mater ON ivt.material_id = mater.material_id
|
||||||
LEFT JOIN st_ivt_structattr attr ON attr.struct_id = ivt.struct_id
|
LEFT JOIN st_ivt_structattr attr ON attr.struct_id = ivt.struct_id
|
||||||
LEFT JOIN pdm_bi_workprocedure wp ON wp.workprocedure_id = ivt.workprocedure_id
|
|
||||||
LEFT JOIN md_pb_measureunit unit ON unit.measure_unit_id = ivt.qty_unit_id
|
LEFT JOIN md_pb_measureunit unit ON unit.measure_unit_id = ivt.qty_unit_id
|
||||||
<where>
|
<where>
|
||||||
attr.lock_type = '0'
|
attr.lock_type = '0'
|
||||||
|
|||||||
@@ -16,8 +16,6 @@ public class StructIvtHrBcpQuery extends BaseQuery<StIvtStructivtBcp> {
|
|||||||
|
|
||||||
private String sect_id;
|
private String sect_id;
|
||||||
|
|
||||||
private String sect_code;
|
|
||||||
|
|
||||||
private String struct_search;
|
private String struct_search;
|
||||||
|
|
||||||
private String material_search;
|
private String material_search;
|
||||||
|
|||||||
@@ -51,7 +51,6 @@ public class StIvtStructivtHrBcpServiceImpl extends ServiceImpl<StIvtStructivtHr
|
|||||||
@Override
|
@Override
|
||||||
public Object getBcpIvt(StructIvtHrBcpQuery query, PageQuery pageQuery) {
|
public Object getBcpIvt(StructIvtHrBcpQuery query, PageQuery pageQuery) {
|
||||||
com.github.pagehelper.Page<Object> page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize());
|
com.github.pagehelper.Page<Object> page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize());
|
||||||
query.setSect_code("HKQ001");
|
|
||||||
List<Map> mst_detail = this.baseMapper.getBcpIvt(query, pageQuery);
|
List<Map> mst_detail = this.baseMapper.getBcpIvt(query, pageQuery);
|
||||||
TableDataInfo<Map> build = TableDataInfo.build(mst_detail);
|
TableDataInfo<Map> build = TableDataInfo.build(mst_detail);
|
||||||
build.setTotalElements(page.getTotal());
|
build.setTotalElements(page.getTotal());
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ spring:
|
|||||||
freemarker:
|
freemarker:
|
||||||
check-template-location: false
|
check-template-location: false
|
||||||
profiles:
|
profiles:
|
||||||
active: prod
|
active: dev3
|
||||||
jackson:
|
jackson:
|
||||||
time-zone: GMT+8
|
time-zone: GMT+8
|
||||||
data:
|
data:
|
||||||
|
|||||||
@@ -112,39 +112,15 @@
|
|||||||
<appender-ref ref="asyncLuceneAppender"/>
|
<appender-ref ref="asyncLuceneAppender"/>
|
||||||
<appender-ref ref="CONSOLE"/>
|
<appender-ref ref="CONSOLE"/>
|
||||||
</root>
|
</root>
|
||||||
<logger name="jdbc" level="off"/>
|
|
||||||
<logger name="c.b.m.core" level="off"/>
|
|
||||||
<logger name="jdbc.resultset" level="off"/>
|
|
||||||
<logger name="org.springframework" level="ERROR" additivity="true">
|
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
|
||||||
</logger>
|
|
||||||
<logger name="org.hibernate" level="ERROR" additivity="true">
|
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
|
||||||
</logger>
|
|
||||||
<logger name="org.quartz" level="ERROR" additivity="true">
|
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
|
||||||
</logger>
|
|
||||||
<logger name="com.google" level="ERROR" additivity="true">
|
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
|
||||||
</logger>
|
|
||||||
<logger name="org.redisson" level="ERROR" additivity="true">
|
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
|
||||||
</logger>
|
|
||||||
<logger name="org.nl.modules.wql" level="ERROR" additivity="true">
|
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
|
||||||
</logger>
|
|
||||||
<logger name="org.springframework.data" level="ERROR" additivity="true">
|
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
|
||||||
</logger>
|
|
||||||
</springProfile>
|
</springProfile>
|
||||||
<springProfile name="prod">
|
<springProfile name="prod">
|
||||||
<root level="info">
|
<root level="info">
|
||||||
<appender-ref ref="CONSOLE"/>
|
<appender-ref ref="CONSOLE"/>
|
||||||
<appender-ref ref="asyncLuceneAppender"/>
|
<appender-ref ref="asyncLuceneAppender"/>
|
||||||
</root>
|
</root>
|
||||||
<logger name="jdbc" level="off"/>
|
<logger name="jdbc" level="ERROR" additivity="true">
|
||||||
<logger name="c.b.m.core" level="off"/>
|
<appender-ref ref="asyncFileAppender"/>
|
||||||
<logger name="jdbc.resultset" level="off"/>
|
</logger>
|
||||||
<logger name="org.springframework" level="ERROR" additivity="true">
|
<logger name="org.springframework" level="ERROR" additivity="true">
|
||||||
<appender-ref ref="asyncFileAppender"/>
|
<appender-ref ref="asyncFileAppender"/>
|
||||||
</logger>
|
</logger>
|
||||||
|
|||||||
@@ -151,19 +151,6 @@
|
|||||||
|
|
||||||
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码"/>
|
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码"/>
|
||||||
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称"/>
|
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称"/>
|
||||||
<el-table-column show-overflow-tooltip prop="workprocedure_id" label="所属工序">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<el-select v-model="form.tableData[scope.$index].workprocedure_id"
|
|
||||||
class="filter-item" placeholder="所属工序" size="small" style="width: 280px">
|
|
||||||
<el-option
|
|
||||||
v-for="item in workprocedureList"
|
|
||||||
:key="item.workprocedure_id"
|
|
||||||
:label="item.workprocedure_name"
|
|
||||||
:value="item.workprocedure_id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column show-overflow-tooltip prop="material_spec" label="物料规格"/>
|
<el-table-column show-overflow-tooltip prop="material_spec" label="物料规格"/>
|
||||||
<el-table-column show-overflow-tooltip prop="plan_qty" label="数量(个)">
|
<el-table-column show-overflow-tooltip prop="plan_qty" label="数量(个)">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
@@ -230,7 +217,6 @@ import crudsemiproductIn from '@/views/wms/storage_manage/semiproducthr/semiprod
|
|||||||
import MaterDtl from '@/views/wms/pub/MaterDialog'
|
import MaterDtl from '@/views/wms/pub/MaterDialog'
|
||||||
import crudStorattr from '@/views/wms/storage_manage/basedata/basedata'
|
import crudStorattr from '@/views/wms/storage_manage/basedata/basedata'
|
||||||
import crudPoint from '@/views/wms/scheduler_manage/point/point'
|
import crudPoint from '@/views/wms/scheduler_manage/point/point'
|
||||||
import crudWorkProcedure from '@/api/wms/basedata/pdm/workProcedure'
|
|
||||||
|
|
||||||
const defaultForm = {
|
const defaultForm = {
|
||||||
bill_code: '',
|
bill_code: '',
|
||||||
@@ -271,7 +257,6 @@ export default {
|
|||||||
materType: '01',
|
materType: '01',
|
||||||
storlist: [],
|
storlist: [],
|
||||||
pointList: [],
|
pointList: [],
|
||||||
workprocedureList: [],
|
|
||||||
billtypelist: [],
|
billtypelist: [],
|
||||||
rules: {
|
rules: {
|
||||||
product_code: [
|
product_code: [
|
||||||
@@ -298,9 +283,6 @@ export default {
|
|||||||
crudStorattr.getStor({'stor_type': '5'}).then(res => {
|
crudStorattr.getStor({'stor_type': '5'}).then(res => {
|
||||||
this.storlist = res.content
|
this.storlist = res.content
|
||||||
})
|
})
|
||||||
crudWorkProcedure.downSelect({ product_area: 'A3' }).then(res => {
|
|
||||||
this.workprocedureList = res
|
|
||||||
})
|
|
||||||
const area_type = 'A3_BCPRK01'
|
const area_type = 'A3_BCPRK01'
|
||||||
crudPoint.getPoint({ 'area_type': area_type }).then(res => {
|
crudPoint.getPoint({ 'area_type': area_type }).then(res => {
|
||||||
this.pointList = res
|
this.pointList = res
|
||||||
|
|||||||
@@ -105,11 +105,6 @@
|
|||||||
<el-table-column min-width="120" show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
|
<el-table-column min-width="120" show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
|
||||||
<el-table-column min-width="120" show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
|
<el-table-column min-width="120" show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
|
||||||
<el-table-column min-width="120" show-overflow-tooltip prop="material_spec" label="物料规格" align="center" />
|
<el-table-column min-width="120" show-overflow-tooltip prop="material_spec" label="物料规格" align="center" />
|
||||||
<el-table-column min-width="120" show-overflow-tooltip prop="workprocedure_id" label="所属工序">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
{{ getprocedurename(scope.row) }}
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column prop="pcsn" label="批次" width="150" align="center" />
|
<el-table-column prop="pcsn" label="批次" width="150" align="center" />
|
||||||
<el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="数量(个)" align="center" />
|
<el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="数量(个)" align="center" />
|
||||||
<el-table-column prop="qty_unit_name" label="单位" align="center" />
|
<el-table-column prop="qty_unit_name" label="单位" align="center" />
|
||||||
@@ -129,8 +124,6 @@
|
|||||||
|
|
||||||
import { crud } from '@crud/crud'
|
import { crud } from '@crud/crud'
|
||||||
import crudsemiproductIn from '@/views/wms/storage_manage/semiproducthr/semiproducthrIn/semiproducthrIn'
|
import crudsemiproductIn from '@/views/wms/storage_manage/semiproducthr/semiproducthrIn/semiproducthrIn'
|
||||||
import crudWorkProcedure from '@/api/wms/basedata/pdm/workProcedure'
|
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'ViewDialog',
|
name: 'ViewDialog',
|
||||||
@@ -152,7 +145,6 @@ export default {
|
|||||||
tableDtl: [],
|
tableDtl: [],
|
||||||
tabledis: [],
|
tabledis: [],
|
||||||
billtypelist: [],
|
billtypelist: [],
|
||||||
workprocedureList: {},
|
|
||||||
storlist: [],
|
storlist: [],
|
||||||
currentdtl: null,
|
currentdtl: null,
|
||||||
currentDis: {},
|
currentDis: {},
|
||||||
@@ -172,17 +164,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getprocedurename(row) {
|
|
||||||
return this.workprocedureList.get(row.workprocedure_id)
|
|
||||||
},
|
|
||||||
open() {
|
open() {
|
||||||
crudWorkProcedure.downSelect({ product_area: 'A3' }).then(res => {
|
|
||||||
var procedures = new Map();
|
|
||||||
res.forEach(item => {
|
|
||||||
procedures.set(item.workprocedure_id,item.workprocedure_name)
|
|
||||||
})
|
|
||||||
this.workprocedureList = procedures
|
|
||||||
})
|
|
||||||
this.queryTableDtl()
|
this.queryTableDtl()
|
||||||
},
|
},
|
||||||
close() {
|
close() {
|
||||||
|
|||||||
@@ -91,11 +91,6 @@
|
|||||||
<el-table-column show-overflow-tooltip min-width="120" prop="material_code" label="物料编码" />
|
<el-table-column show-overflow-tooltip min-width="120" prop="material_code" label="物料编码" />
|
||||||
<el-table-column show-overflow-tooltip min-width="120" prop="material_name" label="物料名称" />
|
<el-table-column show-overflow-tooltip min-width="120" prop="material_name" label="物料名称" />
|
||||||
<el-table-column show-overflow-tooltip min-width="120" prop="material_spec" label="物料规格" />
|
<el-table-column show-overflow-tooltip min-width="120" prop="material_spec" label="物料规格" />
|
||||||
<el-table-column show-overflow-tooltip min-width="120" prop="workprocedure_id" label="所属工序" >
|
|
||||||
<template slot-scope="scope">
|
|
||||||
{{ getprocedurename(scope.row) }}
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column show-overflow-tooltip prop="storagevehicle_code" label="载具号" />
|
<el-table-column show-overflow-tooltip prop="storagevehicle_code" label="载具号" />
|
||||||
<el-table-column show-overflow-tooltip prop="canuse_qty" label="可用数量(个)" :formatter="crud.formatNum3" />
|
<el-table-column show-overflow-tooltip prop="canuse_qty" label="可用数量(个)" :formatter="crud.formatNum3" />
|
||||||
<!-- <el-table-column show-overflow-tooltip prop="unit_name" label="单位" />-->
|
<!-- <el-table-column show-overflow-tooltip prop="unit_name" label="单位" />-->
|
||||||
@@ -116,8 +111,6 @@ import pagination from '@crud/Pagination'
|
|||||||
import DateRangePicker from '@/components/DateRangePicker/index'
|
import DateRangePicker from '@/components/DateRangePicker/index'
|
||||||
import crudStorattr, { getStor } from '@/views/wms/storage_manage/basedata/basedata'
|
import crudStorattr, { getStor } from '@/views/wms/storage_manage/basedata/basedata'
|
||||||
import semiproductivt from '@/views/wms/storage_manage/semiproducthr/semiproducthrIvt/semiproducthrivt'
|
import semiproductivt from '@/views/wms/storage_manage/semiproducthr/semiproducthrIvt/semiproducthrivt'
|
||||||
import crudWorkProcedure from '@/api/wms/basedata/pdm/workProcedure'
|
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'ProductIn',
|
name: 'ProductIn',
|
||||||
@@ -137,7 +130,6 @@ export default {
|
|||||||
return {
|
return {
|
||||||
height: document.documentElement.clientHeight - 180 + 'px;',
|
height: document.documentElement.clientHeight - 180 + 'px;',
|
||||||
permission: {},
|
permission: {},
|
||||||
workprocedureList: {},
|
|
||||||
storlist: [],
|
storlist: [],
|
||||||
storId: null
|
storId: null
|
||||||
}
|
}
|
||||||
@@ -149,21 +141,11 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
crudWorkProcedure.downSelect({ product_area: 'A3' }).then(res => {
|
|
||||||
var procedures = new Map();
|
|
||||||
res.forEach(item => {
|
|
||||||
procedures.set(item.workprocedure_id,item.workprocedure_name)
|
|
||||||
})
|
|
||||||
this.workprocedureList = procedures
|
|
||||||
})
|
|
||||||
crudStorattr.getStor({ 'stor_type': '5' }).then(res => {
|
crudStorattr.getStor({ 'stor_type': '5' }).then(res => {
|
||||||
this.storlist = res.content
|
this.storlist = res.content
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getprocedurename(row){
|
|
||||||
return this.workprocedureList.get(row.workprocedure_id)
|
|
||||||
},
|
|
||||||
downloadMethod() {
|
downloadMethod() {
|
||||||
semiproductivt.exportFile(this.query).then(res => {
|
semiproductivt.exportFile(this.query).then(res => {
|
||||||
this.crud.notify('导出成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
this.crud.notify('导出成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
export function del(ids) {
|
||||||
|
return request({
|
||||||
|
url: '/api/pda/hrBcp/order',
|
||||||
|
method: 'delete',
|
||||||
|
data: ids
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function edit(data) {
|
||||||
|
return request({
|
||||||
|
url: '/api/pda/hrBcp/order',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export default {
|
||||||
|
edit,
|
||||||
|
del
|
||||||
|
}
|
||||||
@@ -0,0 +1,152 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<!--工具栏-->
|
||||||
|
<div class="head-container">
|
||||||
|
<div v-if="crud.props.searchToggle">
|
||||||
|
<el-form
|
||||||
|
:inline="true"
|
||||||
|
class="demo-form-inline"
|
||||||
|
label-position="right"
|
||||||
|
label-width="80px"
|
||||||
|
label-suffix=":"
|
||||||
|
>
|
||||||
|
<el-form-item label="箱码">
|
||||||
|
<label slot="label">箱码:</label>
|
||||||
|
<el-input
|
||||||
|
v-model="query.type"
|
||||||
|
clearable
|
||||||
|
style="width: 180px"
|
||||||
|
placeholder="载具号"
|
||||||
|
@keyup.enter.native="crud.toQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="单据类型">
|
||||||
|
<el-select
|
||||||
|
v-model="query.type"
|
||||||
|
multiple
|
||||||
|
style="width: 200px"
|
||||||
|
placeholder="单据类型"
|
||||||
|
class="filter-item"
|
||||||
|
@keyup.enter.native="crud.toQuery"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in taskStatusList"
|
||||||
|
:key="item.code"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<rrOperation />
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||||
|
|
||||||
|
<crudOperation :permission="permission" />
|
||||||
|
<!--表格渲染-->
|
||||||
|
<el-table
|
||||||
|
ref="table"
|
||||||
|
v-loading="crud.loading"
|
||||||
|
:data="crud.data"
|
||||||
|
size="mini"
|
||||||
|
style="width: 100%;"
|
||||||
|
@selection-change="crud.selectionChangeHandler"
|
||||||
|
>
|
||||||
|
<el-table-column prop="workshop_id" label="车间" min-width="100" show-overflow-tooltip />
|
||||||
|
<el-table-column prop="type" label="出入库类型" min-width="100" show-overflow-tooltip />
|
||||||
|
<el-table-column prop="order_id" label="顺序id" min-width="100" show-overflow-tooltip />
|
||||||
|
<el-table-column prop="stor_id" label="仓库" min-width="100" show-overflow-tooltip />
|
||||||
|
<el-table-column prop="in_device" label="入库点" min-width="100" show-overflow-tooltip />
|
||||||
|
<el-table-column prop="out_device" label="出库点" min-width="100" show-overflow-tooltip />
|
||||||
|
<el-table-column prop="bar_code" label="箱码" min-width="100" show-overflow-tooltip />
|
||||||
|
<el-table-column prop="weight" label="重量" min-width="100" show-overflow-tooltip />
|
||||||
|
<el-table-column prop="workorder_id" label="工单编号" min-width="100" show-overflow-tooltip />
|
||||||
|
<el-table-column prop="workprocedure_id" label="工序" min-width="100" show-overflow-tooltip />
|
||||||
|
<el-table-column prop="create_time" label="创建时间" width="135">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ parseTime(scope.row.create_time) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="is_delete" label="删除" min-width="100" show-overflow-tooltip />
|
||||||
|
<el-table-column
|
||||||
|
v-permission="['admin','instruction:edit','instruction:del']"
|
||||||
|
fixed="right"
|
||||||
|
label="操作"
|
||||||
|
width="160px"
|
||||||
|
align="center"
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-success"
|
||||||
|
@click="doOperate(scope.row, 'a')"
|
||||||
|
>编辑</el-button>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-error"
|
||||||
|
@click="doOperate(scope.row, 'b')"
|
||||||
|
>取消</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<!--分页组件-->
|
||||||
|
<pagination />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import crudHrorder from '@/views/wms/storage_manage/semiproducthr/semiproducthrOrder/hrorder'
|
||||||
|
import CRUD, { crud, header, presenter } from '@crud/crud'
|
||||||
|
import rrOperation from '@crud/RR.operation'
|
||||||
|
import crudOperation from '@crud/CRUD.operation'
|
||||||
|
import udOperation from '@crud/UD.operation'
|
||||||
|
import pagination from '@crud/Pagination'
|
||||||
|
export default {
|
||||||
|
name: 'Task',
|
||||||
|
dicts: ['SCH_TASK_TYPE_DTL', 'vehicle_type', 'task_finished_type', 'product_area'],
|
||||||
|
components: {
|
||||||
|
pagination, crudOperation, rrOperation, udOperation
|
||||||
|
},
|
||||||
|
mixins: [presenter(), header(), crud()],
|
||||||
|
cruds() {
|
||||||
|
return CRUD({
|
||||||
|
title: '任务',
|
||||||
|
url: '/api/pda/hrBcp/order',
|
||||||
|
idField: 'order_id',
|
||||||
|
sort: 'order_id,desc',
|
||||||
|
crudMethod: { ...crudHrorder },
|
||||||
|
query: {
|
||||||
|
},
|
||||||
|
optShow: {
|
||||||
|
add: false,
|
||||||
|
edit: false,
|
||||||
|
del: false,
|
||||||
|
download: false,
|
||||||
|
reset: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
viewDialogVisible: false,
|
||||||
|
create_time: [],
|
||||||
|
taskStatusList: [{"label":"出","value":1},{"label":"入","value":2}],
|
||||||
|
permission: {
|
||||||
|
|
||||||
|
},
|
||||||
|
rules: {},
|
||||||
|
classes1: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
Reference in New Issue
Block a user