From facc210f8211668647424a48e6e0c8803bebbe06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=81=E9=BD=90?= <280645618@qq.com> Date: Wed, 19 Jun 2024 14:06:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84pdd=E7=94=B5=E5=AD=90?= =?UTF-8?q?=E9=9D=A2=E5=8D=95=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pdd/controller/EwaybillController.java | 19 ++++++++++ .../pdd/service/ErpShipWaybillService.java | 2 + .../impl/ErpShipWaybillServiceImpl.java | 38 ++++++++++++++++++- vue/src/api/pdd/ewaybill.js | 7 ++++ vue/src/views/shop/pdd/ewaybill/index.vue | 16 +++++--- 5 files changed, 76 insertions(+), 6 deletions(-) diff --git a/open-api/pdd-api/src/main/java/com/qihang/pdd/controller/EwaybillController.java b/open-api/pdd-api/src/main/java/com/qihang/pdd/controller/EwaybillController.java index fb207720..2b3d21f9 100644 --- a/open-api/pdd-api/src/main/java/com/qihang/pdd/controller/EwaybillController.java +++ b/open-api/pdd-api/src/main/java/com/qihang/pdd/controller/EwaybillController.java @@ -239,4 +239,23 @@ public class EwaybillController extends BaseController { erpShipWaybillService.printSuccess(req.getShopId(), req.getIds()); return AjaxResult.success(); } + + /** + * 发货 + * @param req + * @return + */ + @PostMapping("/push_ship_send") + @ResponseBody + public AjaxResult pushShipSend(@RequestBody PddWaybillGetBo req) { + if (req.getShopId() == null || req.getShopId() <= 0) { + return AjaxResult.error(HttpStatus.PARAMS_ERROR, "参数错误,没有店铺Id"); + } + if (req.getIds() == null || req.getIds().length <= 0) { + return AjaxResult.error(HttpStatus.PARAMS_ERROR, "参数错误,没有选择订单"); + } + erpShipWaybillService.pushShipSend(req.getShopId(), req.getIds()); + + return AjaxResult.success(); + } } diff --git a/open-api/pdd-api/src/main/java/com/qihang/pdd/service/ErpShipWaybillService.java b/open-api/pdd-api/src/main/java/com/qihang/pdd/service/ErpShipWaybillService.java index 7731be08..52679715 100644 --- a/open-api/pdd-api/src/main/java/com/qihang/pdd/service/ErpShipWaybillService.java +++ b/open-api/pdd-api/src/main/java/com/qihang/pdd/service/ErpShipWaybillService.java @@ -16,4 +16,6 @@ public interface ErpShipWaybillService extends IService { List getListByOrderIds(Long shopId, String[] orderIds); ResultVo printSuccess(Long shopId,String[] orderIds); + + ResultVo pushShipSend(Long shopId,String[] orderIds); } diff --git a/open-api/pdd-api/src/main/java/com/qihang/pdd/service/impl/ErpShipWaybillServiceImpl.java b/open-api/pdd-api/src/main/java/com/qihang/pdd/service/impl/ErpShipWaybillServiceImpl.java index e4215d66..30858eca 100644 --- a/open-api/pdd-api/src/main/java/com/qihang/pdd/service/impl/ErpShipWaybillServiceImpl.java +++ b/open-api/pdd-api/src/main/java/com/qihang/pdd/service/impl/ErpShipWaybillServiceImpl.java @@ -1,15 +1,19 @@ package com.qihang.pdd.service.impl; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.qihang.common.common.ResultVo; import com.qihang.common.enums.EnumShopType; +import com.qihang.common.mq.MqMessage; +import com.qihang.common.mq.MqType; import com.qihang.pdd.domain.ErpShipWaybill; import com.qihang.pdd.domain.OmsPddOrder; import com.qihang.pdd.mapper.OmsPddOrderMapper; import com.qihang.pdd.service.ErpShipWaybillService; import com.qihang.pdd.mapper.ErpShipWaybillMapper; import lombok.AllArgsConstructor; +import org.springframework.kafka.core.KafkaTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -28,7 +32,7 @@ public class ErpShipWaybillServiceImpl extends ServiceImpl kafkaTemplate; /** * 更新电子面单信息 * @param shipWaybill @@ -109,9 +113,41 @@ public class ErpShipWaybillServiceImpl extends ServiceImpl pushShipSend(Long shopId, String[] orderIds) { + List erpShipWaybills = mapper.selectList( + new LambdaQueryWrapper() + .eq(ErpShipWaybill::getShopId,shopId) + .in(ErpShipWaybill::getOrderId, Arrays.stream(orderIds).toList())); + if(erpShipWaybills!=null){ + for (var w : erpShipWaybills){ + if(w.getStatus() > 0 && w.getStatus()<3) { + ErpShipWaybill update = new ErpShipWaybill(); + update.setId(erpShipWaybills.get(0).getId()); + update.setStatus(3);// 已发货 + update.setUpdateTime(new Date()); + update.setUpdateBy("电子面单发货"); + mapper.updateById(update); + // 更新关联订单erp_send_status状态 + OmsPddOrder orderUpdate = new OmsPddOrder(); + orderUpdate.setErpSendStatus(update.getStatus()); + + orderMapper.update(orderUpdate, new LambdaQueryWrapper().eq(OmsPddOrder::getOrderSn, w.getOrderId())); + + // 更新erp_sale_order发货状态(controller层采用kafka推送消息处理) + // 发货完成,通知发货出库 + kafkaTemplate.send(MqType.SHIP_SEND_MQ, JSONObject.toJSONString(MqMessage.build(w.getShopId(),w.getOrderId(),w.getLogisticsCode(),w.getWaybillCode()))); + } } } return ResultVo.success(); diff --git a/vue/src/api/pdd/ewaybill.js b/vue/src/api/pdd/ewaybill.js index 5ef9a8f3..faa6e2fd 100644 --- a/vue/src/api/pdd/ewaybill.js +++ b/vue/src/api/pdd/ewaybill.js @@ -44,3 +44,10 @@ export function pushWaybillPrintSuccess(data) { data: data }) } +export function pushShipSend(data) { + return request({ + url: '/api/pdd-api/ewaybill/push_ship_send', + method: 'post', + data: data + }) +} diff --git a/vue/src/views/shop/pdd/ewaybill/index.vue b/vue/src/views/shop/pdd/ewaybill/index.vue index 6652c1bf..bf692b80 100644 --- a/vue/src/views/shop/pdd/ewaybill/index.vue +++ b/vue/src/views/shop/pdd/ewaybill/index.vue @@ -50,7 +50,7 @@ size="mini" :disabled="multiple" @click="handleGetEwaybillCode" - >取号 + >电子面单取号 @@ -62,7 +62,7 @@ icon="el-icon-printer" size="mini" @click="handlePrintEwaybill" - >打印电子面单 + >电子面单打印 发货 + >电子面单发货 @@ -187,9 +187,10 @@ import { pullWaybillAccount, getWaybillCode, getWaybillPrintData, - pushWaybillPrintSuccess + pushWaybillPrintSuccess,pushShipSend } from "@/api/pdd/ewaybill"; + export default { name: "printPdd", data() { @@ -418,8 +419,13 @@ export default { }, handleShipSend(){ - this.$modal.msgError("开源版本未实现平台发货!请自行对接发货"); + // this.$modal.msgError("开源版本未实现平台发货!请自行对接发货"); + pushShipSend({shopId: this.queryParams.shopId, ids: this.ids}).then(response => { + this.$modal.msgSuccess("发货成功!"); + this.getList() + }) }, + getUUID(len, radix) { var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split(''); var uuid = [], i;