from Utils.Db import * js = { "taskName": "测试任务", "moduleId": "13", "endDate": "2022-09-23", "receiveRangeSchoolType": [ "幼儿园", "小学", "初级中学", "高级中学", "完全中学", "九年一贯制学校", "十二年一贯制学校" ], "receiveRangeArea": [ "岳塘区", "雨湖区", "湘乡市", "韶山市", "湘潭县", "湘潭九华示范区", "湘潭昭山示范区", "湖南湘潭高新技术产业园区" ], "receiveOrgs": [ # "1", "1_岳塘区", "1_湖南湘潭高新技术产业园区", "1_湘乡市_小学", "1_湘潭九华示范区", "1_湘潭县", "1_湘潭昭山示范区", "1_雨湖区", "1_韶山市" ] } if __name__ == '__main__': regioncData = js['receiveRangeArea'] schooltypeData = js['receiveRangeSchoolType'] receiveOrgsData = js['receiveOrgs'] organizationnoList = [] flag = False for x in receiveOrgsData: if x == "1": flag = True sql = "select organizationno from schoolbusinessrelation where recordyear={recordyear} and regionb='{regionb}'".format( recordyear=recordyear, regionb=city) list1 = Db.find(sql) for x in list1: organizationnoList.append(x["organizationno"]) else: # 2、按单独的数据进行处理 length = len(x.split("_")) - 1 # 县区 regionc = x.split("_")[1] schooltype = "-1" # 2.1 县区+类型 if length == 1: sql = "select organizationno from schoolbusinessrelation where recordyear={recordyear} and regionc = '{regionc}'".format( recordyear=recordyear, regionc=regionc) else: schooltype = x.split("_")[2] sql = "select organizationno from schoolbusinessrelation where recordyear={recordyear} and regionc = '{regionc}' and schooltype ='{schooltype}'".format( recordyear=recordyear, regionc=regionc, schooltype=schooltype) list1 = Db.find(sql) for x in list1: organizationnoList.append(x["organizationno"]) if not flag: # 1、处理按组合条件查询 #  哨兵 活学活用 regioncData.append("-1") schooltypeData.append("-1") sql = "select organizationno from schoolbusinessrelation where recordyear={recordyear} and regionc in {regionc} and schooltype in {schooltype}".format( recordyear=recordyear, regionc=tuple(regioncData), schooltype=tuple(schooltypeData)) list1 = Db.find(sql) for y in list1: organizationnoList.append(y["organizationno"]) # 去重 organizationnoList = list(set(organizationnoList)) print(organizationnoList) print(len(organizationnoList)) moduleId = js['moduleId']