Ejemplo n.º 1
0
def PermissionsSave():
    if request.method == 'POST':
        data = request.values
        try:
            datastr = json.loads(data.get("data"))
            #删除之前的权限
            perss = db_session.query(Permission).filter(Permission.WorkNumber == datastr[0].get("WorkNumber")).all()
            for pe in perss:
                db_session.delete(pe)
            db_session.commit()
            for i in datastr:
                per = Permission()
                per.MenuName = i.get("MenuName")
                per.MenuType = i.get("MenuType")
                per.MenuCode = i.get("MenuCode")
                per.Name = i.get("Name")
                per.WorkNumber = i.get("WorkNumber")
                db_session.add(per)
            db_session.commit()
            return 'OK'
        except Exception as e:
            db_session.rollback()
            print(e)
            logger.error(e)
            insertSyslog("error", "添加用户报错Error:" + str(e), current_user.Name)
            return json.dumps([{"status": "Error:" + str(e)}], cls=AlchemyEncoder, ensure_ascii=False)
Ejemplo n.º 2
0
def addUser():
    if request.method == 'POST':
        data = request.values
        str = request.get_json()
        try:
            json_str = json.dumps(data.to_dict())
            if len(json_str) > 10:
                user = User()
                user.WorkNumber=data['WorkNumber']
                ocal = db_session.query(User).filter(User.WorkNumber == user.WorkNumber).first()
                if ocal != None:
                    return "工号重复,请重新录入!"
                user.Name=data['Name']
                user.Password=user.password(data['Password'])
                # print(user.Password)
                user.Status="1" # 登录状态先设置一个默认值1:已登录,0:未登录
                user.Creater=current_user.Name
                user.CreateTime=datetime.datetime.now()
                user.LastLoginTime=datetime.datetime.now()
                user.IsLock='false' # data['IsLock'],
                user.OrganizationName=data['OrganizationName']
                user.RoleName=data['RoleName']
                db_session.add(user)
                db_session.commit()
                return 'OK'
        except Exception as e:
            db_session.rollback()
            print(e)
            logger.error(e)
            insertSyslog("error", "添加用户报错Error:" + str(e), current_user.Name)
            return json.dumps([{"status": "Error:" + str(e)}], cls=AlchemyEncoder, ensure_ascii=False)
Ejemplo n.º 3
0
def menuToUser():
    if request.method == 'GET':
        data = request.values  # 返回请求中的参数和form
        try:
            # 获取菜单和用户并存入数据库
            role_id = data['role_id']  # 获取角色ID
            if role_id is None:
                return
            menus = db_session.query(Menu).join(Role_Menu, isouter=True).filter_by(Role_ID=id).all()
            if menus:
                db_session.delete(menus)
                db_session.commit()
            menu_id = data['menu_id'] # 获取菜单ID
            if menu_id is None:
                return
            menu_id = re.findall(r'\d+\.?\d*', menu_id)
            for r in menu_id:
                role = db_session.query(Role).filter_by(ID=role_id).first()
                menu = db_session.query(Menu).filter_by(ID=r).first()
                # 将菜单ID和角色ID存入User_Role
                menu.roles.append(role)
                db_session.add(menu)
                db_session.commit()
            # 存入数据库后跳转到权限分配页面
            return redirect(url_for("roleright"))
        except Exception as e:
            print(e)
            logger.error(e)
            insertSyslog("error", "权限分配下为角色添加权限Error:" + str(e), current_user.Name)
            return json.dumps([{"status": "Error:" + str(e)}], cls=AlchemyEncoder, ensure_ascii=False)
