柜体管理

duizhaopin
apan_youxiang@163.com 3 years ago
parent 811afd4093
commit 8878b5e8d2

@ -3,21 +3,22 @@
''' '''
@Date:2022/07/29 09:03:39 @Date:2022/07/29 09:03:39
''' '''
from pydoc import pager
from flask import Blueprint, jsonify, request from flask import Blueprint, jsonify, request
from sqlalchemy import and_
from Common.Utils import Utils, PageParam from Common.Utils import Utils, PageParam
from Common.auth import token_auth from Common.auth import token_auth
from db_logic.client import BllClient from db_logic.client import BllClient
from db_logic.client_cell import BllClientCell from db_logic.client_cell import BllClientCell
from db_logic.client_cell_user import BllClientCellUser from db_logic.client_cell_user import BllClientCellUser
from db_logic.client_user import BllClientUser
from db_logic.medicament_record import BllMedicamentRecord from db_logic.medicament_record import BllMedicamentRecord
from db_logic.medicament_template import BllMedicamentTemplate from db_logic.medicament_template import BllMedicamentTemplate
from db_logic.meidcament_variety import BllMedicamentVariety from db_logic.meidcament_variety import BllMedicamentVariety
from db_logic.humiture_record import BllHumitureRecord from db_logic.humiture_record import BllHumitureRecord
from db_logic.medicament import BllMedicament from db_logic.medicament import BllMedicament
from models.client_models import EntityClient from models.client_models import EntityClient, EntityClientCell, EntityClientCellUser
from models.medicament_models import EntityMedicament, EntityMedicamentRecord, EntityMedicamentTemplate, EntityMedicamentVariety from models.medicament_models import EntityMedicament, EntityMedicamentRecord, EntityMedicamentTemplate, EntityMedicamentVariety
from models.humiture_models import EntityHumitureRecord from models.humiture_models import EntityHumitureRecord
@ -49,11 +50,11 @@ def getclient_list():
# 新增and编辑 # 新增and编辑
@client_router.route("/add_or_update", methods=["GET", "POST"]) @client_router.route("/add_or_update", methods=["POST"])
@token_auth.login_required @token_auth.login_required
def client_add_update(): def client_add_update():
finds = [ finds = [
"client_title", "client_code", "client_type", "place", "filter_production_date", "client_title", "client_name", "client_code", "client_type", "place", "filter_production_date",
"filter_shelf_life_warning_value", "contact_people_name", "contact_phone", "description" "filter_shelf_life_warning_value", "contact_people_name", "contact_phone", "description"
] ]
client_id = request.values.get("client_id") client_id = request.values.get("client_id")
@ -82,7 +83,7 @@ def client_add_update():
return jsonify(Utils.true_return(msg="添加成功")) return jsonify(Utils.true_return(msg="添加成功"))
# 锁定或解锁柜体 # 锁定或解锁柜体
@client_router.route("/update_status", methods=["GET", "POST"]) @client_router.route("/update_status", methods=["POST"])
@token_auth.login_required @token_auth.login_required
def update_status(): def update_status():
status_type = request.values.get("status_type") status_type = request.values.get("status_type")
@ -97,8 +98,8 @@ def update_status():
return jsonify(Utils.false_return("柜体不存在")) return jsonify(Utils.false_return("柜体不存在"))
# 删除柜体 # 删除柜体
@client_router.route("/del", methods=["GET", "POST"]) @client_router.route("/del", methods=["POST"])
# @token_auth.login_required @token_auth.login_required
def client_del(): def client_del():
client_id = request.values.get("client_id") client_id = request.values.get("client_id")
drug_obj = BllMedicament().findEntity(EntityMedicament.client_id == client_id) drug_obj = BllMedicament().findEntity(EntityMedicament.client_id == client_id)
@ -120,7 +121,8 @@ def client_del():
# 清空指定柜体需删除 # 清空指定柜体需删除
# rms_medicament_template,rms_medicament_record,rms_medicament, rms_humiture_record # rms_medicament_template,rms_medicament_record,rms_medicament, rms_humiture_record
@client_router.route("/client_empty", methods=["GET", "POST"]) @client_router.route("/client_empty", methods=["POST"])
@token_auth.login_required
def client_empty(): def client_empty():
client_id = request.values.get("client_id") client_id = request.values.get("client_id")
if client_id: if client_id:
@ -133,19 +135,127 @@ def client_empty():
return jsonify(Utils.true_return()) return jsonify(Utils.true_return())
# 获取柜子是否有抽屉
@client_router.route("/get_client_drawer", methods=["POST"])
@token_auth.login_required
def get_client_drawer():
client_id = request.values.get("client_id")
data_list = BllClientCell().findList(EntityClientCell.client_id==client_id).all()
print(data_list)
if data_list:
return jsonify(Utils.true_return(data=data_list))
else:
return jsonify(Utils.false_return(msg="该柜体没有柜子"))
# 分配抽屉权限展示 # 分配抽屉权限展示
@client_router.route("/get_drawer_power", methods=["GET", "POST"]) @client_router.route("/get_drawer_power", methods=["POST"])
@token_auth.login_required
def get_client_drawer_power(): def get_client_drawer_power():
drawer_id = request.values.get("drawer_id") drawer_id = request.values.get("drawer_id")
client_id = request.values.get("client_id")
page = request.values.get("page", 1) page = request.values.get("page", 1)
page_size = request.values.get("page_size", 10) page_size = request.values.get("page_size", 10)
page_param = PageParam(int(page), int(page_size)) page_param = PageParam(int(page), int(page_size))
data_list = BllClientCell().get_drawer_power_user_list(drawer_id=drawer_id, page_param=page_param) data_list = BllClientCell().get_drawer_power_user_list(
drawer_id=drawer_id, client_id=client_id, page_param=page_param)
return jsonify(Utils.true_return(data={"data_list": Utils.msyql_table_model(data_list), "total_count": page_param.totalRecords})) return jsonify(Utils.true_return(data={"data_list": Utils.msyql_table_model(data_list), "total_count": page_param.totalRecords}))
# # 分配抽屉权限 # 分配抽屉权限
# @client_router.route("/set_drawer_power", methods=["GET", "POST"]) @client_router.route("/set_drawer_power", methods=["POST"])
# def set_client_drawer_power(): @token_auth.login_required
# drawer_id = request.values.get("drawer_id") def set_client_drawer_power():
drawer_id = request.values.get("drawer_id")
client_id = request.values.get("client_id")
client_code = request.values.get("client_code")
client_cell_code = request.values.get("client_cell_code")
set_drawer_info = request.values.get("drawer_user_info")
set_drawer_info = eval(set_drawer_info)
cell_user_obj = BllClientCellUser()
# 获取已有权限的用户信息
user_id_list = list(set_drawer_info.keys())
obj_list = cell_user_obj.findList(
and_(
EntityClientCellUser.client_id==client_id,
EntityClientCellUser.client_cell_id==drawer_id,
EntityClientCellUser.user_id.in_(user_id_list)
)
).all()
#筛选出被删除的用户
# drawer_del_user_list = []
# obj_list = Utils.msyql_table_model(obj_list)
for i in obj_list:
user_drawer = set_drawer_info.get(i.user_id)
if str(user_drawer) == "0":
cell_user_obj.session.delete(i)
set_drawer_info.pop(i.user_id)
cell_user_obj.session.commit()
# 筛选出需要添加的用户
drawer_add_user_list = []
for k,v in set_drawer_info.items():
if str(v) == "1":
drawer_add_user_list.append(k)
# # 按条件删除
# for i in drawer_del_user_list:
# cell_user_obj.session.delete(i)
# cell_user_obj.session.commit()
# 按条件添加
inster_add_list = []
print(drawer_id, client_cell_code, client_code, client_id)
for i in drawer_add_user_list:
obj = EntityClientCellUser(
client_cell_id=drawer_id,
client_cell_code=client_cell_code,
client_code=client_code,
client_id=client_id,
user_id=i
)
inster_add_list.append(obj)
cell_user_obj.insert_many(inster_add_list)
return jsonify(Utils.true_return())
#################################
##验证通过后需要添加至试剂领用处。##
#################################
# 分配禁用用户
@client_router.route("/user_ban_list", methods=["POST"])
@token_auth.login_required
def client_ban_user_list():
seach_user = request.values.get("seach_user")
client_id = request.values.get("client_id")
page = int(request.values.get("page", 1))
page_size = int(request.values.get("page_size", 10))
page_param = PageParam(page, page_size)
data_list = BllClientUser().get_band_user_list(
seach_user=seach_user, page_param=page_param,
client_id=client_id
)
return jsonify(Utils.true_return(data={"data": Utils.msyql_table_model(data_list), "total_count": page_param.totalRecords}))
# 确认禁用
@client_router.route("/user_ban_confirm", methods=["POST"])
@token_auth.login_required
def client_ban_user_confirm():
user_id = request.values.get("user_id")
client_id = request.values.get("client_id")
data = BllClientUser().inster_user_client(user_id, client_id)
if data:
return jsonify(Utils.true_return())
else:
return jsonify(Utils.false_return())
# 取消禁用试剂
@client_router.route("/user_ban_relieve", methods=["POST"])
@token_auth.login_required
def client_user_ban_relieve():
user_id = request.values.get("user_id")
client_id = request.values.get("client_id")
data = BllClientUser().del_user_ban_client(
user_id=user_id, client_id=client_id)
if data:
return jsonify(Utils.true_return(msg="删除成功"))
else:
return jsonify(Utils.false_return(msg="删除失败"))

