fangjiasheng 3 年之前
父節點
當前提交
9c67d10289

+ 1 - 0
.gitignore

@@ -20,3 +20,4 @@
 /unrar
 /wiki_128_word_embedding_new.env
 /yep_homework.py
+/format_convert/temp/

+ 34 - 21
format_convert/convert.py

@@ -2565,26 +2565,39 @@ def convert(data, ocr_model, otr_model):
                 logging.info("convert time out! 1200 sec")
                 text = [-5]
 
-        if text == [-1]:
-            print({"failed result": [-1], "is_success": 0}, time.time() - start_time)
-            return {"result_html": ["-1"], "result_text": ["-1"], "is_success": 0}
-        if text == [-2]:
-            print({"failed result": [-2], "is_success": 0}, time.time() - start_time)
-            return {"result_html": ["-2"], "result_text": ["-2"], "is_success": 0}
-        if text == [-3]:
-            print({"failed result": [-3], "is_success": 1}, time.time() - start_time)
-            return {"result_html": ["-3"], "result_text": ["-3"], "is_success": 1}
-        if text == [-4]:
-            print({"failed result": [-4], "is_success": 0}, time.time() - start_time)
-            return {"result_html": ["-4"], "result_text": ["-4"], "is_success": 0}
-        if text == [-5]:
-            print({"failed result": [-5], "is_success": 0}, time.time() - start_time)
-            return {"result_html": ["-5"], "result_text": ["-5"], "is_success": 0}
-        if text == [-7]:
-            print({"failed result": [-7], "is_success": 1}, time.time() - start_time)
-            return {"result_html": ["-7"], "result_text": ["-7"], "is_success": 1}
-
-        # text = add_html_format(text)
+        # if text == [-1]:
+        #     print({"failed result": [-1], "is_success": 0}, time.time() - start_time)
+        #     return {"result_html": ["-1"], "result_text": ["-1"], "is_success": 0}
+        # if text == [-2]:
+        #     print({"failed result": [-2], "is_success": 0}, time.time() - start_time)
+        #     return {"result_html": ["-2"], "result_text": ["-2"], "is_success": 0}
+        # if text == [-3]:
+        #     print({"failed result": [-3], "is_success": 1}, time.time() - start_time)
+        #     return {"result_html": ["-3"], "result_text": ["-3"], "is_success": 1}
+        # if text == [-4]:
+        #     print({"failed result": [-4], "is_success": 0}, time.time() - start_time)
+        #     return {"result_html": ["-4"], "result_text": ["-4"], "is_success": 0}
+        # if text == [-5]:
+        #     print({"failed result": [-5], "is_success": 0}, time.time() - start_time)
+        #     return {"result_html": ["-5"], "result_text": ["-5"], "is_success": 0}
+        # if text == [-7]:
+        #     print({"failed result": [-7], "is_success": 1}, time.time() - start_time)
+        #     return {"result_html": ["-7"], "result_text": ["-7"], "is_success": 1}
+        # if text == [-8]:
+        #     print({"failed result": [-8], "is_success": 0}, time.time() - start_time)
+        #     return {"result_html": ["-8"], "result_text": ["-8"], "is_success": 1}
+
+        error_code = [[-x] for x in range(1, 9)]
+        still_success_code = [[-3], [-7]]
+        if text in error_code:
+            if text in still_success_code:
+                print({"failed result": text, "is_success": 1}, time.time() - start_time)
+                return {"result_html": [str(text[0])], "result_text": [str(text[0])],
+                        "is_success": 1}
+            else:
+                print({"failed result": text, "is_success": 0}, time.time() - start_time)
+                return {"result_html": [str(text[0])], "result_text": [str(text[0])],
+                        "is_success": 0}
 
         # 结果保存result.html
         # if get_platform() == "Windows":
@@ -2655,7 +2668,7 @@ if __name__ == '__main__':
     # file_path = "D:/Project/table-detect-master/test_files/table2.jpg"
 
     if get_platform() == "Windows":
-        file_path = "C:/Users/Administrator/Desktop/国际信息采集咨询服务项目.pdf"
+        file_path = "C:/Users/Administrator/Desktop/error3.pdf"
         # file_path = "D:/BIDI_DOC/比地_文档/2022/Test_Interface/94961e1987d1090e.xls"
         # file_path = "C:/Users/Administrator/Desktop/Test_ODPS/1624875783055.pdf"
     else:

+ 13 - 4
format_convert/convert_image.py

@@ -1,6 +1,9 @@
 import logging
 import os
 import sys
+
+from pdfminer.layout import LTLine
+
 sys.path.append(os.path.dirname(__file__) + "/../")
 import traceback
 import cv2
@@ -34,7 +37,7 @@ def image_preprocess(image_np, image_path, use_ocr=True):
         # 调用otr模型接口
         with open(image_resize_path, "rb") as f:
             image_bytes = f.read()
-        points, split_lines, bboxes, outline_points = from_otr_interface(image_bytes)
+        points, split_lines, bboxes, outline_points, lines = from_otr_interface(image_bytes)
         if judge_error_code(points):
             return points, [], [], 0
 
@@ -57,6 +60,11 @@ def image_preprocess(image_np, image_path, use_ocr=True):
             outline_points[i] = [(int(point[0][0]*ratio[1]), int(point[0][1]*ratio[0])),
                                  (int(point[1][0]*ratio[1]), int(point[1][1]*ratio[0]))]
 
+        for i in range(len(lines)):
+            point = lines[i]
+            lines[i] = [int(point[0]*ratio[1]), int(point[1]*ratio[0]),
+                        int(point[2]*ratio[1]), int(point[3]*ratio[0])]
+
         # 查看是否能输出正确框
         for box in bboxes:
             cv2.rectangle(image_np, box[0], box[1], (0, 255, 0), 2)
@@ -89,14 +97,15 @@ def image_preprocess(image_np, image_path, use_ocr=True):
             try:
                 from format_convert.convert_tree import TableLine
                 list_lines = []
-                for bbox in bboxes:
-                    list_lines.append(TableLine(bbox))
+                for line in lines:
+                    list_lines.append(LTLine(1, (line[0], line[1]), (line[2], line[3])))
                 from format_convert.convert_tree import TextBox
                 list_text_boxes = []
                 for i in range(len(bbox_list)):
                     bbox = bbox_list[i]
                     b_text = text_list[i]
-                    list_text_boxes.append(TextBox([bbox[3], bbox[1]], b_text))
+                    list_text_boxes.append(TextBox([bbox[3][0], bbox[3][1],
+                                                    bbox[1][0], bbox[1][1]], b_text))
 
                 lt = LineTable()
                 tables, obj_in_table, _ = lt.recognize_table(list_text_boxes, list_lines)