Ejemplo n.º 4
0
def read_Excel(file_dir):
    # 打开文件
    workbook = xlrd.open_workbook(file_dir)
    if workbook:
        # 获取所有sheet
        # print(workbook.sheet_names())# [u'sheet1', u'sheet2']
        # sheet1_name = workbook.sheet_names()[0]
        # 根据sheet索引或者名称获取sheet内容
        # sheet1 = workbook.sheet_by_index(0)
        sheet1 = workbook.sheet_by_name('Sheet1')

        # sheet的名称,行数,列数
        print(sheet1.name, sheet1.nrows, sheet1.ncols)

        if sheet1:
            if sheet1.nrows <= 0:
                return
            for row in range(1, sheet1.nrows):
                row_value = sheet1.row_values(row)
                if row_value[0] is None or row_value[0] == '':
                    continue
                db_session.add(
                    QualityControlTree(Name=row_value[0],
                                       Note=row_value[1],
                                       ParentNode=int(row_value[2]),
                                       BatchTag=row_value[3],
                                       Brand=row_value[4],
                                       EquipmentCode=row_value[5]))
                db_session.commit()
Ejemplo n.º 5
0
def saverolepermission():
    '''
    角色添加权限
    :return:
    '''
    if request.method == 'POST':
        data = request.values
        try:
            roleID = data.get("roleID")
            permissionIDs = data.get("permissionIDs")
            if permissionIDs:
                permissionIDs = eval(permissionIDs)
            roleclass = db_session.query(Role).filter(Role.ID == int(roleID)).first()
            sql = "delete from RolePermission where RoleID = " + roleID
            db_session.execute(sql)
            db_session.commit()
            for pid in permissionIDs:
                permissioncalss = db_session.query(Permission).filter(Permission.ID == int(pid)).first()
                rpclas = db_session.query(RolePermission).filter(RolePermission.RoleID == roleclass.ID, RolePermission.PermissionID == permissioncalss.ID).first()
                if not rpclas:
                    rp = RolePermission()
                    rp.RoleID = roleclass.ID
                    rp.RoleName = roleclass.RoleName
                    rp.PermissionID = permissioncalss.ID
                    rp.PermissionName = permissioncalss.PermissionName
                    db_session.add(rp)
                    db_session.commit()
            return json.dumps("OK", cls=AlchemyEncoder, ensure_ascii=False)
        except Exception as e:
            db_session.rollback()
            print(e)
            logger.error(e)
            insertSyslog("error", "角色添加权限Error:" + str(e), current_user.Name)
Ejemplo n.º 6
0
def addUpdateEletronicBatchDataStore(PUID, BatchID, ke, val):
    try:
        oc = db_session.query(EletronicBatchDataStore).filter(
            EletronicBatchDataStore.PUID == PUID,
            EletronicBatchDataStore.BatchID == BatchID,
            EletronicBatchDataStore.Content == ke).first()
        if oc == None:
            db_session.add(
                EletronicBatchDataStore(BatchID=BatchID,
                                        PUID=PUID,
                                        Content=ke,
                                        OperationpValue=val,
                                        Operator=current_user.Name))
        else:
            oc.Content = ke
            oc.OperationpValue = val
            oc.Operator = current_user.Name
        db_session.commit()
    except Exception as e:
        db_session.rollback()
        print(e)
        logger.error(e)
        insertSyslog("error", "保存更新EletronicBatchDataStore报错:" + str(e),
                     current_user.Name)
        return json.dumps("保存更新EletronicBatchDataStore报错",
                          cls=AlchemyEncoder,
                          ensure_ascii=False)
Ejemplo n.º 7
0
def add_role():
    rcode = request.json.get('role_code')
    did = request.json.get('did')
    rname = request.json.get('role_name')
    rdes = request.json.get('role_description')
    department = db_session.query(DepartmentManager).filter(
        DepartmentManager.ID == int(did)).first()
    role = Role(RoleCode=rcode,
                RoleName=rname,
                Description=rdes,
                ParentNode=department.DepartCode)
    db_session.add(role)
    db_session.commit()
    return json.dumps({'code': 10003, 'msg': '新增成功', 'data': {'rid': role.ID}})