@ -16,12 +16,12 @@ class BllClientCell(Repository):
super().__init__(entityType) super().__init__(entityType)
# 展示抽屉权限用户 # 展示抽屉权限用户
def get_drawer_power_user_list(self, drawer_id, page_param): def get_drawer_power_user_list(self, drawer_id, client_id, page_param):
sql_all = f""" sql_all = f"""
select a.real_name, a.user_id, select a.real_name, a.user_id,a.user_code,
CASE WHEN b.id is not null THEN 1 ELSE 0 END drawer_type CASE WHEN b.id is not null THEN 1 ELSE 0 END drawer_type
from rms_user as a LEFT JOIN ( from rms_user as a LEFT JOIN (
select * from rms_client_cell_user where client_cell_id='{drawer_id}' select * from rms_client_cell_user where client_cell_id='{drawer_id}' and client_id='{client_id}'
) as b on a.user_id=b.user_id ) as b on a.user_id=b.user_id
""" """
try: try:
@ -30,4 +30,23 @@ class BllClientCell(Repository):
count_number = 0 count_number = 0
page_param.totalRecords = count_number page_param.totalRecords = count_number
page_sql = Utils.sql_paging_assemble(sql_all, page_param) page_sql = Utils.sql_paging_assemble(sql_all, page_param)
return self.execute(page_sql).fetchall() return self.execute(page_sql).fetchall()
# 插入测试数据
def inster_test_data(self):
client_id = '1c39cb24-07f8-11ed-abd4-f47b094925e1'
obj_list = []
for i in range(1,9):
obj_list.append(
EntityClientCell(
cell_code=i,
client_id=client_id,
cell_speci=i
)
)
self.insert_many(obj_list)
if __name__ == '__main__':
BllClientCell().inster_test_data()

@ -4,15 +4,16 @@
@Date:2022/07/18 16:34:13 @Date:2022/07/18 16:34:13
''' '''
from sqlalchemy import and_ from sqlalchemy import and_
from Common.Utils import Utils
from db_logic.db_base import Repository from db_logic.db_base import Repository
from models.client_models import EntityClient, EntityClientUser from models.client_models import EntityClientUser, EntityClientUser
#用户操作业务逻辑类 #用户操作业务逻辑类
class BllClientUser(Repository): class BllClientUser(Repository):
def __init__(self, entityType=EntityClient): def __init__(self, entityType=EntityClientUser):
return super().__init__(entityType) super().__init__(entityType)
def isJInZhiUser(self, userId, clientId): def isJInZhiUser(self, userId, clientId):
entity = self.findEntity( entity = self.findEntity(
@ -21,3 +22,48 @@ class BllClientUser(Repository):
return False return False
else: else:
return True return True
def get_band_user_list(self, seach_user, client_id, page_param):
filter_base = ""
if seach_user:
filter_base += f" real_name like '%{seach_user}%' "
if filter_base:
filter_base = f" where {filter_base} "
sql_all = f"""
SELECT a.user_id, a.real_name, a.role_name, a.avatar_url,
CASE WHEN b.client_user_id is not null THEN 1 else 0 END status_type
from (select * from rms_user {filter_base}) as a LEFT JOIN(
select * from rms_client_user where client_id='{client_id}'
)as b on a.user_id=b.user_id
"""
try:
count_number = len(self.execute(sql_all).fetchall())
except Exception:
count_number = 0
page_param.totalRecords=count_number
page_sql = Utils.sql_paging_assemble(sql_all, page_param)
return self.execute(page_sql).fetchall()
def inster_user_client(self, user_id, client_id):
try:
self.insert(
EntityClientUser(
client_id=client_id,
user_id=user_id
)
)
return True
except Exception:
return False
def del_user_ban_client(self, user_id, client_id):
try:
self.delete(
and_(
EntityClientUser.user_id==user_id,
EntityClientUser.client_id== client_id
)
)
return True
except Exception:
return False

@ -109,7 +109,7 @@ class EntityClientCell(Base):
) )
id = Column(String(50), primary_key=True, comment="ID", default=get_uuid) id = Column(String(50), primary_key=True, comment="ID", default=get_uuid)
cell_code = Column(String(50), comment="抽屉码") cell_code = Column(String(50), comment="抽屉码")
client_id = Column(Integer, comment="终端id") client_id = Column(String(50), comment="终端id")
cell_speci = Column(String(50), comment="单元格") cell_speci = Column(String(50), comment="单元格")

@ -59,7 +59,7 @@ class EntityMedicament(Base):
flow_position_code = Column(String(50), comment="试剂所在柜层位置信息") flow_position_code = Column(String(50), comment="试剂所在柜层位置信息")
cell_position_code = Column(String(50), comment="试剂所在抽屉位置信息") cell_position_code = Column(String(50), comment="试剂所在抽屉位置信息")
place = Column(String(50), comment="位置") place = Column(String(50), comment="位置")
status = Column(Integer, comment="当前状态1在库2出库3空瓶") status = Column(Integer, comment="当前状态1在库2出库3空瓶", default=1)
is_supervise = Column(Integer, comment="是否监管", default=0) is_supervise = Column(Integer, comment="是否监管", default=0)
by_user_date = Column(String(50), comment="最后使用日期") by_user_date = Column(String(50), comment="最后使用日期")
by_user_id = Column(String(50), comment="最后使用人ID") by_user_id = Column(String(50), comment="最后使用人ID")

Loading…
Cancel
Save