# -*- coding: utf-8 -*- """ api.bai ~~~~~~~~~~~~~~ 有关报损的接口. :copyright: 云南新八达科技有限公司. :author: 李进才. """ import pandas as pd from diff.stock import getDiffStockList from utils.PageHepler import db_page, db_page_entity from utils.apiDoc import * from utils.configOperatingTypeHelper import GetOperatingTypeScrap from utils.outStockHelper import * from utils.scrapHelper import scrap_ @bad.route('/upload') class BadUpload(Resource): """ 报损 """ @staticmethod def post(): token = request.headers.get('X-Token') data = request.json app.logger.info(data) reagentStock = ReagtStock.query.filter_by(StockId=data['StockId']).first() reagentReagent = ReagtReagent.query.filter_by(ReagentId=reagentStock.ReagentId).first() if data['OutStockNumber'] > reagentStock.LastNumber: return BadResponse(ResultCode.PARAM_IS_INVALID, None, None) if data['OutStockNumber'] < reagentStock.LastNumber or (data['OutStockNumber'] == reagentStock.LastNumber and reagentStock.MinNumberUnit > data['OutStockNumber'] * reagentReagent.Ratio + data['MinNumberUnit']): LogAdd(token, GetOperatingTypeBad(), data, data['Code'], data['Name'], reagentStock.PinYinCode, data['OutStockNumber'], data['Specification'], data['Position'], operateMinNumber= data['MinNumberUnit'],reagentId=reagentReagent.ReagentId) reagentStock.LastNumber -= data['OutStockNumber'] reagentStock.MinNumberUnit -= data['OutStockNumber'] * reagentReagent.Ratio reagentStock.MinNumberUnit -= data['MinNumberUnit'] db.session.commit() elif data['OutStockNumber'] == reagentStock.LastNumber: LogAdd(token, GetOperatingTypeBad(), data, data['Code'], data['Name'], reagentStock.PinYinCode, data['OutStockNumber'], data['Specification'], data['Position'], operateMinNumber= data['MinNumberUnit'], reagentId=reagentStock.ReagentId) db.session.delete(reagentStock) db.session.delete(reagentStock) db.session.commit() reagentBad = ReagtBad(VerifyTime=datetime.now().strftime("%Y-%m-%d %H:%M"), Number=data['OutStockNumber'], VerifyPeople=verify_jwt_username(token), Code=data['Code'], Remark=data['Remark']) db.session.add(reagentBad) db.session.commit() return SuccessResponse(ResultCode.SUCCESS, None, None) @bad.route('/scrap') class Scrap(Resource): """ 报废单个试剂 """ @staticmethod def get(): token = request.headers.get('X-Token') scrap_(request.args.get('StockId'), request.args.get('scrapNumber'), token, request.args) return SuccessResponse(ResultCode.SUCCESS, None, None) @bad.route('/scrapExpirationList') class ScrapExpirationList(Resource): """ 过期待报废药品列表 """ @staticmethod def get(): data = request.args filterObject = getDiffStockList() filterObject = filterObject.filter(ReagtStock.Expiration < datetime.now()) data_list = db_page(filterObject, ReagtStock.Expiration, data, 3) return SuccessResponse(ResultCode.SUCCESS, {'totalNumber': filterObject.count(), 'list': data_list}, None) @bad.route('/scrapExpiration') class ScrapExpiration(Resource): """ 一键报废过期药品 """ @staticmethod def get(): token = request.headers.get('X-Token') for expiration in ReagtStock.query.filter(ReagtStock.Expiration < datetime.now()).all(): scrap_(expiration.StockId, expiration.LastNumber, token, request.args) return SuccessResponse(ResultCode.SUCCESS, None, None) @bad.route('/scrapList') class ScrapList(Resource): """ 报废单 数据 """ @staticmethod def get(): scrap_list = ReagtLog.query.filter(ReagtLog.OperatingType == GetOperatingTypeScrap()). \ filter(ReagtLog.OperatingTime > request.args.get('startTime')). \ filter(ReagtLog.OperatingTime < request.args.get('endTime')) return SuccessResponse(ResultCode.SUCCESS, {'list': db_page_entity(scrap_list, request.args, scrap_list.count())}, None)