|
|
|
|
@ -9,6 +9,7 @@ import com.alibaba.excel.util.StringUtils;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
|
|
import org.apache.ibatis.annotations.Mapper;
|
|
|
|
|
import org.apache.poi.util.StringUtil;
|
|
|
|
|
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
@ -18,8 +19,22 @@ import java.util.stream.Collectors;
|
|
|
|
|
public interface ErpStockOutMapper extends BaseMapperX<ErpStockOutDO> {
|
|
|
|
|
|
|
|
|
|
default PageResult<ErpStockOutDO> selectPage(ErpStockOutPageReqVO reqVO) {
|
|
|
|
|
MPJLambdaWrapperX<ErpStockOutDO> query = new MPJLambdaWrapperX<ErpStockOutDO>()
|
|
|
|
|
.likeIfPresent(ErpStockOutDO::getNo, reqVO.getNo())
|
|
|
|
|
MPJLambdaWrapperX<ErpStockOutDO> query = new MPJLambdaWrapperX<>();
|
|
|
|
|
|
|
|
|
|
Long productId = reqVO.getProductId();
|
|
|
|
|
if (StringUtil.isNotBlank(reqVO.getNo())) {
|
|
|
|
|
if (reqVO.getNo().contains("PRODUCTMATERIAL-")) {
|
|
|
|
|
productId = Long.valueOf(reqVO.getNo().replace("PRODUCTMATERIAL-", ""));
|
|
|
|
|
} else {
|
|
|
|
|
query.likeIfPresent(ErpStockOutDO::getNo, reqVO.getNo());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (productId != null || reqVO.getWarehouseId() != null) {
|
|
|
|
|
query.inSql(ErpStockOutDO::getId, buildItemFilterSql(productId, reqVO.getWarehouseId()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
query
|
|
|
|
|
.eqIfPresent(ErpStockOutDO::getCustomerId, reqVO.getCustomerId())
|
|
|
|
|
.eqIfPresent(ErpStockOutDO::getStockUserId, reqVO.getStockUserId())
|
|
|
|
|
.eqIfPresent(ErpStockOutDO::getOutType, reqVO.getOutType())
|
|
|
|
|
@ -40,6 +55,17 @@ public interface ErpStockOutMapper extends BaseMapperX<ErpStockOutDO> {
|
|
|
|
|
return selectJoinPage(reqVO, ErpStockOutDO.class, query);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
default String buildItemFilterSql(Long productId, Long warehouseId) {
|
|
|
|
|
StringBuilder itemFilterSql = new StringBuilder("select distinct out_id from erp_stock_out_item where deleted = 0");
|
|
|
|
|
if (productId != null) {
|
|
|
|
|
itemFilterSql.append(" and product_id = ").append(productId);
|
|
|
|
|
}
|
|
|
|
|
if (warehouseId != null) {
|
|
|
|
|
itemFilterSql.append(" and warehouse_id = ").append(warehouseId);
|
|
|
|
|
}
|
|
|
|
|
return itemFilterSql.toString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
default int updateByIdAndStatus(Long id, Integer status, ErpStockOutDO updateObj) {
|
|
|
|
|
return update(updateObj, new LambdaUpdateWrapper<ErpStockOutDO>()
|
|
|
|
|
.eq(ErpStockOutDO::getId, id)
|
|
|
|
|
|