from utils.PageHepler import db_page, db_page_entity from utils.apiDoc import * from sqlalchemy import or_ @inventory.route('/list') class InventoryList(Resource): @staticmethod def get(): inventoryListFilter = db.session.query(ReagtReagent.Name, ReagtReagent.Specification). \ join(ReagtStock, ReagtStock.ReagentId == ReagtReagent.ReagentId). \ filter(ReagtReagent.Using == True). \ group_by(ReagtReagent.Name, ReagtReagent.Specification).distinct() if request.args.get('query') is not None and request.args.get('query') != '': inventoryListFilter = db.session.query(ReagtReagent.Name, ReagtReagent.Specification). \ join(ReagtStock, ReagtStock.ReagentId == ReagtReagent.ReagentId). \ group_by(ReagtReagent.Name, ReagtReagent.Specification). \ filter(ReagtReagent.Using == True). \ filter(or_(ReagtReagent.Name.contains(request.args.get('query')), ReagtReagent.Specification .contains(request.args.get('query')), ReagtReagent.PinYinCode.contains(request.args.get('query')))).distinct() result_data = db_page(inventoryListFilter, ReagtReagent.Name, request.args, 10) return SuccessResponse(ResultCode.SUCCESS, {'totalNumber': inventoryListFilter.count(), 'list': result_data}, None) @inventory.route('/info') class InventoryInfo(Resource): @staticmethod def get(): data = request.args inventoryInfoFilter = db.session.query(ReagtStock.Code, ReagtReagent.Name, ReagtStock.Position, ReagtStock.LastNumber, ReagtReagent.TypeName, ReagtStock.Number, ReagtStock.InTime, ReagtReagent.Specification, ReagtStock.Expiration, ReagtReagent.Maker, ReagtStock.SupplierName, ReagtReagent.CertificationCode, ReagtStock.ProductionBatch, ReagtReagent.UnitPrice, ReagtReagent.SellingPrice, ReagtStock.VerifyPeople, ReagtReagent.Unit, ReagtReagent.SmallestUnit, ReagtReagent.Ratio, ReagtStock.MinNumberUnit, ReagtStock.StockId). \ filter(ReagtReagent.Name == data.get('Name'), ReagtReagent.Specification == data.get('Specification')). \ join(ReagtStock, ReagtStock.ReagentId == ReagtReagent.ReagentId) result_data = db_page(inventoryInfoFilter, ReagtStock.InTime, data, 12) return SuccessResponse(ResultCode.SUCCESS, {'totalNumber': inventoryInfoFilter.count(), 'list': result_data}, None) @inventory.route('/stockList') class StockFile(Resource): """ 库存盘点单 """ @staticmethod def get(): inventoryListFilter = db.session.query(ReagtReagent.Name, ReagtReagent.Specification, ReagtStock.Position, ReagtStock.LastNumber, ReagtReagent.Unit, ReagtStock.MinNumberUnit, ReagtReagent.SmallestUnit, ReagtReagent.Ratio, ReagtReagent.Maker, ReagtStock.ProductionBatch, ReagtReagent.PinYinCode ). \ join(ReagtStock, ReagtStock.ReagentId == ReagtReagent.ReagentId).order_by(ReagtReagent.PinYinCode) return SuccessResponse(ResultCode.SUCCESS, {'list': db_page(inventoryListFilter, ReagtStock.InTime, request.args, inventoryListFilter.count())}, None)