diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsOrderDetail.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsOrderDetail.java index d1aed26..48ef864 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsOrderDetail.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizLogisticsOrderDetail.java @@ -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; + } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizPurchaseOrderItem.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizPurchaseOrderItem.java index ef7292e..376b21a 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizPurchaseOrderItem.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizPurchaseOrderItem.java @@ -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; /** * 计划采购量 diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizSendOrder.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizSendOrder.java index 8b94579..0828d09 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizSendOrder.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizSendOrder.java @@ -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; + } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizSendOrderItem.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizSendOrderItem.java index 06edced..913161e 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizSendOrderItem.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizSendOrderItem.java @@ -68,4 +68,6 @@ public class BizSendOrderItem extends TenantEntity { @TableField(exist = false) private BigDecimal ratio; + private Long transferFromId; + } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipForward.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipForward.java index 8eac1f6..148fb61 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipForward.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipForward.java @@ -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; /** * 发货供应商名称 diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizPurchaseOrderItemBo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizPurchaseOrderItemBo.java index 30e7f46..7ef3c4a 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizPurchaseOrderItemBo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizPurchaseOrderItemBo.java @@ -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; /** * 计划采购量 diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizPurchaseOutOrderBo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizPurchaseOutOrderBo.java index b0d390c..7ee5166 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizPurchaseOutOrderBo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizPurchaseOutOrderBo.java @@ -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; /** * 实收数量 diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsQuoteVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsQuoteVo.java index f715d4a..08c89d1 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsQuoteVo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizLogisticsQuoteVo.java @@ -137,7 +137,7 @@ public class BizLogisticsQuoteVo implements Serializable { private String type; private String shipmentId; - private Long totalPrice; + private BigDecimal totalPrice; } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizOrderOutItemVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizOrderOutItemVo.java index 77ef264..0e8fa46 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizOrderOutItemVo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizOrderOutItemVo.java @@ -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; + /** * 已发货数量 */ diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizPurchaseOrderItemVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizPurchaseOrderItemVo.java index a0bc3bd..0fc9fa2 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizPurchaseOrderItemVo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizPurchaseOrderItemVo.java @@ -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; + /** * 质检量 */ diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizPurchaseOutOrderVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizPurchaseOutOrderVo.java index db3cd6b..36790ae 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizPurchaseOutOrderVo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizPurchaseOutOrderVo.java @@ -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; /** * 实收数量 diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizSendOrderVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizSendOrderVo.java index cd3bbdd..0f73a10 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizSendOrderVo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizSendOrderVo.java @@ -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; + + } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanOrderExportVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanOrderExportVo.java index bf86efb..39c8263 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanOrderExportVo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanOrderExportVo.java @@ -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; diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/SysAmazonStoreVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/SysAmazonStoreVo.java index badcab2..d197f31 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/SysAmazonStoreVo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/SysAmazonStoreVo.java @@ -109,5 +109,9 @@ public class SysAmazonStoreVo implements Serializable { @ExcelProperty(value = "店铺状态 0停用 1正常 2异常 3欠费") private Long status; + private String userName; + + private String nickName; + } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/mapper/SysAmazonStoreMapper.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/mapper/SysAmazonStoreMapper.java index aaf5fa6..de7b7a8 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/mapper/SysAmazonStoreMapper.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/mapper/SysAmazonStoreMapper.java @@ -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 { void batchInsertOrUpdate(List dataList); + + + /** + * XML 分页查询方法 + * @param page 分页参数对象 (必须放在第一位) + * @param wrapper 查询条件构造器 + */ + Page selectCustomPage( + @Param("page") Page page, + @Param(Constants.WRAPPER) Wrapper wrapper + ); } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsOrderQuotationServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsOrderQuotationServiceImpl.java index 312e3e7..5b0dea0 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsOrderQuotationServiceImpl.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizLogisticsOrderQuotationServiceImpl.java @@ -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()); diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizPurchaseOrderServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizPurchaseOrderServiceImpl.java index 589f496..25d5548 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizPurchaseOrderServiceImpl.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizPurchaseOrderServiceImpl.java @@ -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 bizShipForwards = finalBizShipForwardItemMap.get(item.getId()); List 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 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 buildQueryWrapper(BizPurchaseOrderBo bo) { Map params = bo.getParams(); LambdaQueryWrapper 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 sysAmazonStoreVos = iSysAmazonStoreService.queryList(sysAmazonStoreBo); + Set 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; } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizPurchaseOutOrderServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizPurchaseOutOrderServiceImpl.java index cb4f961..a181d97 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizPurchaseOutOrderServiceImpl.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizPurchaseOutOrderServiceImpl.java @@ -122,7 +122,7 @@ public class BizPurchaseOutOrderServiceImpl implements IBizPurchaseOutOrderServi LambdaQueryWrapper sendOrderWrapper = new LambdaQueryWrapper<>(); sendOrderWrapper.in(BizSendOrder::getOrderSn, collect); List bizSendOrders = bizSendOrderMapper.selectList(sendOrderWrapper); - Map collect3 = bizSendOrders.stream().collect(Collectors.groupingBy(BizSendOrder::getOrderSn, Collectors.reducing(0L, BizSendOrder::getQuantitySend, Long::sum))); + Map collect3 = bizSendOrders.stream().collect(Collectors.groupingBy(BizSendOrder::getOrderSn, Collectors.reducing(BigDecimal.ZERO, BizSendOrder::getQuantitySend, BigDecimal::add))); LambdaQueryWrapper bizShipForwardWrapper = new LambdaQueryWrapper<>(); bizShipForwardWrapper.in(CollectionUtil.isNotEmpty(collect1), BizShipForward::getOrderSn, collect1); @@ -131,7 +131,7 @@ public class BizPurchaseOutOrderServiceImpl implements IBizPurchaseOutOrderServi Map> 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 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 bizOrderOutItems1 = itemMap.get(record.getOrderSn()); List 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 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 bizShipForwards = bizShipForwardMap.get(item.getPurchaseOrderSn()); - if (CollectionUtil.isNotEmpty(bizShipForwards)) { - item.setForwards(bizShipForwards); - } +// List 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 buildQueryWrapper(BizPurchaseOutOrderBo bo) { Map params = bo.getParams(); LambdaQueryWrapper 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; } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizSendOrderServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizSendOrderServiceImpl.java index 5f255ac..319511a 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizSendOrderServiceImpl.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizSendOrderServiceImpl.java @@ -96,6 +96,23 @@ public class BizSendOrderServiceImpl implements IBizSendOrderService { List records = result.getRecords(); // Set shipmentIds = records.stream().map(BizSendOrderVo::getShipmentId).collect(Collectors.toSet()); Set ids = records.stream().map(BizSendOrderVo::getId).collect(Collectors.toSet()); + Set transferIds = records.stream().map(BizSendOrderVo::getTransferFromId).collect(Collectors.toSet()); + + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(CollectionUtil.isNotEmpty(transferIds), BizSendOrder::getTransferFromId, transferIds); + List bizSendOrders = baseMapper.selectList(queryWrapper); + + Map> transferMap = bizSendOrders.stream().collect(Collectors.groupingBy(BizSendOrder::getTransferFromId)); + Map> transferItemMap = new HashMap<>(); + Set transferDataIds = bizSendOrders.stream().map(BizSendOrder::getId).collect(Collectors.toSet()); + if (CollectionUtil.isNotEmpty(transferDataIds)) { + LambdaQueryWrapper bizSendOrderItemLambdaQueryWrapper = new LambdaQueryWrapper<>(); + bizSendOrderItemLambdaQueryWrapper.in(BizSendOrderItem::getMainOrderSn, transferDataIds); + List bizSendOrderItems = bizSendOrderItemMapper.selectList(bizSendOrderItemLambdaQueryWrapper); + transferItemMap = bizSendOrderItems.stream().collect(Collectors.groupingBy(c -> String.valueOf(c.getTransferFromId()) + "_" + c.getSku(), Collectors.toList())); + } + // LambdaQueryWrapper 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 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 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 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 queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BizSendOrder::getId, bo.getId()); + BizSendOrder bizSendOrder = baseMapper.selectOne(queryWrapper); + + LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>(); + queryWrapper1.eq(BizSendOrderItem::getMainOrderSn, bo.getId()); + List bizSendOrderItemOrds = bizSendOrderItemMapper.selectList(queryWrapper1); + Map> 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 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); } - } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizShipForwardServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizShipForwardServiceImpl.java index 508e884..4fe65f9 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizShipForwardServiceImpl.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizShipForwardServiceImpl.java @@ -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); } } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/SysAmazonStoreServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/SysAmazonStoreServiceImpl.java index 51ba201..26138eb 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/SysAmazonStoreServiceImpl.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/SysAmazonStoreServiceImpl.java @@ -124,7 +124,7 @@ public class SysAmazonStoreServiceImpl implements ISysAmazonStoreService { @Override public TableDataInfo queryPageList(SysAmazonStoreBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + Page result = baseMapper.selectCustomPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } @@ -143,6 +143,7 @@ public class SysAmazonStoreServiceImpl implements ISysAmazonStoreService { private LambdaQueryWrapper buildQueryWrapper(SysAmazonStoreBo bo) { Map params = bo.getParams(); LambdaQueryWrapper 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 bizPurchaseOutOrders = bizPurchaseOutOrderMapper.selectList(new LambdaQueryWrapper().in(BizPurchaseOutOrder::getOrderSn, collect)); if (CollectionUtil.isNotEmpty(bizPurchaseOutOrders)) { List 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; @@ -599,7 +604,7 @@ public class SysAmazonStoreServiceImpl implements ISysAmazonStoreService { Set purchaseOrders = bizOrderOutItems.stream().map(BizOrderOutItem::getPurchaseOrderSn).collect(Collectors.toSet()); LambdaUpdateWrapper bizPurchaseOrderLambdaUpdateWrapper = new LambdaUpdateWrapper<>(); bizPurchaseOrderLambdaUpdateWrapper.in(BizPurchaseOrder::getOrderSn, purchaseOrders); - bizPurchaseOrderLambdaUpdateWrapper.set(BizPurchaseOrder::getType,"com"); + bizPurchaseOrderLambdaUpdateWrapper.set(BizPurchaseOrder::getType, "com"); bizPurchaseOrderMapper.update(null, bizPurchaseOrderLambdaUpdateWrapper); } @@ -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 split = StrUtil.split(key, ","); log.info("key:{}", key); diff --git a/asinkj-biz/asinkj-amz/src/main/resources/mapper/amz/SysAmazonStoreMapper.xml b/asinkj-biz/asinkj-amz/src/main/resources/mapper/amz/SysAmazonStoreMapper.xml index 72cde4a..51e805d 100644 --- a/asinkj-biz/asinkj-amz/src/main/resources/mapper/amz/SysAmazonStoreMapper.xml +++ b/asinkj-biz/asinkj-amz/src/main/resources/mapper/amz/SysAmazonStoreMapper.xml @@ -38,6 +38,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_by = EXCLUDED.update_by, create_dept = EXCLUDED.create_dept; +