diff --git a/open-api/wei-api/libs/wei-api-1.6.3.jar b/open-api/wei-api/libs/wei-api-1.6.20.jar similarity index 75% rename from open-api/wei-api/libs/wei-api-1.6.3.jar rename to open-api/wei-api/libs/wei-api-1.6.20.jar index 315fd0f0..6d35f85e 100644 Binary files a/open-api/wei-api/libs/wei-api-1.6.3.jar and b/open-api/wei-api/libs/wei-api-1.6.20.jar differ diff --git a/open-api/wei-api/pom.xml b/open-api/wei-api/pom.xml index 291ec4d1..b66c2032 100644 --- a/open-api/wei-api/pom.xml +++ b/open-api/wei-api/pom.xml @@ -32,9 +32,9 @@ wei-api wei-api - 1.6.3 + 1.6.20 system - ${project.basedir}/libs/wei-api-1.6.3.jar + ${project.basedir}/libs/wei-api-1.6.20.jar diff --git a/open-api/wei-api/src/main/java/com/qihang/wei/controller/WayBillController.java b/open-api/wei-api/src/main/java/com/qihang/wei/controller/WayBillController.java index e43a4623..55f1a038 100644 --- a/open-api/wei-api/src/main/java/com/qihang/wei/controller/WayBillController.java +++ b/open-api/wei-api/src/main/java/com/qihang/wei/controller/WayBillController.java @@ -1,9 +1,15 @@ package com.qihang.wei.controller; +import cn.qihangerp.open.wei.EwaybillAccountApiHelper; import cn.qihangerp.open.wei.EwaybillApiHelper; +import cn.qihangerp.open.wei.bo.ewaybill.EcOrderInfo; +import cn.qihangerp.open.wei.bo.ewaybill.GoodsInfo; +import cn.qihangerp.open.wei.bo.ewaybill.SenderAddressBo; +import cn.qihangerp.open.wei.bo.ewaybill.WaybillRequest; import cn.qihangerp.open.wei.common.ApiResultVo; import cn.qihangerp.open.wei.vo.ewaybill.AccountVo; import cn.qihangerp.open.wei.vo.ewaybill.DeliveryVo; +import cn.qihangerp.open.wei.vo.ewaybill.EwaybillOrderCreateVo; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.qihang.common.common.AjaxResult; @@ -12,7 +18,11 @@ import com.qihang.common.enums.HttpStatus; import com.qihang.wei.bo.PullRequest; import com.qihang.wei.bo.WeiWaybillGetBo; +import com.qihang.wei.domain.ErpShipWaybill; +import com.qihang.wei.domain.OmsWeiOrder; import com.qihang.wei.domain.OmsWeiWaybillAccount; +import com.qihang.wei.service.ErpShipWaybillService; +import com.qihang.wei.service.OmsWeiOrderService; import com.qihang.wei.service.OmsWeiWaybillAccountService; import lombok.AllArgsConstructor; import lombok.extern.java.Log; @@ -30,6 +40,8 @@ import java.util.List; public class WayBillController { private final WeiApiCommon apiCommon; private final OmsWeiWaybillAccountService waybillAccountService; + private final OmsWeiOrderService orderService; + private final ErpShipWaybillService erpShipWaybillService; @RequestMapping(value = "/get_waybill_account_list", method = RequestMethod.POST) public AjaxResult getWaybillAccountList(@RequestBody PullRequest params) throws Exception { if (params.getShopId() == null || params.getShopId() <= 0) { @@ -57,7 +69,7 @@ public class WayBillController { String appSecret = checkResult.getData().getAppSecret(); // ApiResultVo apiResultVo = EwaybillApiHelper.getDeliveryList(appKey, appSecret, accessToken); - ApiResultVo apiResultVo = EwaybillApiHelper.getAccountList(appKey, appSecret, accessToken); + ApiResultVo apiResultVo = EwaybillAccountApiHelper.getAccountList(appKey, appSecret, accessToken); List list = new ArrayList<>(); if(apiResultVo.getCode()==0){ @@ -85,6 +97,11 @@ public class WayBillController { vo.setSenderCity(item.getSenderAddress().getCity()); vo.setSenderCounty(item.getSenderAddress().getCounty()); } + if(item.getSiteInfo()!=null){ + vo.setSiteCode(item.getSiteInfo().getSiteCode()); + vo.setSiteName(item.getSiteInfo().getSiteName()); + vo.setSenderStreet(item.getSiteInfo().getAddress().getStreetName()); + } list.add(vo); waybillAccountService.save(vo); log.info("========添加wei电子面单账户信息=========="); @@ -106,11 +123,11 @@ public class WayBillController { if (req.getShopId() == null || req.getShopId() <= 0) { return AjaxResult.error(HttpStatus.PARAMS_ERROR, "参数错误,没有店铺Id"); } - if(req.getIds()==null || req.getIds().length<=0) { + if (req.getIds() == null || req.getIds().length <= 0) { return AjaxResult.error(HttpStatus.PARAMS_ERROR, "参数错误,没有选择订单"); } var checkResult = apiCommon.checkBefore(req.getShopId()); - if (checkResult.getCode() != HttpStatus.SUCCESS) { + if (checkResult.getCode() != 0) { return AjaxResult.error(checkResult.getCode(), checkResult.getMsg(), checkResult.getData()); } String accessToken = checkResult.getData().getAccessToken(); @@ -121,85 +138,126 @@ public class WayBillController { // 获取电子面单账户信息(包含了发货地址信息) OmsWeiWaybillAccount account = waybillAccountService.getById(req.getAccountId()); -// WaybillCloudPrintApplyNewRequest request = new WaybillCloudPrintApplyNewRequest(); -// request.setCp_code(account.getCpCode()); -// -// WaybillCloudPrintApplyNewRequestSender sender = new WaybillCloudPrintApplyNewRequestSender(); -// sender.setName(account.getName()); -// sender.setMobile(account.getMobile()); -// WaybillCloudPrintApplyNewRequestSender.AddressDTO addressDTO = new WaybillCloudPrintApplyNewRequestSender.AddressDTO(); -// addressDTO.setCity(account.getCity()); -// addressDTO.setProvince(account.getProvince()); -// addressDTO.setDistrict(account.getArea()); -// addressDTO.setTown(""); -// addressDTO.setDetail(account.getAddressDetail()); -// sender.setAddress(addressDTO); -// request.setSender(sender); -// -// // 组合取号的订单信息trade_order_info_dtos -// List orderList = new ArrayList<>(); -// -// for(String orderId:req.getIds()){ -// if(StringUtils.hasText(orderId)){ -// OmsTaoOrder omsTaoOrder = orderService.queryDetailByTid(orderId); -// if(omsTaoOrder!=null) { -// WaybillCloudPrintApplyNewRequestTradeOrderInfoDto dto = new WaybillCloudPrintApplyNewRequestTradeOrderInfoDto(); -// dto.setObjectId(omsTaoOrder.getTid()); -// dto.setTemplateUrl("http://cloudprint.cainiao.com/template/standard/101"); -// dto.setUserId(sellerShopId.intValue()); -// -// WaybillCloudPrintApplyNewRequestTradeOrderInfoDto.OrderInfoDTO orderInfoDTO = new WaybillCloudPrintApplyNewRequestTradeOrderInfoDto.OrderInfoDTO(); -// orderInfoDTO.setOrderChannelsType("TB"); -// orderInfoDTO.setTradeOrderList(omsTaoOrder.getTid()); -// dto.setOrderInfo(orderInfoDTO); -// -// WaybillCloudPrintApplyNewRequestTradeOrderInfoDto.PackageInfoDTO packageInfoDTO = new WaybillCloudPrintApplyNewRequestTradeOrderInfoDto.PackageInfoDTO(); -// List items = new ArrayList<>(); -// for (var orderItem : omsTaoOrder.getItems()) { -// WaybillCloudPrintApplyNewRequestTradeOrderInfoDto.PackageInfoDTO.ItemsDTO itemsDTO = new WaybillCloudPrintApplyNewRequestTradeOrderInfoDto.PackageInfoDTO.ItemsDTO(); -// itemsDTO.setCount(orderItem.getNum()); -// itemsDTO.setName(orderItem.getTitle()); -// items.add(itemsDTO); -// } -// packageInfoDTO.setItems(items); -// dto.setPackageInfo(packageInfoDTO); -// -// WaybillCloudPrintApplyNewRequestTradeOrderInfoDto.RecipientDTO recipientDTO = new WaybillCloudPrintApplyNewRequestTradeOrderInfoDto.RecipientDTO(); -// WaybillCloudPrintApplyNewRequestTradeOrderInfoDto.RecipientDTO.AddressDTO addressDTO1 = new WaybillCloudPrintApplyNewRequestTradeOrderInfoDto.RecipientDTO.AddressDTO(); -// addressDTO1.setCity(omsTaoOrder.getReceiverCity()); -// addressDTO1.setTown(omsTaoOrder.getReceiverTown()); -// addressDTO1.setProvince(omsTaoOrder.getReceiverState()); -// addressDTO1.setDistrict(omsTaoOrder.getReceiverDistrict()); -// addressDTO1.setDetail(omsTaoOrder.getReceiverAddress()); -// recipientDTO.setAddress(addressDTO1); -// recipientDTO.setName(omsTaoOrder.getReceiverName()); -// recipientDTO.setOaid(omsTaoOrder.getOaid()); -// recipientDTO.setTid(omsTaoOrder.getTid()); -// dto.setRecipient(recipientDTO); -// orderList.add(dto); -// } -// } -// } -// -// request.setTrade_order_info_dtos(orderList); -// -// ApiResultVo apiResultVo = WaybillApiHelper.waybillCloudPrintApplyNew(appKey, appSecret, accessToken, request); -// if(apiResultVo.getCode()==0){ -// // 保持数据 -// for(var result: apiResultVo.getList()){ -// ErpShipWaybill waybill = new ErpShipWaybill(); -// waybill.setShopId(req.getShopId()); -// waybill.setOrderId(result.getObjectId()); -// waybill.setWaybillCode(result.getWaybillCode()); -// waybill.setLogisticsCode(result.getCpCode()); -// waybill.setPrintData(result.getPrintData()); -// waybill.setStatus(1);//1已取号 -// erpShipWaybillService.waybillUpdate(waybill); -// log.info("====保存電子面單信息========"+result.getObjectId()); -// } -// }else{ -// return AjaxResult.error(apiResultVo.getMsg()); -// } + WaybillRequest apiBo = new WaybillRequest(); + + apiBo.setDelivery_id(account.getDeliveryId()); + apiBo.setEwaybill_acct_id(account.getAcctId()); + + SenderAddressBo sender = new SenderAddressBo(); + sender.setName(account.getName()); + sender.setMobile(account.getMobile()); + sender.setProvince(account.getSenderProvince()); + sender.setCity(account.getSenderCity()); + sender.setCounty(account.getSenderCounty()); + sender.setStreet(account.getSenderStreet()); + sender.setAddress(account.getSenderAddress()); + apiBo.setSender(sender); + + for (String orderId : req.getIds()) { + if (StringUtils.hasText(orderId)) { + OmsWeiOrder order = orderService.queryDetailByOrderId(orderId); + if (order != null) { + + SenderAddressBo receiver = new SenderAddressBo(); + receiver.setName(order.getUserName()); + receiver.setMobile(order.getTelNumber()); + receiver.setProvince(order.getProvinceName()); + receiver.setCity(order.getCityName()); + receiver.setCounty(order.getCountyName()); + receiver.setStreet(""); + receiver.setAddress("****"); + apiBo.setReceiver(receiver); + + List orderInfos = new ArrayList<>(); + // 订单信息 + EcOrderInfo orderInfo = new EcOrderInfo(); + orderInfo.setEc_order_id(Long.parseLong(order.getOrderId())); + + List goodsInfos = new ArrayList<>(); + if(order.getItems()!=null&&order.getItems().size()>0) { + for (var item:order.getItems()) { + GoodsInfo gi = new GoodsInfo(); + gi.setProduct_id(Long.parseLong(item.getProductId())); + gi.setSku_id(Long.parseLong(item.getSkuId())); + gi.setGood_name(item.getTitle()); + gi.setGood_count(item.getSkuCnt()); + goodsInfos.add(gi); + } + + } + + orderInfo.setGoods_list(goodsInfos); + orderInfos.add(orderInfo); + + apiBo.setEc_order_list(orderInfos); + + apiBo.setShop_id(account.getSellerShopId()); + + ApiResultVo apiResultVo = EwaybillApiHelper.getWaybillCode(appKey, appSecret, accessToken, apiBo); + if (apiResultVo.getCode() == 0) { + // 保持数据 + ErpShipWaybill waybill = new ErpShipWaybill(); + waybill.setShopId(req.getShopId()); + waybill.setOrderId(order.getOrderId()); + waybill.setWaybillOrderId(apiResultVo.getData().getEwaybill_order_id()); + waybill.setWaybillCode(apiResultVo.getData().getWaybill_id()); + waybill.setLogisticsCode(account.getDeliveryId()); + waybill.setPrintData(apiResultVo.getData().getPrint_info()); + waybill.setStatus(1);//1已取号 + erpShipWaybillService.waybillUpdate(waybill); + log.info("====保存wei電子面單信息========" + order.getOrderId()); + + } else { + return AjaxResult.error(apiResultVo.getMsg()); + } + } + } + } + return AjaxResult.success(); + } + + @PostMapping("/get_print_data") + @ResponseBody + public AjaxResult getPrintData(@RequestBody WeiWaybillGetBo 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, "参数错误,没有选择订单"); + } + List listByOrderIds = erpShipWaybillService.getListByOrderIds(req.getShopId(), req.getIds()); + return AjaxResult.success(listByOrderIds); + } + + @PostMapping("/push_print_success") + @ResponseBody + public AjaxResult pushPrintSuccess(@RequestBody WeiWaybillGetBo 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.printSuccess(req.getShopId(), req.getIds()); + + return AjaxResult.success(); + } + + /** + * 发货 + * @param req + * @return + */ + @PostMapping("/push_ship_send") + @ResponseBody + public AjaxResult pushShipSend(@RequestBody WeiWaybillGetBo 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/wei-api/src/main/java/com/qihang/wei/domain/ErpShipWaybill.java b/open-api/wei-api/src/main/java/com/qihang/wei/domain/ErpShipWaybill.java new file mode 100644 index 00000000..8f2beca8 --- /dev/null +++ b/open-api/wei-api/src/main/java/com/qihang/wei/domain/ErpShipWaybill.java @@ -0,0 +1,79 @@ +package com.qihang.wei.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_waybill + */ +@Data +public class ErpShipWaybill implements Serializable { + /** + * + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 订单号 + */ + private String orderId; + + /** + * 店铺id + */ + private Long shopId; + + /** + * 店铺类型 + */ + private Integer shopType; + + /** + * 快递单号 + */ + private String waybillCode; + private String waybillOrderId; + + /** + * 快递公司编码 + */ + private String logisticsCode; + + /** + * 打印数据 + */ + private String printData; + + /** + * 状态(1已取号2已打印3已发货) + */ + private Integer status; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 创建人 + */ + private String createBy; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 更新人 + */ + private String updateBy; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/open-api/wei-api/src/main/java/com/qihang/wei/domain/OmsWeiWaybillAccount.java b/open-api/wei-api/src/main/java/com/qihang/wei/domain/OmsWeiWaybillAccount.java index 0d8e752e..3d03052d 100644 --- a/open-api/wei-api/src/main/java/com/qihang/wei/domain/OmsWeiWaybillAccount.java +++ b/open-api/wei-api/src/main/java/com/qihang/wei/domain/OmsWeiWaybillAccount.java @@ -38,6 +38,16 @@ public class OmsWeiWaybillAccount implements Serializable { */ private Integer companyType; + /** + * 网点编码 + */ + private String siteCode; + + /** + * 网点名称 + */ + private String siteName; + /** * 电子面单账号id,每绑定一个网点分配一个acct_id */ @@ -98,6 +108,11 @@ public class OmsWeiWaybillAccount implements Serializable { */ private String senderCounty; + /** + * + */ + private String senderStreet; + /** * 详细地址 */ diff --git a/open-api/wei-api/src/main/java/com/qihang/wei/mapper/ErpShipWaybillMapper.java b/open-api/wei-api/src/main/java/com/qihang/wei/mapper/ErpShipWaybillMapper.java new file mode 100644 index 00000000..3fd5f2b9 --- /dev/null +++ b/open-api/wei-api/src/main/java/com/qihang/wei/mapper/ErpShipWaybillMapper.java @@ -0,0 +1,18 @@ +package com.qihang.wei.mapper; + +import com.qihang.wei.domain.ErpShipWaybill; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author TW +* @description 针对表【erp_ship_waybill(发货电子面单记录表)】的数据库操作Mapper +* @createDate 2024-06-20 10:05:35 +* @Entity com.qihang.wei.domain.ErpShipWaybill +*/ +public interface ErpShipWaybillMapper extends BaseMapper { + +} + + + + diff --git a/open-api/wei-api/src/main/java/com/qihang/wei/mapper/OmsWeiWaybillAccountMapper.java b/open-api/wei-api/src/main/java/com/qihang/wei/mapper/OmsWeiWaybillAccountMapper.java index 93de0b5b..c83da48e 100644 --- a/open-api/wei-api/src/main/java/com/qihang/wei/mapper/OmsWeiWaybillAccountMapper.java +++ b/open-api/wei-api/src/main/java/com/qihang/wei/mapper/OmsWeiWaybillAccountMapper.java @@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @author TW * @description 针对表【oms_wei_waybill_account(视频号小店电子面单账户信息表)】的数据库操作Mapper -* @createDate 2024-06-19 17:08:54 +* @createDate 2024-06-20 09:18:48 * @Entity com.qihang.wei.domain.OmsWeiWaybillAccount */ public interface OmsWeiWaybillAccountMapper extends BaseMapper { diff --git a/open-api/wei-api/src/main/java/com/qihang/wei/service/ErpShipWaybillService.java b/open-api/wei-api/src/main/java/com/qihang/wei/service/ErpShipWaybillService.java new file mode 100644 index 00000000..cc5b8ead --- /dev/null +++ b/open-api/wei-api/src/main/java/com/qihang/wei/service/ErpShipWaybillService.java @@ -0,0 +1,20 @@ +package com.qihang.wei.service; + +import com.qihang.common.common.ResultVo; +import com.qihang.wei.domain.ErpShipWaybill; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** +* @author TW +* @description 针对表【erp_ship_waybill(发货电子面单记录表)】的数据库操作Service +* @createDate 2024-06-20 10:05:35 +*/ +public interface ErpShipWaybillService extends IService { + ResultVo waybillUpdate(ErpShipWaybill shipWaybill); + List getListByOrderIds(Long shopId, String[] orderIds); + + ResultVo printSuccess(Long shopId,String[] orderIds); + ResultVo pushShipSend(Long shopId,String[] orderIds); +} diff --git a/open-api/wei-api/src/main/java/com/qihang/wei/service/OmsWeiOrderService.java b/open-api/wei-api/src/main/java/com/qihang/wei/service/OmsWeiOrderService.java index 29b6d631..51cbc82d 100644 --- a/open-api/wei-api/src/main/java/com/qihang/wei/service/OmsWeiOrderService.java +++ b/open-api/wei-api/src/main/java/com/qihang/wei/service/OmsWeiOrderService.java @@ -16,5 +16,5 @@ public interface OmsWeiOrderService extends IService { PageResult queryPageList(OmsWeiOrder bo, PageQuery pageQuery); ResultVo saveOrder(Long shopId, OmsWeiOrder order); OmsWeiOrder queryDetailById(Long id); - + OmsWeiOrder queryDetailByOrderId(String orderId); } diff --git a/open-api/wei-api/src/main/java/com/qihang/wei/service/OmsWeiWaybillAccountService.java b/open-api/wei-api/src/main/java/com/qihang/wei/service/OmsWeiWaybillAccountService.java index bdb9e45c..9b528c3f 100644 --- a/open-api/wei-api/src/main/java/com/qihang/wei/service/OmsWeiWaybillAccountService.java +++ b/open-api/wei-api/src/main/java/com/qihang/wei/service/OmsWeiWaybillAccountService.java @@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService; /** * @author TW * @description 针对表【oms_wei_waybill_account(视频号小店电子面单账户信息表)】的数据库操作Service -* @createDate 2024-06-19 17:08:54 +* @createDate 2024-06-20 09:18:48 */ public interface OmsWeiWaybillAccountService extends IService { diff --git a/open-api/wei-api/src/main/java/com/qihang/wei/service/impl/ErpShipWaybillServiceImpl.java b/open-api/wei-api/src/main/java/com/qihang/wei/service/impl/ErpShipWaybillServiceImpl.java new file mode 100644 index 00000000..d803831f --- /dev/null +++ b/open-api/wei-api/src/main/java/com/qihang/wei/service/impl/ErpShipWaybillServiceImpl.java @@ -0,0 +1,161 @@ +package com.qihang.wei.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.wei.domain.ErpShipWaybill; +import com.qihang.wei.domain.OmsWeiOrder; +import com.qihang.wei.mapper.OmsWeiOrderMapper; +import com.qihang.wei.service.ErpShipWaybillService; +import com.qihang.wei.mapper.ErpShipWaybillMapper; +import lombok.AllArgsConstructor; +import org.springframework.kafka.core.KafkaTemplate; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +/** +* @author TW +* @description 针对表【erp_ship_waybill(发货电子面单记录表)】的数据库操作Service实现 +* @createDate 2024-06-20 10:05:35 +*/ +@AllArgsConstructor +@Service +public class ErpShipWaybillServiceImpl extends ServiceImpl + implements ErpShipWaybillService{ + private final ErpShipWaybillMapper mapper; + private final OmsWeiOrderMapper orderMapper; + private final KafkaTemplate kafkaTemplate; + + /** + * 更新电子面单信息 + * @param shipWaybill + * @return + */ + @Transactional + @Override + public ResultVo waybillUpdate(ErpShipWaybill shipWaybill) { + String orderId= shipWaybill.getOrderId(); + if(shipWaybill.getId()!=null&&shipWaybill.getId()>0){ + // 存在,修改 + shipWaybill.setCreateBy(null); + shipWaybill.setCreateTime(null); + shipWaybill.setOrderId(null); + shipWaybill.setShopId(null); + shipWaybill.setShopType(null); + mapper.updateById(shipWaybill); + }else{ + // 新增 + List erpShipWaybills = mapper.selectList(new LambdaQueryWrapper().eq(ErpShipWaybill::getOrderId, orderId)); + if(erpShipWaybills==null|| erpShipWaybills.size()==0) { + shipWaybill.setStatus(1);//已取号 + shipWaybill.setShopType(EnumShopType.TAO.getIndex()); + shipWaybill.setCreateTime(new Date()); + mapper.insert(shipWaybill); + }else{ + ErpShipWaybill update = new ErpShipWaybill(); + update.setId(erpShipWaybills.get(0).getId()); + update.setWaybillCode(shipWaybill.getWaybillCode()); + update.setLogisticsCode(shipWaybill.getLogisticsCode()); + update.setPrintData(shipWaybill.getPrintData()); + update.setStatus(1); + update.setUpdateTime(new Date()); + update.setUpdateBy("重新取号"); + mapper.updateById(update); + } + } + // 更新关联订单erp_send_status状态 + OmsWeiOrder orderUpdate = new OmsWeiOrder(); + orderUpdate.setErpSendStatus(shipWaybill.getStatus()); + orderUpdate.setErpSendCode(shipWaybill.getWaybillCode()); + orderUpdate.setErpSendCompany(shipWaybill.getLogisticsCode()); + orderMapper.update(orderUpdate,new LambdaQueryWrapper().eq(OmsWeiOrder::getOrderId,orderId)); + + return ResultVo.success(); + } + + @Override + public List getListByOrderIds(Long shopId, String[] orderIds) { + List erpShipWaybills = mapper.selectList( + new LambdaQueryWrapper() + .eq(ErpShipWaybill::getShopId,shopId) + .in(ErpShipWaybill::getOrderId, Arrays.stream(orderIds).toList())); + return erpShipWaybills; + } + + @Transactional + @Override + public ResultVo printSuccess(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()==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状态 + OmsWeiOrder orderUpdate = new OmsWeiOrder(); + orderUpdate.setErpSendStatus(update.getStatus()); + + orderMapper.update(orderUpdate, new LambdaQueryWrapper().eq(OmsWeiOrder::getOrderId, w.getOrderId())); + + //TODO: 打印成功之后 加入备货清单 采用kafka推送消息处理 + + // 打印完成,通知备货 + kafkaTemplate.send(MqType.SHIP_STOCK_UP_MQ, JSONObject.toJSONString(MqMessage.build(w.getShopId(), w.getOrderId()))); + } + } + } + return ResultVo.success(); + } + + @Transactional + @Override + public ResultVo 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状态 + OmsWeiOrder orderUpdate = new OmsWeiOrder(); + orderUpdate.setErpSendStatus(update.getStatus()); + + orderMapper.update(orderUpdate, new LambdaQueryWrapper().eq(OmsWeiOrder::getOrderId, 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/open-api/wei-api/src/main/java/com/qihang/wei/service/impl/OmsWeiOrderServiceImpl.java b/open-api/wei-api/src/main/java/com/qihang/wei/service/impl/OmsWeiOrderServiceImpl.java index b90981fd..90bbc58a 100644 --- a/open-api/wei-api/src/main/java/com/qihang/wei/service/impl/OmsWeiOrderServiceImpl.java +++ b/open-api/wei-api/src/main/java/com/qihang/wei/service/impl/OmsWeiOrderServiceImpl.java @@ -123,7 +123,14 @@ public class OmsWeiOrderServiceImpl extends ServiceImpl weiOrders = mapper.selectList(new LambdaQueryWrapper().eq(OmsWeiOrder::getOrderId,orderId)); + if(weiOrders!=null&&weiOrders.size()>0){ + weiOrders.get(0).setItems(itemMapper.selectList(new LambdaQueryWrapper().eq(OmsWeiOrderItem::getOrderId,orderId))); + return weiOrders.get(0); + }else return null; + } } diff --git a/open-api/wei-api/src/main/java/com/qihang/wei/service/impl/OmsWeiWaybillAccountServiceImpl.java b/open-api/wei-api/src/main/java/com/qihang/wei/service/impl/OmsWeiWaybillAccountServiceImpl.java index c088e55c..5031cc87 100644 --- a/open-api/wei-api/src/main/java/com/qihang/wei/service/impl/OmsWeiWaybillAccountServiceImpl.java +++ b/open-api/wei-api/src/main/java/com/qihang/wei/service/impl/OmsWeiWaybillAccountServiceImpl.java @@ -9,7 +9,7 @@ import org.springframework.stereotype.Service; /** * @author TW * @description 针对表【oms_wei_waybill_account(视频号小店电子面单账户信息表)】的数据库操作Service实现 -* @createDate 2024-06-19 17:08:54 +* @createDate 2024-06-20 09:18:48 */ @Service public class OmsWeiWaybillAccountServiceImpl extends ServiceImpl diff --git a/open-api/wei-api/src/main/resources/mapper/ErpShipWaybillMapper.xml b/open-api/wei-api/src/main/resources/mapper/ErpShipWaybillMapper.xml new file mode 100644 index 00000000..e7d63f90 --- /dev/null +++ b/open-api/wei-api/src/main/resources/mapper/ErpShipWaybillMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + id,order_id,shop_id, + shop_type,waybill_code,waybill_order_id,logistics_code, + print_data,status,create_time, + create_by,update_time,update_by + + diff --git a/open-api/wei-api/src/main/resources/mapper/OmsWeiWaybillAccountMapper.xml b/open-api/wei-api/src/main/resources/mapper/OmsWeiWaybillAccountMapper.xml index e8f00bdd..fe04c856 100644 --- a/open-api/wei-api/src/main/resources/mapper/OmsWeiWaybillAccountMapper.xml +++ b/open-api/wei-api/src/main/resources/mapper/OmsWeiWaybillAccountMapper.xml @@ -10,6 +10,8 @@ + + @@ -22,6 +24,7 @@ + @@ -31,11 +34,12 @@ id,shop_id,seller_shop_id, - delivery_id,company_type,acct_id, - acct_type,status,available, - allocated,cancel,recycled, - monthly_card,site_info,sender_province, - sender_city,sender_county,sender_address, + delivery_id,company_type,site_code, + site_name,acct_id,acct_type, + status,available,allocated, + cancel,recycled,monthly_card, + site_info,sender_province,sender_city, + sender_county,sender_street,sender_address, name,mobile,phone, is_show diff --git a/vue/src/api/wei/ewaybill.js b/vue/src/api/wei/ewaybill.js index 02b3d073..d3745410 100644 --- a/vue/src/api/wei/ewaybill.js +++ b/vue/src/api/wei/ewaybill.js @@ -39,7 +39,7 @@ export function getWaybillPrintData(data) { // 打印成功 export function pushWaybillPrintSuccess(data) { return request({ - url: '/api/tao-api/ewaybill/push_print_success', + url: '/api/wei-api/ewaybill/push_print_success', method: 'post', data: data }) @@ -48,7 +48,7 @@ export function pushWaybillPrintSuccess(data) { export function pushShipSend(data) { return request({ - url: '/api/tao-api/ewaybill/push_ship_send', + url: '/api/wei-api/ewaybill/push_ship_send', method: 'post', data: data }) diff --git a/vue/src/views/shop/wei/ewaybill/index.vue b/vue/src/views/shop/wei/ewaybill/index.vue index 3d7699e5..6d958f3e 100644 --- a/vue/src/views/shop/wei/ewaybill/index.vue +++ b/vue/src/views/shop/wei/ewaybill/index.vue @@ -151,7 +151,7 @@ :label="item.deliveryId" :value="item.id"> {{ item.deliveryId }} - {{item.senderProvince}}{{item.senderCity}}{{item.senderCounty}}{{item.senderAddress}}:{{item.available}} + {{item.siteName}}:{{item.available}} 更新电子面单账户信息 @@ -171,8 +171,10 @@ import '@riophae/vue-treeselect/dist/vue-treeselect.css' import {listShop} from "@/api/shop/shop"; -import {getWaybillAccountList,pullWaybillAccount,getWaybillCode} from "@/api/wei/ewaybill"; +import {getWaybillAccountList, pullWaybillAccount, getWaybillCode, pushWaybillPrintSuccess,pushShipSend} from "@/api/wei/ewaybill"; import {listOrder} from "@/api/wei/order"; +import {getWaybillPrintData} from "@/api/tao/ewaybill"; + export default { name: "printWei", @@ -218,7 +220,6 @@ export default { }; }, created() { - this.openWs() this.openWs() listShop({platform: 2}).then(response => { this.shopList = response.rows; @@ -357,66 +358,74 @@ export default { }; }, handlePrintEwaybill() { - // if (!this.ws) { - // this.$modal.msgError('打印组件连接失败!请安装并启动微信视频号小单打印组件!'); - // this.openWs() - // } - // if(!this.printParams.deliver){ - // this.$modal.msgError('请选择快递公司!'); - // return - // } - if(!this.printParams.printer){ + if (!this.printParams.printer) { this.$modal.msgError('请选择打印机!'); return } - const ws = new WebSocket('ws://127.0.0.1:12705'); - ws.onopen = () => { - console.log('开始打印: '); - // 打印 - this.ws.send(JSON.stringify({ - command: 'print', - version: '2.0', // 必传 - requestID: '1234', // String, 调用方保证唯一 - taskList: [{ - taskID: '1234', // String, 调用方保证唯一 - printInfo: 'JTdCJTIycHJpbnREYXRhJTIyJTNBJTdCJTIyd2F5YmlsbElkJTIyJTNBJTIyNzM2MTE0NjI1MzgzODUlMjIlMkMlMjJwcmludFRpbWUlMjIlM0ElMjIyMDI0JTJGMDYlMkYwMyUyMDE4JTNBNDUlMjIlMkMlMjJzZXJ2aWNlcyUyMiUzQSU1QiU1RCUyQyUyMnJlY2VpdmVyTmFtZSUyMiUzQSUyMiVFNSVBRSVBMyoqJTIyJTJDJTIycmVjZWl2ZXJQaG9uZSUyMiUzQSUyMjEzNyoqKiozODQwJTIyJTJDJTIycmVjZWl2ZXJBZGRyZXNzJTIyJTNBJTIyJUU0JUI4JThBJUU2JUI1JUI3JUU1JUI4JTgyJUU0JUI4JThBJUU2JUI1JUI3JUU1JUI4JTgyJUU2JUI1JUE2JUU0JUI4JTlDJUU2JTk2JUIwJUU1JThDJUJBJUU1JUJDJUEwJUU2JUIxJTlGJUU5JTk1JTg3JUU1JUFEJTk5JUU2JUExJUE1JUU4JUI3JUFGMjM4JUU1JUJDJTg0MzAlRTUlOEYlQjcyMDIlRTUlQUUlQTQlMjIlMkMlMjJzZW5kZXJOYW1lJTIyJTNBJTIyJUU0JUI4JTgzJUU5JTg3JThDJUU1JTlEJUFBJTIyJTJDJTIyc2VuZGVyUGhvbmUlMjIlM0ElMjIxNTgxODU5MDExOSUyMiUyQyUyMnNlbmRlckFkZHJlc3MlMjIlM0ElMjIlRTUlQjklQkYlRTQlQjglOUMlRTclOUMlODElRTYlQjclQjElRTUlOUMlQjMlRTUlQjglODIlRTUlQUUlOUQlRTUlQUUlODklRTUlOEMlQkF4eHh4eDElRTUlOEYlQjclRTUlOEMlOTclRTklOTclQTglMjIlMkMlMjJzaXRlQ29kZSUyMiUzQSUyMjU1ODMwJTIyJTJDJTIyZXdheWJpbGxPcmRlcklkJTIyJTNBJTIyMzQ4NjYxMzA5Mzg5ODE0MTY5OSUyMiUyQyUyMmJhZ0FkZHIlMjIlM0ElMjIlRTYlQjIlQUElRTQlQjglOUMlMjIlMkMlMjJtYXJrJTIyJTNBJTIyMzEwLSUyMFA2JTIwMDMxJTIwJTVCQjMxJTVEJTIyJTJDJTIyc3RvcmVOYW1lJTIyJTNBJTIyJUU5JUFBJTg0JUU5JUI5JUJGJUU2JTlDJTlCJUU1JUIxJUIxJUU0JUI4JTkzJUU1JThEJTk2JUU1JUJBJTk3JTIyJTJDJTIyY3VzdG9tZXJOb3RlcyUyMiUzQSUyMiUyMiUyQyUyMm1lcmNoYW50Tm90ZXMlMjIlM0ElMjIlMjIlMkMlMjJvcmRlcklkJTIyJTNBJTIyMzcyMDI5MzQxNTUwOTk1NDgxNiUyMiU3RCUyQyUyMnRlbXBsYXRlJTIyJTNBJTdCJTIydGVtcGxhdGVJZCUyMiUzQSUyMnNpbmdsZSUyMiUyQyUyMnRlbXBsYXRlTmFtZSUyMiUzQSUyMiVFOSVCQiU5OCVFOCVBRSVBNCVFNyVBOSVCQSVFNiVBOCVBMSVFNiU5RCVCRiUyMiUyQyUyMnRlbXBsYXRlRGVzYyUyMiUzQSUyMiVFNCVCOCU4MCVFOCU4MSU5NCVFNSU4RCU5NSVFNiVBMCU4NyVFNSU4NyU4NiVFNiVBOCVBMSVFNiU5RCVCRiUyMiUyQyUyMnRlbXBsYXRlVHlwZSUyMiUzQSUyMnNpbmdsZSUyMiUyQyUyMm9wdGlvbkxpc3QlMjIlM0ElN0IlN0QlMkMlMjJvcHRpb25zJTIyJTNBJTVCJTVEJTJDJTIyY29kZSUyMiUzQTAlMkMlMjJkZWxpdmVyeUlkJTIyJTNBJTIyWlRPJTIyJTJDJTIydGVtcGxhdGVVcmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRm1tZWMtc2hvcC0xMjU4MzQ0NzA3LmNvcy5hcC1zaGFuZ2hhaS5teXFjbG91ZC5jb20lMkZzaG9wJTJGcHVibGljJTJGMjAyMy0xMC0yNSUyRjNlY2JiM2FhLTViY2YtNDA0ZC05NzJhLThhMDhhODE2MjIzYy5odG1sJTIyJTJDJTIyY3VzdG9tQ29uZmlnJTIyJTNBJTdCJTIyd2lkdGglMjIlM0E2NTYlMkMlMjJoZWlnaHQlMjIlM0EzMDAlMkMlMjJsZWZ0JTIyJTNBNjAlMkMlMjJ0b3AlMjIlM0E5MzAlN0QlMkMlMjJ3aWR0aCUyMiUzQTc2JTJDJTIyaGVpZ2h0JTIyJTNBMTMwJTdEJTdE', // String, [获取打印报文]接口返回的print_info - printNum: { - curNum: 1, // 打印计数-当前张数 - sumNum: 2, // 打印计数-总张数 - }, - splitControl: 0 ,// 可不传, 默认为0, 根据自定义内容自动分页;1,禁止分页;2;强制分页, 内容打印在第二页 - showDeliveryLogo: 0, // 可不传, 默认为1, 传0时不展示快递公司logo - // 自定义模板信息,没有自定义模板需求可不传 + getWaybillPrintData({shopId: this.queryParams.shopId, ids: this.ids}).then(response => { + console.log("======打印======", response.data) + if (response.data) { + const ws = new WebSocket('ws://127.0.0.1:12705'); - // 面单补充信息,用来覆盖寄件人信息,没有这种需求可以不传 + ws.onopen = () => { + console.log('开始打印: '); + // 打印 + ws.send(JSON.stringify({ + command: 'print', + version: '2.0', // 必传 + requestID: '1234', // String, 调用方保证唯一 + taskList: [{ + taskID: '1234', // String, 调用方保证唯一 + printInfo: 'JTdCJTIycHJpbnREYXRhJTIyJTNBJTdCJTIyd2F5YmlsbElkJTIyJTNBJTIyNzM2MTE0NjI1MzgzODUlMjIlMkMlMjJwcmludFRpbWUlMjIlM0ElMjIyMDI0JTJGMDYlMkYwMyUyMDE4JTNBNDUlMjIlMkMlMjJzZXJ2aWNlcyUyMiUzQSU1QiU1RCUyQyUyMnJlY2VpdmVyTmFtZSUyMiUzQSUyMiVFNSVBRSVBMyoqJTIyJTJDJTIycmVjZWl2ZXJQaG9uZSUyMiUzQSUyMjEzNyoqKiozODQwJTIyJTJDJTIycmVjZWl2ZXJBZGRyZXNzJTIyJTNBJTIyJUU0JUI4JThBJUU2JUI1JUI3JUU1JUI4JTgyJUU0JUI4JThBJUU2JUI1JUI3JUU1JUI4JTgyJUU2JUI1JUE2JUU0JUI4JTlDJUU2JTk2JUIwJUU1JThDJUJBJUU1JUJDJUEwJUU2JUIxJTlGJUU5JTk1JTg3JUU1JUFEJTk5JUU2JUExJUE1JUU4JUI3JUFGMjM4JUU1JUJDJTg0MzAlRTUlOEYlQjcyMDIlRTUlQUUlQTQlMjIlMkMlMjJzZW5kZXJOYW1lJTIyJTNBJTIyJUU0JUI4JTgzJUU5JTg3JThDJUU1JTlEJUFBJTIyJTJDJTIyc2VuZGVyUGhvbmUlMjIlM0ElMjIxNTgxODU5MDExOSUyMiUyQyUyMnNlbmRlckFkZHJlc3MlMjIlM0ElMjIlRTUlQjklQkYlRTQlQjglOUMlRTclOUMlODElRTYlQjclQjElRTUlOUMlQjMlRTUlQjglODIlRTUlQUUlOUQlRTUlQUUlODklRTUlOEMlQkF4eHh4eDElRTUlOEYlQjclRTUlOEMlOTclRTklOTclQTglMjIlMkMlMjJzaXRlQ29kZSUyMiUzQSUyMjU1ODMwJTIyJTJDJTIyZXdheWJpbGxPcmRlcklkJTIyJTNBJTIyMzQ4NjYxMzA5Mzg5ODE0MTY5OSUyMiUyQyUyMmJhZ0FkZHIlMjIlM0ElMjIlRTYlQjIlQUElRTQlQjglOUMlMjIlMkMlMjJtYXJrJTIyJTNBJTIyMzEwLSUyMFA2JTIwMDMxJTIwJTVCQjMxJTVEJTIyJTJDJTIyc3RvcmVOYW1lJTIyJTNBJTIyJUU5JUFBJTg0JUU5JUI5JUJGJUU2JTlDJTlCJUU1JUIxJUIxJUU0JUI4JTkzJUU1JThEJTk2JUU1JUJBJTk3JTIyJTJDJTIyY3VzdG9tZXJOb3RlcyUyMiUzQSUyMiUyMiUyQyUyMm1lcmNoYW50Tm90ZXMlMjIlM0ElMjIlMjIlMkMlMjJvcmRlcklkJTIyJTNBJTIyMzcyMDI5MzQxNTUwOTk1NDgxNiUyMiU3RCUyQyUyMnRlbXBsYXRlJTIyJTNBJTdCJTIydGVtcGxhdGVJZCUyMiUzQSUyMnNpbmdsZSUyMiUyQyUyMnRlbXBsYXRlTmFtZSUyMiUzQSUyMiVFOSVCQiU5OCVFOCVBRSVBNCVFNyVBOSVCQSVFNiVBOCVBMSVFNiU5RCVCRiUyMiUyQyUyMnRlbXBsYXRlRGVzYyUyMiUzQSUyMiVFNCVCOCU4MCVFOCU4MSU5NCVFNSU4RCU5NSVFNiVBMCU4NyVFNSU4NyU4NiVFNiVBOCVBMSVFNiU5RCVCRiUyMiUyQyUyMnRlbXBsYXRlVHlwZSUyMiUzQSUyMnNpbmdsZSUyMiUyQyUyMm9wdGlvbkxpc3QlMjIlM0ElN0IlN0QlMkMlMjJvcHRpb25zJTIyJTNBJTVCJTVEJTJDJTIyY29kZSUyMiUzQTAlMkMlMjJkZWxpdmVyeUlkJTIyJTNBJTIyWlRPJTIyJTJDJTIydGVtcGxhdGVVcmwlMjIlM0ElMjJodHRwcyUzQSUyRiUyRm1tZWMtc2hvcC0xMjU4MzQ0NzA3LmNvcy5hcC1zaGFuZ2hhaS5teXFjbG91ZC5jb20lMkZzaG9wJTJGcHVibGljJTJGMjAyMy0xMC0yNSUyRjNlY2JiM2FhLTViY2YtNDA0ZC05NzJhLThhMDhhODE2MjIzYy5odG1sJTIyJTJDJTIyY3VzdG9tQ29uZmlnJTIyJTNBJTdCJTIyd2lkdGglMjIlM0E2NTYlMkMlMjJoZWlnaHQlMjIlM0EzMDAlMkMlMjJsZWZ0JTIyJTNBNjAlMkMlMjJ0b3AlMjIlM0E5MzAlN0QlMkMlMjJ3aWR0aCUyMiUzQTc2JTJDJTIyaGVpZ2h0JTIyJTNBMTMwJTdEJTdE', // String, [获取打印报文]接口返回的print_info + printNum: { + curNum: 1, // 打印计数-当前张数 + sumNum: 2, // 打印计数-总张数 + }, + splitControl: 0,// 可不传, 默认为0, 根据自定义内容自动分页;1,禁止分页;2;强制分页, 内容打印在第二页 + showDeliveryLogo: 0, // 可不传, 默认为1, 传0时不展示快递公司logo + // 自定义模板信息,没有自定义模板需求可不传 - }], - printType: 1, // Number 打印类型,默认为 1,打印固定高度的面单;如果为2,则打印任意自定义内容,需要传递 size 参数指定纸张尺寸,printInfo 改为传递 base64 格式的 html - size: { - width: 76, // 纸张尺寸,单位毫米,printType 为 2 时必传 - height: 130 - }, - printer: this.printParams.printer, // 选中的打印机,printer.name - })) - }; - let obj = this.$modal; - ws.onmessage = (e) => { - const resp = JSON.parse(e.data || '{}') - if (resp.command === 'print') { - console.log('打印结果: ', resp); - obj.msgError("打印结果!"+JSON.stringify(resp)); + // 面单补充信息,用来覆盖寄件人信息,没有这种需求可以不传 + + }], + printType: 1, // Number 打印类型,默认为 1,打印固定高度的面单;如果为2,则打印任意自定义内容,需要传递 size 参数指定纸张尺寸,printInfo 改为传递 base64 格式的 html + size: { + width: 76, // 纸张尺寸,单位毫米,printType 为 2 时必传 + height: 130 + }, + printer: this.printParams.printer, // 选中的打印机,printer.name + })) + }; + + + let obj = this.$modal; + ws.onmessage = (e) => { + const resp = JSON.parse(e.data || '{}') + if (resp.command === 'print') { + console.log('打印结果: ', resp); + // 请求回调 + return pushWaybillPrintSuccess({shopId: this.queryParams.shopId, ids: this.ids}) + // obj.msgError("打印结果!"+JSON.stringify(resp)); + } + }; + + + // 当发生错误时触发 + ws.onerror = function (error) { + obj.msgError("打印失败!"); + console.error('WebSocket error:', error); + // alert('WebSocket error occurred. Check the console for more details.'); + }; } - }; - - - // 当发生错误时触发 - ws.onerror = function(error) { - obj.msgError("打印失败!"); - console.error('WebSocket error:', error); - // alert('WebSocket error occurred. Check the console for more details.'); - }; - - } + }); + }, + handleShipSend(){ + // this.$modal.msgError("开源版本未实现平台发货!请自行对接发货"); + pushShipSend({shopId: this.queryParams.shopId, ids: this.ids}).then(response => { + this.$modal.msgSuccess("发货成功!"); + this.getList() + }) + }, } };