コード例 #1
0
ファイル: yiqi.py プロジェクト: gaoqifa1996/yiqi
def put_psn(client, sn):
    info = json_post(client, host_graphdbget(), {
        "n": "task",
        "obj": "uid,sn",
        "opt": {
            "and": [{
                "eq": "sn",
                "v": sn
            }]
        }
    })
    uid = info[0]["uid"]
    result = json_post(client, host_graphdb(), {
        "a": [{
            "v": [[{
                "k": "sn",
                "v": sn
            }]],
            "u": uid,
            "n": "pcode"
        }]
    })
    if result == "Success":
        return result
    else:
        return "Error"
コード例 #2
0
ファイル: yiqi.py プロジェクト: gaoqifa1996/yiqi
def get_bzd(client, tab, cfg, x, y):
    st = None
    if y in cfg:
        st = cfg[y]
    if st is None:
        info = json_post(client, host_timedb(), {
            "n": tab,
            "obj": "*",
            "opt": {
                "limit": 1
            }
        })

    else:
        info = json_post(client, host_timedb(), {
            "n": tab,
            "obj": "*",
            "opt": {
                "and": [{
                    "gt": "time",
                    "v": st
                }],
                "limit": 1
            }
        })
    if info is not None:
        data1 = info[tab]
        if "start" in data1 and "end" in data1 and "data" in data1:
            print(data1["start"])
            print(data1["end"])
            print(data1["data"])
            if x == 1:
                cfg[y] = data1["end"]
            return data1["data"][0]
    return None
コード例 #3
0
def get_data(client, tab, cfg):
    st = None

    if tab in cfg:
        st = cfg[tab]

    if st is None:
        info = json_post(client, host_timedb(), {
            "n": tab,
            "obj": "*",
            "opt": {
                "limit": 1
            }
        })

    else:
        info = json_post(
            client, host_timedb(), {
                "n": tab,
                "obj": "*",
                "opt": {
                    "and": [{
                        "ge": "time",
                        "v": st
                    }],
                    "limit": 20
                }
            })

    if info is not None:
        if isinstance(info, str):
            print("str")

        elif isinstance(info, list):
            print("list")
            for i in range(len(info)):
                data1 = info[i][tab]
                if "start" in data1 and "end" in data1 and "data" in data1:
                    print(data1["start"])
                    print(data1["end"])
                    print(data1["data"])

                    cfg[tab] = data1["end"]
                    for data in data1["data"]:
                        return data

        elif isinstance(info, dict):
            print("dict")
            data1 = info[tab]
            if "start" in data1 and "end" in data1 and "data" in data1:
                print(data1["start"])
                print(data1["end"])
                print(data1["data"])

                cfg[tab] = data1["end"]
                for data in data1["data"]:
                    return data

    return None
コード例 #4
0
def get_plan(client):
    data = mq_get(client, "MES.MEB.ASSEMBLE.PLAN.SEND")
    if data is None:
        return

    start = datetime.datetime.strptime(data["PT"], "%Y%m%d%H%M%S")
    diff = datetime.timedelta(minutes=15)

    pstart = start.strftime("%Y-%m-%dT%H:%M:%S")
    pend = (start + diff).strftime("%Y-%m-%dT%H:%M:%S")

    sn = data["CID"]

    ret = json_post(client, host_real_task(), {
        "sn": sn,
        "tsn": data["TSN"],
        "pstart": str(pstart),
        "pend": str(pend),
        "pnum": 1,
        "info": [
            {"k": "ig2", "v": data["1G2"]},
            {"k": "288", "v": data["288"]},
            {"k": "gbt", "v": data["GBT"]},
            {"k": "sqr", "v": data["SQR"]},
            {"k": "prn", "v": data["PRN"]},
            {"k": "tsn", "v": data["TSN"]}
        ]
    })

    if ret != "Success":
        return

    ret = json_post(client, host_graphdbget(), {
        "n": "task",
        "obj": "uid,sn",
        "opt": {
            "and": [{"eq": "sn", "v": sn}]
        }
    })

    if ret is None:
        return

    uid = ret[0]["uid"]

    ret = json_post(client, host_graphdb(), {
        "a": [{
            "u": uid,
            "n": "pcode",
            "v": [[{"k": "sn", "v": sn}]]
        }]
    })

    if ret != "Success":
        return

    ret = json2xml(client, "ack", "")

    mq_put("MES.MEB.ASSEMBLE.PLAN.ACK", ret)
