diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveOutMaterialDetail/entity/ReserveOutMaterialDetail.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveOutMaterialDetail/entity/ReserveOutMaterialDetail.java index 91fbbc212..7ad91c848 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveOutMaterialDetail/entity/ReserveOutMaterialDetail.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveOutMaterialDetail/entity/ReserveOutMaterialDetail.java @@ -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; } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveOutMaterialDetail/repository/po/ReserveOutMaterialDetailPO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveOutMaterialDetail/repository/po/ReserveOutMaterialDetailPO.java index f56ec8996..b3bc717cd 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveOutMaterialDetail/repository/po/ReserveOutMaterialDetailPO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveOutMaterialDetail/repository/po/ReserveOutMaterialDetailPO.java @@ -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; } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveOutMaterialDetail/repository/todo/ReserveOutMaterialDetailDO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveOutMaterialDetail/repository/todo/ReserveOutMaterialDetailDO.java index 5acf39058..f620a8d28 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveOutMaterialDetail/repository/todo/ReserveOutMaterialDetailDO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveOutMaterialDetail/repository/todo/ReserveOutMaterialDetailDO.java @@ -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; } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveOutMaterialDetail/repository/todo/ReserveOutMaterialDetailDTO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveOutMaterialDetail/repository/todo/ReserveOutMaterialDetailDTO.java index 19cb89637..dd0c4e76f 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveOutMaterialDetail/repository/todo/ReserveOutMaterialDetailDTO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveOutMaterialDetail/repository/todo/ReserveOutMaterialDetailDTO.java @@ -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; } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockInOrder/service/ReserveStockInOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockInOrder/service/ReserveStockInOrderDomainService.java index ca43f0c7c..20a7db68e 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockInOrder/service/ReserveStockInOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockInOrder/service/ReserveStockInOrderDomainService.java @@ -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); diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockOutOrder/service/ReserveStockOutOrderApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockOutOrder/service/ReserveStockOutOrderApplicationService.java index 7d6fb61a1..69d910b43 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockOutOrder/service/ReserveStockOutOrderApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockOutOrder/service/ReserveStockOutOrderApplicationService.java @@ -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); + } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockOutOrder/service/ReserveStockOutOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockOutOrder/service/ReserveStockOutOrderDomainService.java index f4b84ec9d..9ff03c5a8 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockOutOrder/service/ReserveStockOutOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reserveStockOutOrder/service/ReserveStockOutOrderDomainService.java @@ -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 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 materialDetailList = outMaterialDetailService.list(new QueryWrapper().lambda().eq(ReserveOutMaterialDetail::getOutOrderNumber, inOrderNumber)); - List outMaterialDetailList = new ArrayList<>(); - for (ReserveOutMaterialDetail reservationOutMaterialDetail : materialDetailList) { - OutMaterialDetail outMaterialDetail = new OutMaterialDetail(); - BeanUtils.copyProperties(reservationOutMaterialDetail, outMaterialDetail,"materialDetailId"); - outMaterialDetailList.add(outMaterialDetail); + List 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 materialDetailList = outMaterialDetailService.list(new QueryWrapper().lambda().eq(ReserveOutMaterialDetail::getOutOrderNumber, outOrderNumber)); + List 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().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 diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/ReserveStockOutOrder/ReserveStockOutOrderApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/ReserveStockOutOrder/ReserveStockOutOrderApi.java index 78bf36819..0d136c1e9 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/ReserveStockOutOrder/ReserveStockOutOrderApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/ReserveStockOutOrder/ReserveStockOutOrderApi.java @@ -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") diff --git a/mhd_oms/src/main/resources/mapper/reserveOutMaterialDetail/ReserveOutMaterialDetailMapper.xml b/mhd_oms/src/main/resources/mapper/reserveOutMaterialDetail/ReserveOutMaterialDetailMapper.xml index d1b11b295..e45981639 100644 --- a/mhd_oms/src/main/resources/mapper/reserveOutMaterialDetail/ReserveOutMaterialDetailMapper.xml +++ b/mhd_oms/src/main/resources/mapper/reserveOutMaterialDetail/ReserveOutMaterialDetailMapper.xml @@ -95,7 +95,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + . + + @@ -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,