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
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)
|
|
|