+ 7 - 4
format_convert/convert_need_interface.py

@@ -103,11 +103,11 @@ def from_otr_interface(image_stream):
                 print("=========== init otr model ===========")
             r = otr(data=base64_stream, otr_model=globals().get("global_otr_model"))
         except TimeoutError:
-            return [-5], [-5], [-5], [-5]
+            return [-5], [-5], [-5], [-5], [-5]
         except requests.exceptions.ConnectionError as e:
             logging.info("from_otr_interface")
             print("from_otr_interface", traceback.print_exc())
-            return [-2], [-2], [-2], [-2]
+            return [-2], [-2], [-2], [-2], [-2]
 
         # 处理结果
         _dict = r
@@ -115,6 +115,7 @@ def from_otr_interface(image_stream):
         split_lines = eval(_dict.get("split_lines"))
         bboxes = eval(_dict.get("bboxes"))
         outline_points = eval(_dict.get("outline_points"))
+        lines = eval(_dict.get("lines"))
         # print("from_otr_interface len(bboxes)", len(bboxes))
         if points is None:
             points = []
@@ -124,8 +125,10 @@ def from_otr_interface(image_stream):
             bboxes = []
         if outline_points is None:
             outline_points = []
-        return points, split_lines, bboxes, outline_points
+        if lines is None:
+            lines = []
+        return points, split_lines, bboxes, outline_points, lines
     except Exception as e:
         logging.info("from_otr_interface error!")
         print("from_otr_interface", traceback.print_exc())
-        return [-1], [-1], [-1], [-1]
+        return [-1], [-1], [-1], [-1], [-1]

+ 30 - 21
format_convert/convert_pdf.py

@@ -658,6 +658,7 @@ class PDFConvert:
             self._page = _Page(page, page_no)
             # 解析单页
             self.convert_page(page, page_no)
+
             if self._doc.error_code is None and self._page.error_code is not None:
                 self._doc.error_code = self._page.error_code
                 break
@@ -693,27 +694,33 @@ class PDFConvert:
             if self._doc.error_code is not None:
                 return
 
-            lt_line_list = []
-            page_plumber = pdfPage(self.doc_pdfplumber, page, page_number=page_no, initial_doctop=self.doc_top)
-            self.doc_top += page_plumber.height
-
-            table_finder = TableFinder(page_plumber)
-            for _edge in table_finder.get_edges():
-                lt_line_list.append(LTLine(1, (float(_edge["x0"]), float(_edge["y0"])),
-                                              (float(_edge["x1"]), float(_edge["y1"]))))
-            list_tables, filter_objs, _ = self.lt.recognize_table(lt_text_list, lt_line_list)
-            self._page.in_table_objs = filter_objs
-            for table in list_tables:
-                _table = _Table(table["table"], table["bbox"])
-                self._page.children.append(_table)
-
-            list_sentences = ParseUtils.recognize_sentences(lt_text_list, filter_objs,
-                                                            layout.bbox, page_no)
-            for sentence in list_sentences:
-                _sen = _Sentence(sentence.text)
-                _sen.x = sentence.x0
-                _sen.y = sentence.y0
-                self._page.children.append(_sen)
+            try:
+                lt_line_list = []
+                page_plumber = pdfPage(self.doc_pdfplumber, page, page_number=page_no, initial_doctop=self.doc_top)
+                self.doc_top += page_plumber.height
+
+                table_finder = TableFinder(page_plumber)
+                for _edge in table_finder.get_edges():
+                    lt_line_list.append(LTLine(1, (float(_edge["x0"]), float(_edge["y0"])),
+                                                  (float(_edge["x1"]), float(_edge["y1"]))))
+                list_tables, filter_objs, _ = self.lt.recognize_table(lt_text_list, lt_line_list)
+                self._page.in_table_objs = filter_objs
+                for table in list_tables:
+                    _table = _Table(table["table"], table["bbox"])
+                    # self._page.children.append(_table)
+                    self._page.add_child(_table)
+
+                list_sentences = ParseUtils.recognize_sentences(lt_text_list, filter_objs,
+                                                                layout.bbox, page_no)
+                for sentence in list_sentences:
+                    _sen = _Sentence(sentence.text)
+                    _sen.x = sentence.x0
+                    _sen.y = sentence.y0
+                    # self._page.children.append(_sen)
+                    self._page.add_child(_sen)
+            except:
+                traceback.print_exc()
+                self._page.error_code = [-8]
 
         # 若该页图片数量过多,或无文本,则直接ocr整页识别
         elif image_count >= 3 or only_image == 1:
@@ -846,6 +853,8 @@ class PDFConvert:
 
     def get_html(self):
         self.convert_pdf()
+        if self._doc.error_code is not None:
+            return self._doc.error_code
         return self._doc.get_html()
 
 

+ 45 - 13
format_convert/convert_tree.py

@@ -14,7 +14,10 @@ class _Document:
         self.error_code = None
 
     def add_child(self, child):
-        self.children.append(child)
+        if child.error_code is None:
+            self.children.append(child)
+        else:
+            self.error_code = child.error_code
 
     def get_html(self):
         if self.error_code is not None:
@@ -22,7 +25,14 @@ class _Document:
 
         html_text = ""
         for child in self.children:
-            html_text += child.get_html()
+            # 先调用get_html才能更新error_code
+            child_html_text = child.get_html()
+            print("Document", self.error_code, child.error_code, type(child), child.page_no)
+            if child.error_code is not None:
+                self.error_code = child.error_code
+                return self.error_code
+            else:
+                html_text += child_html_text
         return [html_text]
 
 
@@ -37,17 +47,26 @@ class _Page:
         self.in_table_objs = set()
 
     def add_child(self, child):
-        self.children.append(child)
+        if child.error_code is None:
+            self.children.append(child)
+        else:
+            self.error_code = child.error_code
 
     def get_html(self):
         if self.error_code is not None:
-            return self.error_code
+            return ""
 
         html_text = ""
         self.children = sort_object(self.children)
         for child in self.children:
-            print("child", type(child))
-            html_text += child.get_html()
+            # 先调用get_html才能更新error_code
+            child_html_text = child.get_html()
+            print("Page", self.error_code, child.error_code, type(child))
+            if child.error_code is not None:
+                self.error_code = child.error_code
+                return ""
+            else:
+                html_text += child_html_text
         return html_text
 
 
@@ -70,19 +89,29 @@ class _Image:
         self.in_table_objs = set()
 
     def add_child(self, child):