コード例 #5
0
ファイル: weirui72.py プロジェクト: gaoqifa1996/weirui72
def get_data(client, tab, cfg):
    st = None
    if tab in cfg:
        st = cfg[tab]

    if st is None:
        info = json_post(client, host_timedb(), {
            "cmd": "get/first",
            "data": {
                "tab": tab,
                "orig": "true",
                "obj": "*"
            }
        })
    else:
        info = json_post(client, host_timedb(), {
            "cmd": "get/start",
            "data": {
                "tab": tab,
                "limit": 20,
                "start": st,
                "orig": "true",
                "nostart": "true",
                "obj": "*"
            }
        })

    if info is not None:
        if isinstance(info, str):
            print("str")

        elif isinstance(info, list):
            print("list")
            for i in range(len(info)):
                data1 = info[i][tab]
                if "start" in data1 and "end" in data1 and "data" in data1:
                    print(data1["start"])
                    print(data1["end"])
                    print(data1["data"])

                    cfg[tab] = data1["end"]
                    return data1["data"]

        elif isinstance(info, dict):
            print("dict")
            data1 = info[tab]
            if "start" in data1 and "end" in data1 and "data" in data1:
                print(data1["start"])
                print(data1["end"])
                print(data1["data"])

                cfg[tab] = data1["end"]
                return data1["data"]

    return None
コード例 #6
0
def put_fin(client, cfg):
    st = None
    if "snfinsh" in cfg:
        st = cfg["snfinsh"]

    if st is None:
        info = json_post(
            client, host_timedb(), {
                "n": "stnstatus",
                "obj": "*",
                "opt": {
                    "limit": 1,
                    "and": [{
                        "eq": "wsn",
                        "v": "af450"
                    }]
                }
            })
    else:
        info = json_post(
            client, host_timedb(), {
                "n": "stnstatus",
                "obj": "*",
                "opt": {
                    "limit": 1,
                    "and": [{
                        "eq": "wsn",
                        "v": "af450"
                    }, {
                        "gt": "time",
                        "v": st
                    }]
                }
            })

    if info is None:
        return

    data = info["stnstatus"]
    cfg["snfinsh"] = data[u'end']
    data = data[u'data'][0]

    ret = json2xml(client, "fin", {
        "psn": data["psn"],
        "in": data["in"],
        "out": data["out"]
    })

    mq_put("MES.MEB.ASSEMBLE.START", ret)
    time.sleep(5)
    mq_put("MES.MEB.ASSEMBLE.FINISH", ret)
コード例 #7
0
ファイル: yiqi.py プロジェクト: gaoqifa1996/yiqi
def get_taskinfo(client, tab, cfg, x):
    status = get_item(x, u"STATUS")
    sn = get_item(x, u"CID")
    tele = get_item(x, u"TELE")
    errtele = get_item(x, u"ERRTELE")

    info = json_post(client, host_timedb(), {
        "n": "task",
        "obj": "*",
        "opt": {
            "and": [
                {
                    "eq": "task",
                    "v": sn
                },
                {
                    "eq": "line",
                    "v": "line-one"
                }
            ]
        }
    })

    data = info["task"]["data"][0]
    if data["task"]:
        if sn == data["task"]:
            data.pop("task")
        else:
            print("ERROR: no such CID")
            return

    if data["line"]:
        data.pop("line")

    data["tele"] = tele
    data["errtele"] = errtele
    data["status"] = status

    result = json_post(client, host_timedbput(), {
        "cmd": "put",
        "data": {
            "tab": "task",
            "tags": {
                "line": "line-one",
                "task": sn
            },
            "fields": data
        }
    })
    return result
