|
@@ -59,7 +59,7 @@ def inputMsg():
|
|
|
ydmjbegin是用地面积的开始值,是较小的那个数,ydmjend是用地面积的结束值,是较大的那个数,单位统一转换为亩
|
|
|
yxyz中的name是因子选择,defalt是条件,defaultvalue是距离,公里、千米的单位转换为米,
|
|
|
输入以下信息:"{msg}",请基于因子选择、选址范围和用地类型,提取其对应的相关数据,并提取其距离的相关数据。结果以下面格式输出:
|
|
|
- "districtName":"天涯区","landType":"林地","ydmjbegin":10,"ydmjend":100,"yxyz":["name":"幼儿园服务半径","default":"大于","defaultValue":"300"],"useMultiple":false,"useLandType":true,"multipleDistance":0
|
|
|
+ "districtName":"抱坡区","landType":"居住用地","ydmjbegin":30,"ydmjend":50,"yxyz":["name":"幼儿园服务半径","default":"大于","defaultValue":"300"],"useMultiple":false,"useLandType":true,"multipleDistance":0
|
|
|
并把yxyz的default条件中的大于、小于、大于等于、小于等于、介于分别替换为gt、lt、get、let、between"""
|
|
|
|
|
|
try:
|
|
@@ -85,6 +85,7 @@ def inputMsg():
|
|
|
|
|
|
|
|
|
# 将大模型解析的结果转换为选址需要的数据格式
|
|
|
+
|
|
|
def jsonResToDict(json_res):
|
|
|
# 1.查询选址范围信息
|
|
|
districtName = json_res["districtName"]
|
|
@@ -93,10 +94,12 @@ def jsonResToDict(json_res):
|
|
|
geomId = saveGeom(ewkt)
|
|
|
# 3.获取用地类型信息
|
|
|
landType = json_res["landType"]
|
|
|
- landType = getLandType(landType)
|
|
|
+ landType = getLandType(landType, "YDYHFLDM")
|
|
|
# 4.获取模板信息
|
|
|
factorTemplates = getTemplateByCode(landType)
|
|
|
|
|
|
+ # TODO 以哪个因子列表为准,模版和因子个数怎么匹配
|
|
|
+
|
|
|
now = datetime.datetime.now()
|
|
|
formatted_time = now.strftime("%Y%m%d%H%M%S")
|
|
|
res = {
|
|
@@ -224,13 +227,13 @@ def saveGeom(ewkt):
|
|
|
# 获取用地类型信息
|
|
|
|
|
|
|
|
|
-def getLandType(landName):
|
|
|
+def getLandType(landName, fzbs):
|
|
|
with conn.cursor(cursor_factory=DictCursor) as cur:
|
|
|
- sql = "SELECT dm,mc,fzbs FROM base.t_fzss_fzxz_dict WHERE mc = %s"
|
|
|
- complete_sql = cur.mogrify(sql, (landName)).decode('utf-8')
|
|
|
+ sql = "SELECT dm,mc,fzbs FROM base.t_fzss_fzxz_dict WHERE mc = %s and fzbs=%s"
|
|
|
+ complete_sql = cur.mogrify(sql, (landName, fzbs)).decode('utf-8')
|
|
|
logger.info(f"Executing SQL: {complete_sql}")
|
|
|
- cur.execute(sql, (landName,))
|
|
|
- res = cur.fetchall()
|
|
|
+ cur.execute(sql, (landName, fzbs))
|
|
|
+ res = cur.fetchone()
|
|
|
return res["dm"]
|
|
|
|
|
|
|