Ejemplo n.º 8
0
def add_department():
    did = request.json.get('department_code')
    dname = request.json.get('department_name')
    fname = request.json.get('factory_name')
    depart = DepartmentManager(DepartCode=did,
                               DepartName=dname,
                               DepartLoad=fname)
    db_session.add(depart)
    db_session.commit()
    return json.dumps({
        'code': 10000,
        'msg': '新增成功',
        'data': {
            'Did': depart.ID
        }
    })
Ejemplo n.º 9
0
def insertSyslog(operationType, operationContent, userName):
        try:
            if operationType == None: operationType = ""
            if operationContent == None:
                operationContent = ""
            else:
                operationContent = str(operationContent)
            if userName == None: userName = ""
            ComputerName = socket.gethostname()
            db_session.add(
                SysLog(OperationType=operationType, OperationContent=operationContent,OperationDate=datetime.datetime.now(), UserName=userName,
                       ComputerName=ComputerName, IP=socket.gethostbyname(ComputerName)))
            db_session.commit()
        except Exception as e:
            db_session.rollback()
            print(e)
            logger.error(e)
Ejemplo n.º 10
0
def addrole():
    '''
    添加角色
    :return:
    '''
    try:
        if request.method == 'POST':
            role = Role()
            role.RoleName = "角色名字"
            role.Description = ""
            role.RoleCode = "角色编码"
            db_session.add(role)
            db_session.commit()
    except Exception as e:
        print(e)
        db_session.rollback()
        logger.error(e)
        return json.dumps([{"status": "Error:" + str(e)}], cls=AlchemyEncoder, ensure_ascii=False)
Ejemplo n.º 11
0
def keep_plans():
    """保养计划"""
    try:
        json_data = request.get_json()
        # equipments = ['XXF-2', 'XXF-1', 'PYF-1']
        equipments = json_data.get('EquipmentCode')
        if len(equipments) == 1:
            equipment_code = equipments[0]
        else:
            equipment_code = '  '.join(equipments)
        work_time = add_date(json_data.get('WeekTime'),
                             json_data.get('StartTime'))
        work_type = json_data.get('Type')
        week_time = '单次' if work_type == '单次' else json_data.get('WeekTime')
        data = KeepPlan(EquipmentCode=equipment_code,
                        No=get_no(json_data.get('ApplyTime')),
                        Worker=current_user.Name,
                        ApplyTime=json_data.get('ApplyTime'),
                        Type=json_data.get('Type'),
                        StartTime=json_data.get('StartTime'),
                        Describe=json_data.get('Describe'),
                        WorkTime=work_time,
                        WeekTime=week_time)
        db_session.add(data)
        db_session.commit()
        db_session.close()
        return json.dumps({
            'code': '10001',
            'message': '操作成功'
        },
                          cls=AlchemyEncoder,
                          ensure_ascii=False)
    except Exception as e:
        logger.error(e)
        insertSyslog("error", "保养计划表添加错误:" + str(e), current_user.Name)
        return json.dumps({
            'code': '20002',
            'message': str(e)
        },
                          cls=AlchemyEncoder,
                          ensure_ascii=False)
Ejemplo n.º 12
0
def saveuserusershiftsgroup():
    '''
    用户添加班组
    :return:
    '''
    if request.method == 'POST':
        data = request.values
        try:
            userID = data.get("userID")
            shiftsgroupIDs = data.get("shiftsgroupIDs")
            if shiftsgroupIDs:
                shiftsgroupIDs = eval(shiftsgroupIDs)
            userclass = db_session.query(User).filter(
                User.ID == int(userID)).first()
            sql = "delete from usershiftsgroup where UserID = " + userID
            db_session.execute(sql)
            db_session.commit()
            for pid in shiftsgroupIDs:
                shiftsgroupcalss = db_session.query(ShiftsGroup).filter(
                    ShiftsGroup.ID == int(pid)).first()
                rpclas = db_session.query(UserShiftsGroup).filter(
                    UserShiftsGroup.UserID == userclass.ID,
                    UserShiftsGroup.ShiftsGroupID ==
                    shiftsgroupcalss.ID).first()
                if not rpclas:
                    rp = UserShiftsGroup()
                    rp.UserID = userclass.ID
                    rp.Name = userclass.Name
                    rp.ShiftsGroupID = shiftsgroupcalss.ID
                    rp.ShiftsGroupName = shiftsgroupcalss.ShiftsGroupName
                    db_session.add(rp)
                    db_session.commit()
            return json.dumps("OK", cls=AlchemyEncoder, ensure_ascii=False)
        except Exception as e:
            db_session.rollback()
            print(e)
            logger.error(e)
            insertSyslog("error", "角色添加权限Error:" + str(e), current_user.Name)