コード例 #8
0
def get_printcode(client):
    qret = mq_get(client, "MES.MEB.ASSEMBLE.CERTIFICATE.SEND")
    if qret is None:
        return

    status = get_item(qret, u"STATUS")
    sn = get_item(qret, u"CID")
    tele = get_item(qret, u"TELE")
    errtele = get_item(qret, u"ERRTELE")

    data = json_post(
        client, host_timedb(), {
            "n": "task",
            "obj": "*",
            "opt": {
                "desc": True,
                "limit": 1,
                "and": [{
                    "eq": "task",
                    "v": sn
                }, {
                    "eq": "line",
                    "v": "line-one"
                }]
            }
        })

    if data is None:
        return

    data = data["task"]["data"][0]
    data.pop("task")
    data.pop("line")

    data["tele"] = tele
    data["errtele"] = errtele
    data["status"] = status

    json_post(
        client, host_timedbput(), {
            "cmd": "put",
            "data": {
                "tab": "task",
                "tags": {
                    "line": "line-one",
                    "task": sn
                },
                "fields": data
            }
        })
コード例 #9
0
ファイル: weirui.py プロジェクト: gaoqifa1996/weirui72
def post_snstatus(client,cfg):
    info = json_post(client,host_graphdbget(),{
    # info = json_post(client, "http://47.96.151.120/graphdb/get/line-two", {
    "n": "task",
    "obj": "sn,uid,state",
    "opt": {
        "has":"sn"
    }
    })
    print(info)
    for i in info:
        sn = get_item(i, "sn")
        state = get_item(i ,"state")
        snstatus = cfg["snstatus"]
        if i in range(len(snstatus)):
            if sn == snstatus[i]["sn"] and state == snstatus[i]["state"]:
                continue
            else:
                now_time = datetime.datetime.now()
                Tim = datetime.datetime.strftime(now_time, '%Y-%m-%d %H:%M:%S')

                info = json_requests_post("http://10.106.11.42:8049/restful/prod-plan/work-order-service/sync/status",[{
                "workOrderNo":sn,
                "prodLineCode":"PL02",
                "status":state,
                "siteCode":"3310",
                "userNo":"AMES",
                "time":Tim
                }])
                if info["result"]:
                    print(info)
                    snstatus[i]["state"] = state
コード例 #10
0
ファイル: readxml.py プロジェクト: gaoqifa1996/yiqi
def xml2json(client, xml):
    if xml is None:
        return None

    ret = json_post(client, host_xmljson(), {
        "cmd": "xmljson",
        "data": str(xml)
    })

    if ret == "Fail" or ret is None:
        return None


    env = ret["env:Envelope"]

    body = env["Body"]
    data = body["Data"]
    raw = data["Raw"]
    detail = raw["Detail"]

    ret = {}

    for d in detail:
        ret[d["Key"]] = d["Value"]

    return ret
コード例 #11
0
ファイル: weiruiup.py プロジェクト: gaoqifa1996/weirui72
def post_packstation(client, cfg):
    data = get_data(client, "stnstatus", cfg)
    if data is None:
        return
    prodLineCode = "PL02"

    workOrderNo = get_item(data, u"sn")
    partNo = ""
    serialNumber = get_item(data, u"psn")
    stationCode = get_item(data, u"wsn")
    stationPassType = get_item(data, u"qa")
    userNo = get_item(data, u"usn")
    time = get_item(data, u"time")

    info = json_post(
        client,
        "http://10.106.11.42:8049/restful/prod-exec/station-pass-pull/insert/ames",
        [{
            # info = json_post(client, "http://10.40.9.8/send/server/test", [{
            "prodLineCode": prodLineCode,
            "workOrderNo": workOrderNo,
            "partNo": partNo,
            "serialNumber": serialNumber,
            "stationCode": stationCode,
            "stationPassType": stationPassType,
            "userNo": userNo,
            "time": time
        }])

    if info["result"] == True:
        print("stnstatus success")
    else:
        print("stnstatus error")
