diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsOutStockBillController.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsOutStockBillController.java index 91e3f003..a21c3889 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsOutStockBillController.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsOutStockBillController.java @@ -1,26 +1,27 @@ package org.dromara.wms.controller; -import java.util.List; - -import lombok.RequiredArgsConstructor; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; -import org.springframework.web.bind.annotation.*; -import org.springframework.validation.annotation.Validated; -import org.dromara.common.idempotent.annotation.RepeatSubmit; -import org.dromara.common.log.annotation.Log; -import org.dromara.common.web.core.BaseController; -import org.dromara.common.mybatis.core.page.PageQuery; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; -import org.dromara.common.log.enums.BusinessType; import org.dromara.common.excel.utils.ExcelUtil; -import org.dromara.wms.domain.vo.WmsOutStockBillVo; -import org.dromara.wms.domain.bo.WmsOutStockBillBo; -import org.dromara.wms.service.IWmsOutStockBillService; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.dromara.wms.domain.bo.WmsOutStockBillBo; +import org.dromara.wms.domain.vo.WmsOutStockBillVo; +import org.dromara.wms.service.IWmsOutStockBillService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * 出库单 @@ -65,7 +66,7 @@ public class WmsOutStockBillController extends BaseController { @SaCheckPermission("wms:outStockBill:query") @GetMapping("/{outStockBillId}") public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable("outStockBillId") Long outStockBillId) { + @PathVariable("outStockBillId") Long outStockBillId) { return R.ok(wmsOutStockBillService.queryById(outStockBillId)); } @@ -113,4 +114,13 @@ public class WmsOutStockBillController extends BaseController { return R.ok(list); } + /** + * 出库单发货 + * @param outStockBillId + * @return + */ + @PutMapping("/deliver/{outStockBillId}") + public R deliver(@PathVariable("outStockBillId") Long outStockBillId) { + return toAjax(wmsOutStockBillService.deliver(outStockBillId)); + } } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsOutStockBillService.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsOutStockBillService.java index c41b0f52..09504512 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsOutStockBillService.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsOutStockBillService.java @@ -1,5 +1,6 @@ package org.dromara.wms.service; +import jakarta.validation.constraints.NotEmpty; import org.dromara.wms.domain.WmsOutStockBill; import org.dromara.wms.domain.vo.WmsOutStockBillVo; import org.dromara.wms.domain.bo.WmsOutStockBillBo; @@ -66,4 +67,6 @@ public interface IWmsOutStockBillService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + Boolean deliver(@NotEmpty(message = "主键不能为空") Long outStockBillId); } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsOutStockBillServiceImpl.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsOutStockBillServiceImpl.java index d1ae4210..fb63b440 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsOutStockBillServiceImpl.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsOutStockBillServiceImpl.java @@ -5,6 +5,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; import org.apache.dubbo.config.annotation.DubboReference; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; @@ -12,10 +13,7 @@ import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.system.api.RemoteCodeRuleService; -import org.dromara.wms.domain.WmsInventoryDetails; -import org.dromara.wms.domain.WmsInventoryLedger; -import org.dromara.wms.domain.WmsOutStockBill; -import org.dromara.wms.domain.WmsOutStockDetails; +import org.dromara.wms.domain.*; import org.dromara.wms.domain.bo.WmsOutStockBillBo; import org.dromara.wms.domain.vo.WmsOutStockBillVo; import org.dromara.wms.mapper.WmsInventoryDetailsMapper; @@ -113,18 +111,18 @@ public class WmsOutStockBillServiceImpl implements IWmsOutStockBillService { public Boolean insertByBo(WmsOutStockBillBo bo) { WmsOutStockBill add = MapstructUtils.convert(bo, WmsOutStockBill.class); add.setOutStockCode(remoteCodeRuleService.selectCodeRuleCode("1006")); - add.setOutStockBillStatus("3"); + add.setOutStockBillStatus("0");//备货 boolean flag = baseMapper.insert(add) > 0; if (flag) { Long outStockBillId = add.getOutStockBillId(); List outStockDetailsList = bo.getOutStockDetailsList(); - List wmsInventoryLedgers = new ArrayList<>(); + // List wmsInventoryLedgers = new ArrayList<>(); outStockDetailsList.forEach(item -> { item.setOutStockBillId(outStockBillId); - // 从出库明细中获取库存ID - Long inventoryId = item.getInventoryDetailsId(); - inventoryDetailsService.outStoreLossInventoryAmount(inventoryId, - item.getOutStockAmount(),item.getWarehouseId(),item.getBatchNumber(),item.getMaterielId(),"3"); + // // 从出库明细中获取库存ID + // Long inventoryId = item.getInventoryDetailsId(); + // inventoryDetailsService.outStoreLossInventoryAmount(inventoryId, + // item.getOutStockAmount(),item.getWarehouseId(),item.getBatchNumber(),item.getMaterielId(),"3"); }); //插入出库明细 wmsOutStockDetailsMapper.insert(outStockDetailsList); @@ -159,4 +157,25 @@ public class WmsOutStockBillServiceImpl implements IWmsOutStockBillService { return baseMapper.deleteByIds(ids) > 0; } + + @Override + public Boolean deliver(Long outStockBillId) { + + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsOutStockDetails.class) + .selectAll(WmsOutStockDetails.class) + .eq(WmsOutStockDetails::getOutStockBillId, outStockBillId); + // 校验出库单是否存在 + List outStockDetailsList = wmsOutStockDetailsMapper.selectList(lqw); + if (outStockDetailsList == null || outStockDetailsList.isEmpty()) { + throw new ServiceException("出库单不存在"); + } + outStockDetailsList.forEach(item -> { + item.setOutStockBillId(outStockBillId); + // 从出库明细中获取库存ID + Long inventoryId = item.getInventoryDetailsId(); + inventoryDetailsService.outStoreLossInventoryAmount(inventoryId, + item.getOutStockAmount(),item.getWarehouseId(),item.getBatchNumber(),item.getMaterielId(),"3"); + }); + return true; + } }