8月新需求修改

This commit is contained in:
dev 2025-08-21 14:19:40 +08:00
parent 5710ef1c0e
commit e56d59967f
22 changed files with 197 additions and 35 deletions

View File

@ -7,6 +7,7 @@ import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
@ -189,5 +190,7 @@ public class BizLogisticsOrderDetail extends TenantEntity {
private Long quoteOrderId;
private BigDecimal totalPrice;
}

View File

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
@ -86,12 +87,12 @@ public class BizPurchaseOrderItem extends TenantEntity {
/**
* 含税单价
*/
private Long price;
private BigDecimal price;
/**
* 价税合计
*/
private Long amount;
private BigDecimal amount;
/**
* 计划采购量

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
@ -64,7 +65,7 @@ public class BizSendOrder extends TenantEntity {
/**
* 发货数量
*/
private Long quantitySend;
private BigDecimal quantitySend;
/**
* 单箱产品数量
@ -118,4 +119,6 @@ public class BizSendOrder extends TenantEntity {
private String createName;
private Long transferFromId;
}

View File

@ -68,4 +68,6 @@ public class BizSendOrderItem extends TenantEntity {
@TableField(exist = false)
private BigDecimal ratio;
private Long transferFromId;
}

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
@ -55,7 +56,7 @@ public class BizShipForward extends TenantEntity {
/**
* 实际发货数量
*/
private Long quantitySend;
private BigDecimal quantitySend;
/**
* 发货供应商名称

View File

@ -9,6 +9,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
@ -94,13 +95,13 @@ public class BizPurchaseOrderItemBo extends BaseEntity {
* 含税单价
*/
// @NotNull(message = "含税单价不能为空", groups = {AddGroup.class, EditGroup.class})
private Long price;
private BigDecimal price;
/**
* 价税合计
*/
// @NotNull(message = "价税合计不能为空", groups = {AddGroup.class, EditGroup.class})
private Long amount;
private BigDecimal amount;
/**
* 计划采购量

View File

@ -9,6 +9,8 @@ import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@ -95,7 +97,7 @@ public class BizPurchaseOutOrderBo extends BaseEntity {
* 外包数量
*/
@NotNull(message = "外包数量不能为空", groups = { AddGroup.class, EditGroup.class })
private Long outsourceQuantity;
private BigDecimal outsourceQuantity;
/**
* 实收数量

View File

@ -137,7 +137,7 @@ public class BizLogisticsQuoteVo implements Serializable {
private String type;
private String shipmentId;
private Long totalPrice;
private BigDecimal totalPrice;
}

View File

@ -2,6 +2,7 @@ package org.asinkj.amz.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.asinkj.amz.domain.BizOrderOutItem;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
@ -107,12 +108,23 @@ public class BizOrderOutItemVo implements Serializable {
@ExcelProperty(value = "实际到货数量")
private BigDecimal quantityReal;
@ExcelProperty(value = "转发数量")
private BigDecimal quantityForward = BigDecimal.ZERO;
@ExcelProperty(value = "可转发数量")
private BigDecimal quantityCanForward = BigDecimal.ZERO;
/**
* 已入库数量
*/
@ExcelProperty(value = "已入库数量")
private Long quantityEntry;
@ExcelProperty(value = "转发类型")
private String forwardType;
/**
* 已发货数量
*/

View File

@ -104,13 +104,13 @@ public class BizPurchaseOrderItemVo implements Serializable {
* 含税单价
*/
@ExcelProperty(value = "含税单价")
private Long price;
private BigDecimal price;
/**
* 价税合计
*/
@ExcelProperty(value = "价税合计")
private Long amount;
private BigDecimal amount;
/**
* 计划采购量
@ -148,6 +148,9 @@ public class BizPurchaseOrderItemVo implements Serializable {
@ExcelProperty(value = "换货量")
private Long quantityExchange;
@ExcelProperty(value = "转发数量")
private BigDecimal quantityForward;
/**
* 质检量
*/

View File

@ -1,5 +1,6 @@
package org.asinkj.amz.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.asinkj.amz.domain.BizOrderOutItem;
@ -101,13 +102,13 @@ public class BizPurchaseOutOrderVo implements Serializable {
* 外包数量
*/
@ExcelProperty(value = "外包数量")
private Long outsourceQuantity;
private BigDecimal outsourceQuantity;
@ExcelProperty(value = "已下单数量")
private Long quantityShipped;
private BigDecimal quantityShipped;
@ExcelProperty(value = "剩余数量")
private Long quantityLeft;
private BigDecimal quantityLeft;
/**
* 实收数量

View File

@ -1,5 +1,6 @@
package org.asinkj.amz.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import org.asinkj.amz.domain.BizLogisticsOrder;
@ -72,7 +73,7 @@ public class BizSendOrderVo implements Serializable {
* 发货数量
*/
@ExcelProperty(value = "发货数量")
private Long quantitySend;
private BigDecimal quantitySend;
/**
* 单箱产品数量
@ -139,5 +140,8 @@ public class BizSendOrderVo implements Serializable {
private String createName;
private Long transferFromId;
}

View File

@ -109,7 +109,7 @@ public class BizShipmentPlanOrderExportVo implements Serializable {
private String sendName;
@ExcelProperty(value = "供应商发货数量")
private Long quantitySend;
private BigDecimal quantitySend;
@ExcelProperty(value = "供应商发货明细")
private String sendDetail;

View File

@ -109,5 +109,9 @@ public class SysAmazonStoreVo implements Serializable {
@ExcelProperty(value = "店铺状态 0停用 1正常 2异常 3欠费")
private Long status;
private String userName;
private String nickName;
}

View File

@ -1,6 +1,12 @@
package org.asinkj.amz.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.asinkj.amz.domain.BizInquiryRequest;
import org.asinkj.amz.domain.SysAmazonStore;
import org.asinkj.amz.domain.vo.BizInquiryRequestVo;
import org.asinkj.amz.domain.vo.SysAmazonStoreVo;
import org.asinkj.common.mybatis.core.mapper.BaseMapperPlus;
import org.mapstruct.Mapper;
@ -16,4 +22,15 @@ import java.util.List;
public interface SysAmazonStoreMapper extends BaseMapperPlus<SysAmazonStore, SysAmazonStoreVo> {
void batchInsertOrUpdate(List<SysAmazonStore> dataList);
/**
* XML 分页查询方法
* @param page 分页参数对象 (必须放在第一位)
* @param wrapper 查询条件构造器
*/
Page<SysAmazonStoreVo> selectCustomPage(
@Param("page") Page<SysAmazonStoreVo> page,
@Param(Constants.WRAPPER) Wrapper<SysAmazonStore> wrapper
);
}

View File

@ -246,6 +246,8 @@ public class BizLogisticsOrderQuotationServiceImpl implements IBizLogisticsOrder
detail.setEstimatedDeliveryDate(DateUtil.offsetDay(new Date(), Math.toIntExact(quoteVo.getLeadTime())));
detail.setPricePerKg(quoteVo.getPrice());
detail.setPlannedQuantity(bizShipmentTracking.getTotal());
detail.setTotalPrice(quoteVo.getTotalPrice());
detail.setCarrierConfirmTime(DateUtil.date());
BigDecimal lb = new BigDecimal(bizShipmentTracking.getWeight());

View File

@ -10,9 +10,12 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.extern.slf4j.Slf4j;
import org.asinkj.amz.api.RemoteFBADataService;
import org.asinkj.amz.domain.*;
import org.asinkj.amz.domain.bo.SysAmazonStoreBo;
import org.asinkj.amz.domain.vo.BizPurchaseOrderItemVo;
import org.asinkj.amz.domain.vo.SysAmazonStoreVo;
import org.asinkj.amz.mapper.*;
import org.asinkj.amz.service.IBizPurchaseOrderItemService;
import org.asinkj.amz.service.ISysAmazonStoreService;
import org.asinkj.common.core.utils.MapstructUtils;
import org.asinkj.common.core.utils.StringUtils;
import org.asinkj.common.mybatis.core.page.TableDataInfo;
@ -71,6 +74,9 @@ public class BizPurchaseOrderServiceImpl implements IBizPurchaseOrderService {
@Resource
private BizSendOrderItemMapper bizSendOrderItemMapper;
@Resource
private ISysAmazonStoreService iSysAmazonStoreService;
/**
* 查询采购单主
@ -158,6 +164,10 @@ public class BizPurchaseOrderServiceImpl implements IBizPurchaseOrderService {
item.setSysStatusHistories(sysStatusHistoryMap.get(item.getId()));
List<BizShipForward> bizShipForwards = finalBizShipForwardItemMap.get(item.getId());
List<BizSendOrder> bizSendOrders = finalBizSendOrderItemMap.get(item.getId());
if (CollectionUtil.isNotEmpty(bizShipForwards)) {
BigDecimal reduce = bizShipForwards.stream().map(BizShipForward::getQuantitySend).reduce(BigDecimal.ZERO, BigDecimal::add);
item.setQuantityForward(reduce);
}
if (CollectionUtil.isNotEmpty(bizShipForwards)) {
item.setHasForward("Y");
}
@ -176,12 +186,12 @@ public class BizPurchaseOrderServiceImpl implements IBizPurchaseOrderService {
}
BigDecimal bizShipForwardDecimal = BigDecimal.ZERO;
if (CollectionUtil.isNotEmpty(bizShipForwards)) {
bizShipForwardDecimal = bizShipForwards.stream().map(bizShipForward -> new BigDecimal(bizShipForward.getQuantitySend())).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
bizShipForwardDecimal = bizShipForwards.stream().map(bizShipForward -> bizShipForward.getQuantitySend()).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
}
List<BizSendOrder> bizSendOrders = BizSendOrderMap.get(record.getOrderSn());
BigDecimal sendOrderDecimal = BigDecimal.ZERO;
if (CollectionUtil.isNotEmpty(bizSendOrders)) {
sendOrderDecimal = bizSendOrders.stream().map(bizSendOrder -> new BigDecimal(bizSendOrder.getQuantitySend())).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
sendOrderDecimal = bizSendOrders.stream().map(BizSendOrder::getQuantitySend).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
}
@ -205,7 +215,7 @@ public class BizPurchaseOrderServiceImpl implements IBizPurchaseOrderService {
private LambdaQueryWrapper<BizPurchaseOrder> buildQueryWrapper(BizPurchaseOrderBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<BizPurchaseOrder> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getOrderSn()), BizPurchaseOrder::getOrderSn, bo.getOrderSn());
lqw.like(StringUtils.isNotBlank(bo.getOrderSn()), BizPurchaseOrder::getOrderSn, bo.getOrderSn());
lqw.eq(StringUtils.isNotBlank(bo.getCustomOrderSn()), BizPurchaseOrder::getCustomOrderSn, bo.getCustomOrderSn());
lqw.eq(bo.getSupplierId() != null, BizPurchaseOrder::getSupplierId, bo.getSupplierId());
lqw.like(StringUtils.isNotBlank(bo.getSupplierName()), BizPurchaseOrder::getSupplierName, bo.getSupplierName());
@ -277,6 +287,17 @@ public class BizPurchaseOrderServiceImpl implements IBizPurchaseOrderService {
lqw.in(BizPurchaseOrder::getOrderSn, orderSnList);
}
if (StpUtil.hasRole("yunying")) {
SysAmazonStoreBo sysAmazonStoreBo = new SysAmazonStoreBo();
sysAmazonStoreBo.setUserId(LoginHelper.getUserId());
List<SysAmazonStoreVo> sysAmazonStoreVos = iSysAmazonStoreService.queryList(sysAmazonStoreBo);
Set<String> storeNameCollect = sysAmazonStoreVos.stream().map(SysAmazonStoreVo::getStoreName).collect(Collectors.toSet());
if (CollectionUtil.isNotEmpty(storeNameCollect)) {
lqw.in(BizPurchaseOrder::getStoreName, storeNameCollect);
// lqw.and(queryWrapper -> queryWrapper.in(BizPurchaseOrder::getStoreName, storeNameCollect).or().in(BizPurchaseOrder::getRealStoreName, storeNameCollect));
}
}
return lqw;
}

View File

@ -122,7 +122,7 @@ public class BizPurchaseOutOrderServiceImpl implements IBizPurchaseOutOrderServi
LambdaQueryWrapper<BizSendOrder> sendOrderWrapper = new LambdaQueryWrapper<>();
sendOrderWrapper.in(BizSendOrder::getOrderSn, collect);
List<BizSendOrder> bizSendOrders = bizSendOrderMapper.selectList(sendOrderWrapper);
Map<String, Long> collect3 = bizSendOrders.stream().collect(Collectors.groupingBy(BizSendOrder::getOrderSn, Collectors.reducing(0L, BizSendOrder::getQuantitySend, Long::sum)));
Map<String, BigDecimal> collect3 = bizSendOrders.stream().collect(Collectors.groupingBy(BizSendOrder::getOrderSn, Collectors.reducing(BigDecimal.ZERO, BizSendOrder::getQuantitySend, BigDecimal::add)));
LambdaQueryWrapper<BizShipForward> bizShipForwardWrapper = new LambdaQueryWrapper<>();
bizShipForwardWrapper.in(CollectionUtil.isNotEmpty(collect1), BizShipForward::getOrderSn, collect1);
@ -131,7 +131,7 @@ public class BizPurchaseOutOrderServiceImpl implements IBizPurchaseOutOrderServi
Map<String, List<BizShipForward>> bizShipForwardMap = new HashMap<>();
if (CollectionUtil.isNotEmpty(bizShipForwards1)) {
bizShipForwardMap = bizShipForwards1.stream().collect(Collectors.groupingBy(BizShipForward::getOrderSn));
bizShipForwardMap = bizShipForwards1.stream().collect(Collectors.groupingBy(c -> c.getOrderSn() + c.getSku()));
}
Map<String, BigDecimal> collect2 = bizSendOrderItems.stream()
@ -142,24 +142,45 @@ public class BizPurchaseOutOrderServiceImpl implements IBizPurchaseOutOrderServi
// 对每个分组计算quality的总和
Collectors.reducing(BigDecimal.ZERO, BizSendOrderItem::getQuantitySend, BigDecimal::add)
));
for (BizPurchaseOutOrderVo record : records) {
List<BizOrderOutItem> bizOrderOutItems1 = itemMap.get(record.getOrderSn());
List<BizOrderOutItemVo> convert = MapstructUtils.convert(bizOrderOutItems1, BizOrderOutItemVo.class);
record.setQuantityShipped(Optional.ofNullable(collect3.get(record.getOrderSn())).orElse(0L));
record.setQuantityLeft(record.getOutsourceQuantity() - Optional.ofNullable(collect3.get(record.getOrderSn())).orElse(0L));
record.setQuantityShipped(Optional.ofNullable(collect3.get(record.getOrderSn())).orElse(BigDecimal.ZERO));
record.setQuantityLeft(record.getOutsourceQuantity().subtract(Optional.ofNullable(collect3.get(record.getOrderSn())).orElse(BigDecimal.ZERO)));
if (CollectionUtil.isEmpty(convert)) {
continue;
}
for (BizOrderOutItemVo item : convert) {
BizPurchaseOrder bizPurchaseOrder = purchaseOrderMap.get(item.getPurchaseOrderSn());
item.setOrder(bizPurchaseOrder);
List<BizShipForward> bizShipForwards2 = bizShipForwardMap.get(item.getPurchaseOrderSn() + item.getSku());
if (CollectionUtil.isNotEmpty(bizShipForwards2)) {
BigDecimal reduce = bizShipForwards2.stream().filter(c -> "completed".equals(c.getFwdStatus())).map(BizShipForward::getQuantitySend).reduce(BigDecimal.ZERO, BigDecimal::add);
item.setQuantityForward(reduce);
item.setForwards(bizShipForwards2);
}
item.setQuantityCanForward(item.getQuantityReal().subtract(item.getQuantityForward()));
if (item.getSupplierName().equals(record.getSupplierName())) {
item.setForwardType("self");
} else {
item.setForwardType("other");
}
BizPurchaseOrderItem bizPurchaseOrderItem = itemsMap.get(item.getPurchaseOrderSn() + item.getSku());
item.setItem(bizPurchaseOrderItem);
List<BizShipForward> bizShipForwards = bizShipForwardMap.get(item.getPurchaseOrderSn());
if (CollectionUtil.isNotEmpty(bizShipForwards)) {
item.setForwards(bizShipForwards);
}
// List<BizShipForward> bizShipForwards = bizShipForwardMap.get(item.getPurchaseOrderSn());
// if (CollectionUtil.isNotEmpty(bizShipForwards)) {
// item.setForwards(bizShipForwards);
// }
item.setQuantityShipped(Optional.ofNullable(collect2.get(item.getPurchaseOrderSn() + "_" + item.getSku())).orElse(BigDecimal.ZERO));
item.setQuantityLeft(item.getQuantityReal().subtract(Optional.ofNullable(item.getQuantityShipped()).orElse(BigDecimal.ZERO)));
BigDecimal ratio = item.getQuantityReal().divide(new BigDecimal(record.getOutsourceQuantity()), 2, RoundingMode.HALF_UP);
BigDecimal ratio = item.getQuantityReal().divide(record.getOutsourceQuantity(), 2, RoundingMode.HALF_UP);
item.setRatio(ratio);
}
record.setItems(convert);
@ -182,7 +203,8 @@ public class BizPurchaseOutOrderServiceImpl implements IBizPurchaseOutOrderServi
private LambdaQueryWrapper<BizPurchaseOutOrder> buildQueryWrapper(BizPurchaseOutOrderBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<BizPurchaseOutOrder> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getOrderSn()), BizPurchaseOutOrder::getOrderSn, bo.getOrderSn());
lqw.apply("1 = 1");
lqw.like(StringUtils.isNotBlank(bo.getOrderSn()), BizPurchaseOutOrder::getOrderSn, bo.getOrderSn());
lqw.like(StringUtils.isNotBlank(bo.getWarehouseName()), BizPurchaseOutOrder::getWarehouseName, bo.getWarehouseName());
lqw.like(StringUtils.isNotBlank(bo.getOutsourceWarehouseName()), BizPurchaseOutOrder::getOutsourceWarehouseName, bo.getOutsourceWarehouseName());
lqw.like(StringUtils.isNotBlank(bo.getSupplierName()), BizPurchaseOutOrder::getSupplierName, bo.getSupplierName());
@ -199,6 +221,7 @@ public class BizPurchaseOutOrderServiceImpl implements IBizPurchaseOutOrderServi
lqw.eq(StringUtils.isNotBlank(bo.getMsku()), BizPurchaseOutOrder::getMsku, bo.getMsku());
lqw.eq(StringUtils.isNotBlank(bo.getPlanSn()), BizPurchaseOutOrder::getPlanSn, bo.getPlanSn());
lqw.like(StringUtils.isNotBlank(bo.getSellerName()), BizPurchaseOutOrder::getSellerName, bo.getSellerName());
lqw.orderByDesc(BizPurchaseOutOrder::getBizCreateTime);
return lqw;
}

View File

@ -96,6 +96,23 @@ public class BizSendOrderServiceImpl implements IBizSendOrderService {
List<BizSendOrderVo> records = result.getRecords();
// Set<String> shipmentIds = records.stream().map(BizSendOrderVo::getShipmentId).collect(Collectors.toSet());
Set<Long> ids = records.stream().map(BizSendOrderVo::getId).collect(Collectors.toSet());
Set<Long> transferIds = records.stream().map(BizSendOrderVo::getTransferFromId).collect(Collectors.toSet());
LambdaQueryWrapper<BizSendOrder> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(CollectionUtil.isNotEmpty(transferIds), BizSendOrder::getTransferFromId, transferIds);
List<BizSendOrder> bizSendOrders = baseMapper.selectList(queryWrapper);
Map<Long, List<BizSendOrder>> transferMap = bizSendOrders.stream().collect(Collectors.groupingBy(BizSendOrder::getTransferFromId));
Map<String, List<BizSendOrderItem>> transferItemMap = new HashMap<>();
Set<Long> transferDataIds = bizSendOrders.stream().map(BizSendOrder::getId).collect(Collectors.toSet());
if (CollectionUtil.isNotEmpty(transferDataIds)) {
LambdaQueryWrapper<BizSendOrderItem> bizSendOrderItemLambdaQueryWrapper = new LambdaQueryWrapper<>();
bizSendOrderItemLambdaQueryWrapper.in(BizSendOrderItem::getMainOrderSn, transferDataIds);
List<BizSendOrderItem> bizSendOrderItems = bizSendOrderItemMapper.selectList(bizSendOrderItemLambdaQueryWrapper);
transferItemMap = bizSendOrderItems.stream().collect(Collectors.groupingBy(c -> String.valueOf(c.getTransferFromId()) + "_" + c.getSku(), Collectors.toList()));
}
// LambdaQueryWrapper<BizLogisticsOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
// lambdaQueryWrapper.in(CollectionUtil.isNotEmpty(shipmentIds), BizLogisticsOrder::getFbaShipmentId, shipmentIds);
@ -147,6 +164,14 @@ public class BizSendOrderServiceImpl implements IBizSendOrderService {
if (remoteUserVo != null) {
record.setAddress(remoteUserVo.getAddress());
}
List<BizSendOrder> bizSendOrders1 = transferMap.get(record.getId());
if (CollectionUtil.isNotEmpty(bizSendOrders1)) {
BigDecimal reduce = bizSendOrders1.stream().map(BizSendOrder::getQuantitySend).reduce(BigDecimal.ZERO, BigDecimal::add);
record.setQuantitySend(record.getQuantitySend().subtract(reduce));
}
// BizLogisticsOrder bizLogisticsOrder = logisticsOrderMap.get(record.getShipmentId());
// if (bizLogisticsOrder != null) {
// record.setBizLogisticsOrder(bizLogisticsOrder);
@ -167,8 +192,14 @@ public class BizSendOrderServiceImpl implements IBizSendOrderService {
List<BizSendOrderItem> bizSendOrderItems1 = sendOrderItemMap.get(record.getId());
if (CollectionUtil.isNotEmpty(bizSendOrderItems1)) {
for (BizSendOrderItem item : bizSendOrderItems1) {
BigDecimal ratio = item.getQuantitySend().divide(new BigDecimal(record.getQuantitySend()), 2, RoundingMode.HALF_UP);
BigDecimal ratio = item.getQuantitySend().divide(record.getQuantitySend(), 2, RoundingMode.HALF_UP);
item.setRatio(ratio);
List<BizSendOrderItem> bizSendOrderItems2 = transferItemMap.get(item.getId() + "_" + item.getSku());
if (CollectionUtil.isNotEmpty(bizSendOrderItems2)) {
BigDecimal reduce = bizSendOrderItems2.stream().map(BizSendOrderItem::getQuantitySend).reduce(BigDecimal.ZERO, BigDecimal::add);
item.setQuantitySend(item.getQuantitySend().subtract(reduce));
}
}
}
@ -436,6 +467,17 @@ public class BizSendOrderServiceImpl implements IBizSendOrderService {
//调拨
// BizSendOrder add = MapstructUtils.convert(bo, BizSendOrder.class);
// validEntityBeforeSave(add);
LambdaQueryWrapper<BizSendOrder> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BizSendOrder::getId, bo.getId());
BizSendOrder bizSendOrder = baseMapper.selectOne(queryWrapper);
LambdaQueryWrapper<BizSendOrderItem> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(BizSendOrderItem::getMainOrderSn, bo.getId());
List<BizSendOrderItem> bizSendOrderItemOrds = bizSendOrderItemMapper.selectList(queryWrapper1);
Map<String, List<BizSendOrderItem>> itemsMaps = bizSendOrderItemOrds.stream().collect(Collectors.groupingBy(BizSendOrderItem::getSku));
BizSendOrder add = new BizSendOrder();
add.setSku(bo.getSku());
add.setOrderSn(bo.getOrderSn());
@ -449,10 +491,12 @@ public class BizSendOrderServiceImpl implements IBizSendOrderService {
add.setBoxDimensions(bo.getBoxDimensions());
add.setWeightPerBox(bo.getWeightPerBox());
add.setRealStoreName(bo.getRealStoreName());
add.setSendStatus(bo.getSendStatus());
add.setSendStatus("unconfirm");
add.setSendDetail(bo.getSendDetail());
add.setLogisticsProviderName(bo.getLogisticsProviderName());
add.setLogisticsProviderId(bo.getLogisticsProviderId());
add.setTransferFromId(bo.getId());
add.setType("tra");
// LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
// queryWrapper.eq(SysUser::getNickName, bo.getSendName());
@ -481,13 +525,13 @@ public class BizSendOrderServiceImpl implements IBizSendOrderService {
bizSendOrderItem.setMainOrderSn(add.getId());
bizSendOrderItem.setProductName(item.getProductName());
bizSendOrderItem.setSku(item.getSku());
bizSendOrderItem.setQuantitySend(item.getQuantitySend().multiply(item.getRatio()));
bizSendOrderItem.setQuantitySend(bo.getQuantitySend().multiply(item.getRatio()));
bizSendOrderItem.setTransferFromId(item.getId());
bizSendOrderItems.add(bizSendOrderItem);
}
bizSendOrderItemMapper.insertBatch(bizSendOrderItems);
}
}

View File

@ -196,6 +196,7 @@ public class BizShipForwardServiceImpl implements IBizShipForwardService {
updateWrapper.set(BizShipForward::getFwdStatus, bo.getFwdStatus());
updateWrapper.set(ObjectUtil.isNotEmpty(bo.getExpDeliveryDate()), BizShipForward::getExpDeliveryDate, bo.getExpDeliveryDate());
updateWrapper.set(ObjectUtil.isNotEmpty(bo.getBoxNum()), BizShipForward::getBoxNum, bo.getBoxNum());
updateWrapper.set(ObjectUtil.isNotEmpty(bo.getSendTime()), BizShipForward::getSendTime, bo.getSendTime());
baseMapper.update(updateWrapper);
}
}

View File

@ -124,7 +124,7 @@ public class SysAmazonStoreServiceImpl implements ISysAmazonStoreService {
@Override
public TableDataInfo<SysAmazonStoreVo> queryPageList(SysAmazonStoreBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<SysAmazonStore> lqw = buildQueryWrapper(bo);
Page<SysAmazonStoreVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
Page<SysAmazonStoreVo> result = baseMapper.selectCustomPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@ -143,6 +143,7 @@ public class SysAmazonStoreServiceImpl implements ISysAmazonStoreService {
private LambdaQueryWrapper<SysAmazonStore> buildQueryWrapper(SysAmazonStoreBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SysAmazonStore> lqw = Wrappers.lambdaQuery();
lqw.apply("1 = 1");
lqw.eq(bo.getUserId() != null, SysAmazonStore::getUserId, bo.getUserId());
lqw.eq(bo.getSid() != null, SysAmazonStore::getSid, bo.getSid());
lqw.eq(bo.getMid() != null, SysAmazonStore::getMid, bo.getMid());
@ -563,8 +564,12 @@ public class SysAmazonStoreServiceImpl implements ISysAmazonStoreService {
List<BizPurchaseOutOrder> bizPurchaseOutOrders = bizPurchaseOutOrderMapper.selectList(new LambdaQueryWrapper<BizPurchaseOutOrder>().in(BizPurchaseOutOrder::getOrderSn, collect));
if (CollectionUtil.isNotEmpty(bizPurchaseOutOrders)) {
List<String> collect1 = bizPurchaseOutOrders.stream().map(BizPurchaseOutOrder::getOrderSn).collect(Collectors.toList());
list.removeIf(PurchaseOutOrder -> collect1.contains(PurchaseOutOrder.getOrderSn()));
list.removeIf(purchaseOutOrder -> collect1.contains(purchaseOutOrder.getOrderSn()) || "已作废".equals(purchaseOutOrder.getStatusText()));
} else {
list.removeIf(purchaseOutOrder -> "已作废".equals(purchaseOutOrder.getStatusText()));
}
if (CollectionUtil.isEmpty(list)) {
log.info("未获取到新的组合采购订单");
return;
@ -932,6 +937,7 @@ public class SysAmazonStoreServiceImpl implements ISysAmazonStoreService {
lingxinCallback.onFinished("没有最新的数据", 100);
return;
}
bizShipmentPlans.removeIf(bizShipmentPlan -> selectExistingShipmentIds.contains(bizShipmentPlan.getShipmentId()));
for (String key : shipmentHashMap.keySet()) {
List<String> split = StrUtil.split(key, ",");
log.info("key:{}", key);

View File

@ -38,6 +38,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update_by = EXCLUDED.update_by,
create_dept = EXCLUDED.create_dept;
</insert>
<select id="selectCustomPage" resultType="org.asinkj.amz.domain.vo.SysAmazonStoreVo">
SELECT
req.*,
su.user_name AS user_name,
su.nick_name AS nick_name
FROM sys_amazon_store req
left join sys_user su on req.user_id = su.user_id
<where>
${ew.sqlSegment} <!-- MyBatis-Plus 动态条件 -->
</where>
</select>
</mapper>