コード例 #12
0
def put_print(client, cfg):
    st = None
    if "emergency" in cfg:
        st = cfg["emergency"]

    if st is None:
        ret = json_post(
            client, host_timedb(), {
                "n": "stnstatus",
                "obj": "*",
                "opt": {
                    "desc": True,
                    "limit": 1,
                    "and": [{
                        "eq": "wsn",
                        "v": "af450"
                    }]
                }
            })
    else:
        ret = json_post(
            client, host_timedb(), {
                "n": "stnstatus",
                "obj": "*",
                "opt": {
                    "desc": True,
                    "limit": 1,
                    "and": [{
                        "eq": "wsn",
                        "v": "af450"
                    }, {
                        "gt": "time",
                        "v": st
                    }]
                }
            })

    if ret is None:
        return

    data = ret["stnstatus"]
    cfg["emergency"] = data[u'end']
    data = data[u'data'][0]

    ret = json2xml(client, "print", {"psn": data["psn"]})
    mq_put("MES.MEB.ASSEMBLE.CERTIFICATE.FAST.REQUEST", ret)
コード例 #13
0
def post_tight(client,cfg):
    data = get_data(client,"atlas",cfg)
    if data is None:
        return
    psn = get_item(data,u"psn")
    sn = get_item(data,u"sn")
    wsn = get_item(data,u"wsn")
    stepnum = get_item(data,u"stepnum")
    sleeve = get_item(data,u"sleeve")
    device = get_item(data,u"deviceid")
    contorl = get_item(data,u"contorlid")
    pset = get_item(data,u"pset")
    fintorque = get_item(data,u"finaltorque")
    finangle = get_item(data, u"finalangle")
    maxAngle = get_item(data, u"maxangle")
    maxtoeque = get_item(data, u"maxtorque")
    minangle = get_item(data, u"minangle")
    mintorque = get_item(data, u"mintorque")
    resultinfo = get_item(data,"result")
    if resultinfo == "pass":
        result = 1
    else:
        result = 0
    Tim1 = get_item(data,"time")
    Tim = Tim1[0:19]
    tim = str(datetime.datetime.strptime(Tim,"%Y-%m-%dT%H:%M:%S"))
    info = json_post(client,"http://10.106.11.42:8049/restful/prod-exec/product-torque-detail-service/insert/ames",[{
        "serialNumber":psn,
        "workOrderNo":sn,
        "partNo":"",
        "prodLineCode":"PL02",
        "stationCode":wsn,
        "stepNo":stepnum,
        "sleeve":sleeve,
        "deviceID":device,
        "contorlID":contorl,
        "pSET":pset,
        "finalTorque":fintorque,
        "finalAngle":finangle,
        "maxTorque":maxtoeque,
        "minTorque":mintorque,
        "maxAngle":maxAngle,
        "minAngle":minangle,
        "resultMsg":result,
        "siteCode":"3310",
        "userNo":"AMES",
        "time":tim
    }])
    print(info)
    if info["result"]:
        print("torque post success")
        cfg["atlas"] = data["time"]
    else:
        print("torque post fail")
コード例 #14
0
ファイル: yiqiup.py プロジェクト: gaoqifa1996/weirui72
def get_data(client, tab, cfg):
    st = None

    if tab in cfg:
        st = cfg[tab]

    if st is None:
        info = json_post(client, host_timedb(), {
            "n": tab,
            "obj": "*",
            "opt": {
                "limit": 1
            }
        })

    else:
        info = json_post(
            client, host_timedb(), {
                "n": tab,
                "obj": "*",
                "opt": {
                    "and": [{
                        "ge": "time",
                        "v": st
                    }],
                    "limit": 20
                }
            })

    if info is not None:
        data1 = info["stnstatus"]
        if "start" in data1 and "end" in data1 and "data" in data1:
            print(data1["start"])
            print(data1["end"])
            print(data1["data"])

            cfg[tab] = data1["end"]
            for data in data1["data"]:
                return data

    return None
