生成入库单同步生成电子签名;

This commit is contained in:
王奎兴
2026-08-07 17:54:32 +08:00
parent b18fa5938a
commit b45af55cdd
5 changed files with 106 additions and 6 deletions
@@ -302,9 +302,9 @@ public class StockInOrderApplicationService {
}
// 入库签名列表固定「已入库」状态过滤
if (stockInOrderDO.getStatus() == null) {
stockInOrderDO.setStatus(5);
}
// if (stockInOrderDO.getStatus() == null) {
// stockInOrderDO.setStatus(5);
// }
List<StockInOrderPO> stockInOrderPOS = stockInOrderDomainService.querySignatureList(stockInOrderDO);
// 状态/签名字段翻译,便于 PDA 端直接展示
@@ -1,5 +1,6 @@
package com.mhd.wms.domain.stockInOrder.service;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson2.JSONObject;
@@ -16,7 +17,9 @@ import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.core.utils.uuid.IdGenerator;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.OmsServiceFeign;
import com.mhd.system.api.SystemServiceFeign;
import com.mhd.system.api.domain.ElectronicSignatureSyncDTO;
import com.mhd.system.api.domain.PackDetailFeignPO;
import com.mhd.system.api.model.LoginUser;
import com.mhd.wms.domain.inMaterialDetail.entity.InMaterialDetail;
@@ -97,6 +100,8 @@ public class StockInOrderDomainService {
private IMaterialWarehouseControlService materialWarehouseControlService;
@Resource
private SystemServiceFeign systemServiceFeign;
@Resource
private OmsServiceFeign omsServiceFeign;
@Autowired
private IReceiptMaterialDetailService receiptMaterialDetailService;
@Autowired
@@ -428,6 +433,8 @@ public class StockInOrderDomainService {
if (StringUtils.isEmpty(inOrderNumber)) {
return;
}
StockInOrder stockInOrder = stockInOrderService.getOne(new QueryWrapper<StockInOrder>().lambda()
.eq(StockInOrder::getInOrderNumber, inOrderNumber)
.eq(StockInOrder::getDelFlag, 1)
@@ -435,6 +442,15 @@ public class StockInOrderDomainService {
if (stockInOrder == null || AUDIT_STATUS_PASS == stockInOrder.getAuditStatus()) {
return;
}
//生成电子签名
StockInOrderPO info = getInfo(stockInOrder.getInOrderId());
List<InMaterialDetail> materialDetails = materialDetailService.list(new QueryWrapper<InMaterialDetail>().lambda()
.eq(InMaterialDetail::getInOrderNumber, inOrderNumber)
.eq(InMaterialDetail::getDelFlag, 1));
genElectronicSignature(info,materialDetails);
StockInOrderDO auditDO = new StockInOrderDO();
auditDO.setInOrderIds(Collections.singletonList(stockInOrder.getInOrderId()));
auditDO.setAuditStatus(AUDIT_STATUS_PASS);
@@ -1252,4 +1268,55 @@ public class StockInOrderDomainService {
public List<InMaterialDetailPO> queryNoticePrintDetail(StockInOrderDO stockInOrderDO) {
return stockInOrderService.queryNoticePrintDetail(stockInOrderDO);
}
/**
* 生成入库电子签名记录上架完成触发
*/
private void genElectronicSignature(StockInOrderPO stockShelfOrderPO, List<InMaterialDetail> shelfMaterialDetailList) {
try {
ElectronicSignatureSyncDTO dto = new ElectronicSignatureSyncDTO();
dto.setOrderId(stockShelfOrderPO.getInOrderId());
dto.setOrderNumber(stockShelfOrderPO.getInOrderNumber());
dto.setOrderType("IN");
dto.setOrganizationId(stockShelfOrderPO.getOrganizationId());
dto.setOrganizationName(stockShelfOrderPO.getOrganizationName());
dto.setTopOrganizationId(stockShelfOrderPO.getTopOrganizationId());
dto.setWarehouseId(stockShelfOrderPO.getWarehouseId());
dto.setWarehouseCode(stockShelfOrderPO.getWarehouseCode());
dto.setWarehouseName(stockShelfOrderPO.getWarehouseName());
List<ElectronicSignatureSyncDTO.MaterialDetailItem> items = new ArrayList<>();
if (CollectionUtil.isNotEmpty(shelfMaterialDetailList)) {
for (InMaterialDetail detail : shelfMaterialDetailList) {
ElectronicSignatureSyncDTO.MaterialDetailItem item = new ElectronicSignatureSyncDTO.MaterialDetailItem();
item.setMaterialBaseInfoId(detail.getMaterialBaseInfoId());
item.setMaterialCode(detail.getMaterialCode());
item.setMaterialName(detail.getMaterialName());
item.setQuantity(detail.getShelvesQuantity());
item.setUnitCode(detail.getUnitCode());
item.setUnitName(detail.getUnitName());
item.setBatchNumber(detail.getBatchNumber());
item.setLotNumber(detail.getLotNo());
item.setWarehouseId(detail.getWarehouseId());
item.setWarehouseCode(detail.getWarehouseCode());
item.setWarehouseName(detail.getWarehouseName());
item.setStorageSectionId(detail.getStorageSectionId());
item.setStorageSectionCode(detail.getStorageCode());
item.setStorageSectionName(detail.getStorageName());
item.setStorageLocationId(detail.getStorageLocationId());
item.setStorageLocationCode(detail.getStorageLocationCode());
item.setStorageLocationName(detail.getStorageLocationName());
item.setUniqueId(detail.getUniqueId());
items.add(item);
}
}
dto.setMaterialDetailList(items);
log.info("生成入库电子签名记录,订单号:{},物料条目数:{}", stockShelfOrderPO.getInOrderNumber(), items.size());
omsServiceFeign.saveSignature(dto);
} catch (Exception e) {
log.error("生成入库电子签名记录失败,订单号:{}", stockShelfOrderPO.getInOrderNumber(), e);
}
}
}
@@ -879,7 +879,7 @@ public class StockShelfOrderDomainService {
if (businessOrderNumber != null) stockShelfOrderService.updateOmsReserveOrder(businessOrderNumber,
shelvesQuantity == null ? null : shelvesQuantity);
//生成电子签名记录
genElectronicSignature(stockShelfOrderPO, shelfMaterialDetailList);
// genElectronicSignature(stockShelfOrderPO, shelfMaterialDetailList);
return true;
}