OMS的签名表以及详情,WMS的批量签名
This commit is contained in:
+4
@@ -2833,10 +2833,14 @@ public class StockInOrderApplicationService {
|
||||
entity.setSignatureStatus(dto.getSignatureStatus() != null ? dto.getSignatureStatus() : 2);
|
||||
entity.setSignatureTime(dto.getSignatureTime() != null ? dto.getSignatureTime() : now);
|
||||
entity.setSignaturePic(dto.getSignaturePic());
|
||||
if (dto.getEvidencePics() != null && !dto.getEvidencePics().isEmpty()) {
|
||||
entity.setEvidencePics(String.join(",", dto.getEvidencePics()));
|
||||
}
|
||||
entity.setSignatureRemark(dto.getSignatureRemark());
|
||||
stockInOrderService.updateById(entity);
|
||||
success++;
|
||||
}
|
||||
return AjaxResult.success("批量签名成功,共" + success + "条");
|
||||
}
|
||||
|
||||
}
|
||||
+3
@@ -2105,6 +2105,9 @@ public class StockOutOrderApplicationService {
|
||||
entity.setSignatureStatus(dto.getSignatureStatus() != null ? dto.getSignatureStatus() : 2);
|
||||
entity.setSignatureTime(dto.getSignatureTime() != null ? dto.getSignatureTime() : now);
|
||||
entity.setSignaturePic(dto.getSignaturePic());
|
||||
if (dto.getEvidencePics() != null && !dto.getEvidencePics().isEmpty()) {
|
||||
entity.setEvidencePics(String.join(",", dto.getEvidencePics()));
|
||||
}
|
||||
entity.setSignatureRemark(dto.getSignatureRemark());
|
||||
stockOutOrderService.updateById(entity);
|
||||
success++;
|
||||
|
||||
@@ -402,9 +402,12 @@ public class StockInOrder extends BaseVOEntity {
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date signatureTime;
|
||||
|
||||
@ApiModelProperty("签名图片(base64/URL)")
|
||||
@ApiModelProperty("手写签名图片(base64/URL,单张)")
|
||||
private String signaturePic;
|
||||
|
||||
@ApiModelProperty("拍照取证图片(逗号分隔多张OSS URL)")
|
||||
private String evidencePics;
|
||||
|
||||
@ApiModelProperty("签名备注")
|
||||
private String signatureRemark;
|
||||
}
|
||||
+4
-1
@@ -466,9 +466,12 @@ public class StockInOrderPO extends BaseVOEntity {
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date signatureTime;
|
||||
|
||||
@ApiModelProperty("签名图片(base64/URL)")
|
||||
@ApiModelProperty("手写签名图片(base64/URL)")
|
||||
private String signaturePic;
|
||||
|
||||
@ApiModelProperty("拍照取证图片(逗号分隔多张OSS URL)")
|
||||
private String evidencePics;
|
||||
|
||||
@ApiModelProperty("签名备注")
|
||||
private String signatureRemark;
|
||||
}
|
||||
+4
-1
@@ -461,9 +461,12 @@ public class StockInOrderDO extends BaseVOEntity {
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date signatureTime;
|
||||
|
||||
@ApiModelProperty("签名图片(base64/URL)")
|
||||
@ApiModelProperty("手写签名图片(base64/URL)")
|
||||
private String signaturePic;
|
||||
|
||||
@ApiModelProperty("拍照取证图片(逗号分隔多张OSS URL)")
|
||||
private String evidencePics;
|
||||
|
||||
@ApiModelProperty("签名备注")
|
||||
private String signatureRemark;
|
||||
|
||||
|
||||
@@ -444,9 +444,12 @@ public class StockOutOrder extends BaseVOEntity {
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date signatureTime;
|
||||
|
||||
@ApiModelProperty("签名图片(base64/URL)")
|
||||
@ApiModelProperty("手写签名图片(base64/URL,单张)")
|
||||
private String signaturePic;
|
||||
|
||||
@ApiModelProperty("拍照取证图片(逗号分隔多张OSS URL)")
|
||||
private String evidencePics;
|
||||
|
||||
@ApiModelProperty("签名备注")
|
||||
private String signatureRemark;
|
||||
}
|
||||
+4
-1
@@ -476,9 +476,12 @@ public class StockOutOrderPO extends BaseVOEntity {
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date signatureTime;
|
||||
|
||||
@ApiModelProperty("签名图片(base64/URL)")
|
||||
@ApiModelProperty("手写签名图片(base64/URL)")
|
||||
private String signaturePic;
|
||||
|
||||
@ApiModelProperty("拍照取证图片(逗号分隔多张OSS URL)")
|
||||
private String evidencePics;
|
||||
|
||||
@ApiModelProperty("签名备注")
|
||||
private String signatureRemark;
|
||||
}
|
||||
+4
-1
@@ -523,9 +523,12 @@ public class StockOutOrderDO extends BaseVOEntity {
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date signatureTime;
|
||||
|
||||
@ApiModelProperty("签名图片(base64/URL)")
|
||||
@ApiModelProperty("手写签名图片(base64/URL)")
|
||||
private String signaturePic;
|
||||
|
||||
@ApiModelProperty("拍照取证图片(逗号分隔多张OSS URL)")
|
||||
private String evidencePics;
|
||||
|
||||
@ApiModelProperty("签名备注")
|
||||
private String signatureRemark;
|
||||
|
||||
|
||||
+109
@@ -1,5 +1,6 @@
|
||||
package com.mhd.wms.domain.stockOutOrder.service;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
@@ -14,9 +15,11 @@ import com.mhd.common.core.utils.StringUtils;
|
||||
import com.mhd.common.core.utils.bean.BeanUtils;
|
||||
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.BatchDetailFeignPO;
|
||||
import com.mhd.system.api.domain.DeliveryDetailsLink;
|
||||
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.application.service.handoverTaskOrder.HandoverTaskOrderApplicationService;
|
||||
@@ -177,6 +180,8 @@ public class StockOutOrderDomainService {
|
||||
private ReviewOrderMapper reviewOrderMapper;
|
||||
@Autowired
|
||||
private ReviewMaterialDetailMapper reviewMaterialDetailMapper;
|
||||
@Autowired
|
||||
private OmsServiceFeign omsServiceFeign;
|
||||
|
||||
/**
|
||||
* 分页查询出库单列表
|
||||
@@ -1102,6 +1107,8 @@ public class StockOutOrderDomainService {
|
||||
handoverTaskOrderDO.setHandoverTaskOrderIds(handoverTaskOrderId);
|
||||
handoverTaskOrderDomainService.completeHandover(handoverTaskOrderDO);
|
||||
}
|
||||
//出库交接后生成电子签名记录
|
||||
genElectronicSignature(stockOutOrder);
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
@@ -2386,4 +2393,106 @@ public class StockOutOrderDomainService {
|
||||
public List<OutMaterialDetailPO> queryOutStockNoticePrintDetailGF(StockOutOrderDTO stockOutOrderDTO) {
|
||||
return stockOutOrderService.queryOutStockNoticePrintDetailGF(stockOutOrderDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成出库电子签名记录(出库交接触发,StockOutOrder实体入口)
|
||||
*/
|
||||
private void genElectronicSignature(StockOutOrder stockOutOrder) {
|
||||
try {
|
||||
StockOutOrderDO queryDO = new StockOutOrderDO();
|
||||
queryDO.setOutOrderNumber(stockOutOrder.getOutOrderNumber());
|
||||
List<StockOutOrderPO> poList = stockOutOrderService.queryList(queryDO);
|
||||
if (CollectionUtil.isEmpty(poList)) {
|
||||
log.warn("生成出库电子签名记录失败,未查到出库单:{}", stockOutOrder.getOutOrderNumber());
|
||||
return;
|
||||
}
|
||||
genElectronicSignature(poList.get(0));
|
||||
} catch (Exception e) {
|
||||
log.error("生成出库电子签名记录失败,订单号:{}", stockOutOrder.getOutOrderNumber(), e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成出库电子签名记录
|
||||
*/
|
||||
private void genElectronicSignature(StockOutOrderPO stockOutOrderPO) {
|
||||
try {
|
||||
// 查询出库物料明细
|
||||
List<OutMaterialDetail> detailList = outMaterialDetailService.list(
|
||||
new LambdaQueryWrapper<OutMaterialDetail>()
|
||||
.eq(OutMaterialDetail::getOutOrderNumber, stockOutOrderPO.getOutOrderNumber()));
|
||||
|
||||
ElectronicSignatureSyncDTO dto = new ElectronicSignatureSyncDTO();
|
||||
dto.setOrderId(stockOutOrderPO.getOutOrderId());
|
||||
dto.setOrderNumber(stockOutOrderPO.getOutOrderNumber());
|
||||
dto.setOrderType("OUT");
|
||||
dto.setOrganizationId(stockOutOrderPO.getOrganizationId());
|
||||
dto.setOrganizationName(stockOutOrderPO.getOrganizationName());
|
||||
dto.setTopOrganizationId(stockOutOrderPO.getTopOrganizationId());
|
||||
dto.setWarehouseId(stockOutOrderPO.getWarehouseId());
|
||||
dto.setWarehouseCode(stockOutOrderPO.getWarehouseCode());
|
||||
dto.setWarehouseName(stockOutOrderPO.getWarehouseName());
|
||||
|
||||
List<ElectronicSignatureSyncDTO.MaterialDetailItem> items = new ArrayList<>();
|
||||
if (org.springframework.util.CollectionUtils.isEmpty(detailList)) {
|
||||
// 回退:直接通过 IOutMaterialDetailService 查询 PO 列表
|
||||
OutMaterialDetailDO queryDO = new OutMaterialDetailDO();
|
||||
queryDO.setOutOrderNumber(stockOutOrderPO.getOutOrderNumber());
|
||||
List<OutMaterialDetailPO> poList = outMaterialDetailService.queryList(queryDO);
|
||||
if (!org.springframework.util.CollectionUtils.isEmpty(poList)) {
|
||||
for (OutMaterialDetailPO detail : poList) {
|
||||
ElectronicSignatureSyncDTO.MaterialDetailItem item = new ElectronicSignatureSyncDTO.MaterialDetailItem();
|
||||
item.setMaterialBaseInfoId(detail.getMaterialBaseInfoId());
|
||||
item.setMaterialCode(detail.getMaterialCode());
|
||||
item.setMaterialName(detail.getMaterialName());
|
||||
item.setQuantity(detail.getCheckQuantity());
|
||||
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);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (OutMaterialDetail detail : detailList) {
|
||||
ElectronicSignatureSyncDTO.MaterialDetailItem item = new ElectronicSignatureSyncDTO.MaterialDetailItem();
|
||||
item.setMaterialBaseInfoId(detail.getMaterialBaseInfoId());
|
||||
item.setMaterialCode(detail.getMaterialCode());
|
||||
item.setMaterialName(detail.getMaterialName());
|
||||
item.setQuantity(detail.getCheckQuantity());
|
||||
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("生成出库电子签名记录,订单号:{},物料条目数:{}", stockOutOrderPO.getOutOrderNumber(), items.size());
|
||||
omsServiceFeign.saveSignature(dto);
|
||||
} catch (Exception e) {
|
||||
log.error("生成出库电子签名记录失败,订单号:{}", stockOutOrderPO.getOutOrderNumber(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
+53
@@ -22,6 +22,7 @@ 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.ContainerFeignPO;
|
||||
import com.mhd.system.api.domain.MaterialInventoryOmsParamDO;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
@@ -877,6 +878,8 @@ public class StockShelfOrderDomainService {
|
||||
}
|
||||
if (businessOrderNumber != null) stockShelfOrderService.updateOmsReserveOrder(businessOrderNumber,
|
||||
shelvesQuantity == null ? null : shelvesQuantity);
|
||||
//生成电子签名记录
|
||||
genElectronicSignature(stockShelfOrderPO, shelfMaterialDetailList);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -2016,4 +2019,54 @@ public class StockShelfOrderDomainService {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成入库电子签名记录(上架完成触发)
|
||||
*/
|
||||
private void genElectronicSignature(StockShelfOrderPO stockShelfOrderPO, List<ShelfMaterialDetail> shelfMaterialDetailList) {
|
||||
try {
|
||||
ElectronicSignatureSyncDTO dto = new ElectronicSignatureSyncDTO();
|
||||
dto.setOrderId(stockShelfOrderPO.getShelfOrderId());
|
||||
dto.setOrderNumber(stockShelfOrderPO.getShelfOrderNumber());
|
||||
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 (ShelfMaterialDetail 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.getLotNumber());
|
||||
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.getShelfOrderNumber(), items.size());
|
||||
omsServiceFeign.saveSignature(dto);
|
||||
} catch (Exception e) {
|
||||
log.error("生成入库电子签名记录失败,订单号:{}", stockShelfOrderPO.getShelfOrderNumber(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -30,9 +30,12 @@ public class BatchSignatureDTO {
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date signatureTime;
|
||||
|
||||
@ApiModelProperty("签名图片(base64或URL)")
|
||||
@ApiModelProperty("手写签名图片(base64或URL,单张)")
|
||||
private String signaturePic;
|
||||
|
||||
@ApiModelProperty("拍照取证图片列表(base64或URL,多张)")
|
||||
private List<String> evidencePics;
|
||||
|
||||
@ApiModelProperty("签名备注")
|
||||
private String signatureRemark;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user