java json接口开发_【Java】接口开发中关于接受和发送json的相关范例

该博客展示了如何在Java中使用RocketMQ实现接口开发,通过MQProducer和MQSend发送JSON格式的消息。内容包括从数据库获取订单信息,构建JSON字符串,并调用MQSend发送消息到指定主题。
摘要由CSDN通过智能技术生成

packagecom.suneee.scn.wms.web.rocketmq;importjava.io.UnsupportedEncodingException;importjava.util.List;importorg.apache.rocketmq.client.exception.MQBrokerException;importorg.apache.rocketmq.client.exception.MQClientException;importorg.apache.rocketmq.remoting.exception.RemotingException;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Controller;importcom.suneee.scn.message.model.MsgInfo;importcom.suneee.scn.message.send.MQProducer;importcom.suneee.scn.message.send.MQSend;importcom.suneee.scn.wms.consumer.impl.OrderConsumer;importcom.suneee.scn.wms.model.dbo.OrderDO;importcom.suneee.scn.wms.model.dbo.OrderDetailDO;importcom.suneee.scn.wms.model.dbo.ShiplabelDO;

@Controller("deliveryOrderSendController")public classDeliveryOrderSendController {private static final Logger log=LoggerFactory.getLogger(DeliveryOrderSendController.class);

@AutowiredprivateMQProducer producer;

@AutowiredprivateMQSend msgSend;

@AutowiredprivateOrderConsumer orderConsumer;//@Scheduled(cron="0/50 * * * * ? ")//间隔5秒执行

public voidtaskCycle(){

log.debug("【执行定时器开始............发货单!】");

MQSend mqs= newMQSend();

mqs.setProducer(producer.getProducer());

MsgInfo mi= newMsgInfo();

mi.setTopic("WmsTopic");

mi.setType("deliveryOrderConfirm");//-----------------------------------------------------------//1.先去sp_order_main查出ordernumber,storeordernumber,clientcode,status等属性

List sodlist =orderConsumer.findOrderNumber();//2.循环list

for(OrderDO sod:sodlist){

StringBuilder sb= newStringBuilder();

String ordernumber=sod.getOrdernumber();

String storeordernumber=sod.getStoreordernumber();int enterpriseid =sod.getEnterpriseid();//2.1 去shippinglabel查出barcode,carrier,weight

ShiplabelDO shiplabelDO =orderConsumer.queryShiplabelDOByOrderNumber(ordernumber);

String logisticsCode=shiplabelDO.getCarriercode();

String expressCode=shiplabelDO.getShiplabel();

Long weight=shiplabelDO.getWeight();

sb.append("{'request': {'deliveryOrder': {'enterpriseid': "+enterpriseid+",'deliveryOrderCode': ' "+storeordernumber+" ','deliveryOrderId': ' "+ordernumber+" ','warehouseCode': 'SunEee01','orderType': 'JYCK','status':'DELIVERED','outBizCode': ' "+ordernumber+" '},");

sb.append(" 'packages': {'package': {'logisticsCode': ' "+logisticsCode+" ','expressCode': ' "+expressCode+" ','weight': ' "+weight+" '}},");

sb.append(" 'orderLines': {'orderLine': [ ");//2.2 去orderdetail查出itemnumber,qty

List sendlist =orderConsumer.selectDeliveryOrderSendMessage(ordernumber);for(OrderDetailDO send :sendlist){

Long actualQty=send.getQty();

String itemCode=send.getItemnumber();

String uom=send.getUom();

sb.append(" {'itemCode': ' "+itemCode+" ','actualQty': '"+actualQty+" ','unit':'"+uom+"'},");

}

sb.deleteCharAt(sb.length()-1);

sb.append("]}}}");

mi.setData(sb.toString());try{

mqs.sendMsg(mi);

log.debug("【单号为"+ordernumber+"的发货单确认接口发送成功!---发送的JSON内容为---"+sb+"】");

orderConsumer.changeOrderStatusByOrderNumber(ordernumber,enterpriseid);

log.debug("【单号为"+ordernumber+"的发货单在sp_order_main表的状态更改成功!");

}catch (UnsupportedEncodingException |MQClientException| RemotingException | MQBrokerException |InterruptedException e) {

e.printStackTrace();

}

}//-----------------------------------------------------------

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值