执行及取消执行;
This commit is contained in:
+4
@@ -41,6 +41,10 @@ public interface ExecutionStockInOrderMapper extends BaseMapper<ExecutionStockIn
|
||||
|
||||
public String getUserNcCode(@Param("id") Long id);
|
||||
|
||||
public void delWOrder(@Param("inOrderNumber") String inOrderNumber);
|
||||
|
||||
public void delWOrderDetail(@Param("inOrderNumber") String inOrderNumber);
|
||||
|
||||
|
||||
List<ExecutionStockInOrderPO> queryNoticePrint(ExecutionStockInOrderDO stockInOrderDO);
|
||||
List<ExecutionInMaterialDetailPO> queryNoticePrintDetail(ExecutionStockInOrderDO stockInOrderDO);
|
||||
|
||||
+5
@@ -306,6 +306,11 @@ public class ExecutionStockInOrderApplicationService {
|
||||
return b;
|
||||
}
|
||||
|
||||
public Boolean cancelAuditState(ExecutionStockInOrderDO stockInOrderDO){
|
||||
Boolean b = stockInOrderDomainService.cancelAuditState(stockInOrderDO);
|
||||
return b;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 下发入库单
|
||||
* @author ZhouGY
|
||||
|
||||
+33
@@ -429,6 +429,39 @@ public class ExecutionStockInOrderDomainService {
|
||||
.in(ExecutionStockInOrder::getInOrderId, stockInOrderDO.getInOrderIds()));
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean cancelAuditState(ExecutionStockInOrderDO stockInOrderDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
Integer issueStatus = stockInOrderDO.getIssueStatus();
|
||||
// 获取用户姓名(优先从UserPo获取,如果为空则使用realname,最后使用username作为兜底)
|
||||
String userRealName = loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null
|
||||
? loginUser.getUserPo().getUserName()
|
||||
: (loginUser.getRealname() != null ? loginUser.getRealname() : loginUser.getUsername());
|
||||
|
||||
//逻辑删除w入库单信息
|
||||
List<Long> inOrderIds = stockInOrderDO.getInOrderIds();
|
||||
if (inOrderIds == null || inOrderIds.isEmpty()) {
|
||||
for (Long inOrderId : inOrderIds) {
|
||||
ExecutionStockInOrder executionStockInOrder = reservationStockInOrderMapper.selectById(inOrderId);
|
||||
if (executionStockInOrder != null) {
|
||||
String inOrderNumber = executionStockInOrder.getInOrderNumber();
|
||||
reservationStockInOrderMapper.delWOrder(inOrderNumber);
|
||||
reservationStockInOrderMapper.delWOrderDetail(inOrderNumber);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return stockInOrderService.update(null, new UpdateWrapper<ExecutionStockInOrder>().lambda()
|
||||
.set(ExecutionStockInOrder::getIssueId, null)
|
||||
.set(ExecutionStockInOrder::getIssueName, null)
|
||||
.set(ExecutionStockInOrder::getIssueTime, null)
|
||||
.set(ExecutionStockInOrder::getUpdateBy, loginUser.getUserid())
|
||||
.set(ExecutionStockInOrder::getUpdateByName, userRealName)
|
||||
.set(ExecutionStockInOrder::getUpdateTime, new Date())
|
||||
.set(ExecutionStockInOrder::getIssueStatus, issueStatus)
|
||||
.in(ExecutionStockInOrder::getInOrderId, stockInOrderDO.getInOrderIds()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 审核入库单
|
||||
* @author ZhouGY
|
||||
|
||||
+6
@@ -5,6 +5,7 @@ import com.mhd.oms.domain.executionOutMaterialDetail.repository.po.ExecutionOutM
|
||||
import com.mhd.oms.domain.executionStockOutOrder.entity.ExecutionStockOutOrder;
|
||||
import com.mhd.oms.domain.executionStockOutOrder.repository.po.ExecutionStockOutOrderPO;
|
||||
import com.mhd.oms.domain.executionStockOutOrder.repository.todo.ExecutionStockOutOrderDO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
//import com.mhd.oms.domain.reservationOutMaterialDetail.repository.po.ExecutionOutMaterialDetailPO;
|
||||
|
||||
import java.util.List;
|
||||
@@ -31,4 +32,9 @@ public interface ExecutionStockOutOrderMapper extends BaseMapper<ExecutionStockO
|
||||
* 出库单提货单打印-明细
|
||||
*/
|
||||
List<ExecutionOutMaterialDetailPO> queryOutStockNoticePrintDetail(ExecutionStockOutOrderDO stockOutOrderDO);
|
||||
|
||||
public void delWOrder(@Param("outOrderNumber") String outOrderNumber);
|
||||
|
||||
public void delWOrderDetail(@Param("outOrderNumber") String outOrderNumber);
|
||||
|
||||
}
|
||||
+4
@@ -826,6 +826,10 @@ public class ExecutionStockOutOrderApplicationService {
|
||||
return stockOutOrderDomainService.auditState(stockOutOrderDO);
|
||||
}
|
||||
|
||||
public Boolean cancelAuditState(ExecutionStockOutOrderDO stockOutOrderDO){
|
||||
return stockOutOrderDomainService.auditState(stockOutOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 下发入库单
|
||||
* @author ZhouGY
|
||||
|
||||
+40
@@ -27,6 +27,7 @@ import com.mhd.oms.domain.executionStockInOrder.repository.mapper.ExecutionStock
|
||||
import com.mhd.oms.domain.executionStockInOrder.repository.po.MaterialBaseInfoPO;
|
||||
import com.mhd.oms.domain.executionStockOutOrder.entity.ExecutionStockOutOrder;
|
||||
import com.mhd.oms.domain.executionStockOutOrder.repository.facade.IExecutionStockOutOrderService;
|
||||
import com.mhd.oms.domain.executionStockOutOrder.repository.mapper.ExecutionStockOutOrderMapper;
|
||||
import com.mhd.oms.domain.executionStockOutOrder.repository.po.ExecutionStockOutOrderPO;
|
||||
import com.mhd.oms.domain.executionStockOutOrder.repository.todo.ExecutionStockOutOrderDO;
|
||||
import com.mhd.oms.domain.reservationDeliveryDetailsLink.entity.ReservationDeliveryDetailsLink;
|
||||
@@ -68,6 +69,8 @@ public class ExecutionStockOutOrderDomainService {
|
||||
@Autowired
|
||||
private ExecutionStockInOrderMapper reservationStockInOrderMapper;
|
||||
@Autowired
|
||||
private ExecutionStockOutOrderMapper executionStockOutOrderMapper;
|
||||
@Autowired
|
||||
private BusinessDocumentOrderMapper businessDocumentOrderMapper;
|
||||
@Autowired
|
||||
private ExecuteOrderMapper executeOrderMapper;
|
||||
@@ -296,6 +299,38 @@ public class ExecutionStockOutOrderDomainService {
|
||||
.in(ExecutionStockOutOrder::getOutOrderId, stockOutOrderDO.getOutOrderIds()));
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean cancelAuditState(ExecutionStockOutOrderDO stockOutOrderDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
Integer issueStatus = stockOutOrderDO.getIssueStatus();
|
||||
// 获取用户姓名(优先从UserPo获取,如果为空则使用realname,最后使用username作为兜底)
|
||||
String userRealName = loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null
|
||||
? loginUser.getUserPo().getUserName()
|
||||
: (loginUser.getRealname() != null ? loginUser.getRealname() : loginUser.getUsername());
|
||||
|
||||
List<Long> outOrderIds = stockOutOrderDO.getOutOrderIds();
|
||||
if (outOrderIds != null && outOrderIds.size() > 0) {
|
||||
for (Long outOrderId : outOrderIds) {
|
||||
ExecutionStockOutOrder executionStockOutOrder = stockOutOrderService.getById(outOrderId);
|
||||
String outOrderNumber = executionStockOutOrder.getOutOrderNumber();
|
||||
StockOutOrder stockOutOrder = new StockOutOrder();
|
||||
stockOutOrder.setOutOrderNumber(outOrderNumber);
|
||||
wmsServiceFeign.cancelExecutionOrder(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::getUpdateBy, loginUser.getUserid())
|
||||
.set(ExecutionStockOutOrder::getUpdateByName, userRealName)
|
||||
.set(ExecutionStockOutOrder::getUpdateTime, new Date())
|
||||
.set(ExecutionStockOutOrder::getIssueStatus, issueStatus)
|
||||
.in(ExecutionStockOutOrder::getOutOrderId, stockOutOrderDO.getOutOrderIds()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 审核出库单
|
||||
* @author ZhouGY
|
||||
@@ -348,6 +383,11 @@ public class ExecutionStockOutOrderDomainService {
|
||||
outMaterialDetailList.add(outMaterialDetail);
|
||||
}
|
||||
wmsServiceFeign.omsOutOrderAddDetail(outMaterialDetailList);
|
||||
|
||||
String outOrderNumber = byId.getOutOrderNumber();
|
||||
com.mhd.system.api.domain.StockOutOrderDTO stockOutOrderDTO = new com.mhd.system.api.domain.StockOutOrderDTO();
|
||||
stockOutOrderDTO.setOutOrderNumber(outOrderNumber);
|
||||
wmsServiceFeign.execution(stockOutOrderDTO);
|
||||
}
|
||||
return update;
|
||||
}
|
||||
|
||||
+9
@@ -40,6 +40,15 @@ public interface ReservationStockInOrderMapper extends BaseMapper<ReservationSto
|
||||
|
||||
public String getUserNcCode(@Param("id") Long id);
|
||||
|
||||
public Long getTopOrgId(@Param("id") Long id);
|
||||
|
||||
public String getOrgName(@Param("id") Long id);
|
||||
|
||||
public Long getOrgId(@Param("id") Long id);
|
||||
|
||||
public String getWarehouseCode(@Param("id") Long id);
|
||||
|
||||
public String getWarehouseName(@Param("id") Long id);
|
||||
|
||||
List<ReservationStockInOrderPO> queryNoticePrint(ReservationStockInOrderDO stockInOrderDO);
|
||||
List<ReservationInMaterialDetailPO> queryNoticePrintDetail(ReservationStockInOrderDO stockInOrderDO);
|
||||
|
||||
+94
-13
@@ -13,6 +13,10 @@ import com.mhd.common.core.web.domain.AjaxResult;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.oms.domain.businessDocumentOrder.entity.BusinessDocumentOrder;
|
||||
import com.mhd.oms.domain.businessDocumentOrder.repository.mapper.BusinessDocumentOrderMapper;
|
||||
import com.mhd.oms.domain.executionInMaterialDetail.entity.ExecutionInMaterialDetail;
|
||||
import com.mhd.oms.domain.executionInMaterialDetail.repository.facade.IExecutionInMaterialDetailService;
|
||||
import com.mhd.oms.domain.executionStockInOrder.entity.ExecutionStockInOrder;
|
||||
import com.mhd.oms.domain.executionStockInOrder.repository.facade.IExecutionStockInOrderService;
|
||||
import com.mhd.oms.domain.reservationInMaterialDetail.entity.ReservationInMaterialDetail;
|
||||
import com.mhd.oms.domain.reservationInMaterialDetail.repository.facade.IReservationInMaterialDetailService;
|
||||
import com.mhd.oms.domain.reservationInMaterialDetail.repository.po.ReservationInMaterialDetailPO;
|
||||
@@ -29,6 +33,8 @@ import com.mhd.oms.domain.reservationStockInOrder.repository.po.ReservationStock
|
||||
import com.mhd.oms.domain.reservationStockInOrder.repository.todo.ReservationStockInOrderDO;
|
||||
import com.mhd.oms.domain.reservationStockOutOrder.entity.ReservationStockOutOrder;
|
||||
import com.mhd.oms.domain.reservationStockOutOrder.repository.facade.IReservationStockOutOrderService;
|
||||
import com.mhd.oms.domain.reserveInMaterialDetail.entity.ReserveInMaterialDetail;
|
||||
import com.mhd.oms.domain.reserveStockInOrder.entity.ReserveStockInOrder;
|
||||
import com.mhd.system.api.SystemServiceFeign;
|
||||
import com.mhd.system.api.WmsServiceFeign;
|
||||
import com.mhd.system.api.domain.*;
|
||||
@@ -43,6 +49,7 @@ import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -61,6 +68,10 @@ public class ReservationStockInOrderDomainService {
|
||||
@Autowired
|
||||
private IReservationInMaterialDetailService materialDetailService;
|
||||
@Autowired
|
||||
private IExecutionStockInOrderService executionStockInOrderService;
|
||||
@Autowired
|
||||
private IExecutionInMaterialDetailService executionInMaterialDetailService;
|
||||
@Autowired
|
||||
private IReservationStockOutOrderService stockOutOrderService;
|
||||
// @Autowired
|
||||
// private ReservationStockReceiptOrderDomainService stockReceiptOrderDomainService;
|
||||
@@ -455,27 +466,97 @@ public class ReservationStockInOrderDomainService {
|
||||
.in(ReservationStockInOrder::getInOrderId, stockInOrderDO.getInOrderIds()));
|
||||
|
||||
//todo下发推送到wms
|
||||
// List<Long> inOrderIds = stockInOrderDO.getInOrderIds();
|
||||
// for (Long inOrderId : inOrderIds) {
|
||||
// ReservationStockInOrder byId = stockInOrderService.getById(inOrderId);
|
||||
// StockInOrder stockInOrder = new StockInOrder();
|
||||
// BeanUtils.copyProperties(byId, stockInOrder,"inOrderId");
|
||||
// stockInOrder.setOmsStockInOrderId(String.valueOf(byId.getInOrderId()));
|
||||
// wmsServiceFeign.omsInOrderAdd(stockInOrder);
|
||||
// String inOrderNumber = stockInOrder.getInOrderNumber();
|
||||
// List<ReservationInMaterialDetail> materialDetailList = materialDetailService.list(new QueryWrapper<ReservationInMaterialDetail>().lambda().eq(ReservationInMaterialDetail::getInOrderNumber, inOrderNumber));
|
||||
// List<InMaterialDetail> inMaterialDetailList = new ArrayList<>();
|
||||
// for (ReservationInMaterialDetail reservationInMaterialDetail : materialDetailList) {
|
||||
// InMaterialDetail inMaterialDetail = new InMaterialDetail();
|
||||
// BeanUtils.copyProperties(reservationInMaterialDetail, inMaterialDetail,"materialDetailId");
|
||||
// inMaterialDetail.setOmsInMaterialDetail(String.valueOf(reservationInMaterialDetail.getMaterialDetailId()));
|
||||
// inMaterialDetailList.add(inMaterialDetail);
|
||||
// }
|
||||
// wmsServiceFeign.omsInOrderAddDetail(inMaterialDetailList);
|
||||
// }
|
||||
//todo下发推送到入库业务单
|
||||
List<Long> inOrderIds = stockInOrderDO.getInOrderIds();
|
||||
for (Long inOrderId : inOrderIds) {
|
||||
// Long inOrderId = stockInOrderDO.getInOrderId();
|
||||
ReservationStockInOrder byId = stockInOrderService.getById(inOrderId);
|
||||
StockInOrder stockInOrder = new StockInOrder();
|
||||
BeanUtils.copyProperties(byId, stockInOrder,"inOrderId");
|
||||
stockInOrder.setOmsStockInOrderId(String.valueOf(byId.getInOrderId()));
|
||||
wmsServiceFeign.omsInOrderAdd(stockInOrder);
|
||||
String inOrderNumber = stockInOrder.getInOrderNumber();
|
||||
String inOrderNumber = byId.getInOrderNumber();
|
||||
List<ReservationInMaterialDetail> materialDetailList = materialDetailService.list(new QueryWrapper<ReservationInMaterialDetail>().lambda().eq(ReservationInMaterialDetail::getInOrderNumber, inOrderNumber));
|
||||
List<InMaterialDetail> inMaterialDetailList = new ArrayList<>();
|
||||
for (ReservationInMaterialDetail reservationInMaterialDetail : materialDetailList) {
|
||||
InMaterialDetail inMaterialDetail = new InMaterialDetail();
|
||||
BeanUtils.copyProperties(reservationInMaterialDetail, inMaterialDetail,"materialDetailId");
|
||||
inMaterialDetail.setOmsInMaterialDetail(String.valueOf(reservationInMaterialDetail.getMaterialDetailId()));
|
||||
inMaterialDetailList.add(inMaterialDetail);
|
||||
}
|
||||
wmsServiceFeign.omsInOrderAddDetail(inMaterialDetailList);
|
||||
|
||||
// 按照 warehouseId 分组
|
||||
Map<Long, List<ReservationInMaterialDetail>> materialDetailGroupByWarehouse = materialDetailList.stream()
|
||||
.collect(Collectors.groupingBy(ReservationInMaterialDetail::getWarehouseId));
|
||||
materialDetailGroupByWarehouse.forEach((warehouseId, details) -> {
|
||||
Long topOrgId = reservationStockInOrderMapper.getTopOrgId(warehouseId);
|
||||
Long orgId = reservationStockInOrderMapper.getOrgId(warehouseId);
|
||||
String orgName = reservationStockInOrderMapper.getOrgName(warehouseId);
|
||||
String warehouseCode = reservationStockInOrderMapper.getWarehouseCode(warehouseId);
|
||||
String warehouseName = reservationStockInOrderMapper.getWarehouseName(warehouseId);
|
||||
|
||||
ExecutionStockInOrder reservationStockInOrder = new ExecutionStockInOrder();
|
||||
BeanUtils.copyProperties(byId, reservationStockInOrder,"inOrderId","issueStatus","issueTime","issueId","issueName","reservationAuditId","reservationAuditName","reservationAuditTime");
|
||||
reservationStockInOrder.setIssueStatus(0);
|
||||
reservationStockInOrder.setOrderTypeCode("pu_tong_ru_ku");
|
||||
reservationStockInOrder.setOrderTypeName("普通入库");
|
||||
reservationStockInOrder.setReservationOrderSource("客户预约");
|
||||
reservationStockInOrder.setWarehouseId(warehouseId);
|
||||
reservationStockInOrder.setOrganizationId(orgId);
|
||||
reservationStockInOrder.setOrganizationName(orgName);
|
||||
reservationStockInOrder.setTopOrganizationId(topOrgId);
|
||||
reservationStockInOrder.setWarehouseCode(warehouseCode);
|
||||
reservationStockInOrder.setWarehouseName(warehouseName);
|
||||
|
||||
List<ExecutionInMaterialDetail> inMaterialDetailList = new ArrayList<>();
|
||||
int index = 1;
|
||||
for (ReservationInMaterialDetail reserveInMaterialDetail : details) {
|
||||
ExecutionInMaterialDetail reservationInMaterialDetail = new ExecutionInMaterialDetail();
|
||||
BeanUtils.copyProperties(reserveInMaterialDetail, reservationInMaterialDetail,"materialDetailId");
|
||||
reservationInMaterialDetail.setQuantity(reserveInMaterialDetail.getQuantity());
|
||||
reservationInMaterialDetail.setOrganizationId(orgId);
|
||||
reservationInMaterialDetail.setOrganizationName(orgName);
|
||||
reservationInMaterialDetail.setTopOrganizationId(topOrgId);
|
||||
reservationInMaterialDetail.setWarehouseCode(warehouseCode);
|
||||
reservationInMaterialDetail.setWarehouseName(warehouseName);
|
||||
// String lot = generateDateSerialNumber();
|
||||
// lot = lot+"-"+index;
|
||||
// index++;
|
||||
// reservationInMaterialDetail.setLotNo(lot);
|
||||
inMaterialDetailList.add(reservationInMaterialDetail);
|
||||
}
|
||||
BigDecimal quantity = details.stream().map(ReservationInMaterialDetail::getQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
reservationStockInOrder.setQuantity(quantity);
|
||||
executionStockInOrderService.save(reservationStockInOrder);
|
||||
executionInMaterialDetailService.saveBatch(inMaterialDetailList);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
return update;
|
||||
}
|
||||
|
||||
public String generateDateSerialNumber() {
|
||||
// 1. 获取当前时间,格式化为:yyMMdd (2位年+2位月+2位日)
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");
|
||||
String datePart = sdf.format(new Date());
|
||||
|
||||
// 2. 生成 000~999 的 3 位随机数(不足补零)
|
||||
Random random = new Random();
|
||||
int randomNum = random.nextInt(1000); // 0~999
|
||||
String randomPart = String.format("%03d", randomNum); // 自动补前导零
|
||||
|
||||
// 3. 拼接结果
|
||||
return datePart + randomPart;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 入库单返回结果
|
||||
* @author ZhouGY
|
||||
|
||||
+11
-1
@@ -120,13 +120,23 @@ public class ExecutionStockInOrderApi extends BaseController {
|
||||
/**
|
||||
* 下发入库单
|
||||
*/
|
||||
@ApiOperation("下发入库单")
|
||||
@ApiOperation("执行入库单")
|
||||
@PostMapping(value = "/issueOrder")
|
||||
public AjaxResult issueOrder(@RequestBody ExecutionStockInOrderDTO stockInOrderDTO) {
|
||||
ExecutionStockInOrderDO stockInOrderDO = stockInOrderAssembler.toDO(stockInOrderDTO);
|
||||
return AjaxResult.success(stockInOrderApplicationService.issueOrder(stockInOrderDO));
|
||||
}
|
||||
|
||||
/**
|
||||
* 审核入库单
|
||||
*/
|
||||
@ApiOperation("取消执行入库单")
|
||||
@PostMapping(value = "/cancelAuditState")
|
||||
public AjaxResult cancelAuditState(@RequestBody ExecutionStockInOrderDTO stockInOrderDTO) {
|
||||
ExecutionStockInOrderDO stockInOrderDO = stockInOrderAssembler.toDO(stockInOrderDTO);
|
||||
return AjaxResult.success(stockInOrderApplicationService.cancelAuditState(stockInOrderDO));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* wms回传出入库结果
|
||||
|
||||
+10
@@ -148,6 +148,16 @@ public class ExecutionStockOutOrderApi extends BaseController {
|
||||
return AjaxResult.success(stockOutOrderApplicationService.issueOrder(stockOutOrderDO));
|
||||
}
|
||||
|
||||
/**
|
||||
* 审核出库单
|
||||
*/
|
||||
@ApiOperation("审核出库单")
|
||||
@PostMapping(value = "/cancelAuditState")
|
||||
public AjaxResult cancelAuditState(@RequestBody ExecutionStockOutOrderDTO stockOutOrderDTO) {
|
||||
ExecutionStockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO);
|
||||
return AjaxResult.success(stockOutOrderApplicationService.auditState(stockOutOrderDO));
|
||||
}
|
||||
|
||||
@ApiOperation("关闭出库单")
|
||||
@PostMapping("/close")
|
||||
public AjaxResult close(@RequestBody ExecutionStockOutOrderDTO stockOutOrderDTO)
|
||||
|
||||
Reference in New Issue
Block a user