Ejemplo n.º 13
0
def saveroleuser():
    '''
    用户添加角色
    :return:
    '''
    if request.method == 'POST':
        data = request.values
        try:
            UserID = data.get("UserID")
            RoleIDs = data.get("RoleIDs")
            if RoleIDs:
                RoleIDs = eval(RoleIDs)
            userclass = db_session.query(User).filter(
                User.ID == int(UserID)).first()
            sql = "delete from RoleUser where UserID = " + UserID
            db_session.execute(sql)
            db_session.commit()
            for pid in RoleIDs:
                rolecalss = db_session.query(Role).filter(
                    Role.ID == int(pid)).first()
                rpclas = db_session.query(RoleUser).filter(
                    RoleUser.UserID == userclass.ID,
                    RoleUser.RoleID == rolecalss.ID).first()
                if not rpclas:
                    rp = RoleUser()
                    rp.UserID = userclass.ID
                    rp.UserName = userclass.Name
                    rp.RoleID = rolecalss.ID
                    rp.RoleName = rolecalss.RoleName
                    db_session.add(rp)
                    db_session.commit()
            return json.dumps("OK", cls=AlchemyEncoder, ensure_ascii=False)
        except Exception as e:
            db_session.rollback()
            print(e)
            logger.error(e)
            insertSyslog("error", "用户添加角色Error:" + str(e), current_user.Name)
Ejemplo n.º 14
0
def insert(tablename, data):
    '''
    :param tablename: 要进行插入数据的model
    :param insert_dict: 要进行插入的数据,数据类型为dict,key为model的字段属性,value为要插入的值
    :return: 返回json信息,包含status,message
    '''
    if hasattr(tablename, '__tablename__'):
        oclass = tablename()
        if isinstance(data, dict) and len(data) > 0:
            try:
                # if "ID" in data.keys():
                #     popdata = data.pop("ID")
                for key in data:
                    if key != "ID":
                        setattr(oclass, key, data[key])
                db_session.add(oclass)
                db_session.commit()
                return 'OK'
            except Exception as e:
                print(e)
                db_session.rollback()
                logger.error(e)
                insertSyslog("error", "%s数据添加报错:"%tablename + str(e), current_user.Name)
                return json.dumps('数据添加失败!')
Ejemplo n.º 15
0
def update(tablename, new_data):
    '''
    :param tablename:要进行更新的model
    :param new_data: 要进行更新的数据,数据类型为dict,key为model的字段属性,value为要更新的值
    :return: 返回json信息,包含status,message
    '''
    if hasattr(tablename, '__tablename__'):
        if isinstance(new_data, dict) and len(new_data) > 0:
            try:
                oclass = db_session.query(tablename).filter(tablename.ID==new_data['ID']).first()
                if oclass:
                    for key in new_data:
                        if hasattr(oclass, key) and key != 'ID':
                            setattr(oclass, key, new_data[key])
                    db_session.add(oclass)
                    db_session.commit()
                    return 'OK'
                else:
                    return json.dumps('当前记录不存在!', cls=AlchemyEncoder, ensure_ascii=False)
            except Exception as e:
                db_session.rollback()
                logger.error(e)
                insertSyslog("error", "%s数据更新报错:"%tablename + str(e), current_user.Name)
                return json.dumps('数据更新失败!', cls=AlchemyEncoder, ensure_ascii=False)
