Commit c6d18b36 authored by 张晓彤's avatar 张晓彤

数据库迁移p1

parent 430230f1
......@@ -9,7 +9,7 @@
import requests
from tables import *
with open(json_file) as f:
mysql_config = json.load(f)["mysql"]
config = json.load(f)
# def redispatch_request(truck_id, excavator_id, unload_area_id):
......@@ -98,7 +98,7 @@ def POST(truck_id):
:param real_data:
:return:
"""
url_d = "http://" + mysql_config["host"] + ":8020/ht/api/dispatch/updateTemp?truckId=" + truck_id
url_d = "http://" + config["host"] + ":8020/ht/api/dispatch/updateTemp?truckId=" + truck_id
res_d = requests.get(url_d)
print(res_d.text)
return res_d.text
\ No newline at end of file
......@@ -85,9 +85,9 @@ def build_truck_uuid_name_map():
truck_name_to_uuid_dict = {}
try:
for item in session_mysql.query(Equipment).filter_by(device_type=1).all():
truck_id = item.id
truck_name = item.equipment_id
for item in session_mysql.query(Equipment).filter_by(EQUIPMENT_TYPE_ID=1).all():
truck_id = item.EQUIPMENT_ID
truck_name = item.EQUIPMENT_NAME.encode("latin-1").decode("GBK", "ignore")
truck_name_to_uuid_dict[truck_name] = truck_id
truck_uuid_to_name_dict[truck_id] = truck_name
......@@ -107,9 +107,9 @@ def build_equipment_uuid_name_map():
dump_uuid_to_name_dict = {}
try:
for item in session_mysql.query(Equipment).filter_by(device_type=2).all():
truck_id = item.id
truck_name = item.equipment_id
for item in session_mysql.query(Equipment).filter_by(EQUIPMENT_TYPE_ID=2).all():
truck_id = item.EQUIPMENT_ID
truck_name = item.EQUIPMENT_NAME
excavator_uuid_to_name_dict[truck_id] = truck_name
if len(excavator_uuid_to_name_dict) < 1:
......@@ -121,9 +121,9 @@ def build_equipment_uuid_name_map():
try:
for item in session_mysql.query(Equipment).filter_by(device_type=3).all():
truck_id = item.id
truck_name = item.equipment_id
for item in session_mysql.query(Equipment).filter_by(EQUIPMENT_TYPE_ID=3).all():
truck_id = item.EQUIPMENT_ID
truck_name = item.EQUIPMENT_NAME
dump_uuid_to_name_dict[truck_id] = truck_name
if len(dump_uuid_to_name_dict) < 1 :
......@@ -236,7 +236,7 @@ def update_total_truck():
try:
query = np.array(
session_mysql.query(Equipment)
.filter_by(device_type=1, isdeleted=0)
.filter_by(EQUIPMENT_TYPE_ID=1, DISABLED=0)
.all()
)
# for item in query:
......@@ -245,7 +245,7 @@ def update_total_truck():
# if is_online:
# truck_list.append(item.id)
for item in query:
truck_list.append(item.id)
truck_list.append(item.EQUIPMENT_ID)
if len(truck_list) < 1:
raise Exception("无矿卡设备可用-矿卡集合读取异常")
......@@ -311,7 +311,7 @@ def update_fixdisp_truck():
try:
query = np.array(
session_mysql.query(Equipment)
.filter_by(device_type=1, isdeleted=0, disabled=1)
.filter_by(EQUIPMENT_TYPE_ID=1, disabled=1)
.all()
)
except Exception as es:
......
......@@ -148,10 +148,10 @@ class ExcavatorInfo(WalkManage):
for excavator_id in get_value("dynamic_excavator_set"):
try:
item = session_mysql.query(Equipment).filter_by(id=excavator_id).first()
item = session_mysql.query(Equipment).filter_by(EQUIPMENT_ID=int(excavator_id)).first()
self.logger.info("excavator_priority_coefficient")
self.logger.info(self.excavator_priority_coefficient)
self.excavator_priority_coefficient[self.excavator_uuid_to_index_dict[excavator_id]] = item.priority + 1
self.excavator_priority_coefficient[self.excavator_uuid_to_index_dict[excavator_id]] = item.PRIORITY + 1
# 物料优先级控制
rule = 2
......@@ -183,10 +183,10 @@ class ExcavatorInfo(WalkManage):
if not rule4.disabled:
for excavator_index in range(len(self.excavator_index_to_uuid_dict)):
try:
load_ability = session_mysql.query(EquipmentSpec.mining_abililty).\
join(Equipment, Equipment.equipment_spec == EquipmentSpec.id).\
filter(Equipment.id == self.excavator_index_to_uuid_dict[excavator_index]).first()
self.excavator_strength[excavator_index] = load_ability.mining_abililty
load_ability = session_mysql.query(EquipmentSpec.MINING_ABILILTY).\
join(Equipment, Equipment.EQUIPMENT_MODEL_ID == EquipmentSpec.EQUIPMENT_MODEL_ID).\
filter(Equipment.EQUIPMENT_ID == self.excavator_index_to_uuid_dict[excavator_index]).first()
self.excavator_strength[excavator_index] = load_ability.MINING_ABILILTY
# if load_ability.mining_abililty < 200:
# raise Exception("挖机装载能力异常")
......
......@@ -153,6 +153,9 @@ class TruckInfo(WalkManage):
else:
continue
if device_type == 1:
if item not in truck_name_to_uuid_dict:
continue
else:
if truck_name_to_uuid_dict[item] in self.dynamic_truck_set:
# currentTask = int(key_value_dict[str_to_byte("currentTask")])
currentTask = int(byte_to_str(key_value_dict[str_to_byte("currentTask")]))
......@@ -582,18 +585,18 @@ class TruckInfo(WalkManage):
if rule6.disabled == 0:
for truck_id in self.dynamic_truck_set:
try:
item = session_mysql.query(Equipment).filter_by(id=truck_id).first()
item = session_mysql.query(Equipment).filter_by(EQUIPMENT_ID=int(truck_id)).first()
except Exception as es:
session_postgre.rollback()
session_mysql.rollback()
truck_index = self.truck_uuid_to_index_dict[truck_id]
if item.priority == 0:
if item.PRIORITY == 0:
self.truck_priority[truck_index] = 0
elif item.priority == 1:
elif item.PRIORITY == 1:
self.truck_priority[truck_index] = 2
elif item.priority == 2:
elif item.PRIORITY == 2:
self.truck_priority[truck_index] = 5
elif item.priority == 3:
elif item.PRIORITY == 3:
self.truck_priority[truck_index] = 10
except Exception as es:
self.logger.error("车辆优先级更新异常")
......@@ -626,9 +629,9 @@ class TruckInfo(WalkManage):
if rule5.disabled == 0:
self.truck_excavator_bind = {}
for excavator_id in get_value("dynamic_excavator_set"):
item = session_mysql.query(Equipment).filter_by(id=excavator_id).first()
if item.bind_list is not None:
for truck_name in json.loads(item.bind_list):
item = session_mysql.query(Equipment).filter_by(EQUIPMENT_ID=int(excavator_id)).first()
if item.BIND_LIST is not None:
for truck_name in json.loads(item.BIND_LIST):
self.truck_excavator_bind[
truck_name_to_uuid_dict[truck_name]
] = excavator_id
......@@ -736,7 +739,7 @@ class TruckInfo(WalkManage):
def update_truck_spec(self):
for truck_id in self.dynamic_truck_set:
try:
self.size[truck_id] = session_mysql.query(Equipment).filter_by(id=truck_id).first().equipment_spec
self.size[truck_id] = session_mysql.query(Equipment).filter_by(EQUIPMENT_ID=int(truck_id)).first().EQUIPMENT_MODEL_ID
except Exception as es:
self.logger.error("车辆型号更新异常")
self.logger.error(es)
......@@ -748,8 +751,8 @@ class TruckInfo(WalkManage):
for truck_id in self.dynamic_truck_set:
truck_spec_id = self.size[truck_id]
try:
self.geo_length[truck_id] = session_mysql.query(EquipmentSpec).filter_by(id=truck_spec_id).first().length
self.geo_width[truck_spec_id] = session_mysql.query(EquipmentSpec).filter_by(id=truck_spec_id).first().width
self.geo_length[truck_id] = session_mysql.query(EquipmentSpec).filter_by(EQUIPMENT_MODEL_ID=truck_spec_id).first().LENGTH
self.geo_width[truck_spec_id] = session_mysql.query(EquipmentSpec).filter_by(EQUIPMENT_MODEL_ID=truck_spec_id).first().WIDTH
except Exception as es:
self.logger.error("车辆几何尺寸更新异常")
self.logger.error(es)
......@@ -760,8 +763,8 @@ class TruckInfo(WalkManage):
for truck_id in self.dynamic_truck_set:
try:
empty_speed = session_mysql.query(EquipmentSpec). \
join(Equipment, EquipmentSpec.id == Equipment.equipment_spec). \
filter(Equipment.id == truck_id).first().max_speed
join(Equipment, EquipmentSpec.EQUIPMENT_MODEL_ID == Equipment.EQUIPMENT_MODEL_ID). \
filter(Equipment.EQUIPMENT_ID == truck_id).first().MAX_SPEED
if (empty_speed <= 1) or (empty_speed >= 50) or (empty_speed is None):
self.empty_speed[truck_id] = 20
......@@ -769,8 +772,8 @@ class TruckInfo(WalkManage):
self.empty_speed[truck_id] = empty_speed
heavy_speed = session_mysql.query(EquipmentSpec). \
join(Equipment, EquipmentSpec.id == Equipment.equipment_spec). \
filter(Equipment.id == truck_id).first().max_speed
join(Equipment, EquipmentSpec.EQUIPMENT_MODEL_ID == Equipment.EQUIPMENT_MODEL_ID). \
filter(Equipment.EQUIPMENT_MODID == truck_id).first().MAX_SPEED
if (heavy_speed <= 1) or (heavy_speed >= 50) or (heavy_speed is None):
self.heavy_speed[truck_id] = 20
......@@ -784,8 +787,8 @@ class TruckInfo(WalkManage):
def update_truck_disable_list(self) -> List:
try:
for item in session_mysql.query(Equipment).filter_by(device_type=1, disabled=1).all():
self.truck_disable_list.append(item.equipment_id)
for item in session_mysql.query(Equipment).filter_by(EQUIPMENT_TYPE_ID=1, DISABLED=1).all():
self.truck_disable_list.append(item.EQUIPMENT_ID)
except Exception as es:
self.logger.error("车辆禁止列表更新异常")
self.logger.error(es)
......
......@@ -480,7 +480,7 @@ def get_excavator_state(excavator_id):
"""
try:
device_name = session_mysql.query(Equipment).filter_by(equipment_id=excavator_id, device_type=2).first().device_name
device_name = session_mysql.query(Equipment).filter_by(EQUIPMENT_ID=int(excavator_id), EQUIPMENT_TYPE_ID=2).first().EQUIPMENT_NAME
key_value_dict = redis2.hgetall(device_name)
is_online = key_value_dict[str_to_byte('online')]
......
......@@ -27,7 +27,7 @@ with open(json_file) as f:
para_config = json.load(f)["para"]
with open(json_file) as f:
mysql_config = json.load(f)["mysql"]
mysql_config = json.load(f)["mssql"]
with open(json_file) as f:
postgre_config = json.load(f)["postgresql"]
......
......@@ -10,7 +10,7 @@
# 存储数据库表结构
from sqlalchemy import Column, create_engine
from sqlalchemy import VARCHAR, DateTime, Float, Integer, BOOLEAN
from sqlalchemy import VARCHAR, DateTime, Float, Integer, BOOLEAN, DECIMAL
from sqlalchemy.orm import sessionmaker, scoped_session
from sqlalchemy.ext.declarative import declarative_base
from urllib.parse import quote
......@@ -45,7 +45,6 @@ if mysql_config is not None:
":" + mysql_config["port"] + "/" + mysql_config["database"])
engine_mysql = create_engine(sql_str % quote(mysql_config["password"]))
else:
sql_str = str("mssql+pymssql://" + sqlserver_config["user"] + ":%s@" + sqlserver_config["host"] + \
......@@ -257,54 +256,91 @@ class WalkTimePark(Base):
self.park_load_lanes = park_load_lanes
class Equipment(Base):
__tablename__ = 'sys_equipment'
id = Column(VARCHAR(36), primary_key=True)
equipment_id = Column(VARCHAR(64))
device_name = Column(VARCHAR(64))
device_type = Column(VARCHAR(36))
equipment_spec = Column(VARCHAR(36))
equipment_state = Column(Integer)
isdeleted = Column(Integer)
disabled = Column(Integer)
bind_list = Column(VARCHAR(1000))
only_allowed = Column(Integer)
priority = Column(Integer)
def __init__(self, id, equipment_id, device_name, device_type, equipment_spec, equipment_state, isdeleted, \
disabled, bind_list, only_allowed, priority):
self.id = id
self.equipment_id = equipment_id
self.device_name = device_name
self.device_type = device_type
self.equipment_spec = equipment_spec
self.equipment_state = equipment_state
self.isdeleted = isdeleted
self.disabled = disabled
self.bind_list = bind_list
self.only_allowed = only_allowed
self.priority = priority
__tablename__ = 'SYS_OBJECT_EQUIPMENT_INFO'
EQUIPMENT_ID = Column(Integer, primary_key=True)
EQUIPMENT_NAME = Column(VARCHAR(64))
EQUIPMENT_TYPE_ID = Column(Integer)
EQUIPMENT_MODEL_ID = Column(Integer)
DISABLED = Column(Integer)
BIND_LIST = Column(VARCHAR(1000))
ONLY_ALLOWED = Column(Integer)
PRIORITY = Column(Integer)
# id = Column(VARCHAR(36), primary_key=True)
# equipment_id = Column(VARCHAR(64))
# device_name = Column(VARCHAR(64))
# device_type = Column(VARCHAR(36))
# equipment_spec = Column(VARCHAR(36))
# equipment_state = Column(Integer)
# isdeleted = Column(Integer)
# disabled = Column(Integer)
# bind_list = Column(VARCHAR(1000))
# only_allowed = Column(Integer)
# priority = Column(Integer)
def __init__(self, EQUIPMENT_ID, EQUIPMENT_NAME, EQUIPMENT_TYPE_ID, EQUIPMENT_MODEL_ID, DISABLED, BIND_LIST,
ONLY_ALLOWED, PRIORITY):
self.EQUIPMENT_ID = EQUIPMENT_ID
self.EQUIPMENT_NAME = EQUIPMENT_NAME
self.EQUIPMENT_TYPE_ID = EQUIPMENT_TYPE_ID
self.EQUIPMENT_MODEL_ID = EQUIPMENT_MODEL_ID
self.DISABLED = DISABLED
self.BIND_LIST = BIND_LIST
self.ONLY_ALLOWED = ONLY_ALLOWED
self.PRIORITY = PRIORITY
# def __init__(self, id, equipment_id, device_name, device_type, equipment_spec, equipment_state, isdeleted,
# disabled, bind_list, only_allowed, priority):
# self.id = id
# self.equipment_id = equipment_id
# self.device_name = device_name
# self.device_type = device_type
# self.equipment_spec = equipment_spec
# self.equipment_state = equipment_state
# self.isdeleted = isdeleted
# self.disabled = disabled
# self.bind_list = bind_list
# self.only_allowed = only_allowed
# self.priority = priority
# class EquipmentSpec(Base):
# __tablename__ = 'sys_equipment_spec'
#
# id = Column(VARCHAR(36), primary_key=True)
# capacity = Column(Integer)
# mining_abililty = Column(Float)
# length = Column(Float)
# width = Column(Float)
# max_speed = Column(Float)
#
# def __init__(self, id, capacity, mining_abililty, length, width, max_speed):
# self.id = id
# self.capacity = capacity
# self.mining_abililty = mining_abililty
# self.length = length
# self.width = width
# self.max_speed = max_speed
class EquipmentSpec(Base):
__tablename__ = 'sys_equipment_spec'
__tablename__ = 'SYS_SETTING_EQUIPMENT_MODEL_INFO'
id = Column(VARCHAR(36), primary_key=True)
capacity = Column(Integer)
mining_abililty = Column(Float)
length = Column(Float)
width = Column(Float)
max_speed = Column(Float)
EQUIPMENT_MODEL_ID = Column(Integer, primary_key=True)
CAPACITY = Column(Integer)
MINING_ABILILTY = Column(Float)
LENGTH = Column(Float)
WIDTH = Column(Float)
MAX_SPEED =Column(Float)
def __init__(self, id, capacity, mining_abililty, length, width, max_speed):
self.id = id
self.capacity = capacity
self.mining_abililty = mining_abililty
self.length = length
self.width = width
self.max_speed = max_speed
def __init__(self, EQUIPMENT_MODEL_ID, CAPACITY, MINING_ABILILTY, LENGTH, WIDTH, MAX_SPEED):
self.EQUIPMENT_MODEL_ID = EQUIPMENT_MODEL_ID
self.CAPACITY = CAPACITY
self.MINING_ABILILTY = MINING_ABILILTY
self.LENGTH = LENGTH
self.WIDTH = WIDTH
self.MAX_SPEED = MAX_SPEED
class LoadInfo(Base):
......@@ -419,14 +455,23 @@ class DispatchRule(Base):
self.disabled = disabled
# class Material(Base):
# __tablename__ = 'resource_metarials'
# id = Column(VARCHAR(40), primary_key=True)
# name = Column(VARCHAR(40))
#
# def __init__(self, id, name):
# self.id = id
# self.name = name
class Material(Base):
__tablename__ = 'resource_metarials'
id = Column(VARCHAR(40), primary_key=True)
name = Column(VARCHAR(40))
__tablename__ = 'SYS_OBJECT_GOODS_TYPE_INFO'
GOODS_TYPE_ID = Column(Integer, primary_key=True)
GOODS_TYPE_NAME = Column(VARCHAR(50))
def __init__(self, id, name):
self.id = id
self.name = name
def __init__(self, GOODS_TYPE_ID, GOODS_TYPE_NAME):
self.GOODS_TYPE_ID = GOODS_TYPE_ID
self.GOODS_TYPE_NAME = GOODS_TYPE_NAME
class DispatchMode(Base):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment