OMS下发自动审核通过

This commit is contained in:
秦鸿展
2026-05-26 16:10:15 +08:00
parent d46c8e7439
commit 77c57dcfc6
2 changed files with 147 additions and 0 deletions
@@ -359,12 +359,88 @@ public class StockInOrderDomainService {
}
}
private static final int AUDIT_STATUS_PASS = 3;
private static final int ORDER_STATUS_AUDITED = 2;
private static final String OMS_AUTO_AUDIT_REMARK = "OMS下发自动审核";
public void omsOrderAdd(StockInOrder stockInOrder) {
stockInOrderService.save(stockInOrder);
}
@Transactional(rollbackFor = Exception.class)
public void omsOrderAddDetail(List<InMaterialDetail> inMaterialDetails) {
if (CollectionUtils.isEmpty(inMaterialDetails)) {
return;
}
materialDetailService.saveBatch(inMaterialDetails);
autoAuditOmsInOrder(inMaterialDetails.get(0).getInOrderNumber());
}
/**
* OMS下发入库单明细保存后自动审核通过(生成收货单并更新审核状态)
*/
private void autoAuditOmsInOrder(String inOrderNumber) {
if (StringUtils.isEmpty(inOrderNumber)) {
return;
}
StockInOrder stockInOrder = stockInOrderService.getOne(new QueryWrapper<StockInOrder>().lambda()
.eq(StockInOrder::getInOrderNumber, inOrderNumber)
.eq(StockInOrder::getDelFlag, 1)
.last("LIMIT 1"));
if (stockInOrder == null || AUDIT_STATUS_PASS == stockInOrder.getAuditStatus()) {
return;
}
StockInOrderDO auditDO = new StockInOrderDO();
auditDO.setInOrderIds(Collections.singletonList(stockInOrder.getInOrderId()));
auditDO.setAuditStatus(AUDIT_STATUS_PASS);
auditDO.setAuditRemark(OMS_AUTO_AUDIT_REMARK);
auditApprove(auditDO);
Long auditBy = resolveAuditUserId(stockInOrder.getCreateBy());
String auditByName = resolveAuditUserName(stockInOrder.getCreateByName());
Date now = new Date();
stockInOrderService.update(null, new UpdateWrapper<StockInOrder>().lambda()
.set(StockInOrder::getStatus, ORDER_STATUS_AUDITED)
.set(StockInOrder::getAuditStatus, AUDIT_STATUS_PASS)
.set(StockInOrder::getAuditRemark, OMS_AUTO_AUDIT_REMARK)
.set(StockInOrder::getAuditBy, auditBy)
.set(StockInOrder::getAuditByName, auditByName)
.set(StockInOrder::getAuditTime, now)
.set(StockInOrder::getUpdateBy, auditBy)
.set(StockInOrder::getUpdateByName, auditByName)
.set(StockInOrder::getUpdateTime, now)
.eq(StockInOrder::getInOrderId, stockInOrder.getInOrderId()));
}
private Long resolveAuditUserId(Long orderCreateBy) {
try {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null && loginUser.getUserid() != null) {
return loginUser.getUserid();
}
} catch (Exception e) {
log.debug("OMS自动审核未获取到登录用户,使用单据创建人: {}", e.getMessage());
}
return orderCreateBy != null ? orderCreateBy : 0L;
}
private String resolveAuditUserName(String orderCreateByName) {
try {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null) {
if (loginUser.getUserPo() != null && StringUtils.isNotEmpty(loginUser.getUserPo().getUserName())) {
return loginUser.getUserPo().getUserName();
}
if (StringUtils.isNotEmpty(loginUser.getRealname())) {
return loginUser.getRealname();
}
if (StringUtils.isNotEmpty(loginUser.getUsername())) {
return loginUser.getUsername();
}
}
} catch (Exception e) {
log.debug("OMS自动审核未获取到登录用户姓名,使用单据创建人: {}", e.getMessage());
}
return StringUtils.isNotEmpty(orderCreateByName) ? orderCreateByName : "OMS系统自动审核";
}
/**
@@ -1704,12 +1704,83 @@ public class StockOutOrderDomainService {
}
private static final int AUDIT_STATUS_PASS = 3;
private static final int ORDER_STATUS_AUDITED = 2;
private static final String OMS_AUTO_AUDIT_REMARK = "OMS下发自动审核";
public void omsOrderAdd(StockOutOrder stockOutOrder) {
stockOutOrderService.save(stockOutOrder);
}
@Transactional(rollbackFor = Exception.class)
public void omsOrderAddDetail(List<OutMaterialDetail> outMaterialDetails) {
if (CollectionUtils.isEmpty(outMaterialDetails)) {
return;
}
outMaterialDetailService.saveBatch(outMaterialDetails);
autoAuditOmsOutOrder(outMaterialDetails.get(0).getOutOrderNumber());
}
/**
* OMS下发出库单明细保存后自动审核通过
*/
private void autoAuditOmsOutOrder(String outOrderNumber) {
if (StringUtils.isEmpty(outOrderNumber)) {
return;
}
StockOutOrder stockOutOrder = stockOutOrderService.getOne(new QueryWrapper<StockOutOrder>().lambda()
.eq(StockOutOrder::getOutOrderNumber, outOrderNumber)
.eq(StockOutOrder::getDelFlag, 1)
.last("LIMIT 1"));
if (stockOutOrder == null || AUDIT_STATUS_PASS == stockOutOrder.getAuditStatus()) {
return;
}
Long auditBy = resolveAuditUserId(stockOutOrder.getCreateBy());
String auditByName = resolveAuditUserName(stockOutOrder.getCreateByName());
Date now = new Date();
stockOutOrderService.update(null, new UpdateWrapper<StockOutOrder>().lambda()
.set(StockOutOrder::getStatus, ORDER_STATUS_AUDITED)
.set(StockOutOrder::getAuditStatus, AUDIT_STATUS_PASS)
.set(StockOutOrder::getAuditRemark, OMS_AUTO_AUDIT_REMARK)
.set(StockOutOrder::getAuditBy, auditBy)
.set(StockOutOrder::getAuditByName, auditByName)
.set(StockOutOrder::getAuditTime, now)
.set(StockOutOrder::getUpdateBy, auditBy)
.set(StockOutOrder::getUpdateByName, auditByName)
.set(StockOutOrder::getUpdateTime, now)
.eq(StockOutOrder::getOutOrderId, stockOutOrder.getOutOrderId()));
}
private Long resolveAuditUserId(Long orderCreateBy) {
try {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null && loginUser.getUserid() != null) {
return loginUser.getUserid();
}
} catch (Exception e) {
log.debug("OMS自动审核未获取到登录用户,使用单据创建人: {}", e.getMessage());
}
return orderCreateBy != null ? orderCreateBy : 0L;
}
private String resolveAuditUserName(String orderCreateByName) {
try {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null) {
if (loginUser.getUserPo() != null && StringUtils.isNotEmpty(loginUser.getUserPo().getUserName())) {
return loginUser.getUserPo().getUserName();
}
if (StringUtils.isNotEmpty(loginUser.getRealname())) {
return loginUser.getRealname();
}
if (StringUtils.isNotEmpty(loginUser.getUsername())) {
return loginUser.getUsername();
}
}
} catch (Exception e) {
log.debug("OMS自动审核未获取到登录用户姓名,使用单据创建人: {}", e.getMessage());
}
return StringUtils.isNotEmpty(orderCreateByName) ? orderCreateByName : "OMS系统自动审核";
}
public List<StockOutOrderPO> queryOutStockNoticePrint(StockOutOrderDTO stockOutOrderDTO) {