コード例 #15
0
ファイル: ruipu.py プロジェクト: gaoqifa1996/weirui72
def get_data(client, tab, cfg):
    st = None
    if tab in cfg:
        st = cfg[tab]

    if st is None:
        data = json_post(client, host_timedb(), {
            "cmd": "get/first",
            "data": {
                "tab": tab,
                "orig": "true",
                "obj": "*"
            }
        })
    else:
        data = json_post(
            client, host_timedb(), {
                "cmd": "get/start",
                "data": {
                    "tab": tab,
                    "limit": 20,
                    "start": st,
                    "orig": "true",
                    "nostart": "true",
                    "obj": "*"
                }
            })

    if data is not None:
        if "start" in data and "end" in data and "data" in data:
            print(data["start"])
            print(data["end"])
            print(data["data"])

            cfg[tab] = data["end"]

            return data["data"]

    return None
コード例 #16
0
def post_airtight(client,cfg):
    data = get_data(client,"ateq",cfg)
    if data is None:
        return
    psn = get_item(data,u"psn")
    sn = get_item(data,u"sn")
    wsn = get_item(data,u"wsn")
    device = get_item(data,u"deviceid")
    testProID = get_item(data,u"testproid")
    testCount = get_item(data,u"testnum")
    testPressure = get_item(data,u"testpressure")
    testData = get_item(data, u"testrate")
    testRate = get_item(data, u"testrate")

    resultinfo = get_item(data,"result")
    if resultinfo == "pass":
        result = 1
    else:
        result = 0
    Tim = get_item(data,"time")
    pt1 = Tim[0:19]
    pstar = datetime.datetime.strptime(pt1, "%Y-%m-%dT%H:%M:%S")
    nedtime = datetime.timedelta(seconds=int(get_item(data,u"stepbeat")))
    pen = (pstar + nedtime).strftime("%Y-%m-%d %H:%M:%S")
    startim = str(pstar.strftime("%Y-%m-%d %H:%M:%S"))
    endtim = str(pen)

    info = json_post(client,"http://10.106.11.42:8049/restful/prod-battery/divulge-data/insert/ames",[{
        "serialNumber":psn,
        "workOrderNo":sn,
        "partNo":"",
        "prodLineCode":"PL02",
        "stationCode":wsn,
        "deviceID":device,
        "testProID":testProID,
        "testCount":testCount,
        "testPressure":testPressure,
        "testData":testData,
        "testRate":testRate,
        "resultMsg":result,
        "siteCode":"3310",
        "userNo":"AMES",
        "startTime":startim,
        "endTime":endtim
    }])
    print(info)
    if info["result"]:
        print("airtight post success")
        cfg["atlas"] = data["time"]
    else:
        print("airtight post fail")
コード例 #17
0
ファイル: yiqi.py プロジェクト: gaoqifa1996/yiqi
def get_emergency(client, cfg):
    st = None
    if "emergency" in cfg:
        st = cfg["emergency"]
    if st is None:
        info = json_post(client, host_timedb(), {
            "n": "stnstatus",
            "obj": "*",
            "opt": {
                "limit": 1,
                "and": [
                    {"eq": "wsn",
                     "v": "af450"
                     }]
            }
        })
    else:
        info = json_post(client, host_timedb(), {
            "n": "stnstatus",
            "obj": "*",
            "opt": {
                "limit": 1,
                "and": [
                    {"eq": "wsn",
                     "v": "af450"
                     },
                    {"gt": "time",
                     "v": st
                     }]
            }
        })
    print(info)
    if info is not None:
        data1 = info["stnstatus"]
        if "start" in data1 and "end" in data1 and "data" in data1:
            cfg["emergency"] = data1["end"]
            return data1["data"][0]
    return None