-        self.children.append(child)
+        if child.error_code is None:
+            self.children.append(child)
+        else:
+            self.error_code = child.error_code
 
     def get_html(self):
         # 将Image转为Sentence,table
         self.convert()
-
+        print("Image", self.error_code)
         if self.error_code is not None:
-            return self.error_code
+            return ""
 
         html_text = ""
         self.children = sort_object(self.children)
         for child in self.children:
-            html_text += child.get_html()
+            # 先调用get_html才能更新error_code
+            child_html_text = child.get_html()
+            print("Image", self.error_code, child.error_code, type(child))
+            if child.error_code is not None:
+                self.error_code = child.error_code
+                return ""
+            else:
+                html_text += child_html_text
         return html_text
 
     def get_text(self):
@@ -95,6 +124,9 @@ class _Image:
         text, column_list, outline_points, is_table = image_preprocess(image_np,
                                                                        self.path,
                                                                        use_ocr=True)
+        print("is_table", is_table)
+        for t in text:
+            print(t)
         if judge_error_code(text):
             self.error_code = text
             return
@@ -118,7 +150,7 @@ class _Table:
 
     def get_html(self):
         if self.error_code is not None:
-            return self.error_code
+            return ""
 
         # 将二维数组转为html table
         html_text = get_table_html(self.content)
@@ -135,7 +167,7 @@ class _Sentence:
 
     def get_html(self):
         if self.error_code is not None:
-            return self.error_code
+            return ""
         return add_div(self.content)
 
 
@@ -150,4 +182,4 @@ class TextBox:
 
 class TableLine:
     def __init__(self, bbox):
-        self.bbox = bbox
+        self.bbox = bbox

+ 24 - 9
format_convert/utils.py

@@ -507,6 +507,7 @@ class LineTable():
     def recognize_table(self, list_textbox, list_line):
         self.list_line = list_line
         self.list_crosspoints = self.recognize_crosspoints(list_line)
+
         # 聚类
         cluster_crosspoints = []
         for _point in self.list_crosspoints:
@@ -529,7 +530,6 @@ class LineTable():
             cluster_crosspoints = new_cluster_crosspoints
             if not _find:
                 break
-        # print(len(cluster_crosspoints))
 
         list_l_rect = []
         for table_crosspoint in cluster_crosspoints:
@@ -542,6 +542,7 @@ class LineTable():
             _ta = self.rect2table(list_textbox,l_rect,in_objs)
             if _ta:
                 list_tables.append(_ta)
+        self._plot(list_line, list_textbox)
         return list_tables, in_objs, list_l_rect
 
     def recognize_table_by_rect(self, list_textbox, list_rect, margin=2):
@@ -894,6 +895,7 @@ class LineTable():
             if not _find:
                 clusters_rects.append([_rect])
 
+        print("clusters_rects", len(clusters_rects))
         clusters_rects.sort(key=lambda x:x[0].bbox[3],reverse=True)
         for l_cr in clusters_rects:
             l_cr.sort(key=lambda x:x.bbox[0])
@@ -934,8 +936,8 @@ class LineTable():
         for _x in pop_x:
             list_y.pop(_x)
 
-        print(list_x)
-        print(list_y)
+        # print(list_x)
+        # print(list_y)
         for _line in clusters_rects:
             table_line = []
             for _rect in _line:
@@ -953,6 +955,7 @@ class LineTable():
         for textbox in list_textbox:
             (x0,y0,x1,y1) = textbox.bbox
             _text = textbox.get_text()
+            print("textbox", _text, textbox.bbox)
             _find = False
             for table_line in _table:
                 for _cell in table_line:
@@ -1021,6 +1024,22 @@ class LineTable():
                 _count += 1
         return _count-1
 
+    def _plot(self, list_line, list_textbox):
+        from matplotlib import pyplot as plt
+        plt.figure()
+        for _line in list_line:
+            x0, y0, x1, y1 = _line.__dict__.get("bbox")
+            plt.plot([x0, x1], [y0, y1])
+        for _line in list_line:
+            x0, y0, x1, y1 = _line.bbox
+            plt.plot([x0, x1], [y0, y1])
+        # for point in list_crosspoints:
+        #     plt.scatter(point.get("point")[0],point.get("point")[1])
+        for textbox in list_textbox:
+            x0, y0, x1, y1 = textbox.bbox
+            plt.Rectangle(([x0, x1], [y0, y1]))
+        plt.show()
+
 
 def get_table_html(table):
     html_text = '<table border="1">' + "\n"
@@ -1042,14 +1061,10 @@ def sort_object(obj_list):
     if len(obj_list) == 0:
         return obj_list
     if isinstance(obj_list[0], (_Table, _Sentence, _Image)):
-        new_obj_list = [[obj.y, obj] for obj in obj_list]
-        new_obj_list.sort(key=lambda x: x[0], reverse=True)
-        obj_list = [obj[1] for obj in new_obj_list]
+        obj_list.sort(key=lambda x: x.y, reverse=True)
         return obj_list
     elif isinstance(obj_list[0], _Page):
-        new_obj_list = [[obj.page_no, obj] for obj in obj_list]
-        new_obj_list.sort(key=lambda x: x[0])
-        obj_list = [obj[1] for obj in new_obj_list]
+        obj_list.sort(key=lambda x: x.page_no)
         return obj_list
     else:
         return obj_list

+ 9 - 5
otr/otr_interface.py

@@ -68,7 +68,8 @@ def table_detect(img_data, otr_model):
         if not rows or not cols:
             print("points", 0, "split_lines", 0, "bboxes", 0)
             return {"points": str([]), "split_lines": str([]),
-                    "bboxes": str([]), "outline_points": str([])}
+                    "bboxes": str([]), "outline_points": str([]),
+                    "lines": str([])}
 
         # 查看是否正确输出rows,cols
         # for line in rows+cols:
@@ -88,7 +89,8 @@ def table_detect(img_data, otr_model):
         if not points:
             print("points", 0, "split_lines", 0, "bboxes", 0)
             return {"points": str([]), "split_lines": str([]),
-                    "bboxes": str([]), "outline_points": str([])}
+                    "bboxes": str([]), "outline_points": str([]),
+                    "lines": str([])}
 
         # 清掉外围的没用的线
         rows, cols = delete_outline(rows, cols, points)
@@ -168,7 +170,8 @@ def table_detect(img_data, otr_model):
         if not points:
             print("points", 0, "split_lines", 0, "bboxes", 0)
             return {"points": str([]), "split_lines": str([]),
-                    "bboxes": str([]), "outline_points": str([])}
+                    "bboxes": str([]), "outline_points": str([]),
+                    "lines": str([])}
         row_point_list = get_points_row(points, split_y, 5)
         col_point_list = get_points_col(points, split_y, 5)
 