Ejemplo n.º 16
0
def OperatorCheckSaveUpdate():
    '''操作人检查人确认'''
    if request.method == 'GET':
        data = request.values
        try:
            ConfirmFlow = data.get("ConfirmFlow")
            BatchNum = data.get("BatchNum")
            Confirmer = data.get("Confirmer")
            key = data.get("key")
            oclass = db_session.query(FlowConfirm).filter(
                FlowConfirm.BatchNum == BatchNum,
                FlowConfirm.key == key).first()
            if oclass == None or oclass == "":
                db_session.add(
                    FlowConfirm(BatchNum=BatchNum,
                                ConfirmFlow=ConfirmFlow,
                                Confirmer=Confirmer,
                                ConfirmTime=datetime.datetime.now().strftime(
                                    '%Y-%m-%d %H:%M:%S'),
                                key=key))
                db_session.add(
                    AuditTrace(Operation=ConfirmFlow,
                               DeitalMSG="用户:" + Confirmer + " 节点:" +
                               ConfirmFlow + "确认",
                               ReviseDate=datetime.datetime.now().strftime(
                                   '%Y-%m-%d %H:%M:%S'),
                               User=current_user.Name))
            else:
                oclass.Confirmer = Confirmer
                oclass.UpdateTime = datetime.datetime.now().strftime(
                    '%Y-%m-%d %H:%M:%S')
                db_session.add(
                    AuditTrace(Operation=ConfirmFlow + "修改",
                               DeitalMSG="用户:" + Confirmer + " 节点:" +
                               ConfirmFlow + "修改",
                               ReviseDate=datetime.datetime.now().strftime(
                                   '%Y-%m-%d %H:%M:%S'),
                               User=current_user.Name))
            db_session.commit()
            return 'OK'
        except Exception as e:
            db_session.rollback()
            print(e)
            logger.error(e)
            insertSyslog("error", "/OperatorCheckSaveUpdate报错:" + str(e),
                         current_user.Name)
            return json.dumps("保存更新EletronicBatchDataStore报错",
                              cls=AlchemyEncoder,
                              ensure_ascii=False)
Ejemplo n.º 17
0
def keep_tasks():
    """保养任务表"""
    try:
        query_data = db_session.query(KeepPlan).filter_by(Status='待保养').all()
        if request.method == 'GET':
            # 每页多少条
            limit = int(request.values.get('limit', '5'))
            # 当前页
            offset = int(request.values.get('offset', '1'))
            for item in query_data:
                q = db_session.query(KeepTask).filter_by(No=item.No).first()
                if not q and get_time_stamp(item.WorkTime):
                    data = KeepTask(EquipmentCode=item.EquipmentCode,
                                    No=item.No,
                                    Worker=item.Worker,
                                    Status=item.Status,
                                    ApplyTime=item.ApplyTime,
                                    StartTime=item.StartTime,
                                    WorkTime=item.WorkTime,
                                    WeekTime=item.WeekTime,
                                    Type=item.Type)
                    db_session.add(data)
                    db_session.commit()
                # if item.Type == '单次':
                #     pass
                # db_session.delete(item)
                # db_session.commit()
            data = db_session.query(KeepTask).order_by(
                KeepTask.ApplyTime.desc()).limit(limit).offset(
                    (offset - 1) * limit)
            total = db_session.query(KeepTask).count()
            return json.dumps(
                {
                    'code': '10001',
                    'message': '操作成功',
                    'data': {
                        'rows': data.all(),
                        'total': total
                    }
                },
                cls=AlchemyEncoder,
                ensure_ascii=False)
        if request.method == 'POST':
            json_data = request.values
            no = json_data.get('No')
            end_time = json_data.get('EndTime')
            content = json_data.get('Content')
            item = db_session.query(KeepTask).filter_by(No=no).first()
            data = KeepRecord(EquipmentCode=item.EquipmentCode,
                              No=no,
                              Worker=item.Worker,
                              Status='已完成',
                              Type=item.Type,
                              KeepWorker=current_user.Name,
                              ApplyTime=item.ApplyTime,
                              StartTime=item.StartTime,
                              Describe=item.Describe,
                              Content=content,
                              WeekTime=item.WeekTime,
                              EndTime=end_time)
            db_session.delete(item)
            db_session.commit()
            keep_plan = db_session.query(KeepPlan).filter_by(No=no).first()
            if keep_plan and keep_plan.Type == '周期':
                keep_plan.WorkTime = add_date(keep_plan.WeekTime,
                                              keep_plan.WorkTime)
                db_session.add_all([data, keep_plan])
                db_session.commit()
                db_session.close()
                return json.dumps({
                    'code': '10001',
                    'message': '操作成功'
                },
                                  cls=AlchemyEncoder,
                                  ensure_ascii=False)
            else:
                db_session.delete(keep_plan)
                db_session.add(data)
                db_session.commit()
                db_session.close()
            return json.dumps({
                'code': '10001',
                'message': '操作成功'
            },
                              cls=AlchemyEncoder,
                              ensure_ascii=False)
    except Exception as e:
        logger.error(e)
        insertSyslog("error", "保养任务表修改错误:" + str(e), current_user.Name)
        return json.dumps({
            'code': '20002',
            'message': str(e)
        },
                          cls=AlchemyEncoder,
                          ensure_ascii=False)