コード例 #18
0
ファイル: readxml.py プロジェクト: gaoqifa1996/yiqi
def json2xml(client, k, v):
    if v is None:
        return None

    ret = json_post(client, host_xmljson(), {
        "cmd": "jsonxml",
        "data": {
            "k": k,
            "v": v
            }
        })

    if ret == "Fail" or ret is None:
        return None

    return ret["v"]
コード例 #19
0
ファイル: yiqi.py プロジェクト: gaoqifa1996/yiqi
def get_plan(client, tab, cfg, rec):
    st = None
    if tab in cfg:
        st = cfg[tab]
    tsn = rec["TSN"]
    sn = rec["CID"]
    pt = rec["PT"]
    big2 = rec["1G2"]
    b288 = rec["288"]
    gbt = rec["GBT"]
    sqr = rec["SQR"]
    prn = rec["PRN"]
    pstar = datetime.datetime.strptime(pt, "%Y%m%d%H%M%S")
    nedtime = datetime.timedelta(minutes=15)
    pen = (pstar + nedtime).strftime("%Y-%m-%dT%H:%M:%S")
    pstart = str(pstar.strftime("%Y-%m-%dT%H:%M:%S"))
    pend = str(pen)

    if st is None:
        info = json_post(client, host_real_task(), {
            "sn": sn,
            "tsn": tsn,
            "pstart": pstart,
            "pend": pstart,
            "pnum": 1,
            "info": [
                {"k": "ig2", "v": big2},
                {"k": "288", "v": b288},
                {"k": "gbt", "v": gbt},
                {"k": "sqr", "v": sqr},
                {"k": "prn", "v": prn},
                {"k": "tsn", "v": tsn},

            ]
        })
        if info == "Success":
            result = put_psn(client, sn)
            if result == "Success":
                return info
コード例 #20
0
def post_pipmsn(client,cfg):
    data = get_data(client,"msn",cfg)
    if data is None:
        return
    psn = get_item(data,u"psn")
    sn = get_item(data,u"sn")
    wsn = get_item(data,u"wsn")
    stepnum = get_item(data,u"stepnum")
    msn = get_item(data,u"msn")
    msnpart = msn[0:10]
    resultinfo = get_item(data,"result")
    if resultinfo == "pass":
        result = 1
    else:
        result = 0
    Tim1 = get_item(data,"time")
    Tim = Tim1[0:19]
    tim = str(datetime.datetime.strptime(Tim,"%Y-%m-%dT%H:%M:%S"))
    info = json_post(client,"http://10.106.11.42:8049/restful/prod-exec/sn-bind-detail-service/insert/ames",[{
        "serialNumber":psn,
        "workOrderNo":sn,
        "partNo":"",
        "prodLineCode":"PL02",
        "stationCode":wsn,
        "stepNo":stepnum,
        "componentPartNo":msnpart,
        "componentSN":msn,
        "resultMsg":result,
        "siteCode":"3310",
        "userNo":"AMES",
        "time":tim
    }])
    print(info)
    if info["result"]:
        print("pipmsn post success")
        cfg["msn"] = data["time"]
    else:
        print("pipmsn post fail")