@@ -246,7 +249,8 @@ def table_detect(img_data, otr_model):
         logging.info("otr postprocess time: " + str(round(float(time.time()-start_time1), 4)) + "s")
         logging.info("use time: " + str(time.time()-start_time))
         return {"points": str(points), "split_lines": str(split_lines),
-                "bboxes": str(bboxes), "outline_points": str(outline_points)}
+                "bboxes": str(bboxes), "outline_points": str(outline_points),
+                "lines": str(rows+cols)}
 
     except TimeoutError:
         raise TimeoutError
@@ -256,7 +260,7 @@ def table_detect(img_data, otr_model):
         print("points", 0, "split_lines", 0, "bboxes", 0)
         logging.info("otr postprocess time: " + str(round(float(time.time()-start_time1), 4)) + "s")
         return {"points": str([]), "split_lines": str([]), "bboxes": str([]),
-                "outline_points": str([])}
+                "outline_points": str([]), "lines": str([])}
 
 
 class OtrModels:

+ 21 - 880
result.html

@@ -1,625 +1,10 @@
-<!DOCTYPE HTML><head><meta charset="UTF-8"></head><body><div>磋商文件</div>
-<div>项目编号:GXCZ-D-21070181</div>
-<div>项目名称:国际信息采集咨询服务项目</div>
-<div>采,购,人:,北京市人民政府外事办公室</div>
-<div>采购代理机构:,国信国采(北京)招标咨询有限责任公司</div>
-<div>2022年1月</div>
-<div>目录</div>
-<div>目录..................................................................................................................................................,1</div>
-<div>第一章竞争性磋商邀请书</div>
-<div>第二章供应商须知</div>
-<div>(一)供应商须知前附表</div>
-<div>(二)供应商须知</div>
-<div>第三章评审办法和标准</div>
-<div>第四章合同主要条款</div>
-<div>第五章采购需求</div>
-<div>第六章响应文件格式</div>
-<div>评审索引........................................................................................................................................................,39</div>
-<div>1.报价函及报价函附录</div>
-<div>2.法定代表人身份证明</div>
-<div>3.授权委托书</div>
-<div>4.分项报价表</div>
-<div>5.商务、合同条款偏差表</div>
-<div>6.供应商基本情况表</div>
-<div>7.资格证明文件</div>
-<div>8.供应商业绩一览表(已完成和正在执行项目)</div>
-<div>9.小微企业、监狱企业、残疾人福利单位的声明函或证明材料</div>
-<div>10.响应承诺书</div>
-<div>11.技术偏离表</div>
-<div>12.服务方案</div>
-<div>13.服务人员名单</div>
-<div>14.磋商文件要求的其他内容以及供应商认为必要的其他内容</div>
-<div>15.最后报价函</div>
-<div>第一章竞争性磋商邀请书</div>
-<div>一.受北京市人民政府外事办公室委托,国信国采(北京)招标咨询有限责任公司对国际</div>
-<div>信息采集咨询服务项目(项目编号:GXCZ-D-21070181)以竞争性磋商采购方式组织</div>
-<div>采购,根据采购人和评审专家的书面推荐,现邀请你单位参加本项目的磋商。</div>
-<div>二.采购项目的名称、采购预算</div>
-<div>采购项目名称:国际信息采集咨询服务项目</div>
-<div>采购预算(最高限价):289.5万元(大写人民币贰佰捌拾玖万伍仟元整)</div>
-<div>立项编号:ZFCG2021-165102-K00002-JH001-XM001</div>
-<div>三.项目概况</div>
-<div>1.服务名称:国际信息采集咨询服务项目。</div>
-<div>2.服务范围:国际信息采集咨询服务项目聚焦首都“四个中心”建设和高水平开放</div>
-<div>发展需求,对标国际一流,针对城市规划建设管理、经济科技金融、社会民生等领</div>
-<div>域,采集国外媒体、专业智库等机构第一手信息,开展大国首都及国际城市对比分</div>
-<div>析。项目内容及数量为:(1)国际城市比较类信息:60,篇;(2)大国首都专题信</div>
-<div>息:22,个专题;(3)英文信息参考:200,期;(4)前沿信息专报:20,期。(详见</div>
-<div>采购需求)</div>
-<div>3.服务期:2022年3月1日至2023年2月28日。</div>
-<div>4.服务地点:北京市人民政府外事办公室指定地点。</div>
-<div>5.采购标的对应的中小企业划分标准所属行业:软件和信息技术服务业。</div>
-<div>四.采购项目执行政府采购政策</div>
-<div>1.执行《政府采购促进中小企业发展管理办法》(财库〔2020〕46号),对小微企</div>
-<div>业的产品给予价格扣除(监狱企业、残疾人福利性单位视同小微企业;残疾人福利</div>
-<div>性单位属于小型、微型企业的,不重复享受政策)。</div>
-<div>五.供应商资格要求</div>
-<div>1.符合《中华人民共和国政府采购法》第二十二条(一)至(六)的规定,即:</div>
-<div>1),具有独立承担民事责任的能力;</div>
-<div>2),具有良好的商业信誉和健全的财务会计制度;</div>
-<div>3),具有履行合同所必需的设备和专业技术能力;</div>
-<div>4),有依法缴纳税收和社会保障资金的良好记录;</div>
-<div>5),参加政府采购活动前三年内,在经营活动中没有重大违法记录(重大违法</div>
-<div>记录是指供应商因违法经营受到刑事处罚或者责令停产停业、吊销许可证或者</div>
-<div>执照、较大数额罚款等行政处罚);</div>
-<div>6),法律、行政法规规定的其他条件。</div>
-<div>2.被“信用中国”网站(www.creditchina.gov.cn)中列入失信被执行人和/或重大</div>
-<div>税收违法案件当事人名单的供应商、被中国政府采购网(www.ccgp.gov.cn)列入</div>
-<div>政府采购严重违法失信行为记录名单中被财政部门禁止参加政府采购活动的供应</div>
-<div>商(处罚决定规定的时间和地域范围内),无资格参加本项目的采购活动。</div>
-<div>3.单位负责人为同一人或者存在控股、管理关系的不同单位,不得同时参加本项目的</div>
-<div>磋商。为本项目提供整体设计、规范编制或者项目管理、监理、检测等服务的供应</div>
-<div>商,不得再参加本项目磋商。</div>
-<div>4.本项目不接受联合体响应。</div>
-<div>5.向采购代理机构购买了磋商文件并登记备案。</div>
-<div>六.获取磋商文件的时间期限、地点、方式及售价</div>
-<div>时间:2022,年1月24日至2022年1月29日,每天上午,8:30,至11:30,下午,1:</div>
-<div>30至4:30(北京时间,法定节假日除外)。</div>
-<div>方式:线上或现场购买。凡有意参加磋商者,线上购买,请将供应商营业执照正副</div>
-<div>本、授权委托书和法定代表人、委托代理人的有效身份证明复印件(前述材料均须</div>
-<div>加盖公章,授权委托书另须法定代表人、委托代理人签字)扫描件及汇款截图发至:</div>
-<div>wangwanting219@163.com(现场购买请提供前述材料纸质材料)。</div>
-<div>供应商须同步在,http://user.gxzb.com.cn/ztb/unit/login/register.jsp,上进行</div>
-<div>注册(已注册的无需再次注册)。</div>
-<div>地点:北京市海淀区首体南路,22号国兴大厦,11层前台。</div>
-<div>售价:人民币,500元,售后不退。只有购买了磋商文件并登记备案的供应商才有资</div>
-<div>格参与磋商。</div>
-<div>发票类型:个人汇款或转账的仅支持开具普票(电子发票),公对公汇款或转账无</div>
-<div>限制(专票为纸质发票)</div>
-<div>开户名称:国信招标集团股份有限公司</div>
-<div>开户行:平安银行北京神华支行</div>
-<div>账,号:30206095000127</div>
-<div>七.响应文件递交截止时间、磋商时间及地点</div>
-<div>响应文件递交截止时间(磋商时间):2022,年2月18日16时00分;</div>
-<div>响应文件递交和磋商地点:北京市海淀区首体南路,22号国兴大厦,11层第四会议室。</div>
-<div>八.采购人及其委托的采购代理机构的名称、地址和联系方法</div>
-<div>采购人:北京市人民政府外事办公室</div>
-<div>地,址:北京市通州区运河东大街,57号</div>
-<div>联系人:肖女士</div>
-<div>电,话:010-55574181</div>
-<div>采购代理机构:国信国采(北京)招标咨询有限责任公司</div>
-<div>项目执行机构:国信国采(北京)招标咨询有限责任公司</div>
-<div>地,址:北京市海淀区首体南路,22号国兴大厦,11层</div>
-<div>联系人:王婉婷、陈志鹏</div>
-<div>电,话:010-88354433,转530</div>
-<div>邮,编:100044</div>
-<div>电子信箱:wangwanting219@163.com</div>
-<div>开户信息:</div>
-<div>账户名称:国信国采(北京)招标咨询有限责任公司</div>
-<div>开户银行:平安银行北京神华支行</div>
-<div>账,号:30206095000127</div>
-<div>(该账号仅对本项目有效)</div>
-<div>请供应商在汇款时务必注明所参加磋商项目的编号及款项用途,否则,因款项用途不</div>
-<div>明导致磋商无效等后果由供应商自行承担。</div>
-<div>电子发票开具事宜:</div>
-<div>供应商支付标书款后,可通过微信、支付宝、京东,扫描固定二维码提交开票申请,以</div>
-<div>下内容为必填项:</div>
-<div>(1)“商品服务名称”请勾选“现代服务*标书服务费”;</div>
-<div>(2)</div>
-<div></div>
-<div>金额,应填写该项目(或标段)的标书款金额,不要填写汇总金额;</div>
-<div></div>
-<div>(3)</div>
-<div></div>
-<div>购方名称,应为投标主体名称,如无特殊情况,应与付款方一致;</div>
-<div></div>
-<div>(4)</div>
-<div></div>
-<div>购方税号,如因特殊情况没有税号,请填写</div>
-<div></div>
-<div>18</div>
-<div></div>
-<div>个</div>
-<div></div>
-<div>0,以便能顺利提交开票申请;</div>
-<div></div>
-<div>(5)</div>
-<div></div>
-<div>邮箱,应填写接收电子普通发票的邮箱;</div>
-<div></div>
-<div>(6)</div>
-<div></div>
-<div>备注,应填写正确及完整的项目编号;</div>
-<div></div>
-<div>供应商以个人名义支付标书款的,须在汇款时标注公司名称。个人名义汇款仅能开普</div>
-<div></div>
-<div>票。</div>
-<div></div>
-<div>国信公司财务人员核实款项到账后开具增值税电子普通发票,开具后将通过供应商填</div>
-<div></div>
-<div>写的指定邮箱推送给供应商。供应商收到邮件后,自行完成发票的下载及打印工作。</div>
-<div></div>
-<div>(注:请在备注栏内必须注明项目编号)</div>
-<div></div>
-<div>4</div>
-<div></div>
-<div>第二章供应商须知</div>
-<div>(一)供应商须知前附表</div>
-<table border="1">
-<tr>
-<td colspan=1 rowspan=1>条款号
-</td>
-<td colspan=1 rowspan=1>条款名称
-</td>
-<td colspan=1 rowspan=1>编列内容
-</td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>1.7
-</td>
-<td colspan=1 rowspan=1>分包
-</td>
-<td colspan=1 rowspan=1>√不允许
-允
-许:
-分包内容要求:
-分包金额要求:
-</td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>1.12.1
-</td>
-<td colspan=1 rowspan=1>现场踏勘
-</td>
-<td colspan=1 rowspan=1>√不组织
-组
-织:
-1.踏勘时间:
-2.集合地点:
-</td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>2.2.2
-</td>
-<td colspan=1 rowspan=1>供应商询问或要求澄
-清的截止时间
-</td>
-<td colspan=1 rowspan=1>2022
-年
-1
-月
-29
-日
-10
-时
-00
-分
-</td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>2.3
-</td>
-<td colspan=1 rowspan=1>质疑函送达方式
-</td>
-<td colspan=1 rowspan=1>质 疑 提 出 人 应 将 质 疑 函 原 件 委 派 专 人 或 通 过 邮 寄 方
-式在知道或者应知其权益受到损害之日起
-7
-个工作日
-内送达采购代理机构。
-</td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>3.6.1
-</td>
-<td colspan=1 rowspan=1>响应文件有效期
-</td>
-<td colspan=1 rowspan=1>90
-日
-</td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>3.7.3
-</td>
-<td colspan=1 rowspan=1>响应文件份数
-</td>
-<td colspan=1 rowspan=1>正本:1
-份;副本:2
-份;电子文档
-1
-份。
-</td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>3.7.4
-</td>
-<td colspan=1 rowspan=1>装订要求
-</td>
-<td colspan=1 rowspan=1>应装订成册 (1
-份正本与
-2
-份副本分别装订 ),不得
-采用活页方式
-分册要求:商务册和技术册需分开装订。商务册装订
-一册,技术册装订一册
-</td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>4.1.2
-</td>
-<td colspan=1 rowspan=1>封套上写明
-</td>
-<td colspan=1 rowspan=1>采购人名称:北京市人民政府外事办公室
-项目编号:GXCZ-D-21070181
-国 际 信 息 采 集 咨 询 服 务 项 目 响 应 文 件 在
-2022
-年
-2
-月
-18
-日
-16
-时
-00
-分前不得开启
-供应商名称:
-</td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>5.1.1
-</td>
-<td colspan=1 rowspan=1>磋商小组成员
-</td>
-<td colspan=1 rowspan=1>3
-人
-</td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>6.1
-</td>
-<td colspan=1 rowspan=1>确定成交供应商方式
-</td>
-<td colspan=1 rowspan=1>√采购人
-□采购人授权磋商小组
-</td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>6.4.1
-</td>
-<td colspan=1 rowspan=1>履约保证金
-</td>
-<td colspan=1 rowspan=1>不适用
-</td>
-</tr>
-</table>
-<table border="1">
-<tr>
-<td colspan=1 rowspan=1>条款号
-</td>
-<td colspan=1 rowspan=1>条款名称
-</td>
-<td colspan=1 rowspan=1>编列内容
-</td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>9
-</td>
-<td colspan=1 rowspan=1>其他
-</td>
-<td colspan=1 rowspan=1>其他
-</td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>(1)
-</td>
-<td colspan=1 rowspan=1>成交 供应 商应 在收到 成交 通知 书后五 个工 作日 内向 采购代 理机 构交 纳代理 服
-务费。
-</td>
-<td colspan=1 rowspan=1>成交 供应 商应 在收到 成交 通知 书后五 个工 作日 内向 采购代 理机 构交 纳代理 服
-务费。
-</td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>(2)
-</td>
-<td colspan=1 rowspan=1>代理服务费计算
-</td>
-<td colspan=1 rowspan=1>按“计价格[2002]1980
-号”及“发改办价格[2003]857
-号”文件所列的“服务类”收费标准按差额累进方式
-计算。
-</td>
-</tr>
-</table>
-<div>(二)供应商须知</div>
-<div>1.总则</div>
-<div>1.1.项目概况</div>
-<div>1.1.1.根据《中华人民共和国政府采购法》和《中华人民共和国政府采购法实施条例》</div>
-<div>等有关法律、法规、规章和规范性文件的规定,对本项目通过竞争性磋商进行采</div>
-<div>购。</div>
-<div>1.1.2.采购人:指依法进行政府采购的国家机关、事业单位、团体组织。本项目采购人</div>
-<div>见竞争性磋商邀请书。</div>
-<div>1.1.3.采购代理机构:指采购人委托的采购代理机构。本项目采购代理机构见竞争性磋</div>
-<div>商邀请书。</div>
-<div>1.1.4.采购项目名称:</div>
-<div>见竞争性磋商邀请书。</div>
-<div>1.2.采购预算</div>
-<div>见竞争性磋商邀请书。</div>
-<div>1.3.采购范围、服务期和质量要求</div>
-<div>见采购需求。</div>
-<div>1.4.供应商:指递交响应文件的法人、其他组织或者自然人。</div>
-<div>1.5.对供应商相关要求</div>
-<div>1.5.1.符合竞争性磋商邀请书“供应商资格要求”。</div>
-<div>1.5.2.供应商应当遵循公平竞争的原则,不得恶意串通,不得妨碍其他供应商的竞争行</div>
-<div>为,不得损害采购人或者其他供应商的合法权益。</div>
-<div>1.5.3.供应商不得以向采购人、采购代理机构、磋商小组成员行贿或者采取其他不正当</div>
-<div>手段谋取成交。</div>
-<div>1.6.本项目将执行在政府采购活动中查询及使用信用记录的规定,具体要求为:</div>
-<div>1.信用信息查询的截止时点:递交首次响应文件截止时间。</div>
-<div>2.查询渠道:“信用中国”网站(www.creditchina.gov.cn)和中国政府采购网</div>
-<div>(www.ccgp.gov.cn);</div>
-<div>3.信用信息查询记录和证据留存具体方式:将经查询存在和不存在不良信用记录</div>
-<div>的潜在供应商的查询结果网页截图均作为查询记录和证据,与其他磋商文件一并</div>
-<div>保存;</div>
-<div>4.信用信息的使用规则:本政府采购项目的供应商在信用信息查询截止时点(含)</div>
-<div>之前存在第一章竞争性磋商邀请书“供应商资格要求”中所述不良信用记录的,</div>
-<div>不得参与磋商。</div>
-<div>1.7.分包(本项目不允许分包)</div>
-<div>供应商须知前附表规定允许分包的,供应商应根据磋商文件的规定和采购项目</div>
-<div>的实际情况,将拟在成交后将采购项目的非主体、非关键性工作分包的,在响</div>
-<div>应文件中载明分包承担主体,分包承担主体应当具备相应资质条件且不得再次</div>
-<div>分包。政府采购合同分包履行的,成交供应商就采购项目和分包项目向采购人</div>
-<div>负责,分包人就分包项目承担责任。</div>
-<div>1.8.费用承担</div>
-<div>供应商准备和参加磋商活动发生的费用自理。</div>
-<div>1.9.保密</div>
-<div>参与磋商活动的各方应对磋商文件和响应文件中的商业和技术等秘密保密,违</div>
-<div>者应对由此造成的后果承担法律责任。</div>
-<div>1.10.语言文字</div>
-<div>除专用术语外,与磋商有关的语言均使用中文。必要时专用术语应附有中文注</div>
-<div>释。</div>
-<div>1.11.计量单位</div>
-<div>所有计量均采用中华人民共和国法定计量单位。</div>
-<div>1.12.踏勘现场</div>
-<div>1.12.1.供应商须知前附表规定组织踏勘现场的,采购人须按照规定时间、地点组织供应</div>
-<div>商踏勘项目现场。</div>
-<div>1.12.2.供应商承担踏勘现场所发生的自身费用、责任和风险。</div>
-<div>1.12.3.采购人向供应商提供的有关现场的资料和数据,是采购人现有的能被供应商利用</div>
-<div>的资料,采购人不对供应商由此而做出的推论、理解和结论负责。</div>
-<div>1.12.4.除采购人原因外,供应商应对踏勘现场而造成的人员伤亡、财产损失以及由此引</div>
-<div>起的连带责任和费用负责。</div>
-<div>2.磋商文件</div>
-<div>2.1.磋商文件的组成</div>
-<div>9.小微企业、监狱企业、残疾人福利单位的声明函或证明材料</div>
-<div>(一)中小企业声明函(服务)</div>
-<div>(注:符合中小企业划型标准的企业请提供本函,不符合的不提供本函)</div>
-<div>本公司(,联合体,)郑重声明,根据《政府采购促进中小企业发展管理办法》(财</div>
-<div>库﹝2020﹞46,号)的规定,本公司(,联合体,)参加,(单位名称,)的(项目</div>
-<div>名称,)采购活动,服务全部由符合政策要求的中小企业承接。相关企业,(含联合</div>
-<div>体中的中小企业、签订分包意向协议的中小企业,)的具体情况如下:</div>
-<div>1.(标的名称),属于(采购文件中明确的所属行业);承接企业为(企</div>
-<div>业名称,),从业人员,人,营业收入为,万元,资产总额为,万元¹,属于</div>
-<div>(中型企业、小型企业、微型企业,);</div>
-<div>2.(标的名称),属于(采购文件中明确的所属行业);承接企业为(企</div>
-<div>业名称,),从业人员,人,营业收入为,万元,资产总额为,万元,属于,(中</div>
-<div>型企业、小型企业、微型企业,);</div>
-<div>……</div>
-<div>以上企业,不属于大企业的分支机构,不存在控股股东为大企业的情形,也不存</div>
-<div>在与大企业的负责人为同一人的情形。</div>
-<div>本企业对上述声明内容的真实性负责。如有虚假,将依法承担相应责任。</div>
-<div>企业名称(盖章):</div>
-<div>日期:</div>
-<div>1</div>
-<div>从业人员、营业收入、资产总额填报上一年度数据,无上一年度数据的新成立企业可不填报。</div>
-<div>(二)监狱企业证明</div>
-<div>(注:符合条件的监狱企业请提供本函,不符合的不提供本函)</div>
-<div>省级以上监狱管理局、戒毒管理局(含新疆生产建设兵团)出具的属于监狱企业的</div>
-<div>证明文件。</div>
-<div>(三)残疾人福利性单位声明函</div>
-<div>(注:符合条件的残疾人福利性单位请提供本函,不符合的不提供本函)</div>
-<div>本单位郑重声明,根据《财政部,民政部,中国残疾人联合会关于促进残疾人就业</div>
-<div>政府采购政策的通知》(财库〔2017〕141,号)的规定,本单位为符合条件的残疾人</div>
-<div>福利性单位,且本单位参加______单位的______项目采购活动提供本单位制造的货物</div>
-<div>(由本单位承担工程/提供服务),或者提供其他残疾人福利性单位制造的货物(不</div>
-<div>包括使用非残疾人福利性单位注册商标的货物)。</div>
-<div>本单位对上述声明的真实性负责。如有虚假,将依法承担相应责任。</div>
-<div>单位名称(盖章):</div>
-<div>日期:</div>
-<div>10.响应承诺书</div>
-<div>响应承诺书</div>
-<div>致(采购人):</div>
-<div>我方在此声明,我方以下事项进行承诺:</div>
-<div>(1)在本次磋商中我公司无与其他供应商相互串通,或与采购人串通的行为;</div>
-<div>(2)在本次磋商中我公司无向采购人或评审小组成员行贿的手段谋取成交的行</div>
-<div>为;</div>
-<div>(3)在本次磋商中我公司无出借或借用资质行为、在响应文件中所附资料(业</div>
-<div>绩、项目负责人资料等)无弄虚作假;</div>
-<div>(4)我公司没有处于被责令停产、停业、评审资格被取消状态;</div>
-<div>(5)我公司不采用非法手段获取证据进行质疑、投诉,在质疑、投诉过程中不</div>
-<div>提供虚假情况或进行恶意质疑、投诉。</div>
-<div>上述承诺内容如有不实,我公司愿意承担由此造成的一切法律责任。</div>
-<div>特此承诺。</div>
-<div>供应商(公章):</div>
-<div>法定代表人或其授权代表(签字或加盖人名章):</div>
-<div>日期:</div>
-<div>11.技术偏离表</div>
-<div>供应商名称:</div>
-<table border="1">
-<tr>
-<td colspan=1 rowspan=1>磋商 文件 条目 号
-</td>
-<td colspan=1 rowspan=1>技术 条款 要求
-</td>
-<td colspan=1 rowspan=1>完全 响应
-</td>
-<td colspan=1 rowspan=1>有偏 离
-</td>
-<td colspan=1 rowspan=1>偏离 简述
-</td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-</tr>
-</table>
-<div>供应商(公章):</div>
-<div>法定代表人或其授权代表(签字或加盖人名章):</div>
-<div>日期:</div>
-<div>注:1.,对完全响应的条目在本表相应列中标注“√”。对有偏离的条目在本表相应列中标注“正</div>
-<div>偏离”或“负偏离”。仅可在“完全响应”及“有偏离”中选一标注,同时,当且仅当</div>
-<div>选取“有偏离”栏中加以标注后,才能在“偏离简述”栏中加以说明。</div>
-<div>2.正偏离是指应答的条件高于磋商文件要求,负偏离是指应答的条件低于磋商文件要求,</div>
-<div>正偏离项目不作扣分处理。</div>
-<div>3供应商须按照用户需求书逐条完整填写响应表。如果未完整填写响应表的各项内容则视</div>
-<div>作供应商已经对磋商文件相关要求和内容完全理解并同意,其报价为在此基础上的完全</div>
-<div>价格。</div>
-<div>4在采购人与成交供应商签订合同时,如成交供应商未在响应文件“响应表”中列出偏离</div>
-<div>说明,无论即将发生或已发生任何情形,均视为完全符合磋商文件要求,并写入合同。</div>
-<div>若成交供应商在合同签订前,以上述事项为借口而不履行合同签订手续及执行合同,则</div>
-<div>视作拒绝与采购人签订合同。</div>
-<div>12.服务方案</div>
-<div>(根据第五章采购需求应答)</div>
-<div>供应商名称:,公章</div>
-<div>授权代表:,签字或加盖人名章</div>
-<div>日,期:,年月,日</div>
-<div>13.服务人员名单</div>
-<div>13-1拟投入本项目服务人员汇总表</div>
-<div>供应商名称:,项目名称:</div>
-<table border="1">
-<tr>
-<td colspan=1 rowspan=1>序号
-</td>
-<td colspan=1 rowspan=1>姓
-名
-</td>
-<td colspan=1 rowspan=1>年龄
-</td>
-<td colspan=1 rowspan=1>性别
-</td>
-<td colspan=1 rowspan=1>学
-历
-</td>
-<td colspan=1 rowspan=1>专业
-</td>
-<td colspan=1 rowspan=1>在本 项目 拟任 职务
-</td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-</tr>
+<!DOCTYPE HTML><head><meta charset="UTF-8"></head><body><table border="1">
 <tr>
 <td colspan=1 rowspan=1></td>
 <td colspan=1 rowspan=1></td>
 <td colspan=1 rowspan=1></td>
 <td colspan=1 rowspan=1></td>
 <td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
 </tr>
 <tr>
 <td colspan=1 rowspan=1></td>