Ejemplo n.º 18
0
def insertdb_datasummaryanalysis():
    '''
    数据汇总分析数据写入
    :return:
    '''
    if request.method == 'GET':
        data = request.values
        try:
            CollectDay = data.get("CollectDay")
            CollectClass = data.get("CollectClass")

            #数据写入----------------------------------------------------------
            db_session.commit()
            collectdays_list = []
            if CollectClass == "day":
                collectdays_list.append(CollectDay)
            elif CollectClass == "month":
                for i in range(calendar.monthrange(int(CollectDay[0:4]), int(CollectDay[5:7]))[1] + 1)[1:]:
                    collectdays_list.append(CollectDay[0:8]+("0"+str(i) if i<10 else str(i)))
            for i in collectdays_list:
                if datetime.datetime.strptime(i, '%Y-%m-%d') <= (datetime.datetime.now() - datetime.timedelta(days=1)):
                    dasoc = db_session.query(DataSummaryAnalysis).filter(DataSummaryAnalysis.CollectionDate == i).first()
                    if not dasoc:
                        daysta = i + " 00:00:00"
                        dayend = i + " 23:59:59"
                        dsa = DataSummaryAnalysis()
                        sql = "SELECT  SUM(`MB2TCP3.A_ACR_12.Ep_total_q`) AS ConsumptionLfirst,SUM(`MB2TCP3.A_ACR_20.Ep_total_q`) AS ConsumptionLsecond FROM incrementelectrictable WHERE CollectionDate BETWEEN '" \
                              + daysta + "' AND '" + dayend + "'"
                        re = db_session.execute(sql).fetchall()
                        ConsumptionLfirst = 0
                        ConsumptionLsecond = 0
                        for oc in re:
                            ConsumptionLfirst = 0 if oc["ConsumptionLfirst"] == None or oc["ConsumptionLfirst"] == "" else round(int(oc["ConsumptionLfirst"]),2)
                            ConsumptionLsecond = 0 if oc["ConsumptionLsecond"] == None or oc["ConsumptionLsecond"] == "" else round(int(oc["ConsumptionLsecond"]))
                        sql1 = "SELECT  AVG(TY_CO2_AVG) AS CarbonDioxideContent,AVG(ZT01_TEMP_AVG) AS PlatformTemperature,AVG(ZT01_SD_AVG) AS PlatformHumidity,AVG(ZT02_TEMP_AVG) AS StationHallTemperature,AVG(ZT02_SD_AVG) AS StationHallHumidity" \
                              " FROM datahistory WHERE TY_CO2_AVG != 'None' AND TY_CO2_AVG != 'init' AND ZT01_TEMP_AVG != 'None' AND ZT01_TEMP_AVG != 'init' AND ZT01_SD_AVG != 'None' " \
                              "AND ZT01_SD_AVG != 'init' AND ZT02_TEMP_AVG != 'None' AND ZT02_TEMP_AVG != 'init' AND ZT02_SD_AVG != 'None' AND ZT02_SD_AVG != 'init' AND SampleTime BETWEEN '" + daysta + "' AND '" + dayend + "'"
                        re1 = db_session.execute(sql1).fetchall()
                        CarbonDioxideContent = ""
                        PlatformHumidity = ""
                        PlatformTemperature = ""
                        StationHallTemperature = ""
                        StationHallHumidity = ""
                        for j in re1:
                            CarbonDioxideContent = 0 if j["CarbonDioxideContent"] == None else round(float(j["CarbonDioxideContent"]), 2)
                            PlatformHumidity = 0 if j["PlatformHumidity"] == None else round(float(j["PlatformHumidity"]), 2)
                            PlatformTemperature = 0 if j["PlatformTemperature"] == None else round(float(j["PlatformTemperature"]), 2)
                            StationHallTemperature = 0 if j["StationHallTemperature"] == None else round(float(j["StationHallTemperature"]), 2)
                            StationHallHumidity = 0 if j["StationHallHumidity"] == None else round(float(j["StationHallHumidity"]), 2)
                        dsa.CollectionDate = i
                        dsa.CarbonDioxideContent = CarbonDioxideContent
                        dsa.ConsumptionLfirst = ConsumptionLfirst
                        dsa.ConsumptionLsecond = ConsumptionLsecond
                        dsa.ConsumptionLtotal = ConsumptionLsecond + ConsumptionLfirst
                        dsa.PlatformHumidity = PlatformHumidity
                        dsa.PlatformTemperature = PlatformTemperature
                        dsa.StationHallTemperature = StationHallTemperature
                        dsa.StationHallHumidity = StationHallHumidity
                        db_session.add(dsa)
                        db_session.commit()

            #数据查询-------------------------------------------------------------
            pages = int(data.get("offset"))  # 页数
            rowsnumber = int(data.get("limit"))  # 行数
            inipage = pages * rowsnumber + 0  # 起始页
            endpage = pages * rowsnumber + rowsnumber  # 截止页
            if CollectClass == "month":
                ocalss = db_session.query(DataSummaryAnalysis).filter(DataSummaryAnalysis.CollectionDate.between(CollectDay[0:7],
                             CollectDay[0:8]+str(calendar.monthrange(int(CollectDay[0:4]), int(CollectDay[5:7]))[1]))).order_by(desc("ID")).all()[inipage:endpage]
                total = db_session.query(DataSummaryAnalysis).filter(
                    DataSummaryAnalysis.CollectionDate.between(CollectDay[0:7],
                                                               CollectDay[0:8] + str(
                                                                   calendar.monthrange(int(CollectDay[0:4]),
                                                                                       int(CollectDay[5:7]))[1]))).count()
            elif CollectClass == "day":
                ocalss = db_session.query(DataSummaryAnalysis).filter(
                    DataSummaryAnalysis.CollectionDate == CollectDay).order_by(desc("ID")).all()[inipage:endpage]
                total = db_session.query(DataSummaryAnalysis).filter(
                    DataSummaryAnalysis.CollectionDate == CollectDay).count()
            jsonocalss = json.dumps(ocalss, cls=AlchemyEncoder, ensure_ascii=False)
            return '{"total"' + ":" + str(total) + ',"rows"' + ":\n" + jsonocalss + "}"
        except Exception as e:
            db_session.rollback()
            print(e)
            logger.error(e)
            insertSyslog("error", "数据汇总分析数据写入查询报错Error:" + str(e), current_user.Name)
