出库单明细加字段;

This commit is contained in:
王奎兴
2026-04-29 16:08:53 +08:00
parent d4748995b9
commit 8a796aa432
9 changed files with 133 additions and 62 deletions
@@ -501,4 +501,12 @@ public class ReserveOutMaterialDetail extends BaseVOEntity {
@ApiModelProperty("每件重量")
@Excel(name = "每件重量")
private BigDecimal perWeight;
@ApiModelProperty("预约总价")
@Excel(name = "预约总价")
private BigDecimal reservePrice;
@ApiModelProperty("预约单价")
@Excel(name = "预约单价")
private BigDecimal reserveUnitPrice;
}
@@ -592,4 +592,12 @@ public class ReserveOutMaterialDetailPO extends ReserveStockOutOrderBaseDO {
@ApiModelProperty("每件重量")
@Excel(name = "每件重量")
private BigDecimal perWeight;
@ApiModelProperty("预约总价")
@Excel(name = "预约总价")
private BigDecimal reservePrice;
@ApiModelProperty("预约单价")
@Excel(name = "预约单价")
private BigDecimal reserveUnitPrice;
}
@@ -536,4 +536,12 @@ public class ReserveOutMaterialDetailDO extends BaseVOEntity {
@ApiModelProperty("每件重量")
@Excel(name = "每件重量")
private BigDecimal perWeight;
@ApiModelProperty("预约总价")
@Excel(name = "预约总价")
private BigDecimal reservePrice;
@ApiModelProperty("预约单价")
@Excel(name = "预约单价")
private BigDecimal reserveUnitPrice;
}
@@ -525,4 +525,12 @@ public class ReserveOutMaterialDetailDTO extends BaseVOEntity {
@ApiModelProperty("每件重量")
@Excel(name = "每件重量")
private BigDecimal perWeight;
@ApiModelProperty("预约总价")
@Excel(name = "预约总价")
private BigDecimal reservePrice;
@ApiModelProperty("预约单价")
@Excel(name = "预约单价")
private BigDecimal reserveUnitPrice;
}
@@ -450,6 +450,8 @@ public class ReserveStockInOrderDomainService {
for (ReserveInMaterialDetail reserveInMaterialDetail : materialDetailList) {
ReservationInMaterialDetail reservationInMaterialDetail = new ReservationInMaterialDetail();
BeanUtils.copyProperties(reserveInMaterialDetail, reservationInMaterialDetail,"materialDetailId");
reservationInMaterialDetail.setQuantity(reserveInMaterialDetail.getReserveQuantity());
//reservationInMaterialDetail.set
inMaterialDetailList.add(reservationInMaterialDetail);
}
reservationInMaterialDetailService.saveBatch(inMaterialDetailList);
@@ -17,6 +17,7 @@ import com.mhd.oms.domain.reserveInMaterialDetail.repository.facade.IReserveInMa
import com.mhd.oms.domain.reserveOutMaterialDetail.repository.facade.IReserveOutMaterialDetailService;
import com.mhd.oms.domain.reserveOutMaterialDetail.repository.po.ReserveOutMaterialDetailPO;
import com.mhd.oms.domain.reserveOutMaterialDetail.repository.todo.ReserveOutMaterialDetailDO;
import com.mhd.oms.domain.reserveStockInOrder.repository.todo.ReserveStockInOrderDO;
import com.mhd.oms.domain.reserveStockOutOrder.repository.facade.IReserveStockOutOrderService;
import com.mhd.oms.domain.reserveStockOutOrder.repository.po.ReserveStockOutOrderPO;
import com.mhd.oms.domain.reserveStockOutOrder.repository.todo.ReserveStockOutOrderDO;
@@ -790,6 +791,16 @@ public class ReserveStockOutOrderApplicationService {
public Boolean issueOrder(ReserveStockOutOrderDO stockOutOrderDO){
return stockOutOrderDomainService.issueOrder(stockOutOrderDO);
}
/**
* @description 审核入库单
* @author ZhouGY
* @date 2024/5/21 13:53
* @param stockInOrderDO
* @return Boolean
*/
public Boolean orderReject(ReserveStockOutOrderDO stockOutOrderDO){
return stockOutOrderDomainService.orderReject(stockOutOrderDO);
}
@@ -8,14 +8,23 @@ import com.mhd.common.core.utils.StringUtils;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.oms.domain.businessDocumentOrder.repository.mapper.BusinessDocumentOrderMapper;
import com.mhd.oms.domain.reservationInMaterialDetail.entity.ReservationInMaterialDetail;
import com.mhd.oms.domain.reservationOutMaterialDetail.entity.ReservationOutMaterialDetail;
import com.mhd.oms.domain.reservationOutMaterialDetail.repository.facade.IReservationOutMaterialDetailService;
import com.mhd.oms.domain.reservationStockInOrder.entity.ReservationStockInOrder;
import com.mhd.oms.domain.reservationStockInOrder.repository.po.MaterialBaseInfoPO;
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.reserveOutMaterialDetail.entity.ReserveOutMaterialDetail;
import com.mhd.oms.domain.reserveOutMaterialDetail.repository.facade.IReserveOutMaterialDetailService;
import com.mhd.oms.domain.reserveOutMaterialDetail.repository.po.ReserveOutMaterialDetailPO;
import com.mhd.oms.domain.reserveOutMaterialDetail.repository.todo.ReserveOutMaterialDetailBaseDO;
import com.mhd.oms.domain.reserveOutMaterialDetail.repository.todo.ReserveOutMaterialDetailDO;
import com.mhd.oms.domain.reserveStockInOrder.entity.ReserveStockInOrder;
import com.mhd.oms.domain.reserveStockInOrder.repository.facade.IReserveStockInOrderService;
import com.mhd.oms.domain.reserveStockInOrder.repository.mapper.ReserveStockInOrderMapper;
import com.mhd.oms.domain.reserveStockInOrder.repository.todo.ReserveStockInOrderDO;
import com.mhd.oms.domain.reserveStockOutOrder.entity.ReserveStockOutOrder;
import com.mhd.oms.domain.reserveStockOutOrder.repository.facade.IReserveStockOutOrderService;
import com.mhd.oms.domain.reserveStockOutOrder.repository.po.ReserveStockOutOrderPO;
@@ -56,48 +65,12 @@ public class ReserveStockOutOrderDomainService {
private IReserveOutMaterialDetailService outMaterialDetailService;
@Autowired
private IReserveStockInOrderService reservationStockInOrderService;
// @Autowired
// private IHandoverTaskOrderService handoverTaskOrderService;
// @Autowired
// private IOutOrderAbnormalService outOrderAbnormalService;
// @Autowired
// private PickingOrderDomainService pickingOrderDomainService;
// @Autowired
// private ReplenishmentNoticeDomainService replenishmentNoticeDomainService;
// @Autowired
// private IMobilizeManageService iMobilizeManageService;
// @Autowired
// private IMobilizeManageDetailService iMobilizeManageDetailService;
// @Autowired
// private StockInOrderDomainService stockInOrderDomainService;
// @Autowired
// private IInventoryStandingDetailService inventoryStandingDetailService;
// @Autowired
// private IDeliveTaskService deliveTaskService;
// @Autowired
// private WaveOrderServiceFactory waveOrderServiceFactory;
// @Autowired
// private IMaterialBaseInfoService materialBaseInfoService;
@Autowired
private IReservationStockOutOrderService reservationStockOutOrderService;
@Autowired
private IReservationOutMaterialDetailService reservationOutMaterialDetailService;
@Autowired
private ReserveStockInOrderMapper reservationStockInOrderMapper;
@Autowired
private BusinessDocumentOrderMapper businessDocumentOrderMapper;
// @Autowired
// private IMaterialWarehouseControlService materialWarehouseControlService;
// @Autowired
// private IMaterialInventoryService materialInventoryService;
@Resource
private SystemServiceFeign systemServiceFeign;
@Resource
private WmsServiceFeign wmsServiceFeign;
// @Autowired
// private PushSyncBmsDomainService pushSyncBmsDomainService;
// @Autowired
// private MaterialBaseInfoMapper materialBaseInfoMapper;
// @Autowired
// private MaterialInventoryMapper materialInventoryMapper;
// @Autowired
// private IPickingMaterialDetailService pickingMaterialDetailService;
/**
* 分页查询出库单列表
@@ -288,25 +261,53 @@ public class ReserveStockOutOrderDomainService {
.in(ReserveStockOutOrder::getOutOrderId, stockOutOrderDO.getOutOrderIds()));
//todo下发推送到wms
List<Long> inOrderIds = stockOutOrderDO.getOutOrderIds();
for (Long inOrderId : inOrderIds) {
ReserveStockOutOrder byId = stockOutOrderService.getById(inOrderId);
StockOutOrder stockOutOrder = new StockOutOrder();
BeanUtils.copyProperties(byId, stockOutOrder,"outOrderId");
wmsServiceFeign.omsOutOrderAdd(stockOutOrder);
String inOrderNumber = stockOutOrder.getOutOrderNumber();
List<ReserveOutMaterialDetail> materialDetailList = outMaterialDetailService.list(new QueryWrapper<ReserveOutMaterialDetail>().lambda().eq(ReserveOutMaterialDetail::getOutOrderNumber, inOrderNumber));
List<OutMaterialDetail> outMaterialDetailList = new ArrayList<>();
for (ReserveOutMaterialDetail reservationOutMaterialDetail : materialDetailList) {
OutMaterialDetail outMaterialDetail = new OutMaterialDetail();
BeanUtils.copyProperties(reservationOutMaterialDetail, outMaterialDetail,"materialDetailId");
outMaterialDetailList.add(outMaterialDetail);
List<Long> outOrderIds = stockOutOrderDO.getOutOrderIds();
for (Long outOrderId : outOrderIds) {
ReserveStockOutOrder byId = stockOutOrderService.getById(outOrderId);
ReservationStockOutOrder reservationStockOutOrder = new ReservationStockOutOrder();
BeanUtils.copyProperties(byId, reservationStockOutOrder,"inOrderId");
reservationStockOutOrderService.save(reservationStockOutOrder);
String outOrderNumber = reservationStockOutOrder.getOutOrderNumber();
List<ReserveOutMaterialDetail> materialDetailList = outMaterialDetailService.list(new QueryWrapper<ReserveOutMaterialDetail>().lambda().eq(ReserveOutMaterialDetail::getOutOrderNumber, outOrderNumber));
List<ReservationOutMaterialDetail> inMaterialDetailList = new ArrayList<>();
for (ReserveOutMaterialDetail reserveOutMaterialDetail : materialDetailList) {
ReservationOutMaterialDetail reservationOutMaterialDetail = new ReservationOutMaterialDetail();
BeanUtils.copyProperties(reserveOutMaterialDetail, reservationOutMaterialDetail,"materialDetailId");
inMaterialDetailList.add(reservationOutMaterialDetail);
}
wmsServiceFeign.omsOutOrderAddDetail(outMaterialDetailList);
reservationOutMaterialDetailService.saveBatch(inMaterialDetailList);
}
return update;
}
/**
* @description 审核入库单
* @author ZhouGY
* @date 2024/5/21 13:53
* @param
* @return Boolean
*/
@Transactional(rollbackFor = Exception.class)
public Boolean orderReject(ReserveStockOutOrderDO stockOutOrderDO) {
LoginUser loginUser = SecurityUtils.getLoginUser();
Integer auditStatus = stockOutOrderDO.getIssueStatus();
Integer issueStatus = 2;
//issueStatus = auditStatus == 2 ? 2 : 3;
// 获取用户姓名(优先从UserPo获取,如果为空则使用realname,最后使用username作为兜底)
String userRealName = loginUser.getUserPo() != null && loginUser.getUserPo().getUserName() != null
? loginUser.getUserPo().getUserName()
: (loginUser.getRealname() != null ? loginUser.getRealname() : loginUser.getUsername());
return stockOutOrderService.update(null, new UpdateWrapper<ReserveStockOutOrder>().lambda()
.set(ReserveStockOutOrder::getReservationAuditId, loginUser.getUserid())
.set(ReserveStockOutOrder::getReservationAuditName, userRealName)
.set(ReserveStockOutOrder::getReservationAuditTime, new Date())
.set(ReserveStockOutOrder::getUpdateBy, loginUser.getUserid())
.set(ReserveStockOutOrder::getUpdateByName, userRealName)
.set(ReserveStockOutOrder::getUpdateTime, new Date())
.set(ReserveStockOutOrder::getIssueStatus, issueStatus)
.in(ReserveStockOutOrder::getOutOrderId, stockOutOrderDO.getOutOrderIds()));
}
/**
* @description 修改出库单
* @author ZhouGY
@@ -5,6 +5,8 @@ import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
import com.mhd.oms.domain.reserveOutMaterialDetail.repository.po.ReserveOutMaterialDetailPO;
import com.mhd.oms.domain.reserveStockInOrder.repository.todo.ReserveStockInOrderDO;
import com.mhd.oms.domain.reserveStockInOrder.repository.todo.ReserveStockInOrderDTO;
import com.mhd.oms.domain.reserveStockOutOrder.entity.ReserveStockOutOrder;
import com.mhd.oms.domain.reserveStockOutOrder.repository.facade.IReserveStockOutOrderService;
import com.mhd.oms.domain.reserveStockOutOrder.repository.po.ReserveStockOutOrderPO;
@@ -58,6 +60,27 @@ public class ReserveStockOutOrderApi extends BaseController {
}
/**
* 审核入库单
*/
@ApiOperation("驳回")
@PostMapping(value = "/orderReject")
public AjaxResult orderReject(@RequestBody ReserveStockOutOrderDTO stockOutOrderDTO) {
ReserveStockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO);
return AjaxResult.success(stockOutOrderApplicationService.orderReject(stockOutOrderDO));
}
/**
* 下发入库单
*/
@ApiOperation("确认入库单")
@PostMapping(value = "/issueOrder")
public AjaxResult issueOrder(@RequestBody ReserveStockOutOrderDTO stockOutOrderDTO) {
ReserveStockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO);
return AjaxResult.success(stockOutOrderApplicationService.issueOrder(stockOutOrderDO));
}
/**
* 编辑出库单
*/
@@ -163,12 +186,12 @@ public class ReserveStockOutOrderApi extends BaseController {
/**
* 下发出库单
*/
@ApiOperation("下发出库单")
@PostMapping(value = "/issueOrder")
public AjaxResult issueOrder(@RequestBody ReserveStockOutOrderDTO stockOutOrderDTO) {
ReserveStockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO);
return AjaxResult.success(stockOutOrderApplicationService.issueOrder(stockOutOrderDO));
}
// @ApiOperation("下发出库单")
// @PostMapping(value = "/issueOrder")
// public AjaxResult issueOrder(@RequestBody ReserveStockOutOrderDTO stockOutOrderDTO) {
// ReserveStockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO);
// return AjaxResult.success(stockOutOrderApplicationService.issueOrder(stockOutOrderDO));
// }
@ApiOperation("关闭出库单")
@PostMapping("/close")
@@ -95,7 +95,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="stockUnit" column="stock_unit" />
<result property="stockQuantity" column="stock_quantity" />
<result property="perWeight" column="PER_WEIGHT" />
<result property="coefficient" column="COEFFICIENT" />
<result property="coefficient" column="COEFFICIENT" />.
<result property="reservePrice" column="reserve_price" />
<result property="reserveUnitPrice" column="reserve_unit_price" />
</resultMap>
@@ -108,7 +110,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
a.single_gross_weight ,
a.lot_no ,
a.stock_quantity ,
a.stock_unit ,a.in_order_number ,a.PER_WEIGHT,a.COEFFICIENT,
a.stock_unit ,a.in_order_number ,a.PER_WEIGHT,a.COEFFICIENT,a.reserve_price,a.reserve_unit_price,
a.material_detail_id, a.organization_id, a.organization_name, a.top_organization_id, a.unique_id, a.out_order_number, a.material_base_info_id, a.line_number, a.material_code, a.material_name, a.bar_code, a.weight_limit, a.volume_limit,
a.quantity, a.already_allocation_quantity, a.allocation_quantity, a.picking_quantity, a.check_quantity, ROUND(GREATEST(0, IFNULL(a.quantity, 0) - IFNULL(a.check_quantity, 0), IFNULL(a.picking_quantity, 0) - IFNULL(a.check_quantity, 0)), 2) AS wait_check_quantity,
a.pack_id, a.pack_code, a.pack_name, a.pack_detail_id, a.unit_code, a.unit_name, a.material_warehouse_control_id, a.serial_number_manage,