@@ -628,7 +13,6 @@
 <td colspan=1 rowspan=1></td>
 <td colspan=1 rowspan=1></td>
 <td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
 </tr>
 <tr>
 <td colspan=1 rowspan=1></td>
@@ -637,280 +21,37 @@
 <td colspan=1 rowspan=1></td>
 <td colspan=1 rowspan=1></td>
 <td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
 </tr>
 </table>
-<div>供应商:,(单位全称),(盖章)</div>
-<div>法定代表人或授权代表,(签章)</div>
-<div>日,期:</div>
-<div>13-2拟投入本项目的主要人员简历表</div>
 <table border="1">
 <tr>
-<td colspan=1 rowspan=1>姓
-名
-</td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1>性
-别
-</td>
-<td colspan=1 rowspan=1>性
-别
-</td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1>出
-生
-日
-期
-</td>
-<td colspan=2 rowspan=1>年
-月
-日
-</td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>毕
-业
-院
-校
-及
-专业
-</td>
-<td colspan=1 rowspan=1></td>
 <td colspan=1 rowspan=1></td>
 <td colspan=1 rowspan=1></td>
 <td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1>毕 业
-时
-间
-</td>
-<td colspan=2 rowspan=1>年
-月
-日
-</td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>从事 本专 业时 间
-</td>
-<td colspan=1 rowspan=1>从事 本专 业时 间
-</td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=3 rowspan=1>为申 请人 服务 时间
-</td>
-<td colspan=2 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>执
-业
-注
-册
-</td>
-<td colspan=1 rowspan=1>执
-业
-注
-册
-</td>
-<td colspan=7 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>主
-要
-经
-历
-</td>
-<td colspan=1 rowspan=1>主
-要
-经
-历
-</td>
-<td colspan=1 rowspan=1>主
-要
-经
-历
-</td>
-<td colspan=1 rowspan=1>主
-要
-经
-历
-</td>
-<td colspan=1 rowspan=1>主
-要
-经
-历
-</td>
-<td colspan=1 rowspan=1>主
-要
-经
-历
-</td>
-<td colspan=1 rowspan=1>主
-要
-经
-历
-</td>
-<td colspan=1 rowspan=1>主
-要
-经
-历
-</td>
-<td colspan=1 rowspan=1>主
-要
-经
-历
-</td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>时
-间
-</td>
-<td colspan=1 rowspan=1>时
-间
-</td>
-<td colspan=1 rowspan=1>参加 过的 类似 项目 名称 及规 模
-</td>
-<td colspan=1 rowspan=1>参加 过的 类似 项目 名称 及规 模
-</td>
-<td colspan=1 rowspan=1>参加 过的 类似 项目 名称 及规 模
-</td>
-<td colspan=1 rowspan=1>参加 过的 类似 项目 名称 及规 模
-</td>
-<td colspan=1 rowspan=1>参加 过的 类似 项目 名称 及规 模
-</td>
-<td colspan=1 rowspan=1>参加 过的 类似 项目 名称 及规 模
-</td>
-<td colspan=1 rowspan=1>该项 目中 任职
-</td>
 </tr>
 <tr>
 <td colspan=1 rowspan=1></td>
 <td colspan=1 rowspan=1></td>
 <td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-<td colspan=1 rowspan=1></td>