Ejemplo n.º 19
0
def schedule_lqt():
    """排班日程"""
    try:
        if request.method == 'GET':
            data = db_session.query(Schedulelqt).filter_by(
                energystrategyCode=request.values.get('code')).all()
            return json.dumps({
                'code': '20001',
                'message': '成功',
                'data': data
            },
                              cls=AlchemyEncoder,
                              ensure_ascii=False)
        if request.method == 'POST':
            new_start = request.values.get('start_time')
            new_end = request.values.get('end_time')
            code = request.values.get('energystrategyCode')
            query_list = db_session.query(Schedulelqt).filter_by(
                energystrategyCode=code).all()
            if query_list:
                for item in query_list:
                    if count_time(item.enablestarttime, item.enableendtime,
                                  new_start, new_end) != 'yes':
                        return json.dumps({
                            'code': '20003',
                            'message': '工作时间设置出现冲突'
                        })
                data = Schedulelqt(enablestarttime=new_start,
                                   enableendtime=new_end,
                                   comment=request.values.get('comment'),
                                   energystrategyCode=code,
                                   lqt1_allowrun=request.values.get('lqt1'),
                                   lqt2_allowrun=request.values.get('lqt2'))
                db_session.add(data)
                db_session.commit()
                db_session.close()
                return json.dumps({'code': '20001', 'message': '设置成功'})
            else:
                data = Schedulelqt(enablestarttime=new_start,
                                   comment=request.values.get('comment'),
                                   energystrategyCode=request.values.get(
                                       'energystrategyCode'),
                                   enableendtime=new_end,
                                   lqt1_allowrun=request.values.get('lqt1'),
                                   lqt2_allowrun=request.values.get('lqt2'))
                db_session.add(data)
                db_session.commit()
                db_session.close()
                return json.dumps({'code': '20001', 'message': '设置成功'})
        if request.method == 'DELETE':
            items = request.values.get('ID').split(',')
            for item in items:
                data = db_session.query(Schedulelqt).filter_by(
                    ID=int(item)).first()
                db_session.delete(data)
            db_session.commit()
            return json.dumps({'code': '20001', 'message': '删除成功'})
        if request.method == 'PUT':
            new_start = request.values.get('start_time')
            new_end = request.values.get('end_time')
            query_data = db_session.query(Schedulelqt).filter_by(
                ID=request.values.get('ID')).first()
            code = request.values.get('energystrategyCode')
            query_list = db_session.query(Schedulelqt).filter_by(
                energystrategyCode=code).all()
            results = []
            for i in query_list:
                if i.ID != query_data.ID:
                    results.append(i)
            if results:
                for item in results:
                    if count_time(item.enablestarttime, item.enableendtime,
                                  new_start, new_end) != 'yes':
                        return json.dumps({
                            'code': '20003',
                            'message': '工作时间设置出现冲突'
                        })
                query_data.enablestarttime = new_start
                query_data.enableendtime = new_end
                query_data.comment = request.values.get('comment')
                query_data.lqt1_allowrun = request.values.get('lqt1')
                query_data.lqt2_allowrun = request.values.get('lqt2')
                db_session.add(query_data)
                db_session.commit()
                db_session.close()
                return json.dumps({'code': '20001', 'message': '设置成功'})
            else:
                query_data.enablestarttime = new_start
                query_data.enableendtime = new_end
                query_data.comment = request.values.get('comment')
                query_data.lqt1_allowrun = request.values.get('lqt1')
                query_data.lqt2_allowrun = request.values.get('lqt2')
                db_session.add(query_data)
                db_session.commit()
                db_session.close()
            return json.dumps({'code': '20001', 'message': '设置成功'})
    except Exception as e:
        logger.error(e)
        insertSyslog("error", "工时安排设置出错:" + str(e), current_user.Name)
        return json.dumps({
            'code': '20002',
            'message': str(e)
        },
                          cls=AlchemyEncoder,
                          ensure_ascii=False)