feat(wms): 确认出库接口

dev
wanghao 5 days ago
parent f4f7c8b193
commit 4d089e9048

@ -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<WmsOutStockBillVo> 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<Void> deliver(@PathVariable("outStockBillId") Long outStockBillId) {
return toAjax(wmsOutStockBillService.deliver(outStockBillId));
}
}

@ -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<Long> ids, Boolean isValid);
Boolean deliver(@NotEmpty(message = "主键不能为空") Long outStockBillId);
}

@ -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<WmsOutStockDetails> outStockDetailsList = bo.getOutStockDetailsList();
List<WmsInventoryLedger> wmsInventoryLedgers = new ArrayList<>();
// List<WmsInventoryLedger> 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<WmsOutStockDetails> lqw = JoinWrappers.lambda(WmsOutStockDetails.class)
.selectAll(WmsOutStockDetails.class)
.eq(WmsOutStockDetails::getOutStockBillId, outStockBillId);
// 校验出库单是否存在
List<WmsOutStockDetails> 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;
}
}

Loading…
Cancel
Save