gushoubang 8 月之前
父節點
當前提交
706a9293a4
共有 1 個文件被更改,包括 10 次插入7 次删除
  1. 10 7
      app.py

+ 10 - 7
app.py

@@ -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"]