1. 删除OrderInCheckor定时任务, 将MES与ERP的校验转移到创建任务时处理
2. 添加xsfbillno, xsfseq, neibubianhao, goodsBarcode字段
This commit is contained in:
parent
e7436bcf46
commit
7ab3096b94
|
|
@ -11,7 +11,7 @@
|
|||
Target Server Version : 80034 (8.0.34)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 07/04/2025 16:52:04
|
||||
Date: 08/04/2025 19:42:54
|
||||
*/
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
|
@ -2223,7 +2223,6 @@ CREATE TABLE `t_app_jobs` (
|
|||
-- ----------------------------
|
||||
-- Records of t_app_jobs
|
||||
-- ----------------------------
|
||||
INSERT INTO `t_app_jobs` VALUES ('OrderInCheckor', 'com.wms_main.service.quartz_job.job_executor.OrderInCheckor', '0/2 * * * * ? *', 2000, 1, 1);
|
||||
INSERT INTO `t_app_jobs` VALUES ('OutsExecutor', 'com.wms_main.service.quartz_job.job_executor.OutsExecutor', '0/2 * * * * ? *', 2000, 1, 1);
|
||||
INSERT INTO `t_app_jobs` VALUES ('WcsStackerTaskSender', 'com.wms_main.service.quartz_job.job_executor.WcsStackerTaskSender', '0/2 * * * * ? *', 2000, 1, 1);
|
||||
INSERT INTO `t_app_jobs` VALUES ('WmsTaskFinisher', 'com.wms_main.service.quartz_job.job_executor.WmsTaskFinisher', '0/2 * * * * ? *', 2000, 1, 1);
|
||||
|
|
@ -4999,11 +4998,15 @@ CREATE TABLE `t_app_order_in` (
|
|||
`goods_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
`specification` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
`quantity` double NOT NULL,
|
||||
`goods_bar_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
`goods_desc` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
`order_status` int NOT NULL,
|
||||
`create_time` datetime NOT NULL,
|
||||
`update_time` datetime NULL DEFAULT NULL,
|
||||
`complete_time` datetime NULL DEFAULT NULL,
|
||||
`xsfbillno` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
`xsfseq` int NULL DEFAULT NULL,
|
||||
`neibubianhao` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`record_id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
|
||||
|
|
@ -5498,6 +5501,10 @@ CREATE TABLE `t_app_stock` (
|
|||
`mes_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'mes单号',
|
||||
`batch` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
`goods_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
`xsfbillno` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
`xsfseq` int NULL DEFAULT NULL,
|
||||
`neibubianhao` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
`goods_bar_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`stock_id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||||
|
||||
|
|
@ -5613,8 +5620,8 @@ CREATE TABLE `t_app_vehicle` (
|
|||
-- Records of t_app_vehicle
|
||||
-- ----------------------------
|
||||
INSERT INTO `t_app_vehicle` VALUES ('0401', 0, 3, '1', 0, '', '2025-04-01 13:11:48');
|
||||
INSERT INTO `t_app_vehicle` VALUES ('0402', 0, 2, '1', 0, 'A04-19-06-01', '2025-04-01 13:11:56');
|
||||
INSERT INTO `t_app_vehicle` VALUES ('20250401150031', 0, 3, '1', 0, '', '2025-04-07 16:20:15');
|
||||
INSERT INTO `t_app_vehicle` VALUES ('0402', 0, 2, '1', 0, '', '2025-04-01 13:11:56');
|
||||
INSERT INTO `t_app_vehicle` VALUES ('20250401150031', 0, 3, '1', 0, '', '2025-04-08 19:30:11');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for t_app_wcs_task
|
||||
|
|
@ -5713,6 +5720,19 @@ INSERT INTO `t_app_wcs_task_bak` VALUES ('1744013622086010000', 2, 1, 0, '202504
|
|||
INSERT INTO `t_app_wcs_task_bak` VALUES ('1744013869045010000', 100, 2, 1, '20250401150031', 'A04-20-05-02', '103', '2025-04-07 16:17:49', NULL, NULL, NULL);
|
||||
INSERT INTO `t_app_wcs_task_bak` VALUES ('1744013987278010000', 2, 1, 0, '20250401150031', '103', 'A04-20-05-02', '2025-04-07 16:19:47', '2025-04-07 16:19:47', NULL, NULL);
|
||||
INSERT INTO `t_app_wcs_task_bak` VALUES ('1744014051040010000', 100, 2, 1, '20250401150031', 'A04-20-05-02', '103', '2025-04-07 16:20:51', NULL, NULL, NULL);
|
||||
INSERT INTO `t_app_wcs_task_bak` VALUES ('1744101715450010000', 2, 1, 0, '20250401150031', '103', 'A04-20-05-02', '2025-04-08 16:41:55', '2025-04-08 16:41:55', NULL, NULL);
|
||||
INSERT INTO `t_app_wcs_task_bak` VALUES ('1744103504534010000', 100, 2, 1, '20250401150031', 'A04-20-05-02', '272399-343153-97', '2025-04-08 17:11:45', NULL, NULL, NULL);
|
||||
INSERT INTO `t_app_wcs_task_bak` VALUES ('1744104108494010000', 2, 1, 0, '20250401150031', '103', 'A04-20-05-02', '2025-04-08 17:21:48', '2025-04-08 17:21:48', NULL, NULL);
|
||||
INSERT INTO `t_app_wcs_task_bak` VALUES ('1744104795372010000', 2, 1, 0, '20250401150031', '103', 'A04-20-05-02', '2025-04-08 17:33:15', '2025-04-08 17:33:15', NULL, NULL);
|
||||
INSERT INTO `t_app_wcs_task_bak` VALUES ('1744107367237010000', 2, 1, 0, '20250401150031', '103', 'A04-20-05-02', '2025-04-08 18:16:07', '2025-04-08 18:16:07', NULL, NULL);
|
||||
INSERT INTO `t_app_wcs_task_bak` VALUES ('1744108481848010000', 2, 1, 0, '20250401150031', '103', 'A04-20-05-02', '2025-04-08 18:34:42', '2025-04-08 18:34:42', NULL, NULL);
|
||||
INSERT INTO `t_app_wcs_task_bak` VALUES ('1744110229130010000', 2, 1, 0, '20250401150031', '103', 'A04-20-05-01', '2025-04-08 19:03:49', '2025-04-08 19:03:49', NULL, NULL);
|
||||
INSERT INTO `t_app_wcs_task_bak` VALUES ('1744110590961010000', 2, 1, 0, '20250401150031', '103', 'A04-20-05-01', '2025-04-08 19:09:51', '2025-04-08 19:09:51', NULL, NULL);
|
||||
INSERT INTO `t_app_wcs_task_bak` VALUES ('1744110928097010000', 2, 1, 0, '20250401150031', '103', 'A04-20-05-02', '2025-04-08 19:15:28', '2025-04-08 19:15:28', NULL, NULL);
|
||||
INSERT INTO `t_app_wcs_task_bak` VALUES ('1744110975061010000', 100, 2, 1, '20250401150031', 'A04-20-05-02', '103', '2025-04-08 19:16:15', NULL, NULL, NULL);
|
||||
INSERT INTO `t_app_wcs_task_bak` VALUES ('1744111374581010000', 2, 1, 0, '20250401150031', '103', 'A04-20-05-02', '2025-04-08 19:22:55', '2025-04-08 19:22:55', NULL, NULL);
|
||||
INSERT INTO `t_app_wcs_task_bak` VALUES ('1744111790731010000', 2, 1, 0, '20250401150031', '103', 'A04-20-05-02', '2025-04-08 19:29:51', '2025-04-08 19:29:51', NULL, NULL);
|
||||
INSERT INTO `t_app_wcs_task_bak` VALUES ('1744111948895010000', 100, 2, 1, '20250401150031', 'A04-20-05-02', '103', '2025-04-08 19:32:29', NULL, NULL, NULL);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for t_app_work
|
||||
|
|
|
|||
|
|
@ -20,6 +20,6 @@ public class ErpGoodsDetail {
|
|||
private String goodsDesc;
|
||||
private String goodsBarcode;
|
||||
private String xsfbillno;
|
||||
private String xsfseq;
|
||||
private Integer xsfseq;
|
||||
private String neibubianhao;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,6 +59,9 @@ public class TAppOrderIn {
|
|||
@TableField(value = "order_status")
|
||||
private Integer orderStatus;
|
||||
|
||||
@TableField(value = "goods_bar_code")
|
||||
private String goodsBarcode;
|
||||
|
||||
@TableField(value = "create_time")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
|
|
@ -68,6 +71,15 @@ public class TAppOrderIn {
|
|||
@TableField(value = "complete_time")
|
||||
private LocalDateTime completeTime;
|
||||
|
||||
@TableField(value = "xsfbillno")
|
||||
private String xsfbillno;
|
||||
|
||||
@TableField(value = "xsfseq")
|
||||
private Integer xsfseq;
|
||||
|
||||
@TableField(value = "neibubianhao")
|
||||
private String neibubianhao;
|
||||
|
||||
@TableField(value = "remark")
|
||||
private String remark;
|
||||
|
||||
|
|
|
|||
|
|
@ -117,4 +117,16 @@ public class TAppStock {
|
|||
|
||||
@TableField(value = "goods_type")
|
||||
private String goodsType;
|
||||
|
||||
@TableField(value = "xsfbillno")
|
||||
private String xsfbillno;
|
||||
|
||||
@TableField(value = "xsfseq")
|
||||
private Integer xsfseq;
|
||||
|
||||
@TableField(value = "neibubianhao")
|
||||
private String neibubianhao;
|
||||
|
||||
@TableField(value = "goods_bar_code")
|
||||
private String goodsBarCode;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ public class ExternalApiServiceImpl implements IExternalApiService {
|
|||
goodsDetail.setQuantity(Double.parseDouble(detail.get("quantity").toString()));
|
||||
goodsDetail.setGoodsDesc((String) detail.get("goodsDesc"));
|
||||
goodsDetail.setXsfbillno((String) detail.get("xsfbillno"));
|
||||
goodsDetail.setXsfseq((String) detail.get("xsfseq"));
|
||||
goodsDetail.setXsfseq(Integer.parseInt(detail.get("xsfseq").toString()));
|
||||
goodsDetail.setNeibubianhao((String) detail.get("neibubianhao"));
|
||||
goodsDetail.setGoodsBarcode((String) detail.get("goodsBarcode"));
|
||||
erpsGoodsDetails.add(goodsDetail);
|
||||
|
|
|
|||
|
|
@ -383,7 +383,7 @@ public class StackerTaskServiceImpl implements IStackerTaskService {
|
|||
needDeleteOrderIns.add(thisOrderIn.getRecordId());
|
||||
orderCBIds.add(thisOrderIn.getOrderId());
|
||||
// 添加库存
|
||||
String validateStr = thisOrderIn.getGoodsId() + thisOrderIn.getBatch() + thisOrderIn.getGoodsType() + thisOrderIn.getSpecification();
|
||||
String validateStr = thisOrderIn.getGoodsId() + thisOrderIn.getGoodsBarcode() + thisOrderIn.getGoodsType() + thisOrderIn.getSpecification() + thisOrderIn.getXsfbillno() + thisOrderIn.getXsfseq().toString() + thisOrderIn.getNeibubianhao();
|
||||
if (!stockMap.containsKey(validateStr)) {
|
||||
TAppStock newStock = new TAppStock();
|
||||
newStock.setStockId(UUIDUtils.getNewUUID());
|
||||
|
|
@ -405,7 +405,10 @@ public class StackerTaskServiceImpl implements IStackerTaskService {
|
|||
newStock.setBatch(thisOrderIn.getBatch());
|
||||
newStock.setGoodsType(thisOrderIn.getGoodsType());
|
||||
newStock.setBarCode(thisOrderIn.getInStand());
|
||||
// newStockList.add(newStock);
|
||||
newStock.setGoodsBarCode(thisOrderIn.getGoodsBarcode());
|
||||
newStock.setXsfbillno(thisOrderIn.getXsfbillno());
|
||||
newStock.setXsfseq(thisOrderIn.getXsfseq());
|
||||
newStock.setNeibubianhao(thisOrderIn.getNeibubianhao());
|
||||
stockMap.put(validateStr, newStock);
|
||||
} else {
|
||||
TAppStock newStock = stockMap.get(validateStr);
|
||||
|
|
@ -572,6 +575,10 @@ public class StackerTaskServiceImpl implements IStackerTaskService {
|
|||
thisVehicleInTask.getBarCode(),
|
||||
thisVehicleInTask.getMesId(),
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
0,
|
||||
"",
|
||||
""
|
||||
));
|
||||
} else {
|
||||
|
|
@ -605,7 +612,12 @@ public class StackerTaskServiceImpl implements IStackerTaskService {
|
|||
thisVehicleInTask.getBarCode(),
|
||||
thisVehicleInTask.getMesId(),
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
0,
|
||||
"",
|
||||
""
|
||||
|
||||
));
|
||||
needDeleteStockIds.addAll(oldStockList.stream()
|
||||
.map(TAppStock::getStockId)
|
||||
|
|
|
|||
|
|
@ -2,9 +2,12 @@ package com.wms_main.service.controller.serviceImpl;
|
|||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.wms_main.constant.enums.wms.OrderStatusEnum;
|
||||
import com.wms_main.constant.enums.wms.WmsApiResponseCodeEnums;
|
||||
import com.wms_main.dao.ITAppOrderInService;
|
||||
import com.wms_main.dao.ITAppOrderOutService;
|
||||
import com.wms_main.dao.ITAppStockService;
|
||||
import com.wms_main.model.bo.erp.ErpGoodsDetail;
|
||||
import com.wms_main.model.bo.erp.ErpVehicleNoResp;
|
||||
import com.wms_main.model.dto.request.ycwms.*;
|
||||
import com.wms_main.model.dto.response.ycwms.YcwmsResponse;
|
||||
import com.wms_main.model.po.TAppOrderIn;
|
||||
|
|
@ -12,6 +15,7 @@ import com.wms_main.model.po.TAppOrderOut;
|
|||
import com.wms_main.model.po.TAppStock;
|
||||
import com.wms_main.repository.utils.StringUtils;
|
||||
import com.wms_main.repository.utils.UUIDUtils;
|
||||
import com.wms_main.service.api.IExternalApiService;
|
||||
import com.wms_main.service.controller.IYcwmsControllerService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -19,7 +23,9 @@ import org.springframework.stereotype.Service;
|
|||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
|
|
@ -29,6 +35,7 @@ public class YcwmsControllerServiceImpl implements IYcwmsControllerService {
|
|||
private final ITAppOrderInService appOrderInService;
|
||||
private final ITAppOrderOutService appOrderOutService;
|
||||
private final ITAppStockService appStockService;
|
||||
private final IExternalApiService externalApiService;
|
||||
|
||||
@Override
|
||||
public YcwmsResponse<Object> orderIn(OrderInReq request) {
|
||||
|
|
@ -47,8 +54,40 @@ public class YcwmsControllerServiceImpl implements IYcwmsControllerService {
|
|||
if(!withOrderId.isEmpty()) {
|
||||
return YcwmsResponse.error("入库单已存在,请勿重复推送", null);
|
||||
}
|
||||
String vehicleNo = request.getVehicleNo();
|
||||
List<ErpGoodsDetail> erpGoodsDetails = new ArrayList<>();
|
||||
try {
|
||||
YcwmsResponse<ErpVehicleNoResp> erpResp = externalApiService.getVehicleNoData(vehicleNo);
|
||||
if (erpResp != null && WmsApiResponseCodeEnums.SUCCESS.getCode() == erpResp.getCode() && !erpResp.getReturnData().getGoodsDetail().isEmpty()) {
|
||||
erpGoodsDetails = erpResp.getReturnData().getGoodsDetail();
|
||||
} else {
|
||||
log.warn("获取载具[{}]数据失败,响应:{}", vehicleNo, erpResp);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("处理载具[{}]数据时发生异常:", vehicleNo, e);
|
||||
}
|
||||
List<OrderInGoodsDetail> mesGoodsDetails = request.getGoodsDetail();
|
||||
// 对比inTasks和goodsDetails
|
||||
Iterator<OrderInGoodsDetail> iterator = mesGoodsDetails.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
OrderInGoodsDetail goodsDetail = iterator.next();
|
||||
boolean matchFound = erpGoodsDetails.stream().anyMatch(erpGoodsDetail ->
|
||||
erpGoodsDetail.getGoodsId().equals(goodsDetail.getGoodsId()) &&
|
||||
erpGoodsDetail.getGoodsBarcode().equals(goodsDetail.getGoodsBarcode()) &&
|
||||
Objects.equals(erpGoodsDetail.getQuantity(), goodsDetail.getQuantity()) &&
|
||||
erpGoodsDetail.getGoodsType().equals(goodsDetail.getGoodsType()) &&
|
||||
Objects.equals(erpGoodsDetail.getSpecification(), goodsDetail.getSpecification())
|
||||
);
|
||||
if (matchFound) {
|
||||
// 找到匹配的任务,删除该 goodsDetail
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
if (!mesGoodsDetails.isEmpty()) {
|
||||
return YcwmsResponse.error("MES与ERP校验失败", null);
|
||||
}
|
||||
List<TAppOrderIn> orderInList = new ArrayList<>();
|
||||
for (var goodsDetail : request.getGoodsDetail()) {
|
||||
for (ErpGoodsDetail goodsDetail : erpGoodsDetails) {
|
||||
if(goodsDetail == null || StringUtils.isEmpty(goodsDetail.getGoodsId()) || goodsDetail.getQuantity() == null) {
|
||||
return YcwmsResponse.error("参数错误", null);
|
||||
}
|
||||
|
|
@ -66,7 +105,11 @@ public class YcwmsControllerServiceImpl implements IYcwmsControllerService {
|
|||
orderIn.setSpecification(goodsDetail.getSpecification());
|
||||
orderIn.setQuantity(goodsDetail.getQuantity());
|
||||
orderIn.setGoodsDesc(goodsDetail.getGoodsDesc());
|
||||
orderIn.setGoodsBarcode(goodsDetail.getGoodsBarcode());
|
||||
orderIn.setOrderStatus(OrderStatusEnum.CREATE.getCode());
|
||||
orderIn.setXsfbillno(goodsDetail.getXsfbillno());
|
||||
orderIn.setXsfseq(goodsDetail.getXsfseq());
|
||||
orderIn.setNeibubianhao(goodsDetail.getNeibubianhao());
|
||||
orderIn.setCreateTime(LocalDateTime.now());
|
||||
orderIn.setUpdateTime(LocalDateTime.now());
|
||||
orderInList.add(orderIn);
|
||||
|
|
|
|||
|
|
@ -26,12 +26,11 @@ import java.util.stream.Collectors;
|
|||
// 以下注解用于实现fixed_delay
|
||||
@DisallowConcurrentExecution
|
||||
@RequiredArgsConstructor
|
||||
public class OrderInCheckor implements Job {
|
||||
public class OrderInCheckor {
|
||||
private final ITAppOrderInService orderInService;
|
||||
private final ITAppWcsTaskService wcsTaskService;
|
||||
private final IExternalApiService externalApiService;
|
||||
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) {
|
||||
List<TAppOrderIn> inOrdersToCheck = orderInService.list(
|
||||
new LambdaQueryWrapper<TAppOrderIn>()
|
||||
|
|
@ -69,6 +68,7 @@ public class OrderInCheckor implements Job {
|
|||
ErpGoodsDetail goodsDetail = iterator.next();
|
||||
boolean matchFound = inTasks.stream().anyMatch(task ->
|
||||
task.getGoodsId().equals(goodsDetail.getGoodsId()) &&
|
||||
task.getGoodsBarcode().equals(goodsDetail.getGoodsBarcode()) &&
|
||||
Objects.equals(task.getQuantity(), goodsDetail.getQuantity()) &&
|
||||
task.getGoodsType().equals(goodsDetail.getGoodsType()) &&
|
||||
Objects.equals(task.getSpecification(), goodsDetail.getSpecification())
|
||||
|
|
|
|||
|
|
@ -74,11 +74,10 @@ public class OutsExecutor implements Job {
|
|||
}
|
||||
TAppStock stock = new TAppStock();
|
||||
stock.setGoodsId(orderOut.getGoodsId());
|
||||
stock.setBatch(orderOut.getBatch());
|
||||
stock.setSled(orderOut.getSpecification());
|
||||
List<TAppStock> stockList = stockService.getWithEntity(stock);
|
||||
// 提取所有相关库存的载具号
|
||||
List<String> vehicleIds = stockList.stream().map(TAppStock::getVehicleId).toList();
|
||||
List<String> vehicleIds = stockList.stream().map(TAppStock::getVehicleId).distinct().toList();
|
||||
List<TAppStock> outStockList = new ArrayList<TAppStock>();
|
||||
if(vehicleIds.isEmpty()) {
|
||||
log.warn("缺少库存, goodsId is {}, batch is {}, specification is {}", orderOut.getGoodsId(), orderOut.getBatch(), orderOut.getSpecification());
|
||||
|
|
@ -92,11 +91,9 @@ public class OutsExecutor implements Job {
|
|||
continue;
|
||||
}
|
||||
if (stockItem.getGoodsId().equals(orderOut.getGoodsId()) && stockItem.getStockStatus().equals(WmsStockStatusEnums.OK.getCode())) {
|
||||
needQuantity -= stockItem.getRemainNum();
|
||||
needQuantity -= stockItem.getTotalNum();
|
||||
}
|
||||
stockItem.setStockStatus(WmsStockStatusEnums.OUTING.getCode());
|
||||
stockItem.setRemainNum(0.0);
|
||||
stockItem.setRealNum(0.0);
|
||||
outStockList.add(stockItem);
|
||||
}
|
||||
}
|
||||
|
|
@ -122,23 +119,27 @@ public class OutsExecutor implements Job {
|
|||
// appTaskList.add(appTask);
|
||||
// }
|
||||
List<TAppWcsTask> wcsTasks = new ArrayList<>();
|
||||
for (TAppStock stockItem : outStockList) {
|
||||
Map<String, List<TAppStock>> vehicleIdToStockMap = outStockList.stream()
|
||||
.filter(stockMap -> Objects.equals(stockMap.getStockStatus(), WmsStockStatusEnums.OUTING.getCode()))
|
||||
.collect(Collectors.groupingBy(TAppStock::getVehicleId));
|
||||
|
||||
for (String vehicleId : vehicleIdToStockMap.keySet()) {
|
||||
List<TAppStock> stocks = vehicleIdToStockMap.get(vehicleId);
|
||||
TAppWcsTask wcsTask = new TAppWcsTask();
|
||||
wcsTask.setWcsTaskId(UUIDUtils.getNewUUID());
|
||||
wcsTask.setWcsTaskType(WmsTaskTypeEnums.OUT.getCode());
|
||||
wcsTask.setWcsTaskStatus(WcsStackerTaskStatusEnums.INIT.getCode());
|
||||
wcsTask.setTaskPriority(1);
|
||||
wcsTask.setVehicleId(stockItem.getVehicleId());
|
||||
wcsTask.setVehicleId(stocks.getFirst().getVehicleId());
|
||||
wcsTask.setOrderId(orderOut.getOrderId());
|
||||
wcsTask.setCreateTime(LocalDateTime.now());
|
||||
wcsTask.setOrigin(stockItem.getLocationId());
|
||||
wcsTask.setDestination(stockItem.getBarCode());
|
||||
wcsTask.setOrigin(stocks.getFirst().getLocationId());
|
||||
wcsTask.setDestination(stocks.getFirst().getBarCode());
|
||||
wcsTasks.add(wcsTask);
|
||||
}
|
||||
|
||||
orderOut.setOrderStatus(OrderStatusEnum.RUNNING.getCode());
|
||||
orderOutService.updateById(orderOut);
|
||||
// taskService.saveBatch(appTaskList);
|
||||
wcsTaskService.saveBatch(wcsTasks);
|
||||
stockService.updateBatchById(outStockList);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import axios from "axios";
|
|||
|
||||
const _request = axios.create({
|
||||
// baseURL: 'http://10.18.58.20:12315/wms',
|
||||
baseURL: 'http://10.18.58.20:12315',
|
||||
baseURL: 'http://10.18.58.21:12315',
|
||||
timeout: 5000
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import axios from "axios";
|
|||
|
||||
const _request = axios.create({
|
||||
// baseURL: 'http://10.18.58.20:12315/wms',
|
||||
baseURL: 'http://10.18.58.20:12315',
|
||||
baseURL: 'http://10.18.58.21:12315',
|
||||
timeout: 5000
|
||||
})
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user