You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
4.5 KiB
113 lines
4.5 KiB
# -*- 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)
|
|
|