feat(wms): 出库子表统计未出库的数量

dev
wanghao 5 days ago
parent 49675685e2
commit 11ab036e43

@ -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.WmsOutStockDetailsVo;
import org.dromara.wms.domain.bo.WmsOutStockDetailsBo;
import org.dromara.wms.service.IWmsOutStockDetailsService;
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.WmsOutStockDetailsBo;
import org.dromara.wms.domain.vo.WmsOutStockDetailsVo;
import org.dromara.wms.service.IWmsOutStockDetailsService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
*
@ -65,7 +66,7 @@ public class WmsOutStockDetailsController extends BaseController {
@SaCheckPermission("wms:outStockDetails:query")
@GetMapping("/{outStockDetailsId}")
public R<WmsOutStockDetailsVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("outStockDetailsId") Long outStockDetailsId) {
@PathVariable("outStockDetailsId") Long outStockDetailsId) {
return R.ok(wmsOutStockDetailsService.queryById(outStockDetailsId));
}
@ -113,4 +114,14 @@ public class WmsOutStockDetailsController extends BaseController {
return R.ok(list);
}
/**
* ID
*
* @return
*/
@SaCheckPermission("wms:outStockDetails:query")
@GetMapping("/countUnOutStockDetails")
public R<WmsOutStockDetailsVo> countUnOutStockDetails(WmsOutStockDetailsBo bo) {
return R.ok(wmsOutStockDetailsService.countUnOutStockDetailsByInventoryDetailsId(bo));
}
}

@ -1,5 +1,6 @@
package org.dromara.wms.service;
import jakarta.validation.constraints.NotNull;
import org.dromara.wms.domain.WmsOutStockDetails;
import org.dromara.wms.domain.vo.WmsOutStockDetailsVo;
import org.dromara.wms.domain.bo.WmsOutStockDetailsBo;
@ -68,4 +69,6 @@ public interface IWmsOutStockDetailsService {
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
List<WmsOutStockDetailsVo> queryListE(WmsOutStockDetailsBo bo);
WmsOutStockDetailsVo countUnOutStockDetailsByInventoryDetailsId(WmsOutStockDetailsBo bo);
}

@ -69,6 +69,7 @@ public class WmsOutStockDetailsServiceImpl implements IWmsOutStockDetailsService
MPJLambdaWrapper<WmsOutStockDetails> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@Override
public List<WmsOutStockDetailsVo> queryListE(WmsOutStockDetailsBo bo) {
MPJLambdaWrapper<WmsOutStockDetails> lqw = buildQueryWrapperE(bo);
@ -90,6 +91,7 @@ public class WmsOutStockDetailsServiceImpl implements IWmsOutStockDetailsService
.eq(bo.getOutStockBillId() != null, WmsOutStockDetails::getOutStockBillId, bo.getOutStockBillId());
return lqw;
}
private MPJLambdaWrapper<WmsOutStockDetails> buildQueryWrapperE(WmsOutStockDetailsBo bo) {
MPJLambdaWrapper<WmsOutStockDetails> lqw = JoinWrappers.lambda(WmsOutStockDetails.class)
.selectAll(WmsOutStockDetails.class)
@ -97,8 +99,7 @@ public class WmsOutStockDetailsServiceImpl implements IWmsOutStockDetailsService
.select(WmsBaseProduct::getProductCode, WmsBaseProduct::getProductName, WmsBaseProduct::getExternalBrand, WmsBaseProduct::getProductSpe)
.eq(bo.getOutStockBillId() != null, WmsOutStockDetails::getOutStockBillId, bo.getOutStockBillId())
.leftJoin(WmsInventoryDetails.class, WmsInventoryDetails::getInventoryDetailsId, WmsOutStockDetails::getInventoryDetailsId)
.select( WmsInventoryDetails::getInventoryAmount/*, WmsInventoryDetails::getLockedAmount*/)
;
.select(WmsInventoryDetails::getInventoryAmount/*, WmsInventoryDetails::getLockedAmount*/);
return lqw;
}
@ -128,7 +129,6 @@ public class WmsOutStockDetailsServiceImpl implements IWmsOutStockDetailsService
}
/**
*
*
@ -141,4 +141,23 @@ public class WmsOutStockDetailsServiceImpl implements IWmsOutStockDetailsService
return baseMapper.deleteByIds(ids) > 0;
}
/**
* ID
*
* @return
*/
@Override
public WmsOutStockDetailsVo countUnOutStockDetailsByInventoryDetailsId(WmsOutStockDetailsBo bo) {
return baseMapper.selectVoOne(
new MPJLambdaWrapper<WmsOutStockDetails>()
.selectSum(WmsOutStockDetails::getOutStockAmount)
.select(WmsOutStockDetails::getInventoryDetailsId)
.groupBy(WmsOutStockDetails::getInventoryDetailsId)
.eq(WmsOutStockDetails::getInventoryDetailsId, bo.getInventoryDetailsId())
.eq(WmsOutStockDetails::getOutState, "0")
// 排除当前出库单明细
.ne(bo.getOutStockDetailsId() != null, WmsOutStockDetails::getOutStockDetailsId, bo.getOutStockDetailsId())
);
}
}

Loading…
Cancel
Save