release.py 2.2 KB
# coding=utf-8
#author:        4N
#createtime:    2021/2/23
#email:         nheweijun@sina.com
import hashlib
from flask import current_app as app
import socket

from app.util.component.ApiTemplate import ApiTemplate
from app.modules.data.models import Task,InsertingLayerName,db,Table
import datetime
import traceback
from sqlalchemy import or_
class Api(ApiTemplate):

    def process(self):
        try:
            # 遗留任务变成失败
            last_tasks = db.session.query(Task).filter(or_(Task.state == 0, Task.state == 2))
            last_tasks.update({"state": -1,"process":"入库失败","update_time":datetime.datetime.now()})
            last_lins = db.session.query(InsertingLayerName).all()
            if last_lins:
                for lin in last_lins:
                    db.session.delete(lin)

            vacuate_tasks = db.session.query(Task).filter(or_(Task.state == 0, Task.state == 2)).filter_by(task_type = 2).all()
            for t in vacuate_tasks:
                table = Table.query.filter_by(guid=t.table_guid).one_or_none()
                if len(table.relate_table_vacuates.all()) > 0:
                    Table.query.filter_by(guid=t.table_guid).update({"is_vacuate": 1})
                else:
                    Table.query.filter_by(guid=t.table_guid).update({"is_vacuate": 0})

            vacutateing_table = Table.query.filter_by(is_vacuate=2).all()

            for vit in vacutateing_table:
                if len(vit.relate_table_vacuates.all()) > 0:
                    vit.is_vacuate = 1
                else:
                    vit.is_vacuate = 0

            db.session.commit()
        except Exception as e:
            # print(e)
            print(traceback.format_exc())

        return {"state": 1}

    api_doc={
    "tags":["Index接口"],
    "description":"Index接口",
    "parameters":[
    ],
    "responses":{
        200:{
            "schema":{
                "properties":{
                    "content":{
                        "type": "string",
                        "description": "The name of the user"
                    }
                }
            }
            }
        }
    }