zoukankan      html  css  js  c++  java
  • 关于一体机排号,叫号,取号

    1.一体机排号:

    1.1接口应用场景

    一体机点击取号,扫描二维码,获取登记台排号小票

    1.2接口信息

    http://localhost:8080/vaccinate/api/bsRegQueue/getRegQueue?unicode=9999999999&description=test&localCode2=3609830102

    参数说明:

    unicode:儿童编码(二维码扫描出来的18儿童编码)  Varchar(18)   不可为空  

    localCode2:10位门诊编号  Varchar(10)  不可为空

    //成功返回结果
    {
    "code":"200", --成功 "msg":"排号成功", --成功信息 "result":true, --排号结果 "success":true, --排号成功 "data":{ --排号信息 "id":"c97d41608dee441bb8dd2b7707b1f331", "isNewRecord":false, "localCode":"3609830102", "localCode2":"3609830102", // "createDate":"2019-05-06 08:53:39", "updateDate":"2019-05-06 08:53:39", "queue":"A001", -- 排号号码 "unicode":"360983010220180995", --唯一标识(儿童编码) "status":"0", --状态 0:未被叫号 1:过号 "wait":0, --等待人数 "name":"万里", //儿童姓名 "childcode":"360983010220180995", --儿童编码 "sort":10, "type":"A" --A临时号 V预约号 } }
    //失败返回结果
    {
        "code": "415", --编码
        "msg": "当前凭证不可重复排号哦!", --失败信息
        "result": false,
        "success": false
    }

    Msg几种情况:

    1   缺少排号凭证  --参数缺失

    1   缺少站点编码   --参数缺失

    2   二维码无效,请用接种证首页二维码扫描  --二维码无效

    3   自助取号不在服务时间内  --可以修改服务时间

    4   当前凭证不可重复排号哦! -- unicode重复使用

    2.登记台

    2.1.登记台叫号

    2.2登记台下一号

    接口:synchronized public JSONMessage nextRegQueue(BsRegQueue bsRegQueue) {}

    之后同样调用叫号接口方法

     2.3插入数据到阿里的消息队列MQ

    登记台叫号保存数据格式?

    //参数说明:  第一个表示Message 所属的 Topic
                       第二个表示Message 标签

                       第三个表示消息体

    boolean sendMqttMsg(String topic, String tag, String txt){

    Message msg =  new Message( topic, "MQ2MQTT", txt.getBytes("UTF-8"));           

    }

    //数据格式

    topic

    qbkj_queue_mqtt

    备注

    tag

    MQ2MQTT

    txt

    格式如:

    {

        "reg":[

            {

                "room":"1",

                "no":"A001",

                "call":"1",

                "childname":"王小"

            }

        ],

        "childname":"王小",

        "localcode":"3609830102",

        "roomcode":"1",

        "type":"1",

        "queueno":"A001"

    }

     

    room/roomcode:

    1       登记台1

    2       登记台2

    3       登记台3

    4       登记台4

    5       登记台5

    6       登记台6
    no/queueno:排号编码
    childname:儿童姓名

    localcode:门诊编码

    
    

    3.接种台

     3.1接种台叫号

    接口: public @ResponseBody String callNumber(Quene quene) {

    3.2 接种台下一号

    接种台页面jsp:inoculateConsole.jsp

    下一号是在前端处理获取到队列quene,再调用上面的叫号接口

     3.3插入数据到阿里的消息队列MQ

    登记台叫号保存数据格式?

    //参数说明:  第一个表示Message 所属的 Topic
                       第二个表示Message 标签

                       第三个表示消息体

    boolean sendMqttMsg(String topic, String tag, String txt){

    Message msg =  new Message( topic, "MQ2MQTT", txt.getBytes("UTF-8"));           

    }

    //保存数据格式:

    topic:  qbkj_queue_mqtt

    tag:    MQ2MQTT

    txt:

    {
        "childname":"余一",
        "localcode":"3609830102",
        "roomcode":"1",
        "nextChildname":"",
        "type":"2",
        "queue":[
            {
                "code":"1",
                "list":[
                    {
                        "queueno":"1005",
                        "childid":"360983010220180999",
                        "childname":"余一",
                        "roomcode":"1",
                        "ispass":"N"
                    }
                ]
            },
            {
                "code":"2",
                "list":[
                    {
                        "queueno":"2003",
                        "childid":"360983010220180912",
                        "childname":"万一",
                        "roomcode":"2",
                        "ispass":"N"
                    }
                ]
            },
            {
                "code":"3",
                "list":[
    
                ]
            },
            {
                "code":"4",
                "list":[
    
                ]
            },
            {
                "code":"5",
                "list":[
    
                ]
            },
            {
                "code":"djt",
                "list":[
    
                ]
            }
        ],
        "queueno":"1005",
        "nextQueueno":""
    }

    说明:

    roomcode:   1 接种台1
                        2 接种台2
                        3 接种台3
                        4 接种台4
                        5 接种台5
    queueno:排号编码
    childname:儿童姓名
    localcode:门诊编码

    4.mq订阅:ConsumerTest.java  订阅

    package com.thinkgem.jeesite.test;
    
    import java.util.Properties;
    
    import com.aliyun.openservices.ons.api.Action;
    import com.aliyun.openservices.ons.api.ConsumeContext;
    import com.aliyun.openservices.ons.api.Consumer;
    import com.aliyun.openservices.ons.api.Message;
    import com.aliyun.openservices.ons.api.MessageListener;
    import com.aliyun.openservices.ons.api.ONSFactory;
    import com.aliyun.openservices.ons.api.PropertyKeyConst;
    
    public class ConsumerTest {
        public static void main(String[] args){
               Properties properties = new Properties();
                // 您在 MQ 控制台创建的 Consumer ID
                properties.put(PropertyKeyConst.ConsumerId, "CID_qbkj_queue");
                // 鉴权用 AccessKey,在阿里云服务器管理控制台创建
                properties.put(PropertyKeyConst.AccessKey, "LTAIiPuk24iD3klb");
                // 鉴权用 SecretKey,在阿里云服务器管理控制台创建
                properties.put(PropertyKeyConst.SecretKey, "nRk5Y1R9zdjEm9p5QdkA54pAPQrrId");
              
                // 设置 TCP 接入域名(此处以公共云生产环境为例)
                properties.put(PropertyKeyConst.ONSAddr,
                  "http://onsaddr-internet.aliyun.com/rocketmq/nsaddr4client-internet");
                  // 集群订阅方式 (默认)
                  // properties.put(PropertyKeyConst.MessageModel, PropertyValueConst.CLUSTERING);
                  // 广播订阅方式
                  // properties.put(PropertyKeyConst.MessageModel, PropertyValueConst.BROADCASTING);
                Consumer consumer = ONSFactory.createConsumer(properties);
                consumer.subscribe("qbkj_queue_mqtt", "MQ2MQTT", new MessageListener() { //订阅多个 Tag  MQ2MQTT  3609830102
                    public Action consume(Message message, ConsumeContext context) {
                        System.out.println("Receive: " + new String(message.getBody()));
                        return Action.CommitMessage;
                    }
                });
    //            //订阅另外一个 Topic
    //            consumer.subscribe("TopicTestMQ-Other", "*", new MessageListener() { //订阅全部 Tag
    //                public Action consume(Message message, ConsumeContext context) {
    //                    System.out.println("Receive: " + message);
    //                    return Action.CommitMessage;
    //                }
    //            });
                consumer.start();
                System.out.println("Consumer Started");
        }
    
    }

    5.RocketMQ控制台

  • 相关阅读:
    Android Studio 个性化设置
    显示出eclipse文件层次
    2014在百度之星资格赛的第四个冠军Labyrinth
    android在单身的对象和一些数据的问题被释放
    Windows Server 2008 网管数据采集 努力做“日拱一卒“
    【 D3.js 入门系列 --- 9.1 】 生产饼图
    Android监视返回键
    JavaScript总结一下--创建对象
    PS多形式的部分之间复制“笨办法”
    PHP图片等比缩放,并添加Logo水印特定代码和盯
  • 原文地址:https://www.cnblogs.com/banxian-yi/p/10815256.html
Copyright © 2011-2022 走看看