def get_sync_dict_list(self, insert_or_updata) -> list: """ insert_or_updata 中 self.DB_True为insert,DB_False为updata 本方法的写法为强规则,调用add_value_to_sync_dict_list配置 第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置 """ sync_dict_list = self.get_sync_predefined_dict_list(insert_or_updata) object_table_id = self._obj_id object_table_data = self._dataset self.add_value_to_sync_dict_list(sync_dict_list, 'aprswid', object_table_id) dsometadataxml = object_table_data.value_by_name( 0, 'dsometadataxml_bus', '') dsometadataxml_xml = CXml() dsometadataxml_xml.load_xml(dsometadataxml) # 加载查询出来的xml self.add_value_to_sync_dict_list( sync_dict_list, 'domname', dsometadataxml_xml.get_element_text_by_xpath_one('/root/DSName')) self.add_value_to_sync_dict_list( sync_dict_list, 'scaletext', dsometadataxml_xml.get_element_text_by_xpath_one( '/root/ScaleDenominator')) self.add_value_to_sync_dict_list( sync_dict_list, 'datatype', object_table_data.value_by_name(0, 'dsodatatype', '')) self.add_value_to_sync_dict_list( sync_dict_list, 'sensors', list([ dsometadataxml_xml.get_element_text_by_xpath_one( '/root/MajorSource') ]), self.DataValueType_Array) self.add_value_to_sync_dict_list(sync_dict_list, 'dsometadatajson', dsometadataxml) return sync_dict_list
def get_sync_dict_list(self, insert_or_updata) -> list: """ insert_or_updata 中 self.DB_True为insert,DB_False为updata 本方法的写法为强规则,调用add_value_to_sync_dict_list配置 第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置 """ sync_dict = self.get_sync_predefined_dict_list(insert_or_updata) object_table_id = self._obj_id object_table_data = self._dataset dsometadataxml = object_table_data.value_by_name( 0, 'dsometadataxml_bus', '') dsometadataxml_xml = CXml() dsometadataxml_xml.load_xml(dsometadataxml) # 加载查询出来的xml self.add_value_to_sync_dict_list(sync_dict, 'aprpwid', object_table_id) self.add_value_to_sync_dict_list( sync_dict, 'dsname', dsometadataxml_xml.get_element_text_by_xpath_one( '/root/DSName')) # 配置字段值 self.add_value_to_sync_dict_list( sync_dict, 'producttypechn', dsometadataxml_xml.get_element_text_by_xpath_one( '/root/ProductType')) self.add_value_to_sync_dict_list( sync_dict, 'dsometadatajson', object_table_data.value_by_name(0, 'dsometadataxml_bus', '')) return sync_dict
def get_sync_dict_list(self, insert_or_updata) -> list: """ insert_or_updata 中 self.DB_True为insert,DB_False为updata 本方法的写法为强规则,调用add_value_to_sync_dict_list配置 第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置 """ sync_dict = self.get_sync_predefined_dict_list(insert_or_updata) object_table_id = self._obj_id object_table_data = self._dataset # 业务元数据 dsometadataxml_bus = object_table_data.value_by_name( 0, 'dsometadataxml_bus', '') xml = CXml() xml.load_xml(dsometadataxml_bus) # 下列字段名均待修改 self.add_value_to_sync_dict_list(sync_dict, 'aprmwid', object_table_id) self.add_value_to_sync_dict_list( sync_dict, 'mosaiclinefilename', xml.get_element_text_by_xpath_one("//item[@name='ProductName']")) self.add_value_to_sync_dict_list( sync_dict, 'sensors', xml.get_element_text_by_xpath_one("//item[@name='SatelliteID']")) self.add_value_to_sync_dict_list( sync_dict, 'dsometadatajson', object_table_data.value_by_name(0, 'dsometadataxml_bus', '')) self.add_value_to_sync_dict_list( sync_dict, 'resolution', xml.get_element_text_by_xpath_one("//item[@name='Resolution']")) # self.add_value_to_sync_dict_list(sync_dict, 'regionname', xml.get_element_text_by_xpath_one( # "//item[@name='GeographicName']")) dso_prj_project = object_table_data.value_by_name( 0, 'dso_prj_project', '') if CUtils.equal_ignore_case(dso_prj_project, 'tj2000'): dso_prj_project = '2000天津城市坐标系' if CUtils.equal_ignore_case(dso_prj_project, 'tj1990'): dso_prj_project = '1990天津任意直角坐标系' if CUtils.equal_ignore_case(dso_prj_project, 'cgcs2000'): dso_prj_project = '2000国家标准坐标系' else: dataoptions = '其他国家标准坐标系' self.add_value_to_sync_dict_list(sync_dict, 'dataoptions', dso_prj_project) # 备注 self.add_value_to_sync_dict_list( sync_dict, 'remark', xml.get_element_text_by_xpath_one("//item[@name='Description']")) return sync_dict
def get_sync_dict_list(self, insert_or_updata) -> list: """ insert_or_updata 中 self.DB_True为insert,DB_False为updata 本方法的写法为强规则,调用add_value_to_sync_dict_list配置 第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置 """ sync_dict_list = self.get_sync_predefined_dict_list(insert_or_updata) object_table_id = self._obj_id object_table_data = self._dataset dsometadataxml = object_table_data.value_by_name( 0, 'dsometadataxml_bus', '') dsometadataxml_xml = CXml() dsometadataxml_xml.load_xml(dsometadataxml) # 加载查询出来的xml self.add_value_to_sync_dict_list(sync_dict_list, 'aprvdid1', object_table_id) self.add_value_to_sync_dict_list( sync_dict_list, 'dsnamed', dsometadataxml_xml.get_element_text_by_xpath_one( '/root/DSName')) # 配置字段值 if insert_or_updata: now_time = CUtils.any_2_str( datetime.datetime.now().strftime('%F %T')) self.add_value_to_sync_dict_list(sync_dict_list, 'adddate', now_time) self.add_value_to_sync_dict_list( sync_dict_list, 'dsdate', CUtils.to_day_format( dsometadataxml_xml.get_element_text_by_xpath_one('/root/Date'), '')) regioncode = dsometadataxml_xml.get_element_text_by_xpath_one( '/root/RegionCode') self.add_value_to_sync_dict_list( # regioncode:行政区码 sync_dict_list, 'dsregionno', regioncode) self.add_value_to_sync_dict_list(sync_dict_list, 'busitype', 'shp') self.add_value_to_sync_dict_list( # regionname:行政区 sync_dict_list, 'dsregionname', dsometadataxml_xml.get_element_text_by_xpath_one( '/root/RegionName')) self.add_value_to_sync_dict_list(sync_dict_list, 'dstype', '1') return sync_dict_list
def get_sync_dict_list(self, insert_or_updata) -> list: """ insert_or_updata 中 self.DB_True为insert,DB_False为updata 本方法的写法为强规则,调用add_value_to_sync_dict_list配置 第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置 """ sync_dict = self.get_sync_predefined_dict_list(insert_or_updata) object_table_id = self._obj_id object_table_data = self._dataset # 业务元数据 dsometadataxml_bus = object_table_data.value_by_name( 0, 'dsometadataxml_bus', '') xml = CXml() xml.load_xml(dsometadataxml_bus) # 下列字段名均待修改 self.add_value_to_sync_dict_list(sync_dict, 'aprmwid', object_table_id) self.add_value_to_sync_dict_list( sync_dict, 'mosaiclinefilename', xml.get_element_text_by_xpath_one("//item[@name='ProductName']")) self.add_value_to_sync_dict_list( sync_dict, 'sensors', xml.get_element_text_by_xpath_one("//item[@name='SatelliteID']")) self.add_value_to_sync_dict_list( sync_dict, 'dsometadatajson', object_table_data.value_by_name(0, 'dsometadataxml_bus', '')) self.add_value_to_sync_dict_list( sync_dict, 'resolution', xml.get_element_text_by_xpath_one("//item[@name='Resolution']")) self.add_value_to_sync_dict_list( sync_dict, 'imagesource', xml.get_element_text_by_xpath_one( "//item[@name='GeographicName']")) # 备注 self.add_value_to_sync_dict_list( sync_dict, 'remark', xml.get_element_text_by_xpath_one("//item[@name='Description']")) return sync_dict
def get_sync_dict_list(self, insert_or_updata) -> list: """ insert_or_updata 中 self.DB_True为insert,DB_False为updata 本方法的写法为强规则,调用add_value_to_sync_dict_list配置 第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置 """ sync_dict = self.get_sync_predefined_dict_list(insert_or_updata) object_table_id = self._obj_id object_table_data = self._dataset # 业务元数据 dsometadataxml_bus = object_table_data.value_by_name(0, 'dsometadataxml_bus', '') xml = CXml() xml.load_xml(dsometadataxml_bus) # 后处理流程介绍文档中的字段 self.add_value_to_sync_dict_list(sync_dict, 'aprgdid', object_table_id) self.add_value_to_sync_dict_list(sync_dict, 'aprgwid', object_table_data.value_by_name(0, 'dsoparentobjid', '')) self.add_value_to_sync_dict_list(sync_dict, 'datatype', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/DataFormat')) self.add_value_to_sync_dict_list(sync_dict, 'panfilename', object_table_data.value_by_name(0, 'dsoobjectname', '')) self.add_value_to_sync_dict_list(sync_dict, 'pansensorname', xml.get_element_text_by_xpath_one( '//PBandSensorType')) # numeric self.add_value_to_sync_dict_list(sync_dict, 'panresolution', xml.get_element_text_by_xpath_one( '//SateResolution')) self.add_value_to_sync_dict_list(sync_dict, 'pantraceno', xml.get_element_text_by_xpath_one( '//PBandOribitCode')) # self.add_value_to_sync_dict_list(sync_dict, 'panimagedate', xml.get_element_text_by_xpath_one('')) self.add_value_to_sync_dict_list(sync_dict, 'msfilename', object_table_data.value_by_name(0, 'dsoobjectname', '')) self.add_value_to_sync_dict_list(sync_dict, 'satename', xml.get_element_text_by_xpath_one('//SateName')) # int4 self.add_value_to_sync_dict_list(sync_dict, 'mssensorname', xml.get_element_text_by_xpath_one( '//MultiBandSensorType')) self.add_value_to_sync_dict_list(sync_dict, 'msresolution', xml.get_element_text_by_xpath_one( '//MultiBandResolution')) self.add_value_to_sync_dict_list(sync_dict, 'mstraceno', xml.get_element_text_by_xpath_one( '//MultiBandOrbitCode')) # self.add_value_to_sync_dict_list(sync_dict, 'msimagedate', xml.get_element_text_by_xpath_one('')) self.add_value_to_sync_dict_list(sync_dict, 'bandcount', xml.get_element_text_by_xpath_one( '//MultiBandNum')) self.add_value_to_sync_dict_list(sync_dict, 'bandname', xml.get_element_text_by_xpath_one( '//MultiBandName')) # self.add_value_to_sync_dict_list(sync_dict, 'bandide', xml.get_element_text_by_xpath_one('')) # int4 self.add_value_to_sync_dict_list(sync_dict, 'zoneno', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/MathFoundation/GaussKrugerZoneNo')) # self.add_value_to_sync_dict_list(sync_dict, 'sensor', xml.get_element_text_by_xpath_one('')) # self.add_value_to_sync_dict_list(sync_dict, 'sensorscode', xml.get_element_text_by_xpath_one('')) # self.add_value_to_sync_dict_list(sync_dict, 'cloudpercent', xml.get_element_text_by_xpath_one('')) # self.add_value_to_sync_dict_list(sync_dict, 'istile', xml.get_element_text_by_xpath_one('')) # self.add_value_to_sync_dict_list(sync_dict, 'tileindex', xml.get_element_text_by_xpath_one('')) self.add_value_to_sync_dict_list(sync_dict, 'metafilename', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/MetaDataFileName')) self.add_value_to_sync_dict_list(sync_dict, 'dsometadatajson', object_table_data.value_by_name(0, 'dsometadataxml_bus', '')) # 数据量 self.add_value_to_sync_dict_list(sync_dict, 'datacount', 1) # 密级 self.add_value_to_sync_dict_list(sync_dict, 'secrecylevel', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/ConfidentialLevel')) # 行政区码 # self.add_value_to_sync_dict_list(sync_dict, 'regioncode',xml.get_element_text_by_xpath_one() # 行政区 # self.add_value_to_sync_dict_list(sync_dict, 'regionname',xml.get_element_text_by_xpath_one() # 产品时间 # self.add_value_to_sync_dict_list(sync_dict, 'producetime', xml.get_element_text_by_xpath_one('')) # 分辨率 self.add_value_to_sync_dict_list(sync_dict, 'resolution', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/GroundResolution')) # 色彩模式 self.add_value_to_sync_dict_list(sync_dict, 'colormodel', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/ImgColorModel')) # 像素位数 self.add_value_to_sync_dict_list(sync_dict, 'piexldepth', xml.get_element_text_by_xpath_one('/Metadatafile/BasicDataContent/PixelBits')) # 比例尺分母 # self.add_value_to_sync_dict_list(sync_dict, 'scale', xml.get_element_text_by_xpath_one('')) # 主要星源 self.add_value_to_sync_dict_list(sync_dict, 'mainrssource', xml.get_element_text_by_xpath_one('//SateName')) # 备注 # self.add_value_to_sync_dict_list(sync_dict, 'remark', xml.get_element_text_by_xpath_one('')) return sync_dict
def get_sync_dict_list(self, insert_or_updata) -> list: """ insert_or_updata 中 self.DB_True为insert,DB_False为updata 本方法的写法为强规则,调用add_value_to_sync_dict_list配置 第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置 """ sync_dict = self.get_sync_predefined_dict_list(insert_or_updata) object_table_id = self._obj_id object_table_data = self._dataset # 业务元数据 dsometadataxml_bus = object_table_data.value_by_name( 0, 'dsometadataxml_bus', '') xml = CXml() xml.load_xml(dsometadataxml_bus) # 后处理流程介文档中的字段 self.add_value_to_sync_dict_list(sync_dict, 'aprmwid', object_table_id) # sync_dict['datatype'] = "'{0}'".format() # sync_dict['projinfo'] = "'{0}'".format() # sync_dict['zonetype'] = "'{0}'".format() # sync_dict['centerline'] = "'{0}'".format() # int4 # sync_dict['zoneno'] = "'{0}'".format() # sync_dict['coordinateunit'] = "'{0}'".format() # sync_dict['demname'] = "'{0}'".format() # sync_dict['demstandard'] = "'{0}'".format() self.add_value_to_sync_dict_list( sync_dict, 'mosaiclinefilename', object_table_data.value_by_name(0, 'dsoobjectname', '')) # sync_dict['sensors'] = "'{0}'".format() # sync_dict['iscuted'] = "'{0}'".format() # numeric # sync_dict['productsize'] = "'{0}'".format() self.add_value_to_sync_dict_list( sync_dict, 'imagesource', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/ImageSource')) self.add_value_to_sync_dict_list( sync_dict, 'dsometadatajson', object_table_data.value_by_name(0, 'dsometadataxml_bus', '')) # 数据量 self.add_value_to_sync_dict_list(sync_dict, 'datacount', 1) # 密级 # sync_dict['secrecylevel'] = "''" # 行政区码 # sync_dict['regioncode'] = "''" # 行政区 # sync_dict['regionname'] = "''" # 产品时间 # sync_dict['producetime'] = "'{0}'".format( # xml.get_element_text_by_xpath_one('/Metadatafile/BasicDataContent/ProduceDate')) # 分辨率 self.add_value_to_sync_dict_list( sync_dict, 'resolution', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/Resolution')) # 色彩模式 # self.add_value_to_sync_dict_list(sync_dict, 'colormodel',xml.get_element_text_by_xpath_one('')) # 像素位数 # self.add_value_to_sync_dict_list(sync_dict, 'piexldepth',xml.get_element_text_by_xpath_one('')) # 比例尺分母 # self.add_value_to_sync_dict_list(sync_dict, 'scale',xml.get_element_text_by_xpath_one('')) # 主要星源 # self.add_value_to_sync_dict_list(sync_dict, 'mainrssource', xml.get_element_text_by_xpath_one('')) # 备注 self.add_value_to_sync_dict_list( sync_dict, 'remark', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/Description')) return sync_dict
def get_sync_dict_list(self, insert_or_updata) -> list: """ insert_or_updata 中 self.DB_True为insert,DB_False为updata 本方法的写法为强规则,调用add_value_to_sync_dict_list配置 第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置 """ sync_dict = self.get_sync_predefined_dict_list(insert_or_updata) object_table_id = self._obj_id object_table_data = self._dataset # 业务元数据 dsometadataxml_bus = object_table_data.value_by_name( 0, 'dsometadataxml_bus', '') xml = CXml() xml.load_xml(dsometadataxml_bus) # 后处理流程介绍文档中的字段 self.add_value_to_sync_dict_list(sync_dict, 'aprtdid', object_table_id) self.add_value_to_sync_dict_list( sync_dict, 'aprtwid', object_table_data.value_by_name(0, 'dsoparentobjid', '')) self.add_value_to_sync_dict_list( sync_dict, 'datatype', xml.get_element_text_by_xpath_one( '/root/property[@tablename="mbii"]/item[@name="sjgs"]')) self.add_value_to_sync_dict_list( sync_dict, 'demname', xml.get_element_text_by_xpath_one( '/root/property[@tablename="mbii"]/item[@name="gcjz"]')) self.add_value_to_sync_dict_list( sync_dict, 'metafilename', xml.get_element_text_by_xpath_one( '/root/property[@tablename="mbii"]/item[@name="ysjwjm"]')) # numeric self.add_value_to_sync_dict_list( sync_dict, 'isfull', xml.get_element_text_by_xpath_one( '/root/property[@tablename="mbii"]/item[@name="mfqk"]')) self.add_value_to_sync_dict_list( sync_dict, 'ellipsoidtype', xml.get_element_text_by_xpath_one( '/root/property[@tablename="mbii"]/item[@name="tqlx"]')) self.add_value_to_sync_dict_list( sync_dict, 'projinfo', xml.get_element_text_by_xpath_one( '/root/property[@tablename="mbii"]/item[@name="dtty"]')) self.add_value_to_sync_dict_list( sync_dict, 'centerline', xml.get_element_text_by_xpath_one( '/root/property[@tablename="mbii"]/item[@name="zyjx"]')) self.add_value_to_sync_dict_list( sync_dict, 'zonetype', xml.get_element_text_by_xpath_one( '/root/property[@tablename="mbii"]/item[@name="fdfs"]')) # int4 self.add_value_to_sync_dict_list( sync_dict, 'zoneno', CUtils().to_integer( xml.get_element_text_by_xpath_one( '/root/property[@tablename="mbii"]/item[@name="gsklgtydh"]' ))) self.add_value_to_sync_dict_list( sync_dict, 'coordinateunit', xml.get_element_text_by_xpath_one( '/root/property[@tablename="mbii"]/item[@name="zbdw"]')) self.add_value_to_sync_dict_list( sync_dict, 'dsometadatajson', object_table_data.value_by_name(0, 'dsometadataxml_bus', '')) self.add_value_to_sync_dict_list( sync_dict, 'demstandard', xml.get_element_text_by_xpath_one( '/root/property[@tablename="mbii"]/item[@name="gcjz"]')) self.add_value_to_sync_dict_list( sync_dict, 'createrorganize', xml.get_element_text_by_xpath_one( '/root/property[@tablename="mbii"]/item[@name="sjscdw"]')) # self.add_value_to_sync_dict_list(sync_dict, 'bandcount', xml.get_element_text_by_xpath_one('')) # self.add_value_to_sync_dict_list(sync_dict, 'bandname', xml.get_element_text_by_xpath_one('')) # self.add_value_to_sync_dict_list(sync_dict, 'cloudpercent', xml.get_element_text_by_xpath_one('')) # 数据量 self.add_value_to_sync_dict_list( sync_dict, 'datacount', CUtils.to_integer( xml.get_element_text_by_xpath_one( '/root/property[@tablename="mbii"]/item[@name="sjl"]'))) # 密级 self.add_value_to_sync_dict_list( sync_dict, 'secrecylevel', xml.get_element_text_by_xpath_one( '/root/property[@tablename="mbii"]/item[@name="mj"]')) # 行政区码 self.add_value_to_sync_dict_list( sync_dict, 'regioncode', xml.get_element_text_by_xpath_one( '/root/property[@tablename="mbii"]/item[@name="xzqdm"]')) # 行政区 self.add_value_to_sync_dict_list( sync_dict, 'regionname', xml.get_element_text_by_xpath_one( '/root/property[@tablename="mbii"]/item[@name="xmc"]')) # 产品时间 # self.add_value_to_sync_dict_list(sync_dict, 'producetime', xml.get_element_text_by_xpath_one('')) # 分辨率 待提取 # self.add_value_to_sync_dict_list(sync_dict, 'resolution', xml.get_element_text_by_xpath_one(''), self.DB_True) # 色彩模式 # self.add_value_to_sync_dict_list(sync_dict, 'colormodel', xml.get_element_text_by_xpath_one('')) # 像素位数 # self.add_value_to_sync_dict_list(sync_dict, 'piexldepth', xml.get_element_text_by_xpath_one('')) # 比例尺分母 # self.add_value_to_sync_dict_list(sync_dict, 'scale', xml.get_element_text_by_xpath_one('')) # 主要星源 self.add_value_to_sync_dict_list( sync_dict, 'mainrssource', xml.get_element_text_by_xpath_one( '/root/property[@tablename="mpid"]/item[@name="sjy"]')) # 备注 # self.add_value_to_sync_dict_list(sync_dict, 'remark', xml.get_element_text_by_xpath_one('')) return sync_dict
def get_sync_dict_list(self, insert_or_updata) -> list: """ insert_or_updata 中 self.DB_True为insert,DB_False为updata 本方法的写法为强规则,调用add_value_to_sync_dict_list配置 第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置 """ sync_dict = self.get_sync_predefined_dict_list(insert_or_updata) object_table_id = self._obj_id object_table_data = self._dataset # 业务元数据 dsometadataxml_bus = object_table_data.value_by_name( 0, 'dsometadataxml_bus', '') xml = CXml() xml.load_xml(dsometadataxml_bus) # 后处理流程介绍文档中的字段 self.add_value_to_sync_dict_list(sync_dict, 'aprgdid', object_table_id) # self.add_value_to_sync_dict_list(sync_dict, 'rowno', xml.get_element_text_by_xpath_one('')) # self.add_value_to_sync_dict_list(sync_dict, 'colno', xml.get_element_text_by_xpath_one('')) self.add_value_to_sync_dict_list( sync_dict, 'sfno', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/MapNo')) self.add_value_to_sync_dict_list( sync_dict, 'domname', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/ProductName')) # self.add_value_to_sync_dict_list(sync_dict, 'domscale',xml.get_element_text_by_xpath_one('') # self.add_value_to_sync_dict_list(sync_dict, 'imgyear', xml.get_element_text_by_xpath_one('')) # self.add_value_to_sync_dict_list(sync_dict, 'sensorscode', xml.get_element_text_by_xpath_one('')) # self.add_value_to_sync_dict_list(sync_dict, 'rescode', xml.get_element_text_by_xpath_one('')) # self.add_value_to_sync_dict_list(sync_dict, 'colorcode', xml.get_element_text_by_xpath_one('')) # self.add_value_to_sync_dict_list(sync_dict, 'tilecode', xml.get_element_text_by_xpath_one('')) # self.add_value_to_sync_dict_list(sync_dict, 'sepcode', xml.get_element_text_by_xpath_one('')) # self.add_value_to_sync_dict_list(sync_dict, 'extname', xml.get_element_text_by_xpath_one('')) # self.add_value_to_sync_dict_list(sync_dict, 'scalecode', xml.get_element_text_by_xpath_one('')) self.add_value_to_sync_dict_list( sync_dict, 'datatype', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/DataFormat')) # self.add_value_to_sync_dict_list(sync_dict, 'expandlength', xml.get_element_text_by_xpath_one('')) # self.add_value_to_sync_dict_list(sync_dict, 'panimagedate', xml.get_element_text_by_xpath_one('')) self.add_value_to_sync_dict_list( sync_dict, 'projinfo', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/Mathfoundation/MapProjection')) self.add_value_to_sync_dict_list( sync_dict, 'zonetype', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/Mathfoundation/ZoneDivisionMode' )) self.add_value_to_sync_dict_list( sync_dict, 'centerline', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/Mathfoundation/CentralMederian' )) self.add_value_to_sync_dict_list( sync_dict, 'coordinateunit', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/Mathfoundation/CoordinationUnit' )) self.add_value_to_sync_dict_list( sync_dict, 'createrorgnize', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/Producer')) self.add_value_to_sync_dict_list( sync_dict, 'publishorgnize', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/Publisher')) self.add_value_to_sync_dict_list( sync_dict, 'submitorganize', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/Owner')) # int4 self.add_value_to_sync_dict_list( sync_dict, 'zoneno', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/Mathfoundation/GaussKrugerZoneNo' )) self.add_value_to_sync_dict_list( sync_dict, 'demstandard', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/Mathfoundation/HeightDatum')) self.add_value_to_sync_dict_list( sync_dict, 'demname', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/Mathfoundation/HeightSystem')) # self.add_value_to_sync_dict_list(sync_dict, 'sensor', xml.get_element_text_by_xpath_one('')) # self.add_value_to_sync_dict_list(sync_dict, 'sensorscode', xml.get_element_text_by_xpath_one('')) # self.add_value_to_sync_dict_list(sync_dict, 'cloudpercent', xml.get_element_text_by_xpath_one('')) # self.add_value_to_sync_dict_list(sync_dict, 'istile', xml.get_element_text_by_xpath_one('')) # self.add_value_to_sync_dict_list(sync_dict, 'tileindex', xml.get_element_text_by_xpath_one('')) # self.add_value_to_sync_dict_list(sync_dict, 'isfull', xml.get_element_text_by_xpath_one('')) # self.add_value_to_sync_dict_list(sync_dict, 'imagesource', xml.get_element_text_by_xpath_one('')) self.add_value_to_sync_dict_list( sync_dict, 'metafilename', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/MetaDataFileName')) self.add_value_to_sync_dict_list( sync_dict, 'dsometadatajson', object_table_data.value_by_name(0, 'dsometadataxml_bus', '')) # 数据量 self.add_value_to_sync_dict_list(sync_dict, 'datacount', 1) # 密级 self.add_value_to_sync_dict_list( sync_dict, 'secrecylevel', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/ConfidentialLevel')) # 行政区码 # self.add_value_to_sync_dict_list(sync_dict, 'regioncode',xml.get_element_text_by_xpath_one() # 行政区 # self.add_value_to_sync_dict_list(sync_dict, 'regionname',xml.get_element_text_by_xpath_one() # 产品时间 # self.add_value_to_sync_dict_list(sync_dict, 'producetime', xml.get_element_text_by_xpath_one('')) # 分辨率 self.add_value_to_sync_dict_list( sync_dict, 'resolution', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/GroundResolution')) # 色彩模式 self.add_value_to_sync_dict_list( sync_dict, 'colormodel', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/ImgColorModel')) # 像素位数 self.add_value_to_sync_dict_list( sync_dict, 'piexldepth', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/PixelBits')) # 比例尺分母 # self.add_value_to_sync_dict_list(sync_dict, 'scale', xml.get_element_text_by_xpath_one('')) # 主要星源 self.add_value_to_sync_dict_list( sync_dict, 'mainrssource', xml.get_element_text_by_xpath_one('//SateName')) # 备注 # self.add_value_to_sync_dict_list(sync_dict, 'remark', xml.get_element_text_by_xpath_one('')) return sync_dict
def get_sync_predefined_dict_list(self, insert_or_updata) -> list: """ insert_or_updata 指明配置的是更新还是插入,-1时为插入,0为更新 本方法的写法为强规则,调用add_value_to_sync_dict_list配置 第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置 datacount:数据数量 secrecylevel:密级 colormodel:色彩模式 piexldepth:像素位数 """ sync_dict_list = list() object_table_id = self._obj_id object_table_data = self._dataset self.add_value_to_sync_dict_list(sync_dict_list, 'aprid', object_table_id) dsometadataxml = object_table_data.value_by_name( 0, 'dsometadataxml_bus', '') dsometadataxml_xml = CXml() dsometadataxml_xml.load_xml(dsometadataxml) # 加载查询出来的xml self.add_value_to_sync_dict_list( # 通过本方法配置需要的字典集合 sync_dict_list, 'productname', # 配置字段名 dsometadataxml_xml.get_element_text_by_xpath_one( '/root/DSName')) # 配置字段值 self.add_value_to_sync_dict_list(sync_dict_list, 'producttype', self._obj_type_code) self.add_value_to_sync_dict_list( sync_dict_list, 'dsodatatype', object_table_data.value_by_name(0, 'dsodatatype', '')) self.add_value_to_sync_dict_list( sync_dict_list, 'begdate', CUtils.to_day_format( dsometadataxml_xml.get_element_text_by_xpath_one( '/root/BeginDate'), '')) self.add_value_to_sync_dict_list( sync_dict_list, 'enddate', CUtils.to_day_format( dsometadataxml_xml.get_element_text_by_xpath_one( '/root/EndDate'), '')) self.add_value_to_sync_dict_list( sync_dict_list, 'imagedate', CUtils.to_day_format( dsometadataxml_xml.get_element_text_by_xpath_one('/root/Date'), '')) # datacount:数据数量 self.add_value_to_sync_dict_list( sync_dict_list, 'datacount', ''' (select count(dsoid) FROM dm2_storage_object WHERE dsoparentobjid='{0}') '''.format(object_table_id), self.DataValueType_SQL) # secrecylevel:密级 regioncode = dsometadataxml_xml.get_element_text_by_xpath_one( '/root/RegionCode') self.add_value_to_sync_dict_list( # regioncode:行政区码 sync_dict_list, 'regioncode', regioncode) self.add_value_to_sync_dict_list( # regionname:行政区 sync_dict_list, 'regionname', dsometadataxml_xml.get_element_text_by_xpath_one( '/root/RegionName')) self.add_value_to_sync_dict_list( sync_dict_list, 'centerx', ''' (select centerx::decimal(8,2) from ro_global_dim_space where gdscode='{0}') '''.format(regioncode), self.DataValueType_SQL) self.add_value_to_sync_dict_list( sync_dict_list, 'centery', ''' (select centery::decimal(8,2) from ro_global_dim_space where gdscode='{0}') '''.format(regioncode), self.DataValueType_SQL) self.add_value_to_sync_dict_list( sync_dict_list, 'geomwkt', "st_astext(" "(select gdsgeometry from ro_global_dim_space where gdscode='{0}')" ")".format(regioncode), self.DataValueType_SQL) self.add_value_to_sync_dict_list( sync_dict_list, 'geomobj', "(select gdsgeometry from ro_global_dim_space where gdscode='{0}')" .format(regioncode), self.DataValueType_SQL) self.add_value_to_sync_dict_list( sync_dict_list, 'browserimg', object_table_data.value_by_name(0, 'dso_browser', '')) self.add_value_to_sync_dict_list( sync_dict_list, 'thumbimg', object_table_data.value_by_name(0, 'dso_thumb', '')) self.add_value_to_sync_dict_list( sync_dict_list, 'producetime', CUtils.to_day_format( dsometadataxml_xml.get_element_text_by_xpath_one('/root/Date'), '')) self.add_value_to_sync_dict_list( # resolution:分辨率 sync_dict_list, 'resolution', dsometadataxml_xml.get_element_text_by_xpath_one( '/root/Resolution')) self.add_value_to_sync_dict_list( sync_dict_list, 'imgsize', "(select round((sum(dodfilesize)/1048576),2) from dm2_storage_obj_detail " "where dodobjectid in " "(select dsoid FROM dm2_storage_object WHERE dsoparentobjid='{0}')" ")".format(object_table_id), self.DataValueType_SQL) # colormodel:交插件处理 # piexldepth:交插件处理 if insert_or_updata: self.add_value_to_sync_dict_list(sync_dict_list, 'isdel', '0') now_time = CUtils.any_2_str( datetime.datetime.now().strftime('%F %T')) self.add_value_to_sync_dict_list(sync_dict_list, 'addtime', now_time) self.add_value_to_sync_dict_list( sync_dict_list, 'extent', "(select gds_geo_bbox from ro_global_dim_space where gdscode='{0}')" .format(regioncode), self.DataValueType_SQL) # self.add_value_to_sync_dict_list( # sync_dict_list, 'proj', object_table_data.value_by_name(0, 'dso_prj_wkt', ''), self.DB_True) self.add_value_to_sync_dict_list( sync_dict_list, 'remark', dsometadataxml_xml.get_element_text_by_xpath_one('/root/Remark')) # ispublishservice:暂时为空 self.add_value_to_sync_dict_list(sync_dict_list, 'queryable', '1') self.add_value_to_sync_dict_list( sync_dict_list, 'mainrssource', dsometadataxml_xml.get_element_text_by_xpath_one( '/root/MajorSource')) self.add_value_to_sync_dict_list( sync_dict_list, 'scale', dsometadataxml_xml.get_element_text_by_xpath_one( '/root/ScaleDenominator')) self.add_value_to_sync_dict_list( sync_dict_list, 'dsdid', object_table_data.value_by_name(0, 'query_dataset_directory_id', '')) self.add_value_to_sync_dict_list( sync_dict_list, 'imagedatetag', self.transform_time_to_imagedatetag( dsometadataxml_xml.get_element_text_by_xpath_one( '/root/Date'))) return sync_dict_list
def get_sync_dict_list(self, insert_or_updata) -> list: """ insert_or_updata 中 self.DB_True为insert,DB_False为updata 本方法的写法为强规则,调用add_value_to_sync_dict_list配置 第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置 """ sync_dict = self.get_sync_predefined_dict_list(insert_or_updata) object_table_id = self._obj_id object_table_data = self._dataset # 业务元数据 dsometadataxml_bus = object_table_data.value_by_name( 0, 'dsometadataxml_bus', '') xml = CXml() xml.load_xml(dsometadataxml_bus) # 后处理流程介绍文档中的字段 self.add_value_to_sync_dict_list(sync_dict, 'aprodid', object_table_id) self.add_value_to_sync_dict_list( sync_dict, 'aprowid', object_table_data.value_by_name(0, 'dsoparentobjid', '')) self.add_value_to_sync_dict_list( sync_dict, 'sataname', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/SatelliteID')) dsoobjectname = object_table_data.value_by_name(0, 'dsoobjectname', '') resolution = xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/Resolution') if 'pan' in CUtils.text_to_lower(dsoobjectname): self.add_value_to_sync_dict_list(sync_dict, 'panfilename', dsoobjectname) self.add_value_to_sync_dict_list(sync_dict, 'panresolution', resolution) self.add_value_to_sync_dict_list( sync_dict, 'panimagedate', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/ReceiveTime')) self.add_value_to_sync_dict_list(sync_dict, 'fusefilename', dsoobjectname) else: self.add_value_to_sync_dict_list(sync_dict, 'msfilename', dsoobjectname) # sync_dict['mssensorname'] = "''" self.add_value_to_sync_dict_list(sync_dict, 'msresolution', resolution) # sync_dict['mstraceno'] = "''" self.add_value_to_sync_dict_list( sync_dict, 'msimagedate', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/ReceiveTime')) # sync_dict['fusefilename'] = "''" self.add_value_to_sync_dict_list( sync_dict, 'dsometadatajson', object_table_data.value_by_name(0, 'dsometadataxml_bus', '')) # sync_dict['bandcount'] = "''" # sync_dict['bandname'] = "''" # sync_dict['cloudpercent'] = "''" # 数据量 self.add_value_to_sync_dict_list(sync_dict, 'datacount', 1) # 密级 # sync_dict['secrecylevel'] = "''" # 行政区码 # sync_dict['regioncode'] = "''" # 行政区 # sync_dict['regionname'] = "''" # 产品时间 # sync_dict['producetime'] = "'{0}'".format( # xml.get_element_text_by_xpath_one('/Metadatafile/BasicDataContent/ProduceDate')) # resolution self.add_value_to_sync_dict_list( sync_dict, 'resolution', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/Resolution')) # 色彩模式 # sync_dict['colormodel'] = "''" # 像素位数 # sync_dict['piexldepth'] = "''" # 比例尺分母 # sync_dict['scale'] = "''" # 主要星源 self.add_value_to_sync_dict_list( sync_dict, 'mainrssource', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/SatelliteID')) self.add_value_to_sync_dict_list( sync_dict, 'remark', xml.get_element_text_by_xpath_one( '/Metadatafile/BasicDataContent/Description')) return sync_dict
def get_sync_mdb_dict_list(self, insert_or_updata) -> list: """ insert_or_updata 中 self.DB_True为insert,DB_False为updata 本方法的写法为强规则,调用add_value_to_sync_dict_list配置 第一个参数为list,第二个参数为字段名,第三个参数为字段值,第四个参数为特殊配置 """ object_id = self._obj_id object_name = self._obj_name dsometadataxml_bus = self._dataset.value_by_name( 0, 'dsometadataxml_bus', '') dso_time = self._dataset.value_by_name(0, 'dso_time', '') dso_time_json = CJson() # 时间数据json dso_time_json.load_obj(dso_time) metadataxml_bus_xml = CXml() # 业务元数据xml metadataxml_bus_xml.load_xml(dsometadataxml_bus) sync_dict_list = self.get_sync_predefined_dict_list(insert_or_updata) self.add_value_to_sync_dict_list(sync_dict_list, 'aprsdid', object_id) self.add_value_to_sync_dict_list( sync_dict_list, 'aprswid', self._dataset.value_by_name(0, 'dsoparentobjid', '')) # sync_dict['fname'] #为空 self.add_value_to_sync_dict_list( sync_dict_list, 'fno', metadataxml_bus_xml.get_element_text_by_xpath_one( "//item[@name='th']")) ''' object_name[0:1] 100万图幅行号为字母 object_name[1:3] 100万图幅列号为数字 object_name[3:4] 比例尺代码为字母 object_name[4:7] 图幅行号为数字 object_name[7:10] 图幅列号为数字 ''' if CUtils.text_is_alpha(object_name[0:1]): self.add_value_to_sync_dict_list(sync_dict_list, 'hrowno', object_name[0:1]) self.add_value_to_sync_dict_list(sync_dict_list, 'hcolno', object_name[1:3]) self.add_value_to_sync_dict_list(sync_dict_list, 'scalecode', object_name[3:4]) self.add_value_to_sync_dict_list(sync_dict_list, 'rowno', object_name[4:7]) self.add_value_to_sync_dict_list(sync_dict_list, 'colno', object_name[7:10]) # sync_dict['expandextent'] # 为空 # sync_dict['pupdatedate'] # 为空 # sync_dict['pversion'] # 为空 # sync_dict['publishdate'] # 为空 self.add_value_to_sync_dict_list( sync_dict_list, 'dataformat', metadataxml_bus_xml.get_element_text_by_xpath_one( "//item[@name='sjgs']")) # sync_dict['maindatasource'] # 为空 self.add_value_to_sync_dict_list( sync_dict_list, 'dsometadatajson', self._dataset.value_by_name(0, 'dsometadataxml_bus', '')) self.add_value_to_sync_dict_list( sync_dict_list, 'createrorganize', metadataxml_bus_xml.get_element_text_by_xpath_one( "//item[@name='sjscdwm']")) self.add_value_to_sync_dict_list( sync_dict_list, 'submitorganize', metadataxml_bus_xml.get_element_text_by_xpath_one( "//item[@name='sjbqdwm']")) self.add_value_to_sync_dict_list( sync_dict_list, 'copyrightorgnize', metadataxml_bus_xml.get_element_text_by_xpath_one( "//item[@name='sjcbdwm']")) # sync_dict['supplyorganize'] # 为空 self.add_value_to_sync_dict_list( sync_dict_list, 'colormodel', metadataxml_bus_xml.get_element_text_by_xpath_one( "//item[@name='yxscms']")) self.add_value_to_sync_dict_list( sync_dict_list, 'piexldepth', metadataxml_bus_xml.get_element_text_by_xpath_one( "//item[@name='xsws']")) # sync_dict['scale'] # 为空 self.add_value_to_sync_dict_list( sync_dict_list, 'mainrssource', metadataxml_bus_xml.get_element_text_by_xpath_one( "//item[@name='wxmc']")) # 插件处理字段 self.add_value_to_sync_dict_list(sync_dict_list, 'datacount', 1) self.add_value_to_sync_dict_list( sync_dict_list, 'secrecylevel', metadataxml_bus_xml.get_element_text_by_xpath_one( "//item[@name='mj']")) # sync_dict['regioncode'] # 为空 # sync_dict['regionname'] # 为空 self.add_value_to_sync_dict_list( sync_dict_list, 'resolution', metadataxml_bus_xml.get_element_text_by_xpath_one( "//item[@name='dmfbl']")) self.add_value_to_sync_dict_list( sync_dict_list, 'imagedate', CUtils.to_day_format(dso_time_json.xpath_one('time', ''), dso_time_json.xpath_one('time', ''))) self.add_value_to_sync_dict_list( sync_dict_list, 'begdate', CUtils.to_day_format(dso_time_json.xpath_one('start_time', ''), dso_time_json.xpath_one('start_time', ''))) self.add_value_to_sync_dict_list( sync_dict_list, 'enddate', CUtils.to_day_format(dso_time_json.xpath_one('end_time', ''), dso_time_json.xpath_one('end_time', ''))) return sync_dict_list