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.
 
 
 
 
 

156 lines
6.2 KiB

from pypinyin import lazy_pinyin, Style
from sqlalchemy import or_
from utils.BatchCode import GetGroupCode
from utils.apiDoc import *
from utils.dictionaryHelper import *
from utils.listHelper import list2String
@dictionary.route('/positionList')
class PositionList(Resource):
@staticmethod
def get():
return GetList(ReagtPosition, ReagtPosition.PositionId, ReagtPosition.Position,
ReagtPosition.PositionCode, request.args)
@dictionary.route('/positionChange')
class PositionChange(Resource):
@staticmethod
def post():
return StatusChange(ReagtPosition, request.args['PositionId'],
request.args, ReagtPosition.PositionId, ReagtStock.Position, request.args['Position'])
@dictionary.route('/positionAdd')
class PositionAdd(Resource):
@staticmethod
def post():
data = Dict2Obj(request.json)
return DictionaryAdd(ReagtPosition.query.filter_by(Position=data.Position).first(),
ReagtPosition(Position=data.Position, Using=data.Using,
PositionCode=list2String(lazy_pinyin(data.Position,
style=Style.FIRST_LETTER))))
# @dictionary.route('/positionEdit')
# class PositionEdit(Resource):
# @staticmethod
# def post():
# if ReagtPosition.query.filter_by(Position=request.args['Position']).first() is not None:
# return SuccessResponse(ResultCode.DATA_ALREADY_EXISTED, None, None)
# positionEntity = ReagtPosition.query.filter_by(PositionId=request.args['PositionId']).first()
# db.session.query(ReagtStock).filter(ReagtStock.Position == positionEntity.Position)\
# .update({ReagtStock.Position: request.args['Position']})
# positionEntity.Position = request.args['Position']
# db.session.commit()
# return SuccessResponse(ResultCode.SUCCESS, None, None)
@dictionary.route('/supplierList')
class SupplierList(Resource):
@staticmethod
def get():
return GetList(ReagtSupplier, ReagtSupplier.SupplierId, ReagtSupplier.SupplierName,
ReagtSupplier.SupplierCode, request.args)
@dictionary.route('/supplierChange')
class SupplierChange(Resource):
@staticmethod
def post():
return StatusChange(ReagtSupplier, request.args['SupplierId'],
request.args, ReagtSupplier.SupplierId, ReagtStock.SupplierName,
request.args['SupplierName'])
@dictionary.route('/supplierAdd')
class SupplierAdd(Resource):
@staticmethod
def post():
data = Dict2Obj(request.json)
return DictionaryAdd(ReagtSupplier.query.filter_by(SupplierName=data.SupplierName).first(),
ReagtSupplier(SupplierName=data.SupplierName, Using=data.Using,
SupplierCode=list2String(lazy_pinyin(data.SupplierName,
style=Style.FIRST_LETTER))))
@dictionary.route('/groupAdd')
class GroupAdd(Resource):
@staticmethod
def post():
data = Dict2Obj(request.json)
return DictionaryAdd(ReagtGroup.query.filter_by(GroupName=data.GroupName).first(),
ReagtGroup(GroupName=data.GroupName, GroupCode=GetGroupCode()))
@dictionary.route('/groupDelete')
class GroupDelete(Resource):
@staticmethod
def post():
data = Dict2Obj(request.json)
reagent = ReagtReagent.query.filter_by(GroupName=data.GroupName).all()
if len(reagent) > 0:
return BadResponse(ResultCode.GROUP_INFO_IS_USING, None, None)
group = ReagtGroup.query.filter_by(GroupName=data.GroupName).first()
db.session.delete(group)
db.session.commit()
return SuccessResponse(ResultCode.SUCCESS, None, None)
@dictionary.route('/groupList')
class GroupList(Resource):
@staticmethod
def get():
return GetList(ReagtGroup, ReagtGroup.GroupId, ReagtGroup.GroupName, ReagtGroup.GroupCode,
request.args, is_all=True)
@dictionary.route('/reportItemList')
class ReportItemList(Resource):
@staticmethod
def get():
reportItem = db.session.query(ReagtReagent.ReportItem).group_by(ReagtReagent.ReportItem)\
.filter(ReagtReagent.ReportItem != None).all()
list_result = []
for item in reportItem:
list_result.append(item[0])
return SuccessResponse(ResultCode.SUCCESS, list_result, None)
@dictionary.route('/groupReagent')
class GroupReagent(Resource):
@staticmethod
def get():
data = request.args
filter_item = ReagtReagent.query.filter(ReagtReagent.GroupName == data['groupName'])\
.order_by(ReagtReagent.ReagentId.desc())
if data.get('query') is not None:
filter_item = ReagtReagent.query.filter(
or_(ReagtReagent.Name.contains(data['query']),
ReagtReagent.PinYinCode.contains(data['query']))) \
.filter(ReagtReagent.GroupName == data['groupName']) \
.order_by(ReagtReagent.ReagentId.desc())
return SuccessResponse(ResultCode.SUCCESS, {'totalNumber': filter_item.count(),
'list': db_page_entity(filter_item, data, 10)}, None)
# @dictionary.route('/supplierEdit')
# class SupplierEdit(Resource):
# @staticmethod
# def post():
# if ReagtSupplier.query.filter_by(SupplierName=request.args['SupplierName']).first() is not None:
# return SuccessResponse(ResultCode.DATA_ALREADY_EXISTED, None, None)
# supplierEntity = ReagtSupplier.query.filter_by(SupplierId=request.args['SupplierId']).first()
# db.session.query(ReagtStock).filter(ReagtStock.SupplierName == supplierEntity.SupplierName)\
# .update({ReagtStock.SupplierName: request.args['SupplierName']})
# supplierEntity.SupplierName = request.args['SupplierName']
# db.session.commit()
# return SuccessResponse(ResultCode.SUCCESS, None, None)