-</tr>
-</table>
-<div>供应商:,(单位全称),(盖章)</div>
-<div>法定代表人或授权代表:,(签章)</div>
-<div>日,期:</div>
-<div>14.磋商文件要求的其他内容以及供应商认为必要的其他内容</div>
-<div>15.最后报价函</div>
-<div>最后报价函</div>
-<table border="1">
-<tr>
-<td colspan=1 rowspan=1>项目编号及
-磋商项目名
-称
-</td>
-<td colspan=1 rowspan=1>项目编号:
-磋商项目名称:
-</td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>响应总价
-</td>
-<td colspan=1 rowspan=1>人民币(小写金额):
-元
-人民币(大写金额):
-整
-注:如有不一致,以大写为准
-</td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>服务期
-</td>
-<td colspan=1 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>其他变化(如有)
-</td>
-<td colspan=1 rowspan=1></td>
-</tr>
-<tr>
-<td colspan=1 rowspan=1>声明
-</td>
-<td colspan=1 rowspan=1>1 、若本最后报价函与我方首次递交的报价函及报价函附录
-的内容有差异,以本最后报价函内容为准。
-2、若我方为成交供应商,我方承诺:如本最后报价函的报
-价与首次递交的报价函在报价有差异,我方在符合适用法律法规
-和相关政策的基础上,对首次响应文件中所列明的设计费详细报
-价表,按本最后报价函的总价与首次报价函总价的变化幅度进行
-调整;并在收到成交通知书后的
-3
-日内完成并提交给采购人。对
-采购人提出的审查意见在合同签订前修改完成。
-</td>
 </tr>
 </table>
-<div>供应商名称:</div>
-<div>供应商法定代表人或授权代表(签字):</div>
-<div>日期:</div>
-</body>
+<div>收费标准:无</div>
+<div>收费金额:0万元</div>
+<div>七、公告期限</div>
+<div>自本公告发布之日起1个工作日。</div>
+<div>八、其他补充事宜</div>
+<div>无</div>
+<div>九、凡对本次公告内容提出询问,请按以下方式联系。</div>
+<div>1.采购人信息</div>
+<div>名称:华池县柔远镇人民政府</div>
+<div>地址:华池县东关街70号</div>
+<div>联系方式:0934-5952951</div>
+<div>2.采购代理机构信息</div>
+<div>名称:华池县公共资源交易中心</div>
+<div>地址:华池县东关街22号</div>
+<div>联系方式:0934-5953080</div>
+<div>3.项目联系方式</div>
+<div>项目联系人:孙治江</div>
+<div>电话:18793418165</div>
+<div>2</div>
+<div></div></body>