From 6d910029b6c81db0a2b66caa66952781397b153a Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期六, 29 八月 2026 13:45:52 +0800
Subject: [PATCH] feat(mes): 实现H5溯源页面与二维码内容集成
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/scan/MesProScanEventServiceImpl.java | 17 +++++++++++++++--
1 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/scan/MesProScanEventServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/scan/MesProScanEventServiceImpl.java
index e2c841c..6ee0402 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/scan/MesProScanEventServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/scan/MesProScanEventServiceImpl.java
@@ -6,13 +6,16 @@
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.bagcode.MesProBagCodeDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.batch.MesProBatchDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.scan.MesProScanEventDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.wm.batch.MesWmBatchDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO;
import cn.iocoder.yudao.module.mes.dal.mysql.pro.bagcode.MesProBagCodeMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.pro.batch.MesProBatchMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.pro.scan.MesProScanEventMapper;
import cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants;
import cn.iocoder.yudao.module.mes.enums.MesProScanEventStatusEnum;
+import cn.iocoder.yudao.module.mes.enums.wm.MesWmStockStateEnum;
import cn.iocoder.yudao.module.mes.enums.wm.MesWmTransactionTypeEnum;
+import cn.iocoder.yudao.module.mes.service.wm.batch.MesWmBatchService;
import cn.iocoder.yudao.module.mes.service.wm.transaction.MesWmTransactionService;
import cn.iocoder.yudao.module.mes.service.wm.transaction.dto.MesWmTransactionSaveReqDTO;
import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseService;
@@ -23,6 +26,7 @@
import java.time.LocalDateTime;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
@Service
@@ -33,6 +37,7 @@
@Resource private MesProBatchMapper batchMapper;
@Resource private MesWmTransactionService transactionService;
@Resource private MesWmWarehouseService warehouseService;
+ @Resource private MesWmBatchService mesWmBatchService;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -60,12 +65,19 @@
if (warehouse == null) return failed(event, "MES_SCAN_WIP_WAREHOUSE_NOT_EXISTS", "WIP铏氭嫙浠撲笉瀛樺湪");
event.setWarehouseId(warehouse.getId()).setLocationId(req.getLocationId()).setAreaId(req.getAreaId());
try {
+ // 鐢熶骇鎵规妗ユ帴浠撳簱鎵规锛氬簱瀛�/娴佹按缁熶竴鎸傚湪 mes_wm_batch 涓婏紝鎵爜鍏ユ殏瀛樺簱寰呰川妫�
+ MesWmBatchDO wmBatch = mesWmBatchService.getOrCreateByProBatch(batch);
+ if (wmBatch == null) {
+ return failed(event, "MES_SCAN_WM_BATCH_NOT_EXISTS", "浠撳簱鎵规妗ユ帴澶辫触");
+ }
Long txId = transactionService.createTransaction(new MesWmTransactionSaveReqDTO()
.setType(MesWmTransactionTypeEnum.IN.getType()).setBizType(MesBizTypeConstants.WM_PRODUCT_PRODUCE)
.setBizId(batch.getId()).setBizCode(batch.getCode()).setBizLineId(bag.getId())
- .setItemId(batch.getItemId()).setQuantity(req.getQuantity()).setBatchCode(batch.getCode())
+ .setItemId(batch.getItemId()).setQuantity(req.getQuantity())
+ .setBatchId(wmBatch.getId()).setBatchCode(batch.getCode())
.setWarehouseId(warehouse.getId()).setLocationId(req.getLocationId()).setAreaId(req.getAreaId())
- .setReceiptTime(LocalDateTime.now()).setCheckFlag(true));
+ .setReceiptTime(LocalDateTime.now()).setCheckFlag(true)
+ .setStockState(MesWmStockStateEnum.TEMP.getState()));
event.setTransactionId(txId).setStatus(MesProScanEventStatusEnum.SUCCESS).setEventTime(LocalDateTime.now());
eventMapper.updateById(event);
bagCodeMapper.markInbound(bag.getId(), event.getId(), req.getDeviceCode(), req.getLineCode());
@@ -86,6 +98,7 @@
@Override public MesProScanEventDO getByEventId(String eventId) { return eventMapper.selectOne(MesProScanEventDO::getEventId, eventId); }
@Override public PageResult<MesProScanEventDO> getPage(MesProScanEventPageReqVO reqVO) { return eventMapper.selectPage(reqVO); }
@Override public MesProScanEventDO getLatest(String deviceCode) { return eventMapper.selectLatest(deviceCode); }
+ @Override public List<MesProScanEventDO> getByBatchId(Long batchId) { return eventMapper.selectListByBatchId(batchId); }
@Override public Map<String, Object> getDashboard() {
Map<String, Object> result = new HashMap<>();
result.put("latest", eventMapper.selectLatest(null));
--
Gitblit v1.9.3