コード例 #21
0
def post_creatsn(client, cfg):
    # info1 = json_post(client, host_graphdbget(), {
    info1 = json_post(client, "http://10.106.160.10/graphdb/get/line-one", {
        "n": "task",
        "obj": "sn,uid,state,pstart,pend",
        "opt": {
            "has": "sn"
        }
    })
    print(info1)
    tabname = None
    if "creatsn" in cfg:
        tabname = cfg["creatsn"]

    for i in info1:
        sn = get_item(i, "sn")
        state = get_item(i, "state")
        qty = "1"
        starttime = get_item(i, "pstart")
        endtime = get_item(i, "pend")

        snstatus = tabname
        if state == "open":
            if snstatus == None:
                info = json_requests_post("http://10.106.11.42:8049/restful/prod-plan/work-order-service/insert/ames", [{
                    "workOrderNo": sn,
                    "prodLineCode": "PL02",
                    "partNo": "",
                    "qty":qty,
                    "siteCode": "3310",
                    "userNo": "AMES",
                    "startTime": starttime,
                    "endTime": endtime
                    }])
                print(info)
                if info["result"]:
                    snstatus[i]["sn"] = sn
                    print("creatsn post success")
                    return
                else:
                    print("creatsn post error")
                    return
            else:
                snlen = len(snstatus)
                if i in range(snlen):
                    if sn == snstatus[i]["sn"] and state == snstatus[i]["state"]:
                        continue
                    else:
                        info = json_requests_post("http://10.106.11.42:8049/restful/prod-plan/work-order-service/insert/ames", [{
                                "workOrderNo": sn,
                                "prodLineCode": "PL02",
                                "partNo": "",
                                "qty":qty,
                                "siteCode": "3310",
                                "userNo": "AMES",
                                "startTime": starttime,
                                "endTime": endtime
                            }])
                        print(info)
                        if info["result"]:
                            print("creatsn post success")
                            snstatus[i]["state"] = state
                            return
                        else:
                            print("creatsn post error")
                            return
        else:
            break
コード例 #22
0
ファイル: weiruiup.py プロジェクト: gaoqifa1996/weirui72

def do_post_cmd(cmd, n):
    client = tornado.httpclient.HTTPClient()
    cfg = read_cfg()

    if cfg is None:
        cfg = {}

    if cmd == "packstation":
        post_packstation(client, cfg)
    if cmd == "snstatus":
        post_snstatus(client, cfg)

    client.close()
    write_cfg(cfg)


def do_task():
    do_post_cmd("packstation", None)
    do_post_cmd("snstatus", None)


cfg_host = host = "http://dockerhost/cfg"

http_client = tornado.httpclient.HTTPClient()
model = json_post(http_client, cfg_host, {"cmd": "get", "key": "client"})

http_client.close()

do_task()
コード例 #23
0
def get_plan(client, tab, cfg, rec):
    st = None

    if tab in cfg:
        st = cfg[tab]

    #tsn = rec["tsn"]
    tsn = "11G 915 911"
    sn = rec["CID"]
    pt = rec["PT"]
    ig2 = rec["1G2"]
    b288 = rec["288"]
    gbt = rec["GBT"]

    pstar = datetime.datetime.strptime(pt, "%Y%m%d%H%M%S")
    nedtime = datetime.timedelta(minutes=15)
    pen = (pstar + nedtime).strftime("%Y-%m-%dT%H:%M:%S")
    pstart = str(pstar.strftime("%Y-%m-%dT%H:%M:%S"))
    pend = str(pen)

    if st is None:
        uidinfo = json_post(client, host_graphdbget(), {
            "n": "tech",
            "obj": "uid,sn",
            "opt": {
                "and": [{
                    "eq": "sn",
                    "v": tsn
                }]
            }
        })

        uid = uidinfo[0]["uid"]

        info = json_post(
            client, host_graphdb(), {
                "a": [{
                    "u":
                    "line-one",
                    "n":
                    "task",
                    "v": [[{
                        "k": "sn",
                        "v": sn
                    }, {
                        "k": "tech",
                        "u": uid
                    }, {
                        "k": "pstart",
                        "v": pstart
                    }, {
                        "k": "pend",
                        "v": pend
                    }, {
                        "k": "pnum",
                        "v": "1"
                    }, {
                        "k": "state",
                        "v": "open"
                    }, {
                        "k": "ig2",
                        "v": ig2
                    }, {
                        "k": "288",
                        "v": b288
                    }, {
                        "k": "gbt",
                        "v": gbt
                    }]]
                }]
            })
        if info == "Success":
            return info