预约单改造;

This commit is contained in:
王奎兴
2026-06-27 18:06:31 +08:00
parent c6366ef728
commit 8f0e71fe2a
34 changed files with 329 additions and 58 deletions
@@ -827,7 +827,7 @@ public class ExecutionStockOutOrderApplicationService {
}
public Boolean cancelAuditState(ExecutionStockOutOrderDO stockOutOrderDO){
return stockOutOrderDomainService.auditState(stockOutOrderDO);
return stockOutOrderDomainService.cancelAuditState(stockOutOrderDO);
}
/**
@@ -315,19 +315,19 @@ public class ExecutionStockOutOrderDomainService {
String outOrderNumber = executionStockOutOrder.getOutOrderNumber();
StockOutOrder stockOutOrder = new StockOutOrder();
stockOutOrder.setOutOrderNumber(outOrderNumber);
wmsServiceFeign.cancelExecutionOrder(stockOutOrder);
wmsServiceFeign.omsCancelExecutionOrder(stockOutOrder);
//还原oms库存及调整记录
}
}
return stockOutOrderService.update(null, new UpdateWrapper<ExecutionStockOutOrder>().lambda()
.set(ExecutionStockOutOrder::getIssueId, null)
.set(ExecutionStockOutOrder::getIssueName, userRealName)
.set(ExecutionStockOutOrder::getIssueTime, new Date())
.set(ExecutionStockOutOrder::getIssueName, null)
.set(ExecutionStockOutOrder::getIssueTime, null)
.set(ExecutionStockOutOrder::getUpdateBy, loginUser.getUserid())
.set(ExecutionStockOutOrder::getUpdateByName, userRealName)
.set(ExecutionStockOutOrder::getUpdateTime, new Date())
.set(ExecutionStockOutOrder::getIssueStatus, 0)
.set(ExecutionStockOutOrder::getIssueStatus, 1)
.in(ExecutionStockOutOrder::getOutOrderId, stockOutOrderDO.getOutOrderIds()));
}
@@ -333,6 +333,10 @@ public class ReservationStockInOrderApplicationService {
return stockInOrderDomainService.issueOrder(stockInOrderDO);
}
public Boolean cancelIssueOrder(ReservationStockInOrderDO stockInOrderDO){
return stockInOrderDomainService.cancelIssueOrder(stockInOrderDO);
}
public Boolean executeAndIssue(ReservationStockInOrderDO stockInOrderDO){
return stockInOrderDomainService.executeAndIssue(stockInOrderDO);
}
@@ -539,6 +539,51 @@ public class ReservationStockInOrderDomainService {
return update;
}
@Transactional(rollbackFor = Exception.class)
public Boolean cancelIssueOrder(ReservationStockInOrderDO stockInOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
// 获取用户姓名优先从UserPo获取如果为空则使用realname最后使用username作为兜底
String userRealName = loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null
? loginUser.getUserPo().getUserName()
: (loginUser.getRealname() != null ? loginUser.getRealname() : loginUser.getUsername());
boolean update = stockInOrderService.update(null, new UpdateWrapper<ReservationStockInOrder>().lambda()
.set(ReservationStockInOrder::getIssueId, null)
.set(ReservationStockInOrder::getIssueName, null)
.set(ReservationStockInOrder::getIssueTime, null)
.set(ReservationStockInOrder::getIssueStatus, 2)
.set(ReservationStockInOrder::getUpdateBy, loginUser.getUserid())
.set(ReservationStockInOrder::getUpdateByName, userRealName)
.set(ReservationStockInOrder::getUpdateTime, new Date())
.in(ReservationStockInOrder::getInOrderId, stockInOrderDO.getInOrderIds()));
//todo下发推送到入库业务单
List<Long> inOrderIds = stockInOrderDO.getInOrderIds();
for (Long inOrderId : inOrderIds) {
ReservationStockInOrder byId = stockInOrderService.getById(inOrderId);
String inOrderNumber = byId.getInOrderNumber();
List<ExecutionStockInOrder> list = executionStockInOrderService.list(new QueryWrapper<ExecutionStockInOrder>().lambda()
.eq(ExecutionStockInOrder::getBusinessInOrderNumber, inOrderNumber)
.eq(ExecutionStockInOrder::getDelFlag, 1));
for (ExecutionStockInOrder executionStockInOrder : list) {
String inOrderNumber1 = executionStockInOrder.getInOrderNumber();
List<ExecutionInMaterialDetail> materialDetails = executionInMaterialDetailService.list(new QueryWrapper<ExecutionInMaterialDetail>().lambda()
.eq(ExecutionInMaterialDetail::getInOrderNumber, inOrderNumber1)
.eq(ExecutionInMaterialDetail::getDelFlag, 1));
materialDetails.forEach(materialDetail -> {
executionInMaterialDetailService.update(null, new UpdateWrapper<ExecutionInMaterialDetail>().lambda()
.set(ExecutionInMaterialDetail::getDelFlag, 2)
.eq(ExecutionInMaterialDetail::getMaterialDetailId, materialDetail.getMaterialDetailId()));
});
executionStockInOrderService.update(null, new UpdateWrapper<ExecutionStockInOrder>().lambda()
.set(ExecutionStockInOrder::getDelFlag, 2)
.eq(ExecutionStockInOrder::getInOrderId, executionStockInOrder.getInOrderId()));
}
}
return update;
}
@Transactional(rollbackFor = Exception.class)
public Boolean executeAndIssue(ReservationStockInOrderDO stockInOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
@@ -853,6 +853,9 @@ public class ReservationStockOutOrderApplicationService {
public Boolean issueOrder(ReservationStockOutOrderDO stockOutOrderDO){
return stockOutOrderDomainService.issueOrder(stockOutOrderDO);
}
public Boolean cancelIssueOrder(ReservationStockOutOrderDO stockOutOrderDO){
return stockOutOrderDomainService.cancelIssueOrder(stockOutOrderDO);
}
public Boolean executeAndIssue(ReservationStockOutOrderDO stockOutOrderDO){
return stockOutOrderDomainService.executeAndIssue(stockOutOrderDO);
@@ -402,6 +402,50 @@ public class ReservationStockOutOrderDomainService {
return update;
}
@Transactional(rollbackFor = Exception.class)
public Boolean cancelIssueOrder(ReservationStockOutOrderDO stockOutOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
// 获取用户姓名优先从UserPo获取如果为空则使用realname最后使用username作为兜底
String userRealName = loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null
? loginUser.getUserPo().getUserName()
: (loginUser.getRealname() != null ? loginUser.getRealname() : loginUser.getUsername());
boolean update = stockOutOrderService.update(null, new UpdateWrapper<ReservationStockOutOrder>().lambda()
.set(ReservationStockOutOrder::getIssueId, null)
.set(ReservationStockOutOrder::getIssueName, null)
.set(ReservationStockOutOrder::getIssueTime, null)
.set(ReservationStockOutOrder::getIssueStatus, 2)
.set(ReservationStockOutOrder::getUpdateBy, loginUser.getUserid())
.set(ReservationStockOutOrder::getUpdateByName, userRealName)
.set(ReservationStockOutOrder::getUpdateTime, new Date())
.in(ReservationStockOutOrder::getOutOrderId, stockOutOrderDO.getOutOrderIds()));
//todo下发推送到wms
List<Long> inOrderIds = stockOutOrderDO.getOutOrderIds();
for (Long inOrderId : inOrderIds) {
ReservationStockOutOrder byId = stockOutOrderService.getById(inOrderId);
String inOrderNumber = byId.getOutOrderNumber();
List<ExecutionStockOutOrder> list = executionStockOutOrderService.list(new QueryWrapper<ExecutionStockOutOrder>().lambda()
.eq(ExecutionStockOutOrder::getBusinessOutOrderNumber, inOrderNumber)
.eq(ExecutionStockOutOrder::getDelFlag, 1));
list.forEach(executionStockOutOrder -> {
String outOrderNumber = executionStockOutOrder.getOutOrderNumber();
List<ExecutionOutMaterialDetail> materialDetails = executionOutMaterialDetailService.list(new QueryWrapper<ExecutionOutMaterialDetail>().lambda()
.eq(ExecutionOutMaterialDetail::getOutOrderNumber, outOrderNumber)
.eq(ExecutionOutMaterialDetail::getDelFlag, 1));
materialDetails.forEach(executionOutMaterialDetail -> {
executionOutMaterialDetailService.update(null, new UpdateWrapper<ExecutionOutMaterialDetail>().lambda()
.set(ExecutionOutMaterialDetail::getDelFlag, 2)
.eq(ExecutionOutMaterialDetail::getMaterialDetailId, executionOutMaterialDetail.getMaterialDetailId()));
});
executionStockOutOrderService.update(null, new UpdateWrapper<ExecutionStockOutOrder>().lambda()
.set(ExecutionStockOutOrder::getDelFlag, 2)
.eq(ExecutionStockOutOrder::getOutOrderNumber, outOrderNumber));
});
}
return update;
}
@Transactional(rollbackFor = Exception.class)
public Boolean executeAndIssue(ReservationStockOutOrderDO stockOutOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
@@ -150,6 +150,13 @@ public class ReservationStockOutOrderApi extends BaseController {
return AjaxResult.success(stockOutOrderApplicationService.issueOrder(stockOutOrderDO));
}
@ApiOperation("取消下发出库单")
@PostMapping(value = "/cancelIssueOrder")
public AjaxResult cancelIssueOrder(@RequestBody ReservationStockOutOrderDTO stockOutOrderDTO) {
ReservationStockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO);
return AjaxResult.success(stockOutOrderApplicationService.cancelIssueOrder(stockOutOrderDO));
}
@ApiOperation("下发出库单")
@PostMapping(value = "/executeAndIssue")
public AjaxResult executeAndIssue(@RequestBody ReservationStockOutOrderDTO stockOutOrderDTO) {
@@ -155,7 +155,7 @@ public class ExecutionStockOutOrderApi extends BaseController {
@PostMapping(value = "/cancelAuditState")
public AjaxResult cancelAuditState(@RequestBody ExecutionStockOutOrderDTO stockOutOrderDTO) {
ExecutionStockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO);
return AjaxResult.success(stockOutOrderApplicationService.auditState(stockOutOrderDO));
return AjaxResult.success(stockOutOrderApplicationService.cancelAuditState(stockOutOrderDO));
}
@ApiOperation("关闭出库单")
@@ -122,6 +122,13 @@ public class ReservationStockInOrderApi extends BaseController {
/**
* 下发入库单
*/
@ApiOperation("取消下发入库单")
@PostMapping(value = "/cancelIssueOrder")
public AjaxResult cancelIssueOrder(@RequestBody ReservationStockInOrderDTO stockInOrderDTO) {
ReservationStockInOrderDO stockInOrderDO = stockInOrderAssembler.toDO(stockInOrderDTO);
return AjaxResult.success(stockInOrderApplicationService.cancelIssueOrder(stockInOrderDO));
}
@ApiOperation("下发入库单")
@PostMapping(value = "/issueOrder")
public AjaxResult issueOrder(@RequestBody ReservationStockInOrderDTO stockInOrderDTO) {