diff --git a/asinkj-api/asinkj-api-amz/src/main/java/org/asinkj/amz/api/RemoteFBADataService.java b/asinkj-api/asinkj-api-amz/src/main/java/org/asinkj/amz/api/RemoteFBADataService.java index ea7cc3f..7c44416 100644 --- a/asinkj-api/asinkj-api-amz/src/main/java/org/asinkj/amz/api/RemoteFBADataService.java +++ b/asinkj-api/asinkj-api-amz/src/main/java/org/asinkj/amz/api/RemoteFBADataService.java @@ -8,5 +8,9 @@ public interface RemoteFBADataService { void updateAmzFbaDataToken() throws Exception; + void pullPurchaseOrderData(String startDate, String endDate) throws Exception; + + void updatePurchaseOrderSeller(String startDate, String endDate) throws Exception; + void quoteReminder() throws Exception; } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizPurchaseOrderController.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizPurchaseOrderController.java index 36cad86..365d663 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizPurchaseOrderController.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizPurchaseOrderController.java @@ -2,6 +2,8 @@ package org.asinkj.amz.controller; import java.util.List; +import cn.dev33.satoken.annotation.SaCheckRole; +import cn.dev33.satoken.annotation.SaMode; import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; @@ -47,6 +49,7 @@ public class BizPurchaseOrderController extends BaseController { * 查询采购单主列表 */ @SaCheckPermission("amz:purchaseOrder:list") + @SaCheckRole(value = {"gongying","gengdan", "superadmin"}, mode = SaMode.OR) @GetMapping("/list") public TableDataInfo list(BizPurchaseOrderBo bo, PageQuery pageQuery) { return bizPurchaseOrderService.queryPageList(bo, pageQuery); diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizSendOrderController.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizSendOrderController.java index 25a73b7..4787b51 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizSendOrderController.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizSendOrderController.java @@ -93,6 +93,16 @@ public class BizSendOrderController extends BaseController { return toAjax(bizSendOrderService.updateByBo(bo)); } + + @SaCheckRole(value = {"gongying","gengdan", "superadmin"}, mode = SaMode.OR) + @Log(title = "供应商创建的发货单", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping("/link") + public R link(@Validated(EditGroup.class) @RequestBody BizSendOrderBo bo) { + bizSendOrderService.linkByBo(bo); + return R.ok(); + } + /** * 删除供应商创建的发货单 * diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizShipForwardController.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizShipForwardController.java index e9fb1a2..27573db 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizShipForwardController.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizShipForwardController.java @@ -64,10 +64,10 @@ public class BizShipForwardController extends BaseController { * * @param id 主键 */ - @SaCheckPermission("amz:shipForward:query") + @SaCheckRole(value = {"gengdan", "gongying", "superadmin"}, mode = SaMode.OR) @GetMapping("/{id}") public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { + @PathVariable Long id) { return R.ok(bizShipForwardService.queryById(id)); } @@ -86,7 +86,7 @@ public class BizShipForwardController extends BaseController { /** * 修改货件转发 */ - @SaCheckPermission("amz:shipForward:edit") + @SaCheckRole(value = {"gengdan", "superadmin"}, mode = SaMode.OR) @Log(title = "货件转发", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() @@ -94,6 +94,15 @@ public class BizShipForwardController extends BaseController { return toAjax(bizShipForwardService.updateByBo(bo)); } + @SaCheckRole(value = {"gengdan", "gongying", "superadmin"}, mode = SaMode.OR) + @Log(title = "货件转发", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping("/sendUpdate") + public R sendUpdate(@Validated(EditGroup.class) @RequestBody BizShipForwardBo bo) { + bizShipForwardService.sendUpdateByBo(bo); + return R.ok(); + } + /** * 删除货件转发 * diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizShipmentPlanController.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizShipmentPlanController.java index f44575a..4f8df38 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizShipmentPlanController.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/controller/BizShipmentPlanController.java @@ -113,6 +113,14 @@ public class BizShipmentPlanController extends BaseController { return toAjax(bizShipmentPlanService.updateByBo(bo)); } + @SaCheckPermission("amz:shipmentPlan:edit") + @Log(title = "货件计划", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping("link") + public R link(@Validated(EditGroup.class) @RequestBody BizShipmentPlanBo bo) { + return toAjax(bizShipmentPlanService.linkByBo(bo)); + } + /** * 删除货件计划 * diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipmentPlan.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipmentPlan.java index 4631265..dd95362 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipmentPlan.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/BizShipmentPlan.java @@ -179,5 +179,11 @@ public class BizShipmentPlan extends TenantEntity { */ private String inboundPlanId; + /** + * 供应商发货单id + */ + private Long sendOrderId; + + } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizShipmentPlanBo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizShipmentPlanBo.java index e8883f4..fcc5273 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizShipmentPlanBo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/bo/BizShipmentPlanBo.java @@ -191,4 +191,12 @@ public class BizShipmentPlanBo extends BaseEntity { // @NotBlank(message = "物流渠道不能为空", groups = { AddGroup.class, EditGroup.class }) private String channelName; + /** + * 供应商发货单id + */ +// @NotNull(message = "供应商发货单id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long sendOrderId; + + private String sellerName; + } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanOrderVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanOrderVo.java index f9a70e5..8de5598 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanOrderVo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanOrderVo.java @@ -228,5 +228,12 @@ public class BizShipmentPlanOrderVo implements Serializable { private BizLogisticsQuote quote; + private BizSendOrder sendOrder; + + /** + * 供应商发货单id + */ + private Long sendOrderId; + } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanVo.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanVo.java index 004ecdd..00634a9 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanVo.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/domain/vo/BizShipmentPlanVo.java @@ -7,6 +7,7 @@ import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import io.github.linpeilie.annotations.AutoMappers; +import org.asinkj.amz.domain.BizSendOrder; import org.asinkj.amz.domain.BizShipmentItem; import org.asinkj.amz.domain.BizShipmentPlan; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; @@ -54,7 +55,7 @@ public class BizShipmentPlanVo implements Serializable { // @ExcelProperty(value = "关联系统ID") private Long sid; -// @ExcelProperty(value = "店铺名称") + // @ExcelProperty(value = "店铺名称") private String sellerName; /** @@ -212,12 +213,18 @@ public class BizShipmentPlanVo implements Serializable { // @ExcelProperty(value = "物流渠道") private String channelName; + /** + * 供应商发货单id + */ +// @ExcelProperty(value = "供应商发货单id") + private Long sendOrderId; + + private BizSendOrder sendOrder; + private List itemVoList; - - // 显式添加 Setter(即使使用 @Data) public void setShipFromAddress(FbaShipmentApiResponse.Address shipFromAddress) { // System.out.printf(String.valueOf(shipToAddress)); diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/dubbo/RemoteFBADataServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/dubbo/RemoteFBADataServiceImpl.java index 422cebc..b842363 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/dubbo/RemoteFBADataServiceImpl.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/dubbo/RemoteFBADataServiceImpl.java @@ -39,6 +39,27 @@ public class RemoteFBADataServiceImpl implements RemoteFBADataService { } + @Override + public void pullPurchaseOrderData(String startDate, String endDate) throws Exception { + sysAmazonStoreService.pullPurchaseOrderData(startDate, endDate,new LingxinCallback() { + @Override + public void onFinished(String result, int status) { + + } + }); + } + + @Override + public void updatePurchaseOrderSeller(String startDate, String endDate) throws Exception { + sysAmazonStoreService.updatePurchaseOrderSeller(startDate, endDate,new LingxinCallback() { + @Override + public void onFinished(String result, int status) { + + } + }); + } + + @Override public void quoteReminder() throws Exception { ibizInquiryRequestService.quoteReminder(); diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizSendOrderService.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizSendOrderService.java index 064a386..00f9973 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizSendOrderService.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizSendOrderService.java @@ -8,6 +8,7 @@ import org.asinkj.common.mybatis.core.page.PageQuery; import java.util.Collection; import java.util.List; +import java.util.Set; /** * 供应商创建的发货单Service接口 @@ -66,4 +67,10 @@ public interface IBizSendOrderService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + List queryBySidList(Set senOrderIds); + + void linkByBo(BizSendOrderBo bo); + + void updateStatus(Long sendOrderId, String completed); } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipForwardService.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipForwardService.java index e38791e..5229ac9 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipForwardService.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipForwardService.java @@ -66,4 +66,6 @@ public interface IBizShipForwardService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + void sendUpdateByBo(BizShipForwardBo bo); } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipmentPlanService.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipmentPlanService.java index 55a5db1..9a81067 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipmentPlanService.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/IBizShipmentPlanService.java @@ -84,4 +84,6 @@ public interface IBizShipmentPlanService { void updateList(Collection list, String status); void importExcel(InputStream inputStream); + + Boolean linkByBo(BizShipmentPlanBo bo); } 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 d1e6e57..04fa42b 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 @@ -158,6 +158,7 @@ public class BizPurchaseOrderServiceImpl implements IBizPurchaseOrderService { lqw.eq(StringUtils.isNotBlank(bo.getOrderStatus()), BizPurchaseOrder::getOrderStatus, bo.getOrderStatus()); lqw.eq(bo.getDeliveryTime() != null, BizPurchaseOrder::getDeliveryTime, bo.getDeliveryTime()); lqw.eq(bo.getDlvTimeVar() != null, BizPurchaseOrder::getDlvTimeVar, bo.getDlvTimeVar()); + lqw.orderBy(true, false, BizPurchaseOrder::getOrderTime); if (StpUtil.hasRole("gongying")) { lqw.eq(BizPurchaseOrder::getSupplierName, Objects.requireNonNull(LoginHelper.getLoginUser()).getNickname()); 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 935ec63..0ecf53c 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 @@ -1,5 +1,8 @@ package org.asinkj.amz.service.impl; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import org.asinkj.amz.domain.SysAmazonStore; import org.asinkj.common.core.utils.MapstructUtils; import org.asinkj.common.core.utils.StringUtils; import org.asinkj.common.mybatis.core.page.TableDataInfo; @@ -18,6 +21,7 @@ import org.asinkj.amz.service.IBizSendOrderService; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.Set; /** * 供应商创建的发货单Service业务层处理 @@ -38,7 +42,7 @@ public class BizSendOrderServiceImpl implements IBizSendOrderService { * @return 供应商创建的发货单 */ @Override - public BizSendOrderVo queryById(Long id){ + public BizSendOrderVo queryById(Long id) { return baseMapper.selectVoById(id); } @@ -118,7 +122,7 @@ public class BizSendOrderServiceImpl implements IBizSendOrderService { /** * 保存前的数据校验 */ - private void validEntityBeforeSave(BizSendOrder entity){ + private void validEntityBeforeSave(BizSendOrder entity) { //TODO 做一些数据校验,如唯一约束 } @@ -131,9 +135,31 @@ public class BizSendOrderServiceImpl implements IBizSendOrderService { */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; } + + @Override + public List queryBySidList(Set senOrderIds) { + if (CollectionUtil.isNotEmpty(senOrderIds)) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(BizSendOrder::getId, senOrderIds); + return baseMapper.selectList(queryWrapper); + } + return List.of(); + } + + @Override + public void linkByBo(BizSendOrderBo bo) { + + } + + @Override + public void updateStatus(Long sendOrderId, String completed) { + LambdaUpdateWrapper queryWrapper = new LambdaUpdateWrapper<>(); + queryWrapper.eq(BizSendOrder::getId, sendOrderId).set(BizSendOrder::getSendStatus, completed); + baseMapper.update(queryWrapper); + } } 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 378f17b..f97e8c1 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 @@ -1,5 +1,6 @@ package org.asinkj.amz.service.impl; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import org.apache.dubbo.config.annotation.DubboReference; import org.asinkj.common.core.utils.MapstructUtils; import org.asinkj.common.core.utils.StringUtils; @@ -166,4 +167,14 @@ public class BizShipForwardServiceImpl implements IBizShipForwardService { } return baseMapper.deleteByIds(ids) > 0; } + + @Override + public void sendUpdateByBo(BizShipForwardBo bo) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + + updateWrapper.eq(BizShipForward::getId, bo.getId()); + updateWrapper.set(BizShipForward::getFwdStatus, bo.getFwdStatus()); + baseMapper.update(updateWrapper); + + } } diff --git a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizShipmentPlanServiceImpl.java b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizShipmentPlanServiceImpl.java index 18a6d5b..85fb0d8 100644 --- a/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizShipmentPlanServiceImpl.java +++ b/asinkj-biz/asinkj-amz/src/main/java/org/asinkj/amz/service/impl/BizShipmentPlanServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import lombok.extern.slf4j.Slf4j; @@ -12,9 +13,7 @@ import org.asinkj.amz.domain.*; import org.asinkj.amz.domain.bo.SysAmazonStoreBo; import org.asinkj.amz.domain.vo.*; import org.asinkj.amz.mapper.*; -import org.asinkj.amz.service.IBizLogisticsQuoteService; -import org.asinkj.amz.service.ISysAmazonStoreService; -import org.asinkj.amz.service.LingxinCallback; +import org.asinkj.amz.service.*; import org.asinkj.common.core.exception.ServiceException; import org.asinkj.common.core.utils.MapstructUtils; import org.asinkj.common.core.utils.StringUtils; @@ -29,7 +28,7 @@ import org.asinkj.common.satoken.utils.LoginHelper; import org.asinkj.resource.api.RemoteMessageService; import org.springframework.stereotype.Service; import org.asinkj.amz.domain.bo.BizShipmentPlanBo; -import org.asinkj.amz.service.IBizShipmentPlanService; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.io.InputStream; @@ -57,6 +56,12 @@ public class BizShipmentPlanServiceImpl implements IBizShipmentPlanService { @Resource private ISysAmazonStoreService iSysAmazonStoreService; + @Resource + private SysAmazonStoreMapper sysAmazonStoreMapper; + + @Resource + private IBizSendOrderService iSendOrderService; + @Resource private BizShipmentTrackingMapper bizShipmentTrackingMapper; @@ -93,9 +98,25 @@ public class BizShipmentPlanServiceImpl implements IBizShipmentPlanService { */ @Override public TableDataInfo queryPageList(BizShipmentPlanBo bo, PageQuery pageQuery) { + if (StrUtil.isNotBlank(bo.getSellerName())) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.like(SysAmazonStore::getStoreName, bo.getSellerName()); + SysAmazonStore sysAmazonStore = sysAmazonStoreMapper.selectOne(queryWrapper); + if (sysAmazonStore != null) { + bo.setSid(sysAmazonStore.getSid()); + } + } LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + + Set senOrderIds = result.getRecords().stream().map(BizShipmentPlanVo::getSendOrderId).collect(Collectors.toSet()); + Map sendOrderMap = new HashMap<>(); + if (CollectionUtil.isNotEmpty(senOrderIds)) { + sendOrderMap = iSendOrderService.queryBySidList(senOrderIds).stream().collect(Collectors.toMap(BizSendOrder::getId, Function.identity())); + } + + Set shipmentIds = result.getRecords().stream().map(BizShipmentPlanVo::getShipmentId).collect(Collectors.toSet()); @@ -120,6 +141,13 @@ public class BizShipmentPlanServiceImpl implements IBizShipmentPlanService { Map> collect1 = bizShipmentItems.stream().collect(Collectors.groupingBy(BizShipmentItem::getShipmentId, Collectors.toList())); for (BizShipmentPlanVo bizShipmentPlanVo : result.getRecords()) { + + + BizSendOrder bizSendOrder = sendOrderMap.get(bizShipmentPlanVo.getSendOrderId()); + if (bizSendOrder != null) { + bizShipmentPlanVo.setSendOrder(sendOrderMap.get(bizShipmentPlanVo.getSendOrderId())); + } + Long count = collect.get(bizShipmentPlanVo.getShipmentId()); bizShipmentPlanVo.setBoxQuantity(count); bizShipmentPlanVo.setItemVoList(collect1.get(bizShipmentPlanVo.getShipmentId())); @@ -196,6 +224,7 @@ public class BizShipmentPlanServiceImpl implements IBizShipmentPlanService { lqw.eq(bo.getSetTotal() != null, BizShipmentPlan::getSetTotal, bo.getSetTotal()); lqw.eq(bo.getChannelId() != null, BizShipmentPlan::getChannelId, bo.getChannelId()); lqw.like(StringUtils.isNotBlank(bo.getChannelName()), BizShipmentPlan::getChannelName, bo.getChannelName()); + lqw.orderBy(true, false, BizShipmentPlan::getGmtCreate); SysAmazonStoreBo sysAmazonStoreBo = new SysAmazonStoreBo(); sysAmazonStoreBo.setUserId(LoginHelper.getUserId()); @@ -316,6 +345,13 @@ public class BizShipmentPlanServiceImpl implements IBizShipmentPlanService { storeNameMap = iSysAmazonStoreService.queryBySidList(sids).stream().collect(Collectors.toMap(SysAmazonStore::getSid, SysAmazonStore::getStoreName)); } + + Set senOrderIds = result.getRecords().stream().map(BizShipmentPlanVo::getSendOrderId).collect(Collectors.toSet()); + Map sendOrderMap = new HashMap<>(); + if (CollectionUtil.isNotEmpty(senOrderIds)) { + sendOrderMap = iSendOrderService.queryBySidList(senOrderIds).stream().collect(Collectors.toMap(BizSendOrder::getId, Function.identity())); + } + if (CollectionUtil.isNotEmpty(shipmentIds)) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.in(BizShipmentTracking::getShipmentId, shipmentIds); @@ -356,6 +392,11 @@ public class BizShipmentPlanServiceImpl implements IBizShipmentPlanService { List bizLogisticsOrderDetails1 = detailMap.get(bizShipmentPlanVo.getShipmentId()); bizShipmentPlanVo.setItemVoList(collect1.get(bizShipmentPlanVo.getShipmentId())); + BizSendOrder bizSendOrder = sendOrderMap.get(bizShipmentPlanVo.getSendOrderId()); + if (bizSendOrder != null) { + bizShipmentPlanVo.setSendOrder(sendOrderMap.get(bizShipmentPlanVo.getSendOrderId())); + } + bizShipmentPlanVo.setDetailList(bizLogisticsOrderDetails1); if (CollectionUtil.isNotEmpty(bizLogisticsOrderDetails1)) { BizLogisticsOrderDetail bizLogisticsOrderDetail = bizLogisticsOrderDetails1.get(0); @@ -408,6 +449,15 @@ public class BizShipmentPlanServiceImpl implements IBizShipmentPlanService { baseMapper.updateByFbaShipmentId(bizShipmentPlanFileDataList); } + @Transactional(rollbackFor = Exception.class) + @Override + public Boolean linkByBo(BizShipmentPlanBo bo) { + BizShipmentPlan update = MapstructUtils.convert(bo, BizShipmentPlan.class); + validEntityBeforeSave(update); + iSendOrderService.updateStatus(bo.getSendOrderId(), "completed"); + return baseMapper.updateById(update) > 0; + } + private void checkData(List bizShipmentPlanFileDataList) { boolean isAllSame = bizShipmentPlanFileDataList.stream() .map(BizShipmentPlanFileData::getShipmentId) 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 57e8f4e..26f737d 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 @@ -564,10 +564,18 @@ public class SysAmazonStoreServiceImpl implements ISysAmazonStoreService { for (PurchaseOrderResponse.OrderData orderData : list) { BizPurchaseOrder order = MapstructUtils.convert(orderData, BizPurchaseOrder.class); List convert1 = MapstructUtils.convert(orderData.getItemList(), BizPurchaseOrderItem.class); - convert1.forEach(item -> item.setOrderSn(orderData.getOrderSn())); + convert1.forEach(item -> { + item.setOrderSn(orderData.getOrderSn()); + item.setCreateBy(1L); + }); BizPurchaseOrderItem bizPurchaseOrderItem = convert1.get(0); storeList.add(bizPurchaseOrderItem.getSid()); + bizPurchaseOrderItems.addAll(convert1); + order.setCreateBy(1L); + order.setCreateTime(new Date()); + order.setUpdateBy(1L); + order.setUpdateTime(new Date()); orders.add(order); SysAmazonStore sysAmazonStore = collect.get(bizPurchaseOrderItem.getSid()); if (ObjectUtil.isNotEmpty(sysAmazonStore)) { diff --git a/asinkj-modules/asinkj-job/src/main/java/org/asinkj/job/snailjob/PullPurchaseJobExecutor.java b/asinkj-modules/asinkj-job/src/main/java/org/asinkj/job/snailjob/PullPurchaseJobExecutor.java new file mode 100644 index 0000000..50c4010 --- /dev/null +++ b/asinkj-modules/asinkj-job/src/main/java/org/asinkj/job/snailjob/PullPurchaseJobExecutor.java @@ -0,0 +1,86 @@ +package org.asinkj.job.snailjob; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.aizuda.snailjob.client.job.core.annotation.JobExecutor; +import com.aizuda.snailjob.client.job.core.dto.JobArgs; +import com.aizuda.snailjob.client.model.ExecuteResult; +import com.aizuda.snailjob.common.core.util.JsonUtil; +import com.aizuda.snailjob.common.log.SnailJobLog; +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboReference; +import org.asinkj.amz.api.RemoteFBADataService; +import org.springframework.stereotype.Component; + +/** + * @author opensnail + * @date 2024-05-17 + */ +@Component +@JobExecutor(name = "pullPurchaseOrder") +@Slf4j +public class PullPurchaseJobExecutor { + + @DubboReference + private RemoteFBADataService remoteFBADataService; + + public ExecuteResult jobExecute(JobArgs jobArgs) throws Exception { + SnailJobLog.LOCAL.info("amzPullFBAJobExecutor. jobArgs:{}", JsonUtil.toJsonString(jobArgs)); + SnailJobLog.REMOTE.info("amzPullFBAJobExecutor. jobArgs:{}", JsonUtil.toJsonString(jobArgs)); + log.info("amzPullFBAJobExecutor {}", jobArgs.getJobParams()); + //昨天的日期yyyy-MM-dd + // 获取昨天的日期 + if ("yesterday".equals(jobArgs.getJobParams())) { + DateTime yesterday = DateUtil.yesterday(); + String yesterdayString = yesterday.toString("yyyy-MM-dd"); + SnailJobLog.LOCAL.info("yesterdayString. yesterdayString:{}", yesterdayString); + //获取今天的日期 + DateTime tomorrow = DateUtil.tomorrow(); + String tomorrowString = tomorrow.toString("yyyy-MM-dd"); + SnailJobLog.LOCAL.info("todayString. todayString:{}", tomorrowString); + remoteFBADataService.pullPurchaseOrderData(yesterdayString, tomorrowString); + return ExecuteResult.success("获取从昨天开始的FBA货件数据"); + } else if ("today".equals(jobArgs.getJobParams())) { + DateTime today = DateUtil.date(); + String todayString = today.toString("yyyy-MM-dd"); + SnailJobLog.LOCAL.info("yesterdayString. yesterdayString:{}", todayString); + //获取今天的日期 + DateTime tomorrow = DateUtil.tomorrow(); + String tomorrowString = tomorrow.toString("yyyy-MM-dd"); + SnailJobLog.LOCAL.info("todayString. todayString:{}", tomorrowString); + remoteFBADataService.pullPurchaseOrderData(todayString, tomorrowString); + } + return ExecuteResult.success("请指定参数yesterday或者today"); + } + + + +// public ExecuteResult jobExecute(JobArgs jobArgs) throws Exception { +// SnailJobLog.LOCAL.info("amzPullFBAJobExecutor. jobArgs:{}", JsonUtil.toJsonString(jobArgs)); +// SnailJobLog.REMOTE.info("amzPullFBAJobExecutor. jobArgs:{}", JsonUtil.toJsonString(jobArgs)); +// log.info("amzPullFBAJobExecutor {}", jobArgs.getJobParams()); +// //昨天的日期yyyy-MM-dd +// // 获取昨天的日期 +// if ("yesterday".equals(jobArgs.getJobParams())) { +// DateTime yesterday = DateUtil.yesterday(); +// String yesterdayString = yesterday.toString("yyyy-MM-dd"); +// SnailJobLog.LOCAL.info("yesterdayString. yesterdayString:{}", yesterdayString); +// //获取今天的日期 +// DateTime tomorrow = DateUtil.tomorrow(); +// String tomorrowString = tomorrow.toString("yyyy-MM-dd"); +// SnailJobLog.LOCAL.info("todayString. todayString:{}", tomorrowString); +// remoteFBADataService.pullAmzFbaDataToken(yesterdayString, tomorrowString); +// return ExecuteResult.success("获取从昨天开始的FBA货件数据"); +// } else if ("today".equals(jobArgs.getJobParams())) { +// DateTime today = DateUtil.date(); +// String todayString = today.toString("yyyy-MM-dd"); +// SnailJobLog.LOCAL.info("yesterdayString. yesterdayString:{}", todayString); +// //获取今天的日期 +// DateTime tomorrow = DateUtil.tomorrow(); +// String tomorrowString = tomorrow.toString("yyyy-MM-dd"); +// SnailJobLog.LOCAL.info("todayString. todayString:{}", tomorrowString); +// remoteFBADataService.pullAmzFbaDataToken(todayString, tomorrowString); +// } +// return ExecuteResult.success("请指定参数yesterday或者today"); +// } +} diff --git a/asinkj-modules/asinkj-job/src/main/java/org/asinkj/job/snailjob/UpdatePurchaseJobExecutor.java b/asinkj-modules/asinkj-job/src/main/java/org/asinkj/job/snailjob/UpdatePurchaseJobExecutor.java new file mode 100644 index 0000000..f149758 --- /dev/null +++ b/asinkj-modules/asinkj-job/src/main/java/org/asinkj/job/snailjob/UpdatePurchaseJobExecutor.java @@ -0,0 +1,85 @@ +package org.asinkj.job.snailjob; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.aizuda.snailjob.client.job.core.annotation.JobExecutor; +import com.aizuda.snailjob.client.job.core.dto.JobArgs; +import com.aizuda.snailjob.client.model.ExecuteResult; +import com.aizuda.snailjob.common.core.util.JsonUtil; +import com.aizuda.snailjob.common.log.SnailJobLog; +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboReference; +import org.asinkj.amz.api.RemoteFBADataService; +import org.springframework.stereotype.Component; + +/** + * @author opensnail + * @date 2024-05-17 + */ +@Component +@JobExecutor(name = "updatePurchaseOrder") +@Slf4j +public class UpdatePurchaseJobExecutor { + + @DubboReference + private RemoteFBADataService remoteFBADataService; + + public ExecuteResult jobExecute(JobArgs jobArgs) throws Exception { + SnailJobLog.LOCAL.info("amzPullFBAJobExecutor. jobArgs:{}", JsonUtil.toJsonString(jobArgs)); + SnailJobLog.REMOTE.info("amzPullFBAJobExecutor. jobArgs:{}", JsonUtil.toJsonString(jobArgs)); + log.info("amzPullFBAJobExecutor {}", jobArgs.getJobParams()); + //昨天的日期yyyy-MM-dd + // 获取昨天的日期 + if ("yesterday".equals(jobArgs.getJobParams())) { + DateTime yesterday = DateUtil.yesterday(); + String yesterdayString = yesterday.toString("yyyy-MM-dd"); + SnailJobLog.LOCAL.info("yesterdayString. yesterdayString:{}", yesterdayString); + //获取今天的日期 + DateTime tomorrow = DateUtil.tomorrow(); + String tomorrowString = tomorrow.toString("yyyy-MM-dd"); + SnailJobLog.LOCAL.info("todayString. todayString:{}", tomorrowString); + remoteFBADataService.updatePurchaseOrderSeller(yesterdayString, tomorrowString); + return ExecuteResult.success("获取从昨天开始的FBA货件数据"); + } else if ("today".equals(jobArgs.getJobParams())) { + DateTime today = DateUtil.date(); + String todayString = today.toString("yyyy-MM-dd"); + SnailJobLog.LOCAL.info("yesterdayString. yesterdayString:{}", todayString); + //获取今天的日期 + DateTime tomorrow = DateUtil.tomorrow(); + String tomorrowString = tomorrow.toString("yyyy-MM-dd"); + SnailJobLog.LOCAL.info("todayString. todayString:{}", tomorrowString); + remoteFBADataService.updatePurchaseOrderSeller(todayString, tomorrowString); + } + return ExecuteResult.success("请指定参数yesterday或者today"); + } + + +// public ExecuteResult jobExecute(JobArgs jobArgs) throws Exception { +// SnailJobLog.LOCAL.info("amzPullFBAJobExecutor. jobArgs:{}", JsonUtil.toJsonString(jobArgs)); +// SnailJobLog.REMOTE.info("amzPullFBAJobExecutor. jobArgs:{}", JsonUtil.toJsonString(jobArgs)); +// log.info("amzPullFBAJobExecutor {}", jobArgs.getJobParams()); +// //昨天的日期yyyy-MM-dd +// // 获取昨天的日期 +// if ("yesterday".equals(jobArgs.getJobParams())) { +// DateTime yesterday = DateUtil.yesterday(); +// String yesterdayString = yesterday.toString("yyyy-MM-dd"); +// SnailJobLog.LOCAL.info("yesterdayString. yesterdayString:{}", yesterdayString); +// //获取今天的日期 +// DateTime tomorrow = DateUtil.tomorrow(); +// String tomorrowString = tomorrow.toString("yyyy-MM-dd"); +// SnailJobLog.LOCAL.info("todayString. todayString:{}", tomorrowString); +// remoteFBADataService.pullAmzFbaDataToken(yesterdayString, tomorrowString); +// return ExecuteResult.success("获取从昨天开始的FBA货件数据"); +// } else if ("today".equals(jobArgs.getJobParams())) { +// DateTime today = DateUtil.date(); +// String todayString = today.toString("yyyy-MM-dd"); +// SnailJobLog.LOCAL.info("yesterdayString. yesterdayString:{}", todayString); +// //获取今天的日期 +// DateTime tomorrow = DateUtil.tomorrow(); +// String tomorrowString = tomorrow.toString("yyyy-MM-dd"); +// SnailJobLog.LOCAL.info("todayString. todayString:{}", tomorrowString); +// remoteFBADataService.pullAmzFbaDataToken(todayString, tomorrowString); +// } +// return ExecuteResult.success("请指定参数yesterday或者today"); +// } +}