完善tao电子面单打印;新增面单打印加入备货库;
This commit is contained in:
parent
ede2f2e8fb
commit
ea192bade3
|
|
@ -29,6 +29,7 @@
|
|||
+ [ ] 视频号小店
|
||||
+ [ ] 接入电子面单打印
|
||||
+ [x] 淘宝
|
||||
+ [ ] 京东
|
||||
+ [x] 视频号小店
|
||||
+ [ ] 拼多多
|
||||
+ [ ] 抖店
|
||||
|
|
|
|||
|
|
@ -10,6 +10,11 @@ public class MqMessage {
|
|||
private int mqType;// 消息类型(1:订单消息;2:退款消息)
|
||||
private EnumShopType shopType;
|
||||
private String keyId;
|
||||
private String[] orderIds;
|
||||
private Long shopId;
|
||||
private String logisticsCompanyCode;//快递公司编码
|
||||
private String waybillCode;//运单号
|
||||
|
||||
|
||||
public static MqMessage build(EnumShopType shopType,int mqType , String keyId){
|
||||
MqMessage result = new MqMessage();
|
||||
|
|
@ -18,4 +23,20 @@ public class MqMessage {
|
|||
result.setKeyId(keyId);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static MqMessage build(Long shopId,String orderId){
|
||||
MqMessage result = new MqMessage();
|
||||
result.setShopId(shopId);
|
||||
result.setKeyId(orderId);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static MqMessage build(Long shopId,String orderId,String logisticsCompanyCode,String waybillCode){
|
||||
MqMessage result = new MqMessage();
|
||||
result.setShopId(shopId);
|
||||
result.setKeyId(orderId);
|
||||
result.setLogisticsCompanyCode(logisticsCompanyCode);
|
||||
result.setWaybillCode(waybillCode);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,20 @@ public class MqType {
|
|||
*/
|
||||
public static final int REFUND_MESSAGE = 2;
|
||||
|
||||
/**
|
||||
* 新订单消息
|
||||
*/
|
||||
public static final String ORDER_MQ = "ORDER_MQ";
|
||||
/**
|
||||
* 新退款消息
|
||||
*/
|
||||
public static final String REFUND_MQ = "REFUND_MQ";
|
||||
/**
|
||||
* 新备货消息
|
||||
*/
|
||||
public static final String SHIP_STOCK_UP_MQ = "SHIP_STOCK_UP_MQ";
|
||||
/**
|
||||
* 发货通知
|
||||
*/
|
||||
public static final String SHIP_SEND_MQ = "SHIP_SEND_MQ";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
Target Server Version : 80032
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 17/06/2024 10:57:02
|
||||
Date: 18/06/2024 16:00:44
|
||||
*/
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
|
@ -383,7 +383,7 @@ CREATE TABLE `erp_sale_order` (
|
|||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE INDEX `order_sn_index`(`order_num`) USING BTREE,
|
||||
INDEX `shopid_index`(`shop_id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 1801809140794216449 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '订单表' ROW_FORMAT = Dynamic;
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 1801809140794216449 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for erp_sale_order_item
|
||||
|
|
@ -425,7 +425,7 @@ CREATE TABLE `erp_sale_order_item` (
|
|||
PRIMARY KEY (`id`) USING BTREE,
|
||||
INDEX `goodId_index`(`goods_id`) USING BTREE,
|
||||
INDEX `order_id`(`order_id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 1801809144007053315 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '订单明细表' ROW_FORMAT = Dynamic;
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 1801809144007053314 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '订单明细表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for erp_ship_logistics
|
||||
|
|
@ -545,6 +545,32 @@ CREATE TABLE `erp_ship_order_fee` (
|
|||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 1786238985318604802 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单发货物流费用' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for erp_ship_stock_up
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `erp_ship_stock_up`;
|
||||
CREATE TABLE `erp_ship_stock_up` (
|
||||
`id` bigint(0) NOT NULL AUTO_INCREMENT,
|
||||
`sale_order_id` bigint(0) DEFAULT NULL COMMENT 'erp订单id',
|
||||
`sale_order_item_id` bigint(0) DEFAULT NULL COMMENT 'erp订单itemid',
|
||||
`order_num` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '订单编号',
|
||||
`original_sku_id` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '原始订单skuid',
|
||||
`goods_id` bigint(0) DEFAULT 0 COMMENT 'erp系统商品id',
|
||||
`spec_id` bigint(0) DEFAULT 0 COMMENT 'erp系统商品规格id',
|
||||
`goods_title` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '商品标题',
|
||||
`goods_img` varchar(300) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '商品图片',
|
||||
`goods_spec` varchar(2550) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '商品规格',
|
||||
`goods_num` varchar(35) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '商品编码',
|
||||
`spec_num` varchar(35) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '商品规格编码',
|
||||
`quantity` int(0) NOT NULL COMMENT '商品数量',
|
||||
`status` int(0) NOT NULL COMMENT '状态0待备货1备货中2已出库3已发货',
|
||||
`create_time` datetime(0) DEFAULT NULL COMMENT '创建时间',
|
||||
`create_by` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人',
|
||||
`update_time` datetime(0) DEFAULT NULL COMMENT '更新时间',
|
||||
`update_by` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '更新人',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '备货表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for erp_ship_waybill
|
||||
-- ----------------------------
|
||||
|
|
@ -563,7 +589,7 @@ CREATE TABLE `erp_ship_waybill` (
|
|||
`update_time` datetime(0) DEFAULT NULL COMMENT '更新时间',
|
||||
`update_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新人',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '发货电子面单记录表' ROW_FORMAT = Dynamic;
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 1802644906957025282 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '发货电子面单记录表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for oms_dou_goods
|
||||
|
|
@ -1270,7 +1296,7 @@ CREATE TABLE `oms_pdd_waybill_account` (
|
|||
`phone` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '发货固定电话',
|
||||
`is_show` int(0) DEFAULT NULL COMMENT '是否前台显示1显示0不显示',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '拼多多电子面单账户信息表' ROW_FORMAT = Dynamic;
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '拼多多电子面单账户信息表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for oms_tao_goods
|
||||
|
|
@ -1389,9 +1415,6 @@ CREATE TABLE `oms_tao_order` (
|
|||
`receiving_time` datetime(0) DEFAULT NULL COMMENT '收货时间,这里返回的是完全收货时间',
|
||||
`status` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT '' COMMENT '交易状态。可选值: * TRADE_NO_CREATE_PAY(没有创建支付宝交易) * WAIT_BUYER_PAY(等待买家付款) * SELLER_CONSIGNED_PART(卖家部分发货) * WAIT_SELLER_SEND_GOODS(等待卖家发货,即:买家已付款) * WAIT_BUYER_CONFIRM_GOODS(等待买家确认收货,即:卖家已发货) * TRADE_BUYER_SIGNED(买家已签收,货到付款专用) * TRADE_FINISHED(交易成功) * TRADE_CLOSED(付款以后用户退款成功,交易自动关闭) * TRADE_CLOSED_BY_TAOBAO(付款以前,卖家或买家主动关闭交易) * PAY_PENDING(国际信用卡支付付款确认中) * WAIT_PRE_AUTH_CONFIRM(0元购合约中) * PAID_FORBID_CONSIGN(拼团中订单或者发货强管控的订单,已付款但禁止发货)',
|
||||
`trade_memo` varchar(2000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '交易备注。',
|
||||
`erp_send_company` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT 'erp发货快递公司',
|
||||
`erp_send_code` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT 'erp发货快递单号',
|
||||
`erp_send_status` int(0) DEFAULT 0 COMMENT 'erp发货状态',
|
||||
`create_time` datetime(0) DEFAULT NULL COMMENT '数据库创建时间',
|
||||
`update_time` datetime(0) DEFAULT NULL COMMENT '数据库更新时间',
|
||||
`update_by` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '数据库更新人',
|
||||
|
|
@ -1427,6 +1450,9 @@ CREATE TABLE `oms_tao_order` (
|
|||
`tmall_coupon_fee` bigint(0) DEFAULT NULL COMMENT '天猫商家使用,订单使用的红包信息',
|
||||
`audit_status` int(0) DEFAULT NULL COMMENT '订单审核状态(0待审核1已审核)',
|
||||
`audit_time` datetime(0) DEFAULT NULL COMMENT '订单审核时间',
|
||||
`erp_send_company` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT 'erp发货快递公司',
|
||||
`erp_send_code` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT 'erp发货快递单号',
|
||||
`erp_send_status` int(0) DEFAULT 0 COMMENT 'erp发货状态(1已取号2已打印3已发货10手动发货)',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 1801155298566070275 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '淘宝订单表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
|
@ -1574,7 +1600,7 @@ CREATE TABLE `oms_tao_waybill_account` (
|
|||
`phone` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '发货固定电话',
|
||||
`is_show` int(0) DEFAULT NULL COMMENT '是否前台显示1显示0不显示',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '淘宝电子面单账户信息表' ROW_FORMAT = Dynamic;
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '淘宝电子面单账户信息表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for oms_wei_goods
|
||||
|
|
@ -2373,7 +2399,7 @@ CREATE TABLE `sys_logininfor` (
|
|||
PRIMARY KEY (`info_id`) USING BTREE,
|
||||
INDEX `idx_sys_logininfor_s`(`status`) USING BTREE,
|
||||
INDEX `idx_sys_logininfor_lt`(`login_time`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 304 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统访问记录' ROW_FORMAT = Dynamic;
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 303 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统访问记录' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_menu
|
||||
|
|
|
|||
|
|
@ -0,0 +1,108 @@
|
|||
package com.qihang.oms.domain;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 备货表
|
||||
* @TableName erp_ship_stock_up
|
||||
*/
|
||||
@Data
|
||||
public class ErpShipStockUp implements Serializable {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* erp订单id
|
||||
*/
|
||||
private Long saleOrderId;
|
||||
|
||||
/**
|
||||
* erp订单itemid
|
||||
*/
|
||||
private Long saleOrderItemId;
|
||||
|
||||
/**
|
||||
* 订单编号
|
||||
*/
|
||||
private String orderNum;
|
||||
|
||||
/**
|
||||
* 原始订单skuid
|
||||
*/
|
||||
private String originalSkuId;
|
||||
|
||||
/**
|
||||
* erp系统商品id
|
||||
*/
|
||||
private Long goodsId;
|
||||
|
||||
/**
|
||||
* erp系统商品规格id
|
||||
*/
|
||||
private Long specId;
|
||||
|
||||
/**
|
||||
* 商品标题
|
||||
*/
|
||||
private String goodsTitle;
|
||||
|
||||
/**
|
||||
* 商品图片
|
||||
*/
|
||||
private String goodsImg;
|
||||
|
||||
/**
|
||||
* 商品规格
|
||||
*/
|
||||
private String goodsSpec;
|
||||
|
||||
/**
|
||||
* 商品编码
|
||||
*/
|
||||
private String goodsNum;
|
||||
|
||||
/**
|
||||
* 商品规格编码
|
||||
*/
|
||||
private String specNum;
|
||||
|
||||
/**
|
||||
* 商品数量
|
||||
*/
|
||||
private Integer quantity;
|
||||
|
||||
/**
|
||||
* 状态0待备货1备货中2已出库3已发货
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private String createBy;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
private String updateBy;
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
package com.qihang.oms.mapper;
|
||||
|
||||
import com.qihang.oms.domain.ErpShipStockUp;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* @author TW
|
||||
* @description 针对表【erp_ship_stock_up(备货表)】的数据库操作Mapper
|
||||
* @createDate 2024-06-18 15:25:18
|
||||
* @Entity com.qihang.oms.domain.ErpShipStockUp
|
||||
*/
|
||||
public interface ErpShipStockUpMapper extends BaseMapper<ErpShipStockUp> {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -57,4 +57,26 @@ public class KafkaMQConsumer {
|
|||
public void onRefundMessage(ConsumerRecord<String,Object> message) {
|
||||
logger.info("收到kafka消息REFUND============"+message.topic()+"====="+message.partition()+"======"+message.value());
|
||||
}
|
||||
|
||||
/**
|
||||
* 监听备货消息
|
||||
* @param message
|
||||
*/
|
||||
@KafkaListener(topics = {MqType.SHIP_STOCK_UP_MQ})
|
||||
public void onSHIP_STOCK_UP_MQ(ConsumerRecord<String,Object> message) {
|
||||
logger.info("收到kafka消息 SHIP_STOCK_UP_MQ ============"+message.topic()+"====="+message.partition()+"======"+message.value());
|
||||
MqMessage vo = JSON.parseObject(message.value().toString(), MqMessage.class);
|
||||
orderService.orderShipStockUp(vo.getShopId(),vo.getKeyId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 监听发货完成消息
|
||||
* @param message
|
||||
*/
|
||||
@KafkaListener(topics = {MqType.SHIP_SEND_MQ})
|
||||
public void onSHIP_SEND_MQ(ConsumerRecord<String,Object> message) {
|
||||
logger.info("收到kafka消息 SHIP_SEND_MQ ============"+message.topic()+"====="+message.partition()+"======"+message.value());
|
||||
MqMessage vo = JSON.parseObject(message.value().toString(), MqMessage.class);
|
||||
orderService.orderSendConfirm(vo.getShopId(),vo.getKeyId(),vo.getLogisticsCompanyCode(),vo.getWaybillCode());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,4 +24,16 @@ public interface ErpSaleOrderService extends IService<ErpSaleOrder> {
|
|||
PageResult<ErpSaleOrder> queryPageList(ErpSaleOrder bo, PageQuery pageQuery);
|
||||
|
||||
ErpSaleOrder queryDetailById(Long id);
|
||||
|
||||
ResultVo<Integer> orderSendConfirm(Long shopId,String orderId,String logisticsCompanyCode,String waybillCode);
|
||||
|
||||
/**
|
||||
* 订单备货
|
||||
* @param shopId
|
||||
* @param orderId
|
||||
* @param
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
ResultVo<Integer> orderShipStockUp(Long shopId,String orderId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
package com.qihang.oms.service;
|
||||
|
||||
import com.qihang.oms.domain.ErpShipStockUp;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* @author TW
|
||||
* @description 针对表【erp_ship_stock_up(备货表)】的数据库操作Service
|
||||
* @createDate 2024-06-18 15:25:18
|
||||
*/
|
||||
public interface ErpShipStockUpService extends IService<ErpShipStockUp> {
|
||||
|
||||
}
|
||||
|
|
@ -54,6 +54,8 @@ public class ErpSaleOrderServiceImpl extends ServiceImpl<ErpSaleOrderMapper, Erp
|
|||
private final OmsWeiOrderItemMapper weiOrderItemMapper;
|
||||
private final OmsWeiGoodsSkuMapper weiGoodsSkuMapper;
|
||||
|
||||
// 备货
|
||||
private final ErpShipStockUpMapper shipStockUpMapper;
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
|
|
@ -856,6 +858,81 @@ public class ErpSaleOrderServiceImpl extends ServiceImpl<ErpSaleOrderMapper, Erp
|
|||
}
|
||||
return erpSaleOrder;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public ResultVo<Integer> orderSendConfirm(Long shopId, String orderId,String logisticsCompanyCode,String waybillCode) {
|
||||
List<ErpSaleOrder> erpSaleOrders = orderMapper.selectList(new LambdaQueryWrapper<ErpSaleOrder>().eq(ErpSaleOrder::getShopId, shopId).eq(ErpSaleOrder::getOrderNum, orderId));
|
||||
if(erpSaleOrders!=null && erpSaleOrders.size()>0){
|
||||
// 更新erp sale order 订单表发货状态
|
||||
if(erpSaleOrders.get(0).getShipStatus()!=3){
|
||||
//2是已发货
|
||||
ErpSaleOrder update = new ErpSaleOrder();
|
||||
update.setId(erpSaleOrders.get(0).getId());
|
||||
update.setOrderStatus(2);
|
||||
update.setShippingCompany(logisticsCompanyCode);
|
||||
update.setShippingNumber(waybillCode);
|
||||
update.setShippingCost(BigDecimal.ZERO);
|
||||
update.setShippingMan("消息通知发货完成");
|
||||
update.setShippingTime(new Date());
|
||||
update.setShipStatus(3);
|
||||
|
||||
update.setUpdateTime(new Date());
|
||||
update.setUpdateBy("消息通知发货完成");
|
||||
orderMapper.updateById(update);
|
||||
}
|
||||
// 更新备货表相关订单状态erp_ship_stock_up
|
||||
ErpShipStockUp shipStockUp = new ErpShipStockUp();
|
||||
shipStockUp.setUpdateBy("消息通知发货完成");
|
||||
shipStockUp.setUpdateTime(new Date());
|
||||
shipStockUp.setStatus(3);//状态0待备货1备货中2已出库3已发货
|
||||
shipStockUpMapper.update(shipStockUp,new LambdaQueryWrapper<ErpShipStockUp>().eq(ErpShipStockUp::getSaleOrderId,erpSaleOrders.get(0).getId()));
|
||||
|
||||
}
|
||||
|
||||
return ResultVo.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单备货
|
||||
*
|
||||
* @param shopId
|
||||
* @param orderId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ResultVo<Integer> orderShipStockUp(Long shopId, String orderId) {
|
||||
List<ErpSaleOrder> erpSaleOrders = orderMapper.selectList(new LambdaQueryWrapper<ErpSaleOrder>().eq(ErpSaleOrder::getShopId, shopId).eq(ErpSaleOrder::getOrderNum, orderId));
|
||||
if(erpSaleOrders!=null && erpSaleOrders.size()>0){
|
||||
// 查处item
|
||||
List<ErpSaleOrderItem> items = orderItemMapper.selectList(new LambdaQueryWrapper<ErpSaleOrderItem>().eq(ErpSaleOrderItem::getOrderId, erpSaleOrders.get(0).getId()));
|
||||
if(items!=null&& items.size()>0){
|
||||
for (var item:items) {
|
||||
List<ErpShipStockUp> erpShipStockUps = shipStockUpMapper.selectList(new LambdaQueryWrapper<ErpShipStockUp>().eq(ErpShipStockUp::getSaleOrderItemId, item.getId()));
|
||||
if(erpShipStockUps==null || erpShipStockUps.size()==0) {
|
||||
ErpShipStockUp shipStockUp = new ErpShipStockUp();
|
||||
shipStockUp.setSaleOrderId(item.getOrderId());
|
||||
shipStockUp.setSaleOrderItemId(item.getId());
|
||||
shipStockUp.setOrderNum(erpSaleOrders.get(0).getOrderNum());
|
||||
shipStockUp.setOriginalSkuId(item.getOriginalSkuId());
|
||||
shipStockUp.setGoodsId(item.getGoodsId());
|
||||
shipStockUp.setSpecId(item.getSpecId());
|
||||
shipStockUp.setGoodsTitle(item.getGoodsTitle());
|
||||
shipStockUp.setGoodsImg(item.getGoodsImg());
|
||||
shipStockUp.setGoodsSpec(item.getGoodsSpec());
|
||||
shipStockUp.setGoodsNum(item.getGoodsNum());
|
||||
shipStockUp.setSpecNum(item.getSpecNum());
|
||||
shipStockUp.setQuantity(item.getQuantity());
|
||||
shipStockUp.setStatus(0);//状态0待备货1备货中2已出库3已发货
|
||||
shipStockUp.setCreateBy("消息通知备货");
|
||||
shipStockUp.setCreateTime(new Date());
|
||||
shipStockUpMapper.insert(shipStockUp);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return ResultVo.success();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
package com.qihang.oms.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.qihang.oms.domain.ErpShipStockUp;
|
||||
import com.qihang.oms.service.ErpShipStockUpService;
|
||||
import com.qihang.oms.mapper.ErpShipStockUpMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @author TW
|
||||
* @description 针对表【erp_ship_stock_up(备货表)】的数据库操作Service实现
|
||||
* @createDate 2024-06-18 15:25:18
|
||||
*/
|
||||
@Service
|
||||
public class ErpShipStockUpServiceImpl extends ServiceImpl<ErpShipStockUpMapper, ErpShipStockUp>
|
||||
implements ErpShipStockUpService{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.qihang.oms.mapper.ErpShipStockUpMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="com.qihang.oms.domain.ErpShipStockUp">
|
||||
<id property="id" column="id" jdbcType="BIGINT"/>
|
||||
<result property="saleOrderId" column="sale_order_id" jdbcType="BIGINT"/>
|
||||
<result property="saleOrderItemId" column="sale_order_item_id" jdbcType="BIGINT"/>
|
||||
<result property="orderNum" column="order_num" jdbcType="VARCHAR"/>
|
||||
<result property="originalSkuId" column="original_sku_id" jdbcType="VARCHAR"/>
|
||||
<result property="goodsId" column="goods_id" jdbcType="BIGINT"/>
|
||||
<result property="specId" column="spec_id" jdbcType="BIGINT"/>
|
||||
<result property="goodsTitle" column="goods_title" jdbcType="VARCHAR"/>
|
||||
<result property="goodsImg" column="goods_img" jdbcType="VARCHAR"/>
|
||||
<result property="goodsSpec" column="goods_spec" jdbcType="VARCHAR"/>
|
||||
<result property="goodsNum" column="goods_num" jdbcType="VARCHAR"/>
|
||||
<result property="specNum" column="spec_num" jdbcType="VARCHAR"/>
|
||||
<result property="quantity" column="quantity" jdbcType="INTEGER"/>
|
||||
<result property="status" column="status" jdbcType="INTEGER"/>
|
||||
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="createBy" column="create_by" jdbcType="VARCHAR"/>
|
||||
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
id,sale_order_id,sale_order_item_id,
|
||||
order_num,original_sku_id,goods_id,
|
||||
spec_id,goods_title,goods_img,
|
||||
goods_spec,goods_num,spec_num,
|
||||
quantity,status,create_time,
|
||||
create_by,update_time,update_by
|
||||
</sql>
|
||||
</mapper>
|
||||
Binary file not shown.
Binary file not shown.
|
|
@ -1,45 +1,45 @@
|
|||
package com.qihang.jd.task;
|
||||
|
||||
import com.qihang.common.task.SchedulingConfiguration;
|
||||
import lombok.extern.java.Log;
|
||||
import org.springframework.boot.ApplicationArguments;
|
||||
import org.springframework.boot.ApplicationRunner;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
@Log
|
||||
@Component
|
||||
public class CronTaskLoader implements ApplicationRunner {
|
||||
// private static final Logger log = LoggerFactory.getLogger(CronTaskLoader.class);
|
||||
private final SchedulingConfiguration schedulingConfiguration;
|
||||
private final AtomicBoolean appStarted = new AtomicBoolean(false);
|
||||
private final AtomicBoolean initializing = new AtomicBoolean(false);
|
||||
|
||||
public CronTaskLoader(SchedulingConfiguration schedulingConfiguration) {
|
||||
this.schedulingConfiguration = schedulingConfiguration;
|
||||
}
|
||||
|
||||
/**
|
||||
* 定时任务配置刷新(10分钟刷新一次)
|
||||
*/
|
||||
@Scheduled(fixedDelay = 600000)
|
||||
public void cronTaskConfigRefresh() {
|
||||
if (appStarted.get() && initializing.compareAndSet(false, true)) {
|
||||
log.info("定时调度任务动态加载开始>>>JD>>>");
|
||||
try {
|
||||
schedulingConfiguration.refresh();
|
||||
} finally {
|
||||
initializing.set(false);
|
||||
}
|
||||
// log.info("定时调度任务动态加载结束<<<<<<");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(ApplicationArguments args) {
|
||||
if (appStarted.compareAndSet(false, true)) {
|
||||
cronTaskConfigRefresh();
|
||||
}
|
||||
}
|
||||
}
|
||||
//package com.qihang.jd.task;
|
||||
//
|
||||
//import com.qihang.common.task.SchedulingConfiguration;
|
||||
//import lombok.extern.java.Log;
|
||||
//import org.springframework.boot.ApplicationArguments;
|
||||
//import org.springframework.boot.ApplicationRunner;
|
||||
//import org.springframework.scheduling.annotation.Scheduled;
|
||||
//import org.springframework.stereotype.Component;
|
||||
//
|
||||
//import java.util.concurrent.atomic.AtomicBoolean;
|
||||
//@Log
|
||||
//@Component
|
||||
//public class CronTaskLoader implements ApplicationRunner {
|
||||
//// private static final Logger log = LoggerFactory.getLogger(CronTaskLoader.class);
|
||||
// private final SchedulingConfiguration schedulingConfiguration;
|
||||
// private final AtomicBoolean appStarted = new AtomicBoolean(false);
|
||||
// private final AtomicBoolean initializing = new AtomicBoolean(false);
|
||||
//
|
||||
// public CronTaskLoader(SchedulingConfiguration schedulingConfiguration) {
|
||||
// this.schedulingConfiguration = schedulingConfiguration;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 定时任务配置刷新(10分钟刷新一次)
|
||||
// */
|
||||
// @Scheduled(fixedDelay = 600000)
|
||||
// public void cronTaskConfigRefresh() {
|
||||
// if (appStarted.get() && initializing.compareAndSet(false, true)) {
|
||||
// log.info("定时调度任务动态加载开始>>>JD>>>");
|
||||
// try {
|
||||
// schedulingConfiguration.refresh();
|
||||
// } finally {
|
||||
// initializing.set(false);
|
||||
// }
|
||||
//// log.info("定时调度任务动态加载结束<<<<<<");
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void run(ApplicationArguments args) {
|
||||
// if (appStarted.compareAndSet(false, true)) {
|
||||
// cronTaskConfigRefresh();
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
|
@ -1,30 +1,30 @@
|
|||
package com.qihang.jd.task;
|
||||
|
||||
import com.qihang.common.task.IPollableService;
|
||||
import com.qihang.jd.domain.SysTask;
|
||||
import com.qihang.jd.service.SysTaskService;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.java.Log;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
@Log
|
||||
@AllArgsConstructor
|
||||
@Service
|
||||
public class OrderTask implements IPollableService {
|
||||
|
||||
private final SysTaskService taskService;
|
||||
@Override
|
||||
public void poll() {
|
||||
log.info("=======自动任务==JD===拉取订单========="+ LocalDateTime.now());
|
||||
// System.out.printf("更新JD订单%s","echo");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCronExpression() {
|
||||
SysTask task = taskService.getById(2);
|
||||
// return "0/1 * * * * ?";
|
||||
return task.getCron();
|
||||
}
|
||||
}
|
||||
//package com.qihang.jd.task;
|
||||
//
|
||||
//import com.qihang.common.task.IPollableService;
|
||||
//import com.qihang.jd.domain.SysTask;
|
||||
//import com.qihang.jd.service.SysTaskService;
|
||||
//
|
||||
//import lombok.AllArgsConstructor;
|
||||
//import lombok.extern.java.Log;
|
||||
//import org.springframework.stereotype.Service;
|
||||
//
|
||||
//import java.time.LocalDateTime;
|
||||
//@Log
|
||||
//@AllArgsConstructor
|
||||
//@Service
|
||||
//public class OrderTask implements IPollableService {
|
||||
//
|
||||
// private final SysTaskService taskService;
|
||||
// @Override
|
||||
// public void poll() {
|
||||
// log.info("=======自动任务==JD===拉取订单========="+ LocalDateTime.now());
|
||||
//// System.out.printf("更新JD订单%s","echo");
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public String getCronExpression() {
|
||||
// SysTask task = taskService.getById(2);
|
||||
//// return "0/1 * * * * ?";
|
||||
// return task.getCron();
|
||||
// }
|
||||
//}
|
||||
|
|
@ -29,6 +29,7 @@ import com.qihang.tao.service.OmsTaoOrderService;
|
|||
import com.qihang.tao.service.OmsTaoWaybillAccountService;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.java.Log;
|
||||
import org.springframework.kafka.core.KafkaTemplate;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
|
|
@ -45,6 +46,7 @@ public class EwaybillController extends BaseController {
|
|||
private final OmsTaoWaybillAccountService waybillAccountService;
|
||||
private final OmsTaoOrderService orderService;
|
||||
private final ErpShipWaybillService erpShipWaybillService;
|
||||
private final KafkaTemplate<String,Object> kafkaTemplate;
|
||||
|
||||
@RequestMapping(value = "/get_waybill_account_list", method = RequestMethod.POST)
|
||||
public AjaxResult getWaybillAccountList(@RequestBody TaoRequest params) throws Exception {
|
||||
|
|
@ -208,6 +210,7 @@ public class EwaybillController extends BaseController {
|
|||
waybill.setWaybillCode(result.getWaybillCode());
|
||||
waybill.setLogisticsCode(result.getCpCode());
|
||||
waybill.setPrintData(result.getPrintData());
|
||||
waybill.setStatus(1);//1已取号
|
||||
erpShipWaybillService.waybillUpdate(waybill);
|
||||
log.info("====保存電子面單信息========"+result.getObjectId());
|
||||
}
|
||||
|
|
@ -241,6 +244,26 @@ public class EwaybillController extends BaseController {
|
|||
return AjaxResult.error(HttpStatus.PARAMS_ERROR, "参数错误,没有选择订单");
|
||||
}
|
||||
erpShipWaybillService.printSuccess(req.getShopId(), req.getIds());
|
||||
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 发货
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/push_ship_send")
|
||||
@ResponseBody
|
||||
public AjaxResult pushShipSend(@RequestBody TaoWaybillGetBo 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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,4 +16,5 @@ public interface ErpShipWaybillService extends IService<ErpShipWaybill> {
|
|||
List<ErpShipWaybill> getListByOrderIds(Long shopId,String[] orderIds);
|
||||
|
||||
ResultVo<Integer> printSuccess(Long shopId,String[] orderIds);
|
||||
ResultVo<Integer> pushShipSend(Long shopId,String[] orderIds);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,15 +1,19 @@
|
|||
package com.qihang.tao.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.tao.domain.ErpShipWaybill;
|
||||
import com.qihang.tao.domain.OmsTaoOrder;
|
||||
import com.qihang.tao.mapper.OmsTaoOrderMapper;
|
||||
import com.qihang.tao.service.ErpShipWaybillService;
|
||||
import com.qihang.tao.mapper.ErpShipWaybillMapper;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.kafka.core.KafkaTemplate;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
|
|
@ -28,6 +32,7 @@ public class ErpShipWaybillServiceImpl extends ServiceImpl<ErpShipWaybillMapper,
|
|||
implements ErpShipWaybillService{
|
||||
private final ErpShipWaybillMapper mapper;
|
||||
private final OmsTaoOrderMapper orderMapper;
|
||||
private final KafkaTemplate<String,Object> kafkaTemplate;
|
||||
|
||||
/**
|
||||
* 更新电子面单信息
|
||||
|
|
@ -94,24 +99,57 @@ public class ErpShipWaybillServiceImpl extends ServiceImpl<ErpShipWaybillMapper,
|
|||
.in(ErpShipWaybill::getOrderId, Arrays.stream(orderIds).toList()));
|
||||
if(erpShipWaybills!=null){
|
||||
for (var w : erpShipWaybills){
|
||||
ErpShipWaybill update = new ErpShipWaybill();
|
||||
update.setId(erpShipWaybills.get(0).getId());
|
||||
update.setStatus(2);
|
||||
update.setUpdateTime(new Date());
|
||||
update.setUpdateBy("打印面单");
|
||||
mapper.updateById(update);
|
||||
if(w.getStatus()==1) {
|
||||
ErpShipWaybill update = new ErpShipWaybill();
|
||||
update.setId(erpShipWaybills.get(0).getId());
|
||||
update.setStatus(2);
|
||||
update.setUpdateTime(new Date());
|
||||
update.setUpdateBy("打印面单");
|
||||
mapper.updateById(update);
|
||||
|
||||
// 更新关联订单erp_send_status状态
|
||||
OmsTaoOrder orderUpdate = new OmsTaoOrder();
|
||||
orderUpdate.setErpSendStatus(update.getStatus());
|
||||
// 更新关联订单erp_send_status状态
|
||||
OmsTaoOrder orderUpdate = new OmsTaoOrder();
|
||||
orderUpdate.setErpSendStatus(update.getStatus());
|
||||
|
||||
orderMapper.update(orderUpdate,new LambdaQueryWrapper<OmsTaoOrder>().eq(OmsTaoOrder::getTid,w.getOrderId()));
|
||||
orderMapper.update(orderUpdate, new LambdaQueryWrapper<OmsTaoOrder>().eq(OmsTaoOrder::getTid, w.getOrderId()));
|
||||
|
||||
//TODO: 打印成功之后 加入备货清单
|
||||
//TODO: 打印成功之后 加入备货清单 采用kafka推送消息处理
|
||||
|
||||
// 打印完成,通知备货
|
||||
kafkaTemplate.send(MqType.SHIP_STOCK_UP_MQ, JSONObject.toJSONString(MqMessage.build(w.getShopId(), w.getOrderId())));
|
||||
}
|
||||
}
|
||||
}
|
||||
return ResultVo.success();
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public ResultVo<Integer> pushShipSend(Long shopId, String[] orderIds) {
|
||||
List<ErpShipWaybill> erpShipWaybills = mapper.selectList(
|
||||
new LambdaQueryWrapper<ErpShipWaybill>()
|
||||
.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状态
|
||||
OmsTaoOrder orderUpdate = new OmsTaoOrder();
|
||||
orderUpdate.setErpSendStatus(update.getStatus());
|
||||
|
||||
orderMapper.update(orderUpdate, new LambdaQueryWrapper<OmsTaoOrder>().eq(OmsTaoOrder::getTid, 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();
|
||||
|
|
|
|||
|
|
@ -44,3 +44,12 @@ export function pushWaybillPrintSuccess(data) {
|
|||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
export function pushShipSend(data) {
|
||||
return request({
|
||||
url: '/api/tao-api/ewaybill/push_ship_send',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<print-tao></print-tao>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="京东POP" name="printJd" lazy>
|
||||
<el-col style="color:red">京东POP电子面单打印暂不支持</el-col>
|
||||
<print-jd></print-jd>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="拼多多" name="printPdd" lazy>
|
||||
<print-pdd></print-pdd>
|
||||
|
|
@ -27,11 +27,12 @@ import printWei from "@/views/shop/wei/ewaybill/index.vue";
|
|||
import printTao from "@/views/shop/tao/ewaybill/index.vue";
|
||||
import printPdd from "@/views/shop/pdd/ewaybill/index.vue";
|
||||
import printDou from "@/views/shop/dou/ewaybill/index.vue";
|
||||
import PrintJd from "@/views/shop/jd/ewaybill/index.vue";
|
||||
|
||||
|
||||
export default {
|
||||
name: "print",
|
||||
components:{printWei,printTao,printPdd,printDou},
|
||||
components:{PrintJd, printWei,printTao,printPdd,printDou},
|
||||
data() {
|
||||
return {
|
||||
activeName: 'printTao'
|
||||
|
|
|
|||
|
|
@ -2,9 +2,9 @@
|
|||
<div class="app-container">
|
||||
<el-row>
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="订单号" prop="orderId">
|
||||
<el-form-item label="订单号" prop="tid">
|
||||
<el-input
|
||||
v-model="queryParams.orderSn"
|
||||
v-model="queryParams.tid"
|
||||
placeholder="请输入订单号"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
|
|
@ -41,7 +41,6 @@
|
|||
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
|
|
@ -50,7 +49,7 @@
|
|||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleGetEwaybillCode"
|
||||
>取号</el-button>
|
||||
>电子面单取号</el-button>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="1.5">
|
||||
|
|
@ -62,7 +61,7 @@
|
|||
icon="el-icon-printer"
|
||||
size="mini"
|
||||
@click="handlePrintEwaybill"
|
||||
>打印电子面单</el-button>
|
||||
>电子面单打印</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
|
|
@ -72,7 +71,7 @@
|
|||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleShipSend"
|
||||
>发货</el-button>
|
||||
>电子面单发货</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
|
@ -80,20 +79,20 @@
|
|||
<el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<!-- <el-table-column label="ID" align="center" prop="id" />-->
|
||||
<el-table-column label="订单号" align="center" prop="orderId" >
|
||||
<el-table-column label="订单号" align="left" prop="tid" width="180">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.orderSn}}</p>
|
||||
<p>{{scope.row.tid}}</p>
|
||||
<el-tag effect="plain">{{shopList.find(x=>x.id === scope.row.shopId).name}}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="商品" width="450">
|
||||
<el-table-column label="商品" width="550">
|
||||
<template slot-scope="scope">
|
||||
<el-table :data="scope.row.itemList" :show-header="false">
|
||||
<el-table-column label="商品" align="center" prop="outerId" />
|
||||
<el-table-column label="规格" align="center" prop="goodsSpec" />
|
||||
<el-table-column label="数量" align="center" prop="goodsCount" width="60">
|
||||
<el-table :data="scope.row.items" :show-header="false">
|
||||
<el-table-column label="商品" align="center" prop="title" />
|
||||
<el-table-column label="规格" align="center" prop="skuPropertiesName" />
|
||||
<el-table-column label="数量" align="center" prop="num" width="60">
|
||||
<template slot-scope="scope">
|
||||
<el-tag size="small">x {{scope.row.goodsCount}}</el-tag>
|
||||
<el-tag size="small">x {{scope.row.num}}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
|
@ -114,11 +113,17 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="下单时间" align="center" prop="orderCreateTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.createdTime) }}</span>
|
||||
<span>{{ parseTime(scope.row.created) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="买家留言" align="center" prop="buyerMemo" />
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="备注" align="center" prop="buyerMessage" >
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.buyerMessage">买家留言:{{ scope.row.buyerMessage }}</span>
|
||||
<span v-if="scope.row.sellerMemo">卖家备注:{{ scope.row.sellerMemo }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="买家留言" align="center" prop="buyerMessage" />-->
|
||||
<!-- <el-table-column label="卖家备注" align="center" prop="sellerMemo" />-->
|
||||
|
||||
<!-- <el-table-column label="店铺" align="center" prop="categoryId" >-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
|
|
@ -128,18 +133,27 @@
|
|||
|
||||
<el-table-column label="收件信息" align="left" prop="receiverState" >
|
||||
<template slot-scope="scope">
|
||||
<p>
|
||||
{{scope.row.receiverNameMask}} {{scope.row.receiverPhoneMask}}
|
||||
</p>
|
||||
<p>
|
||||
{{scope.row.province}} {{scope.row.city}} {{scope.row.town}}
|
||||
</p>
|
||||
<p>
|
||||
{{scope.row.receiverAddressMask}}
|
||||
</p>
|
||||
<div>
|
||||
{{scope.row.receiverName}} {{scope.row.receiverMobile}}
|
||||
</div>
|
||||
<div>
|
||||
{{scope.row.receiverState}} {{scope.row.receiverCity}} {{scope.row.receiverDistrict}} {{scope.row.receiverTown}}
|
||||
</div>
|
||||
<div>
|
||||
{{scope.row.receiverAddress}}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="面单号" align="center" prop="erpSendCode" />
|
||||
<el-table-column label="状态" align="center" prop="erpSendStatus" >
|
||||
<template slot-scope="scope">
|
||||
<el-tag size="small" v-if="scope.row.erpSendStatus==0">未取号</el-tag>
|
||||
<el-tag size="small" v-if="scope.row.erpSendStatus==1">已取号</el-tag>
|
||||
<el-tag size="small" v-if="scope.row.erpSendStatus==2">已打印</el-tag>
|
||||
<el-tag size="small" v-if="scope.row.erpSendStatus==3">已发货</el-tag>
|
||||
<el-tag size="small" v-if="scope.row.erpSendStatus==10">手动发货</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
|
|
@ -179,17 +193,17 @@
|
|||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||
|
||||
import {listShop} from "@/api/shop/shop";
|
||||
import {listOrder} from "@/api/pdd/order";
|
||||
import {listOrder} from "@/api/tao/order";
|
||||
import {
|
||||
getWaybillAccountList,
|
||||
pullWaybillAccount,
|
||||
getWaybillCode,
|
||||
getWaybillPrintData,
|
||||
pushWaybillPrintSuccess
|
||||
} from "@/api/pdd/ewaybill";
|
||||
pushWaybillPrintSuccess, pushShipSend
|
||||
} from "@/api/tao/ewaybill";
|
||||
|
||||
export default {
|
||||
name: "printDou",
|
||||
name: "printJd",
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
|
|
@ -213,9 +227,8 @@ export default {
|
|||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
orderStatus: 1,
|
||||
refundStatus: 1,
|
||||
erpSendStatus:0,
|
||||
status: 'WAIT_SELLER_SEND_GOODS',
|
||||
erpSendStatus:null,
|
||||
shopId: null
|
||||
},
|
||||
// 打印参数
|
||||
|
|
@ -236,7 +249,7 @@ export default {
|
|||
},
|
||||
created() {
|
||||
this.openWs()
|
||||
listShop({platform: 5}).then(response => {
|
||||
listShop({platform: 4}).then(response => {
|
||||
this.shopList = response.rows;
|
||||
if (this.shopList && this.shopList.length > 0) {
|
||||
this.queryParams.shopId = this.shopList[0].id
|
||||
|
|
@ -279,17 +292,17 @@ export default {
|
|||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.orderSn)
|
||||
this.ids = selection.map(item => item.tid)
|
||||
this.single = selection.length !== 1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
openWs() {
|
||||
const ws = new WebSocket('ws://127.0.0.1:9113');
|
||||
const ws = new WebSocket('ws://127.0.0.1:13528');
|
||||
ws.onopen = () => {
|
||||
console.log('与打印组件建立连接成功: ');
|
||||
// 或打印机
|
||||
ws.send(JSON.stringify({
|
||||
requestID: '1234554',
|
||||
requestID: '12345',
|
||||
cmd: 'getPrinters',
|
||||
"version": "1.0"
|
||||
}))
|
||||
|
|
@ -305,7 +318,7 @@ export default {
|
|||
};
|
||||
// 当发生错误时触发
|
||||
ws.onerror = function (error) {
|
||||
obj.msgError("打印组件连接失败!请安装并启动字节打印组件!");
|
||||
obj.msgError("打印组件连接失败!请安装并启动菜鸟云打印组件!");
|
||||
console.error('WebSocket error:', error);
|
||||
// alert('WebSocket error occurred. Check the console for more details.');
|
||||
};
|
||||
|
|
@ -362,13 +375,14 @@ export default {
|
|||
// }
|
||||
if (!this.printParams.printer) {
|
||||
this.$modal.msgError('请选择打印机!');
|
||||
return pushWaybillPrintSuccess({shopId: this.queryParams.shopId, ids: this.ids})
|
||||
return
|
||||
}
|
||||
const ids = this.ids;
|
||||
getWaybillPrintData({shopId: this.queryParams.shopId, ids: ids}).then(response => {
|
||||
console.log("======打印======", response.data)
|
||||
if (response.data) {
|
||||
const ws = new WebSocket('ws://127.0.0.1:9113');
|
||||
const ws = new WebSocket('ws://127.0.0.1:13528');
|
||||
ws.onopen = () => {
|
||||
let printData = []
|
||||
response.data.forEach(x => printData.push(JSON.parse(x.printData)))
|
||||
|
|
@ -416,7 +430,11 @@ export default {
|
|||
|
||||
},
|
||||
handleShipSend(){
|
||||
this.$modal.msgError("开源版本未实现平台发货!请自行对接发货");
|
||||
// this.$modal.msgError("开源版本未实现平台发货!请自行对接发货");
|
||||
pushShipSend({shopId: this.queryParams.shopId, ids: ids}).then(response => {
|
||||
this.$modal.msgSuccess("发货成功!");
|
||||
this.getList()
|
||||
})
|
||||
},
|
||||
getUUID(len, radix) {
|
||||
var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleGetEwaybillCode"
|
||||
>取号</el-button>
|
||||
>电子面单取号</el-button>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="1.5">
|
||||
|
|
@ -61,7 +61,7 @@
|
|||
icon="el-icon-printer"
|
||||
size="mini"
|
||||
@click="handlePrintEwaybill"
|
||||
>打印电子面单</el-button>
|
||||
>电子面单打印</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
|
|
@ -71,7 +71,7 @@
|
|||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleShipSend"
|
||||
>发货</el-button>
|
||||
>电子面单发货</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
|
@ -79,7 +79,7 @@
|
|||
<el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<!-- <el-table-column label="ID" align="center" prop="id" />-->
|
||||
<el-table-column label="订单号" align="center" prop="tid" >
|
||||
<el-table-column label="订单号" align="left" prop="tid" width="180">
|
||||
<template slot-scope="scope">
|
||||
<p>{{scope.row.tid}}</p>
|
||||
<el-tag effect="plain">{{shopList.find(x=>x.id === scope.row.shopId).name}}</el-tag>
|
||||
|
|
@ -116,8 +116,14 @@
|
|||
<span>{{ parseTime(scope.row.created) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="买家留言" align="center" prop="buyerMessage" />
|
||||
<el-table-column label="卖家备注" align="center" prop="sellerMemo" />
|
||||
<el-table-column label="备注" align="center" prop="buyerMessage" >
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.buyerMessage">买家留言:{{ scope.row.buyerMessage }}</span>
|
||||
<span v-if="scope.row.sellerMemo">卖家备注:{{ scope.row.sellerMemo }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="买家留言" align="center" prop="buyerMessage" />-->
|
||||
<!-- <el-table-column label="卖家备注" align="center" prop="sellerMemo" />-->
|
||||
|
||||
<!-- <el-table-column label="店铺" align="center" prop="categoryId" >-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
|
|
@ -127,18 +133,27 @@
|
|||
|
||||
<el-table-column label="收件信息" align="left" prop="receiverState" >
|
||||
<template slot-scope="scope">
|
||||
<p>
|
||||
<div>
|
||||
{{scope.row.receiverName}} {{scope.row.receiverMobile}}
|
||||
</p>
|
||||
<p>
|
||||
</div>
|
||||
<div>
|
||||
{{scope.row.receiverState}} {{scope.row.receiverCity}} {{scope.row.receiverDistrict}} {{scope.row.receiverTown}}
|
||||
</p>
|
||||
<p>
|
||||
</div>
|
||||
<div>
|
||||
{{scope.row.receiverAddress}}
|
||||
</p>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="面单号" align="center" prop="erpSendCode" />
|
||||
<el-table-column label="状态" align="center" prop="erpSendStatus" >
|
||||
<template slot-scope="scope">
|
||||
<el-tag size="small" v-if="scope.row.erpSendStatus==0">未取号</el-tag>
|
||||
<el-tag size="small" v-if="scope.row.erpSendStatus==1">已取号</el-tag>
|
||||
<el-tag size="small" v-if="scope.row.erpSendStatus==2">已打印</el-tag>
|
||||
<el-tag size="small" v-if="scope.row.erpSendStatus==3">已发货</el-tag>
|
||||
<el-tag size="small" v-if="scope.row.erpSendStatus==10">手动发货</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
|
|
@ -184,7 +199,7 @@ import {
|
|||
pullWaybillAccount,
|
||||
getWaybillCode,
|
||||
getWaybillPrintData,
|
||||
pushWaybillPrintSuccess
|
||||
pushWaybillPrintSuccess, pushShipSend
|
||||
} from "@/api/tao/ewaybill";
|
||||
|
||||
export default {
|
||||
|
|
@ -213,7 +228,7 @@ export default {
|
|||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
status: 'WAIT_SELLER_SEND_GOODS',
|
||||
erpSendStatus:0,
|
||||
erpSendStatus:null,
|
||||
shopId: null
|
||||
},
|
||||
// 打印参数
|
||||
|
|
@ -360,6 +375,7 @@ export default {
|
|||
// }
|
||||
if (!this.printParams.printer) {
|
||||
this.$modal.msgError('请选择打印机!');
|
||||
return pushWaybillPrintSuccess({shopId: this.queryParams.shopId, ids: this.ids})
|
||||
return
|
||||
}
|
||||
const ids = this.ids;
|
||||
|
|
@ -414,7 +430,11 @@ export default {
|
|||
|
||||
},
|
||||
handleShipSend(){
|
||||
this.$modal.msgError("开源版本未实现平台发货!请自行对接发货");
|
||||
// this.$modal.msgError("开源版本未实现平台发货!请自行对接发货");
|
||||
pushShipSend({shopId: this.queryParams.shopId, ids: ids}).then(response => {
|
||||
this.$modal.msgSuccess("发货成功!");
|
||||
this.getList()
|
||||
})
|
||||
},
|
||||
getUUID(len, radix) {
|
||||
var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
|
||||
|
|
|
|||
Loading…
Reference in New Issue