rev:仓库管理页面优化
This commit is contained in:
@@ -61,6 +61,12 @@
|
||||
<version>0.4.8</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpasyncclient</artifactId>
|
||||
<version>4.1.4</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://onew.me/logback/2018/09/17/logback_win.html-->
|
||||
<dependency>
|
||||
<groupId>org.fusesource.jansi</groupId>
|
||||
|
||||
@@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaIgnore;
|
||||
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.nl.common.utils.SpringContextHolder;
|
||||
import org.nl.common.websocket.heartSocket.clientSocket.HeartClientServer;
|
||||
import org.springframework.beans.factory.BeanFactory;
|
||||
import org.springframework.beans.factory.support.AbstractBeanFactory;
|
||||
import org.springframework.boot.CommandLineRunner;
|
||||
@@ -19,6 +20,8 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
/**
|
||||
* 开启审计功能 -> @EnableJpaAuditing
|
||||
* https://www.cnblogs.com/niceyoo/p/10908647.html
|
||||
@@ -42,6 +45,7 @@ public class AppRun implements CommandLineRunner {
|
||||
|
||||
@Override
|
||||
public void run(String... args) {
|
||||
HeartClientServer heartServer = new HeartClientServer(new InetSocketAddress("192.168.10.48", 20889));
|
||||
System.out.println("--------项目启动完成--------");
|
||||
}
|
||||
|
||||
|
||||
@@ -98,11 +98,18 @@ public class TableDataInfo<T> implements Serializable {
|
||||
return rspData;
|
||||
}
|
||||
|
||||
|
||||
public static <T> TableDataInfo<T> build() {
|
||||
TableDataInfo<T> rspData = new TableDataInfo<>();
|
||||
rspData.setCode(String.valueOf(HttpStatus.HTTP_OK));
|
||||
rspData.setMsg("操作成功");
|
||||
return rspData;
|
||||
}
|
||||
|
||||
public static <T> TableDataInfo<T> buildJson(Object result) {
|
||||
TableDataInfo<T> rspData = new TableDataInfo<>();
|
||||
rspData.setCode(String.valueOf(HttpStatus.HTTP_OK));
|
||||
rspData.setData(result);
|
||||
rspData.setMsg("操作成功");
|
||||
return rspData;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ import java.time.LocalDateTime;
|
||||
* @date 2018-11-23
|
||||
*/
|
||||
@Data
|
||||
class ApiError {
|
||||
public class ApiError {
|
||||
|
||||
private String code = "400";
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
|
||||
@@ -22,7 +22,7 @@ public enum StatusEnum {
|
||||
* 流程相关
|
||||
*/
|
||||
MODEL_STATUS(ForkMap.of("发布", "10",null, "未发布", "30",null)),
|
||||
FLOW_STATUS(ForkMap.of("启动", "10",null, "节点完成", "20",null,"暂停", "30",null,"完成", "80",null)),
|
||||
FLOW_STATUS(ForkMap.of("启动", "10",null, "节点完成", "20",null,"暂停", "30",null,"完成", "80",null,"异常完成", "82",null)),
|
||||
/**
|
||||
* 单据状态
|
||||
*/
|
||||
@@ -33,7 +33,7 @@ public enum StatusEnum {
|
||||
*/
|
||||
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","出库拣选", "25","toPickPlatformTask","托盘出库", "40","outStorageTask")),
|
||||
IOBILL_TYPE_MOVE(ForkMap.of("移库", "50","moveStorageTask")),
|
||||
IOBILL_TYPE_MOVE(ForkMap.of("移库", "50","moveStorageTask","异常位移库", "51","moveStorageTask")),
|
||||
EXT_TASK_TYPE(ForkMap.of("盘点", "60","moveStorageTask")),
|
||||
profit_loss(ForkMap.of("盘亏", "0",null,"盘盈", "1",null,"实盘", "2",null)),
|
||||
|
||||
@@ -50,8 +50,10 @@ public enum StatusEnum {
|
||||
/**
|
||||
* 点位锁类型
|
||||
*/
|
||||
LOCK(ForkMap.of("无锁","00",null,"入库锁","10",null,"入库盘点锁","16",null,"出库锁","20",null,"盘点出库锁","26",null,"移库锁","50",null)),
|
||||
LOCK(ForkMap.of("无锁","00",null,"入库锁","10",null,"入库盘点锁","16",null,"出库锁","20",null,"盘点出库锁","26",null,"移库锁","50",null,"异常锁定","60",null)),
|
||||
STRATEGY_TYPE(ForkMap.of("入库", "1",null, "出库", "2", null,"出入库", "3",null)),
|
||||
|
||||
PRODUCT_AREA(ForkMap.of("一层车间", "A1",null, "二层车间", "A2", null,"三层车间", "A3",null)),
|
||||
;
|
||||
|
||||
/**
|
||||
|
||||
@@ -77,7 +77,6 @@ public class BussEventMulticaster implements BeanPostProcessor {
|
||||
if (bean instanceof AbstraceListener){
|
||||
AbstraceListener listener = (AbstraceListener) bean;
|
||||
LISTENER_SRT.add(listener);
|
||||
System.out.println("_________"+beanName);
|
||||
}
|
||||
return bean;
|
||||
}
|
||||
|
||||
@@ -1,65 +1,64 @@
|
||||
//package org.nl.common.utils;
|
||||
//
|
||||
//import org.apache.http.HttpResponse;
|
||||
//import org.apache.http.client.methods.HttpGet;
|
||||
//import org.apache.http.client.methods.HttpPost;
|
||||
//import org.apache.http.client.methods.HttpRequestBase;
|
||||
//import org.apache.http.concurrent.FutureCallback;
|
||||
//import org.apache.http.entity.StringEntity;
|
||||
//import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
|
||||
//import org.apache.http.impl.nio.client.HttpAsyncClients;
|
||||
//import org.nl.modules.wql.util.SpringContextHolder;
|
||||
//import org.springframework.context.annotation.Bean;
|
||||
//import org.springframework.stereotype.Component;
|
||||
//
|
||||
//import java.util.concurrent.Future;
|
||||
//
|
||||
///*
|
||||
// * HTtp异步调用
|
||||
// */
|
||||
//public class AsyncHttpRequest {
|
||||
//
|
||||
// private StringEntity entity;
|
||||
// public HttpRequestBase httpbase;
|
||||
// private String url;
|
||||
//
|
||||
// public AsyncHttpRequest(String url) {
|
||||
// this.url=url;
|
||||
// }
|
||||
//
|
||||
// public static AsyncHttpRequest post(String url,String body){
|
||||
// return new AsyncHttpRequest(url).body(body);
|
||||
// };
|
||||
//
|
||||
// public static AsyncHttpRequest get(String url){
|
||||
// return new AsyncHttpRequest(url).getEntity();
|
||||
// };
|
||||
// private AsyncHttpRequest getEntity(){
|
||||
// HttpGet httpGet = new HttpGet(this.url);
|
||||
// this.httpbase = httpGet;
|
||||
// return this;
|
||||
// };
|
||||
// private AsyncHttpRequest body(String body){
|
||||
// this.entity = new StringEntity(body, "UTF-8");
|
||||
// this.entity.setContentType("application/json");
|
||||
// HttpPost httpPost = new HttpPost(this.url);
|
||||
// httpPost.setEntity(entity);
|
||||
// this.httpbase = httpPost;
|
||||
// return this;
|
||||
// };
|
||||
// public Future<HttpResponse> execute(FutureCallback<HttpResponse> callback){
|
||||
// CloseableHttpAsyncClient client = SpringContextHolder.getBean(CloseableHttpAsyncClient.class);
|
||||
// Future<HttpResponse> execute = client.execute(httpbase, callback);
|
||||
// return execute;
|
||||
// };
|
||||
//}
|
||||
//@Component
|
||||
//class HttpAsyncClientInit{
|
||||
//
|
||||
// @Bean
|
||||
// public CloseableHttpAsyncClient closeableHttpAsyncClient(){
|
||||
// CloseableHttpAsyncClient aDefault = HttpAsyncClients.createDefault();
|
||||
// aDefault.start();
|
||||
// return aDefault;
|
||||
// }
|
||||
//}
|
||||
package org.nl.common.utils;
|
||||
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
import org.apache.http.client.methods.HttpRequestBase;
|
||||
import org.apache.http.concurrent.FutureCallback;
|
||||
import org.apache.http.entity.StringEntity;
|
||||
import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
|
||||
import org.apache.http.impl.nio.client.HttpAsyncClients;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
/*
|
||||
* HTtp异步调用
|
||||
*/
|
||||
public class AsyncHttpRequest {
|
||||
|
||||
private StringEntity entity;
|
||||
public HttpRequestBase httpbase;
|
||||
private String url;
|
||||
|
||||
public AsyncHttpRequest(String url) {
|
||||
this.url=url;
|
||||
}
|
||||
|
||||
public static AsyncHttpRequest post(String url,String body){
|
||||
return new AsyncHttpRequest(url).body(body);
|
||||
};
|
||||
|
||||
public static AsyncHttpRequest get(String url){
|
||||
return new AsyncHttpRequest(url).getEntity();
|
||||
};
|
||||
private AsyncHttpRequest getEntity(){
|
||||
HttpGet httpGet = new HttpGet(this.url);
|
||||
this.httpbase = httpGet;
|
||||
return this;
|
||||
};
|
||||
private AsyncHttpRequest body(String body){
|
||||
this.entity = new StringEntity(body, "UTF-8");
|
||||
this.entity.setContentType("application/json");
|
||||
HttpPost httpPost = new HttpPost(this.url);
|
||||
httpPost.setEntity(entity);
|
||||
this.httpbase = httpPost;
|
||||
return this;
|
||||
};
|
||||
public Future<HttpResponse> execute(FutureCallback<HttpResponse> callback){
|
||||
CloseableHttpAsyncClient client = SpringContextHolder.getBean(CloseableHttpAsyncClient.class);
|
||||
Future<HttpResponse> execute = client.execute(httpbase, callback);
|
||||
return execute;
|
||||
};
|
||||
}
|
||||
@Component
|
||||
class HttpAsyncClientInit{
|
||||
|
||||
@Bean
|
||||
public CloseableHttpAsyncClient closeableHttpAsyncClient(){
|
||||
CloseableHttpAsyncClient aDefault = HttpAsyncClients.createDefault();
|
||||
aDefault.start();
|
||||
return aDefault;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ package org.nl.common.utils;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.net.InetAddress;
|
||||
import java.net.NetworkInterface;
|
||||
import java.util.Enumeration;
|
||||
@@ -72,4 +73,25 @@ public class IPUtil {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
public static String getIp(HttpServletRequest request) {
|
||||
String ip = request.getHeader("X-Forwarded-For");
|
||||
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
||||
ip = request.getHeader("Proxy-Client-IP");
|
||||
}
|
||||
|
||||
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
||||
ip = request.getHeader("WL-Proxy-Client-IP");
|
||||
}
|
||||
|
||||
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
||||
ip = request.getRemoteAddr();
|
||||
}
|
||||
|
||||
if (ip != null && ip.contains(",")) {
|
||||
String[] ipArray = ip.split(",");
|
||||
ip = ipArray[0];
|
||||
}
|
||||
|
||||
return ip;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ public class InterationUtil {
|
||||
String url = acsUrl + api;
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.timeout(1000)
|
||||
.timeout(3000)
|
||||
.body(String.valueOf(param))
|
||||
.execute().body();
|
||||
JSONObject response = JSONObject.parseObject(resultMsg);
|
||||
@@ -46,4 +46,16 @@ public class InterationUtil {
|
||||
throw new BadRequestException("acs网络不通:"+ex.getMessage());
|
||||
}
|
||||
}
|
||||
public static TableDataInfo asyncNotifyExt(String api, JSONObject param) {
|
||||
log.info("下发ACS参数----------------------------------------+"+api+",---"+param.toString());
|
||||
String isConnect = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("IS_CONNECT_ACS").getValue();
|
||||
if (STATUS_FLASE.equals(isConnect)) {
|
||||
return TableDataInfo.build();
|
||||
}
|
||||
String acsUrl = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("wcs_url").getValue();
|
||||
AsyncHttpRequest.post(acsUrl + api,String.valueOf(param))
|
||||
.execute(null);
|
||||
return TableDataInfo.build();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ public class HeartClientServer extends AbstraceServer {
|
||||
@Override
|
||||
protected void initChannel(SocketChannel ch) throws Exception {
|
||||
ch.pipeline()
|
||||
.addLast("client-idle-handler", new IdleStateHandler(5, 5,5 , TimeUnit.SECONDS))
|
||||
.addLast("client-idle-handler", new IdleStateHandler(0, 5,0 , TimeUnit.SECONDS))
|
||||
.addLast( new StringEncoder())
|
||||
.addLast( new StringDecoder())
|
||||
.addLast(new HeartConsumerHandler(body));
|
||||
@@ -90,15 +90,20 @@ public class HeartClientServer extends AbstraceServer {
|
||||
this.doDestroy();
|
||||
}
|
||||
}
|
||||
public void pingpong() throws InterruptedException {
|
||||
while (channel!=null && channel.isActive()){
|
||||
Thread.sleep(2000);
|
||||
System.out.println("-----chilend-------");
|
||||
ByteBuf log = Unpooled.copiedBuffer("ping--222-", CharsetUtil.UTF_8);
|
||||
if (channel==null){
|
||||
return;
|
||||
public void pingpong() {
|
||||
new Thread(()->{
|
||||
while (channel!=null && channel.isActive()){
|
||||
try {
|
||||
Thread.sleep(2000);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
ByteBuf log = Unpooled.copiedBuffer("ping--222-", CharsetUtil.UTF_8);
|
||||
if (channel==null){
|
||||
return;
|
||||
}
|
||||
channel.writeAndFlush(log);
|
||||
}
|
||||
channel.writeAndFlush(log);
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,8 +28,8 @@ public class HeartConsumerHandler extends SimpleChannelInboundHandler {
|
||||
System.out.println("断开连接---");
|
||||
//重新建立
|
||||
ctx.close();
|
||||
server.doDisConnect();
|
||||
super.channelInactive(ctx);
|
||||
server.channel.close();
|
||||
server.channel.flush();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -15,6 +15,6 @@ import java.nio.charset.StandardCharsets;
|
||||
*/
|
||||
public class RunClientHeartMain {
|
||||
public static void main(String[] args) throws InterruptedException {
|
||||
HeartClientServer heartServer = new HeartClientServer(new InetSocketAddress("192.168.10.57", 20889));
|
||||
HeartClientServer heartServer = new HeartClientServer(new InetSocketAddress("192.168.10.48", 20889));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@ public abstract class AbstraceServer {
|
||||
public void doDisConnect(){
|
||||
if (channel!=null){
|
||||
channel.close();
|
||||
channel.flush();
|
||||
doConnect();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -92,6 +92,10 @@ public class BmFormStruc implements Serializable {
|
||||
* 载具
|
||||
*/
|
||||
private String vehicle_code;
|
||||
/**
|
||||
* 载具组盘id
|
||||
*/
|
||||
private String vehicle_id;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.nl.wms.dispatch_manage.point.controller;
|
||||
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
|
||||
@@ -73,7 +73,7 @@ public class SchBasePoint implements Serializable {
|
||||
/**
|
||||
* 是否启用
|
||||
*/
|
||||
private String is_used;
|
||||
private Boolean is_used;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
|
||||
@@ -9,6 +9,7 @@ import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.dispatch_manage.task.service.TaskScheduleService;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
@@ -34,6 +35,8 @@ public class SchBaseTaskController {
|
||||
private ISchBaseTaskService iSchBaseTaskService;
|
||||
@Autowired
|
||||
private TaskScheduleService taskScheduleService;
|
||||
@Autowired
|
||||
private RedisTemplate redisTemplate;
|
||||
|
||||
|
||||
|
||||
@@ -81,5 +84,9 @@ public class SchBaseTaskController {
|
||||
taskScheduleService.taskPublish();
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
@GetMapping("/taskMsgSchedule")
|
||||
public ResponseEntity<Object> taskMsgSchedule() {
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,11 +29,10 @@ public abstract class AbstractTask {
|
||||
|
||||
public void updateTask(JSONObject data){
|
||||
ISchBaseTaskService taskService = SpringContextHolder.getBean(ISchBaseTaskService.class);
|
||||
String status = data.getString("status");
|
||||
SchBaseTask task = taskService.getOne(new QueryWrapper<SchBaseTask>().eq("task_code", data.getString("task_code")));
|
||||
if (!task.getStatus().equals(status) && !task.getStatus().equals(StatusEnum.FORM_STATUS.code("完成"))){
|
||||
taskService.update(new UpdateWrapper<SchBaseTask>().set("status",status).eq("task_code",data.getString("task_code")));
|
||||
}
|
||||
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||
.set("status",data.getString("status"))
|
||||
.eq("task_code",data.getString("task_code")));
|
||||
|
||||
}
|
||||
|
||||
public abstract void updateStatus(JSONObject data);
|
||||
|
||||
@@ -68,7 +68,7 @@ public class ConveyorOutStorageTask extends AbstractTask {
|
||||
throw new BadRequestException("创建任务失败:方法请求参数不能为空");
|
||||
}
|
||||
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>().eq("vehicle_code", vehicle_code)
|
||||
.ne("status", StatusEnum.FORM_STATUS.code("完成")));
|
||||
.lt("status", StatusEnum.FORM_STATUS.code("完成")));
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
throw new BadRequestException("当前载具存在任务:"+list.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(",")));
|
||||
}
|
||||
|
||||
@@ -13,9 +13,6 @@ import org.nl.common.utils.MapOf;
|
||||
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.flow_manage.flow.framework.entity.ExecutionDto;
|
||||
import org.nl.wms.flow_manage.flow.service.deployment.IActReProcdefService;
|
||||
import org.nl.wms.flow_manage.flow.service.deployment.dao.ActReProcdef;
|
||||
import org.nl.wms.flow_manage.flow.service.execution.IActRuExecutionService;
|
||||
import org.nl.wms.flow_manage.flow.service.execution.dao.ActRuExecution;
|
||||
import org.nl.wms.flow_manage.monitor.event.FlowContinueEvent;
|
||||
@@ -25,7 +22,6 @@ import org.nl.wms.md_manage.group_dick.service.dao.MdGruopDick;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dto.MdPbVehicleMaterVo;
|
||||
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
||||
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -79,6 +75,7 @@ public class GroupDickInStorageTask extends AbstractTask {
|
||||
//更新载具proc_inst_id
|
||||
String currentInstId = vehicleMater.getProc_inst_id();
|
||||
if (StringUtils.isNotEmpty(currentInstId)){
|
||||
System.out.println("载具"+vehicle_code+"任务流程信息不存在"+currentInstId);
|
||||
ActRuExecution execution = iActRuExecutionService.getById(currentInstId);
|
||||
if (execution == null){
|
||||
throw new BadRequestException("申请任务失败:载具"+vehicle_code+"任务流程信息不存在"+currentInstId);
|
||||
|
||||
@@ -22,7 +22,6 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
@@ -6,15 +6,12 @@ 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.publish.BussEventMulticaster;
|
||||
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.handler.StructEvent;
|
||||
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;
|
||||
@@ -36,7 +33,7 @@ import java.util.stream.Collectors;
|
||||
* 出库任务入库任务
|
||||
*/
|
||||
@Service
|
||||
public class moveStorageTask extends AbstractTask {
|
||||
public class MoveStorageTask extends AbstractTask {
|
||||
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
@@ -57,14 +54,10 @@ public class moveStorageTask extends AbstractTask {
|
||||
String end_struct_code = form_data.getString("end_struct_code");
|
||||
|
||||
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>().eq("vehicle_code", vehicle_code)
|
||||
.ne("status", StatusEnum.FORM_STATUS.code("完成")));
|
||||
.lt("status", StatusEnum.FORM_STATUS.code("完成")));
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
throw new BadRequestException("当前载具存在任务:"+list.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(",")));
|
||||
}
|
||||
StIvtStructattr source = iStIvtStructattrService.getOne(new QueryWrapper<StIvtStructattr>().eq("vehicle_code", vehicle_code));
|
||||
if (!source.getStruct_code().equals(start_struct_code)){
|
||||
throw new BadRequestException("载具库位变动:当前货位"+source.getStruct_code()+",移库前货位"+start_struct_code);
|
||||
}
|
||||
StIvtStructattr target = iStIvtStructattrService.getOne(new QueryWrapper<StIvtStructattr>().eq("struct_code", end_struct_code));
|
||||
if (StringUtils.isNotEmpty(target.getVehicle_code())){
|
||||
throw new BadRequestException("目标货位存在载具:"+target.getVehicle_code());
|
||||
@@ -79,7 +72,7 @@ public class moveStorageTask extends AbstractTask {
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
task.setTask_type(from.getString("task_type"));
|
||||
task.setVehicle_code(vehicle_code);
|
||||
task.setPoint_code1(source.getStruct_code());
|
||||
task.setPoint_code1(start_struct_code);
|
||||
task.setPoint_code2(end_struct_code);
|
||||
taskService.save(task);
|
||||
iMdPbVehicleMaterService.update(new LambdaUpdateWrapper<MdPbVehicleMater>()
|
||||
@@ -9,21 +9,17 @@ 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.publish.BussEventMulticaster;
|
||||
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.handler.StructEvent;
|
||||
import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl.process.classprocess.ClassProcess;
|
||||
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.nl.wms.system_manage.service.param.dao.Param;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@@ -3,25 +3,18 @@ package org.nl.wms.dispatch_manage.task.handler.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.publish.BussEventMulticaster;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.wms.dispatch_manage.task.handler.AbstractTask;
|
||||
import org.nl.wms.dispatch_manage.task.handler.StructEvent;
|
||||
import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.flow_manage.flow.service.execution.IActRuExecutionService;
|
||||
import org.nl.wms.flow_manage.flow.service.execution.dao.ActRuExecution;
|
||||
import org.nl.wms.flow_manage.monitor.event.FlowContinueEvent;
|
||||
import org.nl.wms.flow_manage.monitor.event.FlowStartEvent;
|
||||
import org.nl.wms.md_manage.group_dick.service.IMdGruopDickService;
|
||||
import org.nl.wms.md_manage.group_dick.service.dao.MdGruopDick;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dto.MdPbVehicleMaterVo;
|
||||
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
@@ -54,7 +54,7 @@ public class PickStorageTask extends AbstractTask {
|
||||
|
||||
List<SchBaseTask> list = iSchBaseTaskService.list(new QueryWrapper<SchBaseTask>()
|
||||
.eq("task_type", from.getString("task_type"))
|
||||
.ne("status", StatusEnum.FORM_STATUS.code("完成")));
|
||||
.lt("status", StatusEnum.FORM_STATUS.code("完成")));
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
throw new BadRequestException("当前载具存在任务:"+list.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(",")));
|
||||
}
|
||||
|
||||
@@ -6,12 +6,13 @@ 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.point.service.ISchBasePointService;
|
||||
import org.nl.wms.dispatch_manage.point.service.dao.SchBasePoint;
|
||||
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;
|
||||
@@ -19,7 +20,6 @@ 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;
|
||||
@@ -35,28 +35,43 @@ import java.util.stream.Collectors;
|
||||
*/
|
||||
@Service
|
||||
public class ToPickPlatformTask extends AbstractTask {
|
||||
|
||||
private static volatile String Lask_Point;
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
@Autowired
|
||||
private ISysParamService iSysParamService;
|
||||
|
||||
private ISchBaseTaskService iSchBaseTaskService;
|
||||
@Autowired
|
||||
private IStIvtStructattrService iStIvtStructattrService;
|
||||
@Autowired
|
||||
private IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
||||
@Autowired
|
||||
private ISchBasePointService iSchBasePointService;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public JSONObject createTask(JSONObject from) {
|
||||
String vehicle_code = from.getString("vehicle_code");
|
||||
String target_point = from.getString("target_point");
|
||||
String target_point = null;// = from.getString("target_point");
|
||||
|
||||
List<SchBasePoint> targetPoints = iSchBasePointService.list(new QueryWrapper<SchBasePoint>()
|
||||
.eq("region_code", "PICK01").eq("is_used", true));
|
||||
//通过全局变量获取目标位置
|
||||
if (CollectionUtils.isEmpty(targetPoints)){
|
||||
throw new BadRequestException("当前拣选工位未启用");
|
||||
}
|
||||
//轮询
|
||||
for (int i = 0; i < targetPoints.size(); i++) {
|
||||
String code = targetPoints.get(i).getCode();
|
||||
if (targetPoints.size()>1 && !code.equals(Lask_Point)){
|
||||
target_point = code;
|
||||
break;
|
||||
}
|
||||
target_point = code;
|
||||
}
|
||||
|
||||
if (StringUtils.isEmpty(vehicle_code) ||StringUtils.isEmpty(target_point)){
|
||||
throw new BadRequestException("创建任务失败:方法请求参数不能为空");
|
||||
}
|
||||
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>().eq("vehicle_code", vehicle_code)
|
||||
.ne("status", StatusEnum.FORM_STATUS.code("完成")));
|
||||
List<SchBaseTask> list = iSchBaseTaskService.list(new QueryWrapper<SchBaseTask>().eq("vehicle_code", vehicle_code)
|
||||
.lt("status", StatusEnum.FORM_STATUS.code("完成")));
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
throw new BadRequestException("当前载具存在任务:"+list.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(",")));
|
||||
}
|
||||
@@ -74,7 +89,8 @@ public class ToPickPlatformTask extends AbstractTask {
|
||||
task.setVehicle_code(vehicle_code);
|
||||
task.setPoint_code1(struct.getStruct_code());
|
||||
task.setPoint_code2(target_point);
|
||||
taskService.save(task);
|
||||
iSchBaseTaskService.save(task);
|
||||
Lask_Point = target_point;
|
||||
iMdPbVehicleMaterService.update(new LambdaUpdateWrapper<MdPbVehicleMater>()
|
||||
.set(MdPbVehicleMater::getTask_code,task.getTask_code())
|
||||
.eq(MdPbVehicleMater::getVehicle_code,task.getVehicle_code()));
|
||||
@@ -95,7 +111,7 @@ public class ToPickPlatformTask extends AbstractTask {
|
||||
@Override
|
||||
public void finish(JSONObject data) {
|
||||
this.updateTask(data);
|
||||
SchBaseTask schBaseTask = taskService.getOne(new QueryWrapper<SchBaseTask>().eq("task_code", data.getString("task_code")));
|
||||
SchBaseTask schBaseTask = iSchBaseTaskService.getOne(new QueryWrapper<SchBaseTask>().eq("task_code", data.getString("task_code")));
|
||||
iStIvtStructattrService.changeStruct(schBaseTask.getPoint_code1(),schBaseTask.getVehicle_code(),schBaseTask.getTask_type(), null,Boolean.FALSE);
|
||||
}
|
||||
|
||||
|
||||
@@ -61,4 +61,6 @@ public interface ISchBaseTaskService extends IService<SchBaseTask> {
|
||||
*/
|
||||
void operation(JSONObject param);
|
||||
|
||||
JSONObject errorTask(JSONObject param,String type);
|
||||
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ public class TaskScheduleService {
|
||||
iSchBaseTaskService.update(new UpdateWrapper<SchBaseTask>()
|
||||
.eq("task_code",resultM.get("task_code"))
|
||||
.set("status",StatusEnum.FORM_STATUS.code("暂停"))
|
||||
.set("update_time", DateUtil.now()).set("remark",resultM.get("error")));
|
||||
.set("update_time", DateUtil.now()).set("remark",resultM.get("msg")));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.nl.wms.dispatch_manage.task.service.impl;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import lombok.SneakyThrows;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
@@ -14,22 +15,28 @@ import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.publish.BussEventMulticaster;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.ListOf;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.*;
|
||||
import org.nl.wms.dispatch_manage.task.handler.AbstractTask;
|
||||
import org.nl.wms.dispatch_manage.task.handler.impl.MoveStorageTask;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.mapper.SchBaseTaskMapper;
|
||||
import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.wms.dispatch_manage.task.service.dto.SchBaseTaskQuery;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl.DecisionHandler;
|
||||
import org.nl.wms.flow_manage.flow.service.execution.IActRuExecutionService;
|
||||
import org.nl.wms.flow_manage.flow.service.execution.dao.ActRuExecution;
|
||||
import org.nl.wms.flow_manage.monitor.event.FlowContinueEvent;
|
||||
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.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -44,7 +51,14 @@ import java.util.stream.Collectors;
|
||||
public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBaseTask> implements ISchBaseTaskService {
|
||||
|
||||
@Autowired
|
||||
IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
||||
private IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
||||
@Autowired
|
||||
private IActRuExecutionService iActRuExecutionService;
|
||||
@Autowired
|
||||
private IStIvtStructattrService iStIvtStructattrService;
|
||||
@Autowired
|
||||
@Lazy
|
||||
private MoveStorageTask moveStorageTask;
|
||||
|
||||
@Override
|
||||
public IPage<SchBaseTask> queryAll(SchBaseTaskQuery whereJson, PageQuery page) {
|
||||
@@ -75,7 +89,9 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
@Override
|
||||
public void update(SchBaseTask entity) {
|
||||
SchBaseTask dto = this.baseMapper.selectById(entity.getTask_code());
|
||||
if (dto == null) throw new BadRequestException("任务信息不存在");
|
||||
if (dto == null) {
|
||||
throw new BadRequestException("任务信息不存在");
|
||||
}
|
||||
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
String now = DateUtil.now();
|
||||
@@ -106,22 +122,125 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
}
|
||||
|
||||
@Override
|
||||
public void operation(JSONObject param) {
|
||||
String task_code = param.getString("taskCode");
|
||||
public void operation(JSONObject param) {
|
||||
String task_code = param.getString("task_code");
|
||||
SchBaseTask task = this.getOne(new QueryWrapper<SchBaseTask>().eq("task_code", task_code));
|
||||
if (task.getStatus().equals(StatusEnum.FORM_STATUS.code("完成"))){
|
||||
throw new BadRequestException("当前任务已完成");
|
||||
}
|
||||
this.update(new UpdateWrapper<SchBaseTask>()
|
||||
.set("status",param.getString("status"))
|
||||
.eq("task_code", task_code));
|
||||
if (param.getString("status").equals(StatusEnum.FORM_STATUS.code("完成"))){
|
||||
MdPbVehicleMater vehicleMater = iMdPbVehicleMaterService.getOne(new QueryWrapper<MdPbVehicleMater>()
|
||||
.eq("vehicle_code", task.getVehicle_code()));
|
||||
if (!StringUtils.isEmpty(vehicleMater.getProc_inst_id())){
|
||||
if (vehicleMater!=null && !StringUtils.isEmpty(vehicleMater.getProc_inst_id())){
|
||||
FlowContinueEvent continueEvent = new FlowContinueEvent(vehicleMater.getProc_inst_id(), null, null);
|
||||
BussEventMulticaster.Publish(continueEvent);
|
||||
}else {
|
||||
String handleClass = task.getHandle_class();
|
||||
try {
|
||||
AbstractTask bean = (AbstractTask)SpringContextHolder.getBean(Class.forName(handleClass));
|
||||
bean.finish(param);
|
||||
}catch (Exception ex){
|
||||
throw new BadRequestException(ex.getMessage());
|
||||
}
|
||||
}
|
||||
}else {
|
||||
this.update(new UpdateWrapper<SchBaseTask>()
|
||||
.set("status",param.getString("status"))
|
||||
.eq("task_code", task_code));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
"type":
|
||||
"rm" 入满 标记目标货位异常,重新分配货位;更新任务终点,反馈目的货位
|
||||
"rzd"入库阻挡 异常位生成移库单,标记目标货位异常,后续人工处理;更新任务终点,反馈目的货位
|
||||
"ck"空出 修改目标货位为空位,任务直接取消,不扣件关联单据已出库数量
|
||||
"czd"取货阻挡 异常位生成移库单,标记目标货位异常,后续人工处理;任务重新下发
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public JSONObject errorTask(JSONObject param, String type) {
|
||||
String task_code = param.getString("task_code");
|
||||
String struct_code = param.getString("struct_code");
|
||||
StIvtStructattr stIvtStructattr = iStIvtStructattrService.getOne(new QueryWrapper<StIvtStructattr>().eq("struct_code", struct_code));
|
||||
SchBaseTask task = this.getOne(new QueryWrapper<SchBaseTask>().eq("task_code", task_code));
|
||||
|
||||
switch (type){
|
||||
case "ck":
|
||||
MdPbVehicleMater vehicleCode = iMdPbVehicleMaterService.getOne(new QueryWrapper<MdPbVehicleMater>().eq("vehicle_code", task.getVehicle_code()));
|
||||
iActRuExecutionService.update(new UpdateWrapper<ActRuExecution>()
|
||||
.set("status",StatusEnum.FLOW_STATUS.code("异常完成"))
|
||||
.set("remark",task.getVehicle_code()+"载具空出:货位"+struct_code)
|
||||
.eq("proc_inst_id",vehicleCode.getProc_inst_id()));
|
||||
iStIvtStructattrService.update(new UpdateWrapper<StIvtStructattr>()
|
||||
.set("update_time", DateUtil.now())
|
||||
.set("vehicle_code",null)
|
||||
.set("remark",struct_code+"出库异常")
|
||||
.eq("struct_code", struct_code));
|
||||
this.update(new UpdateWrapper<SchBaseTask>()
|
||||
.set("status",StatusEnum.FORM_STATUS.code("取消"))
|
||||
.set("remark",struct_code+"出库异常")
|
||||
.set("update_time",DateUtil.now())
|
||||
.eq("task_code",task_code));
|
||||
break;
|
||||
case "rm":
|
||||
return dicisionStruct(struct_code,stIvtStructattr, task);
|
||||
case "rzd":
|
||||
iStIvtStructattrService.update(new UpdateWrapper<StIvtStructattr>()
|
||||
.set("update_time", DateUtil.now())
|
||||
.set("vehicle_code",null)
|
||||
.set("lock_type",StatusEnum.LOCK.code("无锁"))
|
||||
.eq("struct_code", task.getPoint_code2()));
|
||||
return dicisionStruct(struct_code,stIvtStructattr, task);
|
||||
case "czd":
|
||||
moveTask(task_code, struct_code, stIvtStructattr);
|
||||
break;
|
||||
default:
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void moveTask(String task_code, String struct_code, StIvtStructattr stIvtStructattr) {
|
||||
AtomicReference<String> moveStruct = new AtomicReference<>();
|
||||
this.update(new UpdateWrapper<SchBaseTask>()
|
||||
.set("status",StatusEnum.FORM_STATUS.code("生成"))
|
||||
.set("remark",struct_code+"出库阻挡二次下发")
|
||||
.set("update_time",DateUtil.now())
|
||||
.eq("task_code",task_code));
|
||||
RedissonUtils.lock(()->{
|
||||
System.out.println("---3--"+Thread.currentThread().getName());
|
||||
Map process = SpringContextHolder.getBean(DecisionHandler.class).dispenseTransa(ListOf.of("nearby"), new JSONObject(MapOf.of("stor_code", stIvtStructattr.getStor_code())));
|
||||
moveStruct.set(((Map<String, String>) process.get("form_data")).get("end_struct_code"));
|
||||
},"1"+ stIvtStructattr.getStor_code(),5);
|
||||
Map moveForm = MapOf.of("task_type", StatusEnum.IOBILL_TYPE_MOVE.code("异常位移库")
|
||||
, "is_send", false
|
||||
, "vehicle_code", "YCZJ" + task_code, "form_data", new JSONObject(MapOf.of("start_struct_code", struct_code, "end_struct_code", moveStruct.get())));
|
||||
moveStorageTask.createTask(new JSONObject(moveForm));
|
||||
}
|
||||
|
||||
private JSONObject dicisionStruct(String struct_code, StIvtStructattr stIvtStructattr, SchBaseTask task) {
|
||||
String task_code = task.getTask_code();
|
||||
MdPbVehicleMater vehicleCode = iMdPbVehicleMaterService.getOne(new QueryWrapper<MdPbVehicleMater>().eq("vehicle_code", task.getVehicle_code()));
|
||||
//查询分配规则
|
||||
Map map = SpringContextHolder.getBean(DecisionHandler.class)
|
||||
.dispenseTransa(ListOf.of("nearby"), new JSONObject(MapOf.of("stor_code", stIvtStructattr.getStor_code())));
|
||||
String new_struct_code = ((Map<String, String>) map.get("form_data")).get("end_struct_code");
|
||||
|
||||
iActRuExecutionService.update(new UpdateWrapper<ActRuExecution>()
|
||||
.set("remark", struct_code +"入满异常重新分配货位"+new_struct_code)
|
||||
.eq("proc_inst_id",vehicleCode.getProc_inst_id()));
|
||||
this.update(new UpdateWrapper<SchBaseTask>()
|
||||
.set("point_code2",new_struct_code)
|
||||
.set("remark", struct_code +"入满异常重新分配货位"+new_struct_code)
|
||||
.eq("task_code", task_code));
|
||||
iStIvtStructattrService.update(new UpdateWrapper<StIvtStructattr>()
|
||||
.eq("struct_code", struct_code)
|
||||
.set("lock_type",StatusEnum.LOCK.code("异常锁定"))
|
||||
.set("update_time",DateUtil.now())
|
||||
.set("remark","入满异常:"+ task_code)
|
||||
.set("vehicle_code","YCZJ"+ task_code));
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("point_code2",new_struct_code);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,22 @@
|
||||
package org.nl.wms.external_system;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.common.utils.RedissonUtils;
|
||||
import org.nl.wms.base_manage.vehicle.service.IBmVehicleInfoService;
|
||||
import org.nl.wms.base_manage.vehicle.service.dao.BmVehicleInfo;
|
||||
import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.external_system.acs.service.AcsToWmsService;
|
||||
import org.nl.wms.external_system.dto.InteracteDto;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/5/6 14:53
|
||||
@@ -20,18 +29,44 @@ public class GateWayService {
|
||||
|
||||
@Autowired
|
||||
private ISchBaseTaskService iSchBaseTaskService;
|
||||
@Autowired
|
||||
private IBmVehicleInfoService iBmVehicleInfoService;
|
||||
|
||||
|
||||
public void apply(InteracteDto param){
|
||||
public JSONObject apply(InteracteDto<Map> param){
|
||||
JSONObject jsonObject = new JSONObject(param.getData());
|
||||
//处理日志相关
|
||||
JSONObject result = new JSONObject();
|
||||
String service = param.getService();
|
||||
String type = param.getType();
|
||||
//根据服务拆分不同的业务
|
||||
|
||||
if (service.equals("InStorage")){
|
||||
acsToWmsService.applyTask(param.getService(), type, (JSONObject) JSON.toJSON(param.getData()));
|
||||
RedissonUtils.lock(()->{
|
||||
acsToWmsService.applyTask(param.getService(), type, jsonObject);
|
||||
},param.getService() + param.getType(),null);
|
||||
}
|
||||
if (service.equals("Task")){
|
||||
iSchBaseTaskService.operation((JSONObject) JSON.toJSON(param.getData()));
|
||||
iSchBaseTaskService.operation(jsonObject);
|
||||
}
|
||||
if (service.equals("DeviceInfo")){
|
||||
String vehicle_code = jsonObject.getString("vehicle");
|
||||
if (StringUtils.isEmpty(vehicle_code)){
|
||||
throw new BadRequestException("参数vehicle不能为空");
|
||||
}
|
||||
BmVehicleInfo vehicle = iBmVehicleInfoService.getOne(new QueryWrapper<BmVehicleInfo>()
|
||||
.eq("vehicle_code", vehicle_code));
|
||||
Integer h = vehicle.getH();
|
||||
result.putAll(MapOf.of("height",h,"type",(h-200)/20));
|
||||
}
|
||||
if (service.equals("ErrorTask")){
|
||||
AtomicReference<JSONObject> reference = new AtomicReference<>(new JSONObject());
|
||||
RedissonUtils.lock(()->{
|
||||
reference.set(iSchBaseTaskService.errorTask(jsonObject, param.getType()));
|
||||
},param.getService() + param.getType(),null);
|
||||
return reference.get();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
package org.nl.wms.external_system.acs.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.anno.Log;
|
||||
import org.nl.common.domain.exception.handler.ApiError;
|
||||
import org.nl.common.utils.RedissonUtils;
|
||||
import org.nl.wms.external_system.GateWayService;
|
||||
import org.nl.wms.external_system.dto.InteracteDto;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
@@ -14,6 +17,8 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/5/6 14:53
|
||||
@@ -27,8 +32,12 @@ public class AcsToWmsController {
|
||||
|
||||
@PostMapping("/apply")
|
||||
@SaIgnore
|
||||
@Log("acs请求wms")
|
||||
public ResponseEntity<Object> apply(@RequestBody InteracteDto form) {
|
||||
gateWayService.apply(form);
|
||||
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
||||
try {
|
||||
return new ResponseEntity<>(TableDataInfo.buildJson(gateWayService.apply(form)),HttpStatus.OK);
|
||||
}catch (Exception ex){
|
||||
return new ResponseEntity<>(ApiError.error(ex.getMessage()),HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,16 @@ import java.util.Map;
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/5/6 14:53
|
||||
*
|
||||
{
|
||||
"service": "ZPInStorage",
|
||||
"ip": "ip_7va9w",
|
||||
"request_time": "request_time_pbi5u",
|
||||
"trace_id": "trace_id_xl8dk",
|
||||
"data": {
|
||||
"D00018": "start001"
|
||||
}
|
||||
}
|
||||
*/
|
||||
@Service
|
||||
public class AcsToWmsService {
|
||||
@@ -39,23 +49,13 @@ public class AcsToWmsService {
|
||||
|
||||
public void applyTask(String service,String type,JSONObject data){
|
||||
if (service.equals("InStorage")){
|
||||
/*
|
||||
{
|
||||
"service": "ZPInStorage",
|
||||
"ip": "ip_7va9w",
|
||||
"request_time": "request_time_pbi5u",
|
||||
"trace_id": "trace_id_xl8dk",
|
||||
"data": {
|
||||
"D00018": "start001"
|
||||
}
|
||||
}
|
||||
* */
|
||||
|
||||
applyTaskMap.get(type).createTask(data);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
public void updateTAsk(String type,JSONObject data){
|
||||
public void updateTask(String type,JSONObject data){
|
||||
String task_code = data.getString("task_code");
|
||||
SchBaseTask task = iSchBaseTaskService.getOne(new QueryWrapper<SchBaseTask>().eq("task_code", task_code)
|
||||
.lt("status", StatusEnum.FORM_STATUS.code("完成")));
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
package org.nl.wms.external_system.acs.service;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.apache.commons.beanutils.ConvertUtils;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.utils.InterationUtil;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.common.utils.SpringContextHolder;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.external_system.dto.InteracteDto;
|
||||
@@ -32,6 +35,26 @@ public class WmsToAcsService implements InitializingBean {
|
||||
.eq("form_type","sch_base_task"));
|
||||
}
|
||||
|
||||
public TableDataInfo changeMode(String deviceCode,String type,String mode){
|
||||
InteracteDto dto = InteracteDto.builder().service("wmsToAcsService")
|
||||
.trace_id(MDC.get("trace_id"))
|
||||
.type(type)
|
||||
.data(MapOf.of("device_code", deviceCode, "type", mode))
|
||||
.build();
|
||||
TableDataInfo result = InterationUtil.notifyExt("/api/wmsToAcs/apply", (JSONObject) JSON.toJSON(dto));
|
||||
return result;
|
||||
}
|
||||
|
||||
public TableDataInfo toCommand(String deviceCode,String toCommand){
|
||||
InteracteDto<Object> dto = InteracteDto.builder().service("wmsToAcsService")
|
||||
.trace_id(MDC.get("trace_id"))
|
||||
.type("toCommand")
|
||||
.data(MapOf.of("device_code", deviceCode, "toCommand", toCommand))
|
||||
.build();
|
||||
TableDataInfo result = InterationUtil.notifyExt("/api/wmsToAcs/apply", (JSONObject) JSON.toJSON(dto));
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 系统交互
|
||||
*/
|
||||
|
||||
@@ -10,6 +10,7 @@ import lombok.NoArgsConstructor;
|
||||
import org.nl.common.utils.IPUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
@@ -19,7 +20,7 @@ import java.util.List;
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class InteracteDto {
|
||||
public class InteracteDto<T> {
|
||||
|
||||
private String service;
|
||||
private String type;
|
||||
@@ -29,5 +30,5 @@ public class InteracteDto {
|
||||
/**
|
||||
* 要么JSONArray要么JSONObject
|
||||
*/
|
||||
private Object data;
|
||||
private T data;
|
||||
}
|
||||
|
||||
@@ -5,10 +5,17 @@ import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.anno.Log;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.flow_manage.flow.service.deployment.IActReProcdefService;
|
||||
import org.nl.wms.flow_manage.flow.service.execution.IActRuExecutionService;
|
||||
import org.nl.wms.flow_manage.flow.service.execution.IFlowOperationService;
|
||||
@@ -16,15 +23,20 @@ import org.nl.wms.flow_manage.flow.service.execution.dao.ActRuExecution;
|
||||
import org.nl.wms.flow_manage.flow.service.execution.dto.ExecutionQuery;
|
||||
import org.nl.wms.flow_manage.flow.service.history.IActHiExecutionService;
|
||||
import org.nl.wms.flow_manage.flow.service.history.dao.ActHiExecution;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
@@ -37,18 +49,22 @@ public class ExecutionController {
|
||||
|
||||
|
||||
@Autowired
|
||||
IFlowOperationService flowOperationService;
|
||||
private IFlowOperationService iFlowOperationService;
|
||||
@Autowired
|
||||
private IActRuExecutionService executionService;
|
||||
private IActRuExecutionService iActRuExecutionService;
|
||||
@Autowired
|
||||
private IActHiExecutionService iActHiExecutionService;
|
||||
@Autowired
|
||||
private IActReProcdefService procdefService;
|
||||
private IActReProcdefService iActReProcdefService;
|
||||
@Autowired
|
||||
private IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
||||
@Autowired
|
||||
private ISchBaseTaskService iSchBaseTaskService;
|
||||
|
||||
|
||||
@GetMapping
|
||||
public ResponseEntity<Object> getAll(ExecutionQuery query, PageQuery page) {
|
||||
return new ResponseEntity<>(executionService.getAll(query, page), HttpStatus.OK);
|
||||
return new ResponseEntity<>(iActRuExecutionService.getAll(query, page), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
@@ -56,7 +72,7 @@ public class ExecutionController {
|
||||
dto.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
dto.setCreate_time(DateUtil.now());
|
||||
dto.setProc_inst_id(IdUtil.getStringId());
|
||||
executionService.save(dto);
|
||||
iActRuExecutionService.save(dto);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@@ -64,7 +80,7 @@ public class ExecutionController {
|
||||
public ResponseEntity<Object> update(@Validated @RequestBody ActRuExecution dto) {
|
||||
dto.setStatus(StatusEnum.MODEL_STATUS.code("未发布"));
|
||||
dto.setUpdate_time(DateUtil.now());
|
||||
executionService.updateById(dto);
|
||||
iActRuExecutionService.updateById(dto);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@@ -74,10 +90,10 @@ public class ExecutionController {
|
||||
removeCollect.addAll(Arrays.asList(ids));
|
||||
if (ids.length > 0) {
|
||||
for (String proc_inst_id : ids) {
|
||||
removeCollect.addAll(executionService.getChildList(proc_inst_id));
|
||||
removeCollect.addAll(iActRuExecutionService.getChildList(proc_inst_id));
|
||||
}
|
||||
if (removeCollect.size()>0){
|
||||
executionService.removeByIds(removeCollect);
|
||||
iActRuExecutionService.removeByIds(removeCollect);
|
||||
}
|
||||
}
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
@@ -102,30 +118,56 @@ public class ExecutionController {
|
||||
}
|
||||
|
||||
@GetMapping(value = "/confirm/{proc_inst_id}")
|
||||
@Log("手动触发流程")
|
||||
public ResponseEntity<Object> flowConfirm(@PathVariable String proc_inst_id) {
|
||||
return new ResponseEntity<>(flowOperationService.flowConfirm(proc_inst_id, null, null, null), HttpStatus.OK);
|
||||
return new ResponseEntity<>(iFlowOperationService.flowConfirm(proc_inst_id, null, null, null), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping(value = "/queryByParentId/{id}")
|
||||
public ResponseEntity<Object> queryByParentId(@PathVariable String id) {
|
||||
LambdaQueryWrapper<ActRuExecution> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.eq(ActRuExecution::getParent_id, id);
|
||||
return new ResponseEntity<>(executionService.list(lqw), HttpStatus.OK);
|
||||
return new ResponseEntity<>(iActRuExecutionService.list(lqw), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping(value = "/getDeploymentById/{id}")
|
||||
public ResponseEntity<Object> getDeploymentById(@PathVariable String id) {
|
||||
return new ResponseEntity<>(procdefService.getById(id), HttpStatus.OK);
|
||||
return new ResponseEntity<>(iActReProcdefService.getById(id), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/changePdfActive")
|
||||
public ResponseEntity<Object> changePdfActive(@Validated @RequestBody ActRuExecution dto) {
|
||||
executionService.updateById(dto);
|
||||
iActRuExecutionService.updateById(dto);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping(value = "/queryHisActivityId/{proc_inst_id}")
|
||||
public ResponseEntity<Object> queryHisActivityId(@PathVariable String proc_inst_id) {
|
||||
return new ResponseEntity<>(executionService.queryHisActivityId(proc_inst_id), HttpStatus.OK);
|
||||
return new ResponseEntity<>(iActRuExecutionService.queryHisActivityId(proc_inst_id), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping(value = "/errorFinish/{proc_inst_id}")
|
||||
@Log("异常中断流程")
|
||||
public ResponseEntity<Object> errorFinish(@PathVariable String proc_inst_id) {
|
||||
List<MdPbVehicleMater> vehicleMaters = iMdPbVehicleMaterService.list(new QueryWrapper<MdPbVehicleMater>()
|
||||
.eq("proc_inst_id", proc_inst_id)
|
||||
.eq("is_delete", false)
|
||||
.select("vehicle_code"));
|
||||
if (!CollectionUtils.isEmpty(vehicleMaters)){
|
||||
List<SchBaseTask> tasks = iSchBaseTaskService.list(new QueryWrapper<SchBaseTask>()
|
||||
.select("task_code")
|
||||
.nested(query->{
|
||||
query.eq("status",StatusEnum.FORM_STATUS.code("生成"))
|
||||
.or().eq("status",StatusEnum.FORM_STATUS.code("暂停"));
|
||||
})
|
||||
.in("vehicle_code", vehicleMaters.stream().map(MdPbVehicleMater::getVehicle_code).collect(Collectors.toList())));
|
||||
if (!CollectionUtils.isEmpty(tasks)){
|
||||
throw new BadRequestException("当前流程存在执行中的任务无法异常中断,操作完任务后在终止流程"+tasks.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(",")));
|
||||
}
|
||||
}
|
||||
iActRuExecutionService.update(new UpdateWrapper<ActRuExecution>()
|
||||
.set("status",StatusEnum.FLOW_STATUS.code("异常完成"))
|
||||
.eq("proc_inst_id",proc_inst_id));
|
||||
return new ResponseEntity<>(TableDataInfo.build(), HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,7 +73,6 @@ public abstract class FlowNodeActivityBehavior<T> {
|
||||
.set("form_id",entity.getForm_id())
|
||||
.set("update_time", DateUtil.now()));
|
||||
this.leaveActivity(entity);
|
||||
//
|
||||
}catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
log.error(entity.getActivityName()+"流程执行异常:{}",ex.getMessage());
|
||||
|
||||
@@ -42,8 +42,7 @@ public class EndEventActivityBehavior extends FlowNodeActivityBehavior<JSONObjec
|
||||
private IActReProcdefService reProcdefService;
|
||||
@Autowired
|
||||
private BpmnJSONConverter bpmnJSONConverter;
|
||||
@Autowired
|
||||
private CommandExecutor commandExecutor;
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
|
||||
@@ -67,6 +67,8 @@ public class StrucFormActivityBehavior extends FlowNodeActivityBehavior<JSONObje
|
||||
.eq("activity_id", source_data)
|
||||
.eq("proc_inst_id", entity.getProc_inst_id()));
|
||||
sourceData = one.getForm_data();
|
||||
//将外部数据带进去
|
||||
sourceData.getJSONObject("t").put("node_t",entity.getT().getJSONObject("t"));
|
||||
}
|
||||
//处理自定义参数:
|
||||
if (currentNode.getSkipExpression()!=null || currentNode.getSkipExpression().size()>0){
|
||||
|
||||
@@ -89,7 +89,7 @@ public class DecisionHandler extends TypeHandler<JSONObject,ExecutionEntity<JSON
|
||||
System.out.println("---3--"+Thread.currentThread().getName());
|
||||
Map<String, String> process = SpringContextHolder.getBean(DecisionHandler.class).dispenseTransa(params, iostorinvdtl);
|
||||
atomicResult.set(process);
|
||||
},decisioner.strategyConfig.getStrategy_type()+iostorinvdtl.getString("stor_code"),10);
|
||||
},decisioner.strategyConfig.getStrategy_type()+iostorinvdtl.getString("stor_code"),5);
|
||||
return atomicResult.get();
|
||||
}
|
||||
@Transactional(propagation= Propagation.REQUIRES_NEW)
|
||||
|
||||
@@ -1,25 +1,18 @@
|
||||
package org.nl.wms.flow_manage.flow.service.classprocessimpl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import lombok.SneakyThrows;
|
||||
import org.apache.commons.lang3.ClassUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.publish.BussEventMulticaster;
|
||||
|
||||
|
||||
import org.nl.common.utils.ListOf;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.common.utils.SpelUtil;
|
||||
import org.nl.common.utils.SpringContextHolder;
|
||||
import org.nl.wms.dispatch_manage.task.handler.AbstractTask;
|
||||
import org.nl.wms.dispatch_manage.task.handler.StructEvent;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl.process.classprocess.ClassProcess;
|
||||
|
||||
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
@@ -23,4 +23,6 @@ public interface IActRuExecutionService extends IService<ActRuExecution> {
|
||||
|
||||
|
||||
List<String> getChildList(String proc_inst_id);
|
||||
|
||||
String getParentByChild(String proc_inst_id);
|
||||
}
|
||||
|
||||
@@ -27,4 +27,15 @@ public interface ActRuExecutionMapper extends BaseMapper<ActRuExecution> {
|
||||
" ) t3\n" +
|
||||
" where childId != '0'")
|
||||
String findAllChild(String proc_inst_id);
|
||||
@Select("select min(inst_id) from (SELECT\n" +
|
||||
"@r AS inst_id,\n" +
|
||||
"( SELECT @r := parent_id FROM act_ru_execution WHERE proc_inst_id = inst_id ) AS parentId,\n" +
|
||||
"@l := @l + 1 AS L \n" +
|
||||
"FROM\n" +
|
||||
"\t( SELECT @r := #{proc_inst_id}, @l := 0 ) vars,\n" +
|
||||
"\tact_ru_execution h \n" +
|
||||
"WHERE\n" +
|
||||
"\t@r <> 0 \n" +
|
||||
"\tAND parent_id > 0 ) as d")
|
||||
String findParent(String proc_inst_id);
|
||||
}
|
||||
|
||||
@@ -105,4 +105,9 @@ public class ActRuExecutionServiceImpl extends ServiceImpl<ActRuExecutionMapper,
|
||||
}
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getParentByChild(String proc_inst_id) {
|
||||
return this.baseMapper.findParent(proc_inst_id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ public class FlowOperationServiceImpl implements IFlowOperationService {
|
||||
//判断子流程
|
||||
List<ActRuExecution> childList = iActRuExecutionService.list(new QueryWrapper<ActRuExecution>()
|
||||
.eq("parent_id", proc_inst_id)
|
||||
.ne("status", StatusEnum.FLOW_STATUS.code("完成")));
|
||||
.lt("status", StatusEnum.FLOW_STATUS.code("完成")));
|
||||
if (!CollectionUtils.isEmpty(childList)){
|
||||
throw new BadRequestException("当前流程存在未完成的子流程");
|
||||
}
|
||||
|
||||
@@ -23,5 +23,12 @@ public interface IMdPbVehicleMaterService extends IService<MdPbVehicleMater> {
|
||||
|
||||
List<MdPbVehicleMaterVo> getVehicleMaters(String vehicle_code);
|
||||
|
||||
/**
|
||||
* 载具编码与id对应关系
|
||||
* @param vehicle_code
|
||||
* @return
|
||||
*/
|
||||
Map<String, String> getVehicleCode2Id(String...vehicle_code);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -66,6 +66,10 @@ public class MdPbVehicleMater implements Serializable {
|
||||
* 载具锁定
|
||||
*/
|
||||
private Boolean is_lock;
|
||||
/**
|
||||
* 载具是否出库
|
||||
*/
|
||||
private Boolean is_delete;
|
||||
|
||||
/**
|
||||
* 数量计量单位标识
|
||||
|
||||
@@ -7,10 +7,12 @@ import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dao.mapper.MdPbVehicleMaterMapper;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dto.MdPbVehicleMaterVo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -39,4 +41,16 @@ public class MdPbVehicleMaterServiceImpl extends ServiceImpl<MdPbVehicleMaterMap
|
||||
public List<MdPbVehicleMaterVo> getVehicleMaters(String vehicle_code) {
|
||||
return this.baseMapper.getVehicleMaters(vehicle_code);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, String> getVehicleCode2Id(String... vehicle_code) {
|
||||
if (vehicle_code!=null){
|
||||
List<MdPbVehicleMater> list = this.list(new QueryWrapper<MdPbVehicleMater>()
|
||||
.in("vehicle_code", vehicle_code)
|
||||
.eq("is_delete", false));
|
||||
Map<String, String> collect = list.stream().collect(HashMap::new, (map, vehicle) -> map.put(vehicle.getVehicle_code(), vehicle.getId()), HashMap::putAll);
|
||||
return collect;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,7 +95,10 @@ public class PmFormData implements Serializable {
|
||||
* 载具
|
||||
*/
|
||||
private String vehicle_code;
|
||||
|
||||
/**
|
||||
* 载具组盘id
|
||||
*/
|
||||
private String vehicle_id;
|
||||
|
||||
/**
|
||||
* 自定义表单字段
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
<result property="material_spec" column="material_spec"/>
|
||||
<result property="single_weight" column="single_weight"/>
|
||||
<result property="vehicle_code" column="vehicle_code"/>
|
||||
<result property="vehicle_id" column="vehicle_id"/>
|
||||
<result property="parent_id" column="parent_id"/>
|
||||
<result property="form_data" column="form_data" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
|
||||
<result property="unit_id" column="unit_id"/>
|
||||
|
||||
@@ -121,6 +121,10 @@ public class PmFormDataDto implements Serializable {
|
||||
* 载具
|
||||
*/
|
||||
private String vehicle_code;
|
||||
/**
|
||||
* 载具组盘id
|
||||
*/
|
||||
private String vehicle_id;
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -164,7 +164,7 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
|
||||
formMap.put(item.getString("value"), item);
|
||||
}, HashMap::putAll);
|
||||
//基础字段
|
||||
Set<String> fields = ListOf.ofSet(formStruc.getBiz_code(), formStruc.getBiz_id(), formStruc.getBiz_code(), formStruc.getBiz_status(), formStruc.getMaterial_id(), formStruc.getPcsn(), formStruc.getVehicle_code(), formStruc.getUnit_id(), formStruc.getQty());
|
||||
Set<String> fields = ListOf.ofSet(formStruc.getBiz_code(), formStruc.getBiz_id(), formStruc.getBiz_code(), formStruc.getBiz_status(), formStruc.getMaterial_id(), formStruc.getPcsn(), formStruc.getVehicle_code(), formStruc.getVehicle_id(),formStruc.getUnit_id(), formStruc.getQty());
|
||||
JSONObject data = fieldMapping(fields, fieldMapping, sourceData);
|
||||
data.put("form_type",formStruc.getForm_type());
|
||||
JSONObject form_param = formStruc.getForm_param();
|
||||
|
||||
@@ -4,6 +4,7 @@ package org.nl.wms.stor_manage.io.controller;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.anno.Log;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.stor_manage.io.service.dto.StorInvQuery;
|
||||
@@ -90,7 +91,14 @@ public class StIvtIostorinvOutController {
|
||||
@PostMapping("/taskOpen")
|
||||
public ResponseEntity<Object> taskOpen(@RequestBody JSONObject dtl) {
|
||||
iStIvtIostorinvService.taskOpen(dtl);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/cancelMst/{inv_id}")
|
||||
@Log("强制取消单据")
|
||||
public ResponseEntity<Object> cancelMst(@PathVariable String inv_id) {
|
||||
iStIvtIostorinvService.cancelMst(inv_id);
|
||||
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ public interface IStIvtIostorinvService extends IService<StIvtIostorinv> {
|
||||
void cancelVehicle(JSONObject form);
|
||||
|
||||
String canceldispense(JSONObject form);
|
||||
String cancelMst(String id);
|
||||
|
||||
void taskOpen(JSONObject form);
|
||||
}
|
||||
|
||||
@@ -93,6 +93,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
|
||||
iStIvtIostorinvDtlService.update(new UpdateWrapper<StIvtIostorinvdtl>()
|
||||
.set("update_time", now)
|
||||
.set("vehicle_code",vehicleMaters.stream().map(MdPbVehicleMater::getVehicle_code).collect(Collectors.joining(",")))
|
||||
.set("vehicle_id",vehicleMaters.stream().map(MdPbVehicleMater::getId).collect(Collectors.joining(",")))
|
||||
.eq("id", dtl.getId())
|
||||
);
|
||||
//更新组单据
|
||||
@@ -163,12 +164,15 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
|
||||
throw new BadRequestException("取消分配失败:请求参数不能为空");
|
||||
}
|
||||
StIvtIostorinvdtl dtl = form.toJavaObject(StIvtIostorinvdtl.class);
|
||||
String[] vehicles = dtl.getVehicle_code().split(",");
|
||||
iMdPbVehicleMaterService.remove(new QueryWrapper<MdPbVehicleMater>().in("vehicle_code",Arrays.asList(vehicles)));
|
||||
iMdGruopDickService.remove(new QueryWrapper<MdGruopDick>().in("vehicle_code",Arrays.asList(vehicles)));
|
||||
String[] vehicles = dtl.getVehicle_id().split(",");
|
||||
iMdPbVehicleMaterService.remove(new QueryWrapper<MdPbVehicleMater>().in("id",Arrays.asList(vehicles)));
|
||||
iMdGruopDickService.remove(new QueryWrapper<MdGruopDick>()
|
||||
.in("vehicle_code",Arrays.asList(dtl.getVehicle_id().split(",")))
|
||||
.lt("status",StatusEnum.FORM_STATUS.code("完成")));
|
||||
iStIvtIostorinvDtlService.update(new UpdateWrapper<StIvtIostorinvdtl>()
|
||||
.set("update_time",DateUtil.now())
|
||||
.set("vehicle_code",null)
|
||||
.set("vehicle_id",null)
|
||||
.eq("id",dtl.getId())
|
||||
);
|
||||
this.update(new UpdateWrapper<StIvtIostorinv>()
|
||||
@@ -186,8 +190,10 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
|
||||
throw new BadRequestException("分配失败,当前出库分配无可用货位");
|
||||
}
|
||||
String vehicle_code = map.get("vehicle_code");
|
||||
Map<String, String> stringMap = iMdPbVehicleMaterService.getVehicleCode2Id(vehicle_code.split(","));
|
||||
iStIvtIostorinvDtlService.update(new UpdateWrapper<StIvtIostorinvdtl>()
|
||||
.set("vehicle_code",vehicle_code)
|
||||
.set("vehicle_id",stringMap.values().stream().collect(Collectors.joining(",")))
|
||||
.eq("id",form.getString("id")));
|
||||
int count = iStIvtIostorinvDtlService.count(new QueryWrapper<StIvtIostorinvdtl>()
|
||||
.eq("inv_id", form.getString("inv_id")).isNull("vehicle_code"));
|
||||
@@ -208,9 +214,11 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
|
||||
//更新点位锁,删除分配
|
||||
iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
|
||||
.set("frozen_qty", 0)
|
||||
.eq("is_delete",false)
|
||||
.in("vehicle_code", Arrays.asList(split)));
|
||||
iStIvtIostorinvDtlService.update(new UpdateWrapper<StIvtIostorinvdtl>()
|
||||
.set("vehicle_code",null)
|
||||
.set("vehicle_id",null)
|
||||
.eq("id",form.getString("id")));
|
||||
|
||||
this.update(new UpdateWrapper<StIvtIostorinv>()
|
||||
@@ -245,4 +253,22 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
|
||||
.set("update_name",SecurityUtils.getCurrentNickName())
|
||||
.eq("id",form.getString("id")));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String cancelMst(String id) {
|
||||
StIvtIostorinv mst = this.getById(id);
|
||||
List<StIvtIostorinvdtl> iostorinvdtls = iStIvtIostorinvDtlService.list(new QueryWrapper<StIvtIostorinvdtl>().eq("inv_id", id));
|
||||
String collect = iostorinvdtls.stream().map(StIvtIostorinvdtl::getVehicle_id).collect(Collectors.joining(","));
|
||||
if (StringUtils.isNotEmpty(collect)){
|
||||
String[] split = collect.split(",");
|
||||
//更新点位锁,删除分配
|
||||
iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
|
||||
.set("frozen_qty", 0)
|
||||
.in("id", Arrays.asList(split)));
|
||||
}
|
||||
this.update(new UpdateWrapper<StIvtIostorinv>()
|
||||
.set("status",StatusEnum.FORM_STATUS.code("取消"))
|
||||
.eq("id",id));
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,7 +74,10 @@ public class StIvtIostorinvdtl implements Serializable {
|
||||
* 分配的载具
|
||||
*/
|
||||
private String vehicle_code;
|
||||
|
||||
/**
|
||||
* 组盘记录表id
|
||||
*/
|
||||
private String vehicle_id;
|
||||
|
||||
/**
|
||||
* 仓库
|
||||
@@ -92,7 +95,7 @@ public class StIvtIostorinvdtl implements Serializable {
|
||||
|
||||
|
||||
@TableField(typeHandler = FastjsonTypeHandler.class)
|
||||
private JSONObject form_data = new JSONObject();;
|
||||
private JSONObject form_data = new JSONObject();
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -72,6 +72,7 @@ public class StIvtIostorinvdtlVo {
|
||||
* 分配的载具
|
||||
*/
|
||||
private String vehicle_code;
|
||||
private String vehicle_id;
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -73,14 +73,16 @@ public class StIvtIostorinvdtlServiceImpl extends ServiceImpl<StIvtIostorinvdtlM
|
||||
}
|
||||
List<StIvtIostorinvdtl> dtl = this.list(new QueryWrapper<StIvtIostorinvdtl>().eq("inv_id", inv_id));
|
||||
for (StIvtIostorinvdtl iostorinvdtl : dtl) {
|
||||
for (String vehicle_code : iostorinvdtl.getVehicle_code().split(",")) {
|
||||
for (String vehicle_id : iostorinvdtl.getVehicle_id().split(",")) {
|
||||
StIvtIostorinvdtlVo vo = new StIvtIostorinvdtlVo();
|
||||
BeanUtils.copyProperties(iostorinvdtl,vo);
|
||||
MdPbVehicleMater one = iMdPbVehicleMaterService.getOne(new QueryWrapper<MdPbVehicleMater>()
|
||||
.eq("vehicle_code", vehicle_code)
|
||||
.eq("id", vehicle_id)
|
||||
.eq("is_delete", false)
|
||||
.eq("material_id", iostorinvdtl.getMaterial_id()));
|
||||
vo.setVehicleMater(one);
|
||||
vo.setVehicle_code(vehicle_code);
|
||||
vo.setVehicle_code(one.getVehicle_code());
|
||||
vo.setVehicle_id(vehicle_id);
|
||||
list.add(vo);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.anno.Log;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
|
||||
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
||||
@@ -53,6 +54,7 @@ public class PickingController {
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("/savePickTask")
|
||||
@Log("拣选作业")
|
||||
public ResponseEntity<Object> savePickTask(@RequestBody JSONArray params) {
|
||||
pickingService.savePickTask(params);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
@@ -66,6 +68,7 @@ public class PickingController {
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("/taskOpen")
|
||||
@Log("拣选作业下发")
|
||||
public ResponseEntity<Object> taskOpen(@RequestBody JSONObject param) {
|
||||
pickingService.taskOpen(param);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
|
||||
@@ -11,12 +11,10 @@ import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.function.PermeateFunction;
|
||||
import org.nl.common.publish.BussEventMulticaster;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.SpringContextHolder;
|
||||
import org.nl.common.utils.*;
|
||||
import org.nl.wms.base_manage.vehicle.service.IBmVehicleInfoService;
|
||||
import org.nl.wms.base_manage.vehicle.service.dao.BmVehicleInfo;
|
||||
import org.nl.wms.external_system.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.ExecutionDto;
|
||||
import org.nl.wms.flow_manage.monitor.event.FlowContinueEvent;
|
||||
import org.nl.wms.flow_manage.monitor.event.FlowStartEvent;
|
||||
@@ -47,6 +45,8 @@ import java.util.stream.Collectors;
|
||||
*/
|
||||
@Service
|
||||
public class PickingService {
|
||||
|
||||
private static Map<String,String> Pick_Convery = MapOf.of("1309","1207","1311","1209");
|
||||
@Autowired
|
||||
private IPmFormDataService iFormDataService;
|
||||
@Autowired
|
||||
@@ -55,6 +55,8 @@ public class PickingService {
|
||||
private IMdGruopDickService iMdGruopDickService;
|
||||
@Autowired
|
||||
private IBmVehicleInfoService iBmVehicleInfoService;
|
||||
@Autowired
|
||||
private WmsToAcsService wmsToAcsService;
|
||||
|
||||
/**
|
||||
* 生成拣选任务
|
||||
@@ -122,8 +124,6 @@ public class PickingService {
|
||||
if (!mst.getStatus().equals(StatusEnum.FORM_STATUS.code("已分配"))){
|
||||
throw new BadRequestException("下发失败:当前单据未分配或者一下发");
|
||||
}
|
||||
PickingService pickingService = SpringContextHolder.getBean(this.getClass());
|
||||
pickingService.disGroup(mst);
|
||||
JSONObject mstJ = (JSONObject) JSON.toJSON(mst);
|
||||
ExecutionDto dto = new ExecutionDto();
|
||||
dto.setForm_id(mst.getId());
|
||||
@@ -132,16 +132,40 @@ public class PickingService {
|
||||
dto.setSource_form_id(mst.getSource_form_id());
|
||||
dto.setT(mstJ);
|
||||
dto.setItem(packageT(mstJ,"id"));
|
||||
//只有透传才有vehicle_code参数否则只有inst_id
|
||||
FlowContinueEvent continueEvent = new FlowContinueEvent(mst.getProc_inst_id(), (PermeateFunction<String, String>) (inst_id, vehicle_code) -> iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
|
||||
.set("proc_inst_id",inst_id).eq("vehicle_code",vehicle_code)), null)
|
||||
.setDto(dto);
|
||||
continueEvent.setCallback(emp->{
|
||||
iFormDataService.update(new UpdateWrapper<PmFormData>()
|
||||
.set("status",StatusEnum.FORM_STATUS.code("执行中"))
|
||||
.eq("id",mst.getId()));
|
||||
});
|
||||
BussEventMulticaster.Publish(continueEvent);
|
||||
|
||||
JSONObject form_data = mstJ.getJSONObject("form_data");
|
||||
String platform = form_data.getString("point_code");
|
||||
String sourceVehicle = mstJ.getString("vehicle_code");
|
||||
List<String> converys = new ArrayList<>();
|
||||
for (ExecutionDto executionDto : dto.getItem()) {
|
||||
for (ExecutionDto executionDto1 : executionDto.getItem()) {
|
||||
JSONObject dis = executionDto1.getT();
|
||||
if (!"false".equals(dis.getJSONObject("form_data").getString("s_move"))){
|
||||
String vehicle_code = dis.getString("vehicle_code");
|
||||
if (vehicle_code.equals(sourceVehicle)){
|
||||
converys.add(platform);
|
||||
}else {
|
||||
converys.add(Pick_Convery.get(platform));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (String convery : converys) {
|
||||
wmsToAcsService.toCommand(convery,"1");
|
||||
}
|
||||
|
||||
// PickingService pickingService = SpringContextHolder.getBean(this.getClass());
|
||||
// pickingService.disGroup(mst);
|
||||
// //只有透传才有vehicle_code参数否则只有inst_id
|
||||
// FlowContinueEvent continueEvent = new FlowContinueEvent(mst.getProc_inst_id(), (PermeateFunction<String, String>) (inst_id, vehicle_code) -> iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
|
||||
// .set("proc_inst_id",inst_id).eq("vehicle_code",vehicle_code)), null)
|
||||
// .setDto(dto);
|
||||
// continueEvent.setCallback(emp->{
|
||||
// iFormDataService.update(new UpdateWrapper<PmFormData>()
|
||||
// .set("status",StatusEnum.FORM_STATUS.code("执行中"))
|
||||
// .eq("id",mst.getId()));
|
||||
// });
|
||||
// BussEventMulticaster.Publish(continueEvent);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,11 @@ public interface IStIvtStructattrService extends IService<StIvtStructattr> {
|
||||
*/
|
||||
List<Map<String, Object>> getByQuery(StructattrQuery query);
|
||||
|
||||
void changeStruct(String struct_code, String vehicle_code, String task_type, BigDecimal change_qty,Boolean growth);
|
||||
void changeStruct(String struct_code
|
||||
, String vehicle_code
|
||||
, String task_type
|
||||
, BigDecimal change_qty
|
||||
, Boolean growth);
|
||||
void deleteAll(Long[] ids);
|
||||
|
||||
Object pageQuery(StructattrQuery query, PageQuery page);
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
<select id="getPageQuery" resultType="java.util.Map">
|
||||
SELECT
|
||||
md_pb_vehicleMater.id as vehicle_id,
|
||||
md_pb_vehicleMater.material_id,
|
||||
md_pb_vehicleMater.qty,
|
||||
md_pb_vehicleMater.frozen_qty,
|
||||
|
||||
@@ -65,17 +65,22 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
|
||||
System.out.println(in);
|
||||
}
|
||||
@Override
|
||||
public void changeStruct(String struct_code, String vehicle_code, String task_type, BigDecimal change_qty,Boolean growth) {
|
||||
public void changeStruct(String struct_code, String vehicle_code, String task_type, BigDecimal change_qty, Boolean growth) {
|
||||
UpdateWrapper<StIvtStructattr> wrapper = new UpdateWrapper<StIvtStructattr>()
|
||||
.set("update_time", DateUtil.now())
|
||||
.set("lock_type", StatusEnum.LOCK.code("无锁"))
|
||||
.set("vehicle_code",vehicle_code)
|
||||
.eq("struct_code", struct_code);
|
||||
//如果是整出
|
||||
if (!growth && change_qty==null){
|
||||
wrapper.set("vehicle_code",null);
|
||||
}
|
||||
this.update(wrapper);
|
||||
List<MdPbVehicleMater> vehicleMaters = vehicleMaterService.list(new QueryWrapper<MdPbVehicleMater>().eq("vehicle_code", vehicle_code));
|
||||
if (growth && CollectionUtils.isEmpty(vehicleMaters)){
|
||||
wrapper.set("lock_type",StatusEnum.LOCK.code("异常锁定"))
|
||||
.set("remark","异常入库");
|
||||
}
|
||||
this.update(wrapper);
|
||||
List<StIvtStructivtflow> records = new ArrayList<>();
|
||||
StIvtStructattr attr = this.getOne(new QueryWrapper<StIvtStructattr>().eq("struct_code", struct_code).select("stor_code"));
|
||||
for (MdPbVehicleMater vehicleMater : vehicleMaters) {
|
||||
|
||||
@@ -53,18 +53,18 @@ public class MonitorServiceImpl implements MonitorService {
|
||||
Map<String, Object> resultMap = new LinkedHashMap<>(8);
|
||||
try {
|
||||
SystemInfo si = new SystemInfo();
|
||||
OperatingSystem os = si.getOperatingSystem();
|
||||
// OperatingSystem os = si.getOperatingSystem();
|
||||
HardwareAbstractionLayer hal = si.getHardware();
|
||||
// 系统信息
|
||||
resultMap.put("sys", getSystemInfo(os));
|
||||
resultMap.put("sys", "getSystemInfo(os)");
|
||||
// cpu 信息
|
||||
resultMap.put("cpu", getCpuInfo(hal.getProcessor()));
|
||||
resultMap.put("cpu", "getCpuInfo(hal.getProcessor())");
|
||||
// 内存信息
|
||||
resultMap.put("memory", getMemoryInfo(hal.getMemory()));
|
||||
resultMap.put("memory", "getMemoryInfo(hal.getMemory())");
|
||||
// 交换区信息
|
||||
resultMap.put("swap", getSwapInfo(hal.getMemory()));
|
||||
resultMap.put("swap", "getSwapInfo(hal.getMemory())");
|
||||
// 磁盘
|
||||
resultMap.put("disk", getDiskInfo(os));
|
||||
resultMap.put("disk", "getDiskInfo(os)");
|
||||
resultMap.put("time", DateUtil.format(new Date(), "HH:mm:ss"));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
|
||||
@@ -84,7 +84,7 @@ mybatis-plus:
|
||||
feishu: https://open.feishu.cn/open-apis/bot/v2/hook/cfe495f7-9bcd-40bb-ab66-038de2131cac
|
||||
lucene:
|
||||
index:
|
||||
path: E:\lms\lucene\index
|
||||
path: D:\lms\lucene\index
|
||||
pageheiper:
|
||||
helperDialect: mysql
|
||||
reasonable: true
|
||||
|
||||
@@ -80,6 +80,7 @@
|
||||
<springProfile name="dev3">
|
||||
<root level="info">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="asyncLuceneAppender"/>
|
||||
</root>
|
||||
<logger name="jdbc" level="ERROR" additivity="true">
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
|
||||
@@ -323,8 +323,8 @@ export default {
|
||||
this.total = res.total
|
||||
// 清空
|
||||
this.logs = []
|
||||
for (const j in res.records) { // 用push的方式将所有日志数组添加进去
|
||||
this.logs.push(res.records[j])
|
||||
for (const j in res.page) { // 用push的方式将所有日志数组添加进去
|
||||
this.logs.push(res.page[j])
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -242,7 +242,6 @@
|
||||
<el-table-column prop="w" label="宽度" show-overflow-tooltip />
|
||||
<el-table-column prop="h" label="高度" show-overflow-tooltip />
|
||||
<el-table-column prop="l" label="深度" show-overflow-tooltip />
|
||||
<el-table-column prop="remark" label="承受重量" show-overflow-tooltip />
|
||||
<el-table-column prop="remark" label="备注" show-overflow-tooltip />
|
||||
<el-table-column
|
||||
v-permission="['admin','structattr:edit','structattr:del']"
|
||||
|
||||
@@ -79,72 +79,12 @@
|
||||
@change="hand"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="是否启用">
|
||||
<el-switch
|
||||
v-model="query.is_used"
|
||||
active-value="0"
|
||||
inactive-value="1"
|
||||
active-color="#C0CCDA"
|
||||
inactive-color="#409EFF"
|
||||
@change="hand"
|
||||
/>
|
||||
</el-form-item>
|
||||
<rrOperation/>
|
||||
</el-form>
|
||||
|
||||
</div>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission">
|
||||
<el-button
|
||||
v-if="crud.query.is_used == 0"
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="el-icon-circle-check"
|
||||
:disabled="crud.selections.length === 0"
|
||||
@click="changeUsed(crud.selections, 1)"
|
||||
>
|
||||
启用
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="crud.query.is_used == 1"
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
size="mini"
|
||||
type="primary"
|
||||
icon="el-icon-circle-close"
|
||||
:disabled="crud.selections.length === 0"
|
||||
@click="changeUsed(crud.selections, 0)"
|
||||
>
|
||||
禁用
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="crud.query.lock_type == 0"
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
size="mini"
|
||||
type="danger"
|
||||
icon="el-icon-circle-check"
|
||||
:disabled="crud.selections.length === 0"
|
||||
@click="changeLock(crud.selections, 1)"
|
||||
>
|
||||
锁定
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="crud.query.lock_type == 1"
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
size="mini"
|
||||
type="danger"
|
||||
icon="el-icon-circle-close"
|
||||
:disabled="crud.selections.length === 0"
|
||||
@click="changeLock(crud.selections, 0)"
|
||||
>
|
||||
解锁
|
||||
</el-button>
|
||||
</crudOperation>
|
||||
<crudOperation :permission="permission"/>
|
||||
<!--表单组件-->
|
||||
<el-dialog
|
||||
:close-on-click-modal="false"
|
||||
@@ -202,6 +142,9 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否启用" prop="is_used">
|
||||
<el-switch v-model="form.is_used" active-value="1" inactive-value="0" />
|
||||
</el-form-item>
|
||||
<el-form-item v-show="pointTypesDialogList.length > 0" label="点位类型" prop="device_point_type">
|
||||
<el-select
|
||||
v-model="form.point_type"
|
||||
|
||||
@@ -291,7 +291,7 @@ export default {
|
||||
return
|
||||
}
|
||||
const data = {
|
||||
taskCode: row.task_code,
|
||||
task_code: row.task_code,
|
||||
status: status
|
||||
}
|
||||
crudSchBaseTask.operation(data).then(res => {
|
||||
|
||||
@@ -88,6 +88,12 @@ export function flowConfirm(inst_id) {
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
export function errorFinish(inst_id) {
|
||||
return request({
|
||||
url: 'api/bpmnExecution/errorFinish/' + inst_id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function queryHisActivityId(proc_inst_id) {
|
||||
return request({
|
||||
@@ -109,5 +115,6 @@ export default {
|
||||
getDtl,
|
||||
changeActive,
|
||||
flowConfirm,
|
||||
errorFinish,
|
||||
queryHisActivityId
|
||||
}
|
||||
|
||||
@@ -145,7 +145,7 @@
|
||||
v-permission="['admin','actDeModel:edit','actDeModel:del']"
|
||||
fixed="right"
|
||||
label="操作"
|
||||
width="210px"
|
||||
width="280px"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
@@ -171,8 +171,9 @@
|
||||
>确定
|
||||
</el-button>
|
||||
</div>
|
||||
<el-button slot="reference" type="text" icon="el-icon-video-play" size="mini" @click="showPopover">触发
|
||||
</el-button>
|
||||
<el-button slot="reference" type="text" icon="el-icon-video-play" size="mini" @click="showPopover">触发</el-button>
|
||||
<el-button slot="reference" type="text" icon="el-icon-video-play" size="mini" @click="errorFinish(scope.row.proc_inst_id)">异常完成</el-button>
|
||||
|
||||
</el-popover>
|
||||
<el-button slot="right" type="text" icon="el-icon-thumb" size="mini" @click="viewClick(scope.row)">预览
|
||||
</el-button>
|
||||
@@ -273,6 +274,12 @@ export default {
|
||||
showPopover() {
|
||||
// this.popoverVisible = true;
|
||||
},
|
||||
errorFinish(proc_inst_id) {
|
||||
curdExecution.errorFinish(proc_inst_id).then(res => {
|
||||
this.crud.notify('异常结束流程成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
this.crud.toQuery()
|
||||
})
|
||||
},
|
||||
cancelFlow(scope) {
|
||||
scope._self.$refs[`popover-${scope.$index}`].doClose()
|
||||
},
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
style="width: 200px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.FORM_STATUS"
|
||||
v-for="item in statusEnum.FORM_STATUS"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
@@ -78,7 +78,7 @@
|
||||
<el-form-item label="状态" prop="status">
|
||||
<el-select v-model="editForm.status" placeholder="" style="width: 120px">
|
||||
<el-option
|
||||
v-for="item in dict.FORM_STATUS"
|
||||
v-for="item in statusEnum.FORM_STATUS"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
@@ -102,7 +102,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column prop="status" label="状态">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.FORM_STATUS[scope.row.status] }}
|
||||
{{ statusEnum.label.FORM_STATUS[scope.row.status] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="vehicle_code" label="托盘" show-overflow-tooltip/>
|
||||
@@ -153,8 +153,8 @@ const defaultForm = {
|
||||
form_data: {}
|
||||
}
|
||||
export default {
|
||||
name: 'DeliveryOrder',
|
||||
dicts: ['PCS_DELIVER_TYPE', 'FORM_STATUS'],
|
||||
name: 'groupDick',
|
||||
statusEnums: ['FORM_STATUS'],
|
||||
components: { ViewDialog, AddDialog, crudbucketrecord, formstruc, pagination, crudOperation, rrOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
cruds() {
|
||||
|
||||
@@ -55,7 +55,22 @@
|
||||
<template v-for="(col,index) in cols">
|
||||
<el-form-item label="col.lable" prop="bill_code">
|
||||
<label slot="label">{{col.lable}}:</label>
|
||||
<el-input v-model="form.form_data[col.value]" :value="col.value" clearable style="width: 150px" />
|
||||
<el-select v-if="col.value == 'product_area'"
|
||||
v-model="form.form_data[col.value]"
|
||||
clearable
|
||||
size="mini"
|
||||
placeholder="车间"
|
||||
class="filter-item"
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in statusEnum.PRODUCT_AREA"
|
||||
:key="item.key"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<el-input v-if="col.value != 'product_area'" v-model="form.form_data[col.value]" :value="col.value" clearable style="width: 150px" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
@@ -153,7 +168,22 @@
|
||||
</el-table-column>
|
||||
<el-table-column v-for="(item, index) in dtlCols" :key="item.value" :label="item.lable" width="160">
|
||||
<template scope="scope">
|
||||
<el-input v-model="tableData[scope.$index].form_data[item.value]" class="input-with-select" />
|
||||
<el-select v-if="item.value == 'product_area'"
|
||||
v-model="tableData[scope.$index].form_data[item.value]"
|
||||
clearable
|
||||
size="mini"
|
||||
placeholder="车间"
|
||||
class="filter-item"
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in statusEnum.PRODUCT_AREA"
|
||||
:key="item.key"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<el-input v-if="item.value != 'product_area'" disabled v-model="tableData[scope.$index].form_data[item.value]" class="input-with-select" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -219,7 +249,7 @@ export default {
|
||||
name: 'AddDialog',
|
||||
components: { formstruc, MaterDialog,measureunit, FormDialog },
|
||||
mixins: [crud(), form(defaultForm)],
|
||||
statusEnums: [ 'FORM_STATUS', 'IOBILL_TYPE_OUT' ],
|
||||
statusEnums: [ 'FORM_STATUS', 'IOBILL_TYPE_OUT', 'PRODUCT_AREA' ],
|
||||
tableEnums: [ 'st_ivt_bsrealstorattr#stor_name#stor_code' ],
|
||||
props: {
|
||||
dialogShow: {
|
||||
|
||||
@@ -106,9 +106,9 @@
|
||||
:disabled="confirm_flag"
|
||||
icon="el-icon-check"
|
||||
size="mini"
|
||||
@click="confirm"
|
||||
@click="cancelMst"
|
||||
>
|
||||
强制确认
|
||||
强制取消
|
||||
</el-button>
|
||||
</crudOperation>
|
||||
<!--表格渲染-->
|
||||
@@ -292,6 +292,16 @@ export default {
|
||||
this.crud.toQuery()
|
||||
})
|
||||
},
|
||||
cancelMst() {
|
||||
if (!this.currentRow) {
|
||||
this.crud.notify('请选择一条单据', CRUD.NOTIFICATION_TYPE.INFO)
|
||||
return
|
||||
}
|
||||
crudProductOut.cancelMst(this.currentRow.id ).then(res => {
|
||||
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
this.crud.toQuery()
|
||||
})
|
||||
},
|
||||
handleCurrentChange(currentRow) {
|
||||
if (currentRow === null) {
|
||||
this.dis_flag = true
|
||||
|
||||
@@ -66,6 +66,13 @@ export function taskOpen(data) {
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function cancelMst(id) {
|
||||
return request({
|
||||
url: "/api/stIvtIostorinvOut/cancelMst/" + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
export default {
|
||||
add,
|
||||
edit,
|
||||
@@ -75,5 +82,6 @@ export default {
|
||||
outDecision,
|
||||
cancelDecision,
|
||||
divDis,
|
||||
cancelMst,
|
||||
taskOpen,
|
||||
}
|
||||
|
||||
@@ -278,6 +278,7 @@ export default {
|
||||
data.stor_name = row.stor_name
|
||||
data.struct_code = row.struct_code
|
||||
data.vehicle_code = row.vehicle_code
|
||||
data.vehicle_id = row.vehicle_id
|
||||
data.material_spec = row.material_spec
|
||||
data.material_name = row.material_name
|
||||
data.material_id = row.material_id
|
||||
|
||||
@@ -199,7 +199,7 @@ export default {
|
||||
{"label":"拣选回库","value":"13"},{"label":"拣选出库","value":"23"}
|
||||
],
|
||||
outboundList:[
|
||||
{"label":"一楼出库口","value":"1101"},{"label":"二楼出库口","value":"2114"}
|
||||
{"label":"一楼出库口","value":"1101"},{"label":"二楼出库口","value":"2114"},{"label":"三楼出库口","value":"3204"}
|
||||
],
|
||||
|
||||
}
|
||||
@@ -242,7 +242,6 @@ export default {
|
||||
this.dialogVisible = false
|
||||
},
|
||||
handleDtlCurrentChange(current) {
|
||||
debugger
|
||||
if (current !== null) {
|
||||
this.currentdtl = current
|
||||
this.queryTableDis(this.currentdtl)
|
||||
|
||||
@@ -92,6 +92,7 @@
|
||||
<el-table-column type="index" label="序号" width="55" align="center" />
|
||||
<el-table-column show-overflow-tooltip prop="stor_name" label="仓库" />
|
||||
<el-table-column show-overflow-tooltip prop="vehicle_code" label="载具编码" />
|
||||
<el-table-column show-overflow-tooltip prop="vehicle_id" label="载具组盘id" width="160" />
|
||||
<el-table-column show-overflow-tooltip prop="material_spec" label="物料规格" />
|
||||
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" />
|
||||
<el-table-column show-overflow-tooltip prop="pcsn" label="批次" />
|
||||
@@ -301,6 +302,7 @@ export default {
|
||||
data.stor_name = row.stor_name
|
||||
data.start_struct_code = row.struct_code
|
||||
data.vehicle_code = row.vehicle_code
|
||||
data.vehicle_id = row.vehicle_id
|
||||
data.material_spec = row.material_spec
|
||||
data.material_name = row.material_name
|
||||
data.material_id = row.material_id
|
||||
|
||||
@@ -226,7 +226,6 @@ export default {
|
||||
this.dialogVisible = false
|
||||
},
|
||||
handleDtlCurrentChange(current) {
|
||||
debugger
|
||||
if (current !== null) {
|
||||
this.currentdtl = current
|
||||
this.queryTableDis(this.currentdtl)
|
||||
|
||||
@@ -230,6 +230,8 @@
|
||||
/>
|
||||
</el-select>
|
||||
<el-input v-if="item.value == 'end_struct_code'" v-model="tabledis[scope.$index].form_data[item.value]" />
|
||||
<el-input v-if="item.value == 'pick_vehicle'" disabled v-model="tabledis[scope.$index].form_data[item.value]" />
|
||||
<el-input v-if="item.value == 'point_code'" v-model="tabledis[scope.$index].form_data[item.value]" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="操作" fixed="right">
|
||||
@@ -352,6 +354,8 @@ export default {
|
||||
dtl.source_form_date = this.currentDtl.create_time
|
||||
dtl.parent_id = this.currentDtl.id
|
||||
dtl.form_data = JSON.parse(JSON.stringify(this.disFormData))
|
||||
dtl.form_data.pick_vehicle = this.currentDtl.vehicle_code
|
||||
dtl.form_data.point_code = this.form.form_data.point_code
|
||||
this.tabledis.push(dtl)
|
||||
},
|
||||
subRow(index){
|
||||
|
||||
@@ -297,7 +297,6 @@ export default {
|
||||
return this.dict.label.work_status[row.work_status]
|
||||
},
|
||||
handleDtlCurrentChange(current) {
|
||||
debugger
|
||||
if (current !== null) {
|
||||
this.currentdtl = current
|
||||
this.queryTableDis(this.currentdtl.id)
|
||||
|
||||
@@ -115,12 +115,12 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="vehicle_code" label="载具编号" show-overflow-tooltip width="120" />
|
||||
<el-table-column prop="qty" label="物料数量" show-overflow-tooltip />
|
||||
<el-table-column prop="material_id" label="物料id" show-overflow-tooltip width="120" />
|
||||
<el-table-column prop="material_name" label="物料名称" show-overflow-tooltip width="120" />
|
||||
<el-table-column prop="material_spec" label="物料规格" show-overflow-tooltip width="120" />
|
||||
<el-table-column prop="pcsn" label="批次" show-overflow-tooltip width="120" />
|
||||
<el-table-column prop="unit_id" label="单位" show-overflow-tooltip width="120" />
|
||||
<!-- <el-table-column prop="qty" label="物料数量" show-overflow-tooltip />-->
|
||||
<!-- <el-table-column prop="material_id" label="物料id" show-overflow-tooltip width="120" />-->
|
||||
<!-- <el-table-column prop="material_name" label="物料名称" show-overflow-tooltip width="120" />-->
|
||||
<!-- <el-table-column prop="material_spec" label="物料规格" show-overflow-tooltip width="120" />-->
|
||||
<!-- <el-table-column prop="pcsn" label="批次" show-overflow-tooltip width="120" />-->
|
||||
<!-- <el-table-column prop="unit_id" label="单位" show-overflow-tooltip width="120" />-->
|
||||
<el-table-column prop="biz_code" label="业务单据编码" show-overflow-tooltip width="120" />
|
||||
<el-table-column prop="biz_date" label="业务单据时间" show-overflow-tooltip width="130" />
|
||||
<el-table-column prop="parent_id" label="父单据数据id" show-overflow-tooltip width="120" />
|
||||
|
||||
Reference in New Issue
Block a user