04政策查询系统
河北省科技政策查询系统需求
2023.6.10
一、项目背景说明:
近期,河北省省长视察河北省科技厅,需要开发一个科技政策查询界面,展示在河北省科技厅办公大厅触摸大屏上,实现多条件查询和按照政策分类树分类浏览。
二、项目功能说明:
科技政策查询主界面样式如下图所示:
主界面主要分成五部分:
1、顶部为LOGO区,主要展示科技技术情报研究院的LOGO,并用蓝黑色显示科技政策查询系统。
2、第二部分为多条件查询区,主要包括政策图解(按钮式超级链接),查询条件包括政策名称、政策文号、发文机构、全文检索四个查询条件,可以根据四个条件进行综合查询。
3、第三部分为左侧科技政策分类树形结构,要求从policy_kind科技政策分类表中读取科技政策分类属性,后面括号内标注的是属于这个分类的科技政策数量,政策数量的统计来源于科技政策数据库。点击相关的分类,右侧的政策接过去显示相应数量的科技政策列表。
4、第四部分为右侧政策查询结果显示区,显示科技政策查询结果列表,点击查看或者具体的政策名称,跳转到政策详细信息显示界面(如下图所示)。
查询结果列表包括政策名称、发文机构、颁布日期、政策分类、操作五项内容。
显示结果要求:
(1)结果表标题政策名称包括政策名称、发文机构、颁布日期、政策分类、操作五个标题居中显示。
(2)政策名称、发文机构结果列表左对齐,颁布日期、政策分类、操作的结果列表居中显示。
(3)要求分页显示,按照图示要求。
5、底部的系统说明区:要求按照样式加载:Copyright 1996-2022 All Rights Reserved 版权所有:河北省科学技术情报研究院 河北省科技创新战略研究院 技术支持:河北省科技信息处理实验室。
三、数据表结构说明。
1、政策分类表:(需要按照下表要求自建)
序号 |
字段标题 |
字段名称 |
类型 |
长 度 |
字段描述 |
1 |
分类ID |
Type_ID |
Varchar |
4 |
主键、唯一性 |
2 |
分类名称 |
Type |
varchar |
50 |
唯一性 |
政策分类数据:(红色字体为说明文字,不在前台页面上显示)
分类ID |
分类名称 |
0100 |
综合 |
0200 |
科研机构改革 |
0300 |
科技计划管理 |
0400 |
科技经费与财务 |
0500 |
基础研究与科研基地 |
0501 |
基础研究(基础研究与科研基地的子类) |
0502 |
平台基地(基础研究与科研基地的子类) |
0600 |
企业技术进步与高新技术产业化 |
0601 |
企业(企业技术进步与高新技术产业化子类) |
0602 |
产业(企业技术进步与高新技术产业化子类) |
0603 |
创新载体(企业技术进步与高新技术产业化子类) |
0700 |
农村科技与社会发展 |
0800 |
科技人才 |
0900 |
科技中介服务 |
1000 |
科技条件与标准 |
1100 |
科技金融与税收 |
1200 |
科技成果与知识产权 |
1300 |
科技奖励 |
1400 |
科学技术普及 |
2、政策表:(可以直接导入表policy,数据表为mysql)
项目名称 |
项目内容 |
备注 |
唯一编码 |
年月日序号(20220608001) |
|
政策索引号 |
|
(非必须) |
政策名称 |
|
(必须) |
序号或文号(发文字号) |
|
(非必须) |
政策分类 |
综合 科研机构改革 科技计划管理 科技经费与财务 基础研究与科研基地 1、基础研究 2、平台基地 企业技术进步与高新技术产业化 1、企业 2、产业 3、创新载体 农村科技与社会发展 科技人才 科技中介服务 科技条件与标准 科技金融与税收 科技成果与知识产权 科技奖励 科学技术普及 国际科技合作
|
采用四位编码机制 例如 综合0100 两位一级,分为三级 (必须) |
施行范围 |
全国000000 地方(各省、市、自治区) 北京市(110000 BJ) 天津市(120000 TJ) 河北省(130000 HE) 山西省(140000 SX) 内蒙古自治区(150000 NM) 辽宁省(210000 LN) 吉林省(220000 JL) 黑龙江省(230000 HL) 上海市(310000 SH) 江苏省(320000 JS) 浙江省(330000 ZJ) 安徽省(340000 AH) 福建省(350000 FJ) 江西省(360000 JX) 山东省(370000 SD) 河南省(410000 HA) 湖北省(420000 HB) 湖南省(430000 HN) 广东省(440000 GD) 广西壮族自治区(450000 GX) 海南省(460000 HI) 重庆市(500000 CQ) 四川省(510000 SC) 贵州省(520000 GZ) 云南省(530000 YN) 西藏自治区(540000 XZ) 陕西省(610000 SN) 甘肃省(620000 GS) 青海省(630000 QH) 宁夏回族自治区(640000 NX) 新疆维吾尔自治区(650000 XJ) 台湾省(710000 Tw) 香港特别行政区(810000 HK) 澳门特别行政区(820000 Mo)
|
添加到市一级 |
发文机构 (制定机关) |
国务院组成部门:外交部 国防部 发展改革委 教育部 科技部 工业和信息化部 国家民委 公安部 安全部 监察部 民政部 司法部 财政部 国务院直属特设机构:国资委 国务院直属机构:海关总署 税务总局 工商总局 质检总局 广电总局 新闻出版总署(版权局) 体育总局 安全监管总局 统计局 林业局 国务院直属事业单位:新华社 中科院 社科院 工程院
发展研究中心 行政学院 地震局 气象局 银监会 证监会 保监会 电监会 社保基金会
国务院部委管理的国家局:信访局 粮食局 能源局 国防科工局 烟草局 外专局 公务员局 海洋局 测绘局 民航局 邮政局 文物局 食品药品监管局 |
|
发文日期 (通过日期) |
2006年12月21日 |
(2006.12.21) |
录入日期 |
当前时间 |
|
施行日期 |
2006年12月21日 |
(2006.12.21) |
主题词 |
3—5个 |
|
关键词 |
5—10个 |
|
上位政策 |
|
|
前驱政策 |
|
|
后继政策 |
|
|
时效状态 |
有效、无效 |
|
文件正文 |
|
|
PDF文档 |
|
|
标引状态 |
已标引,待标引,未标引 |
|
package dbutil;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBUtil {
public static Connection getConnection() throws Exception {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection coon = DriverManager.getConnection("jdbc:mysql://localhost:3306/policy?serverTimezone=UTC&useSSL=true", "root", "123123");
return coon;
}
public static void close (PreparedStatement state, Connection conn) {
if (state != null) {
try {
state.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void close (ResultSet rs, PreparedStatement state, Connection conn) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (state != null) {
try {
state.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
<%@page import="dbutil.DBUtil"%>
<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>科技政策查询系统</title>
</head>
<body>
<%
int row=0;
int zongye=0;
String name = request.getParameter("name");
String document = request.getParameter("document");
String organ = request.getParameter("organ");
if (name == "" || name == null) {
name = "";
}
if (document == "" || document == null) {
document = "";
}
if (organ == "" || organ == null) {
organ = "";
}
String yema0 = request.getParameter("yema");
int yema = 0;
if (yema0 == "0"||yema0 == "" || yema0 == null) {
yema = 1;
} else {
yema = Integer.parseInt(yema0);
}
String shuliang0 = request.getParameter("shuliang");
int shuliang = 0;
if (shuliang0 == "" || shuliang0 == null) {
shuliang = 10;
} else {
shuliang = Integer.parseInt(shuliang0);
}
%>
<div id="app-header" align="center">
<img src="LOGO.png" style="height: 28px; margin-bottom: 10px"> <span
style="font-size: 35px; color: #1c4786; font-family: 宋体; font-weight: bold"> 科技政策查询系统</span>
</div>
<form action="test.jsp">
<div id="title" align="center" style="color: blue; font-family: 黑体; font-weight: bold">
政策名称:<input type="text" name="name" size="20" value="<%=name %>" />
发文字号:<input type="text" name="document" size="20" value="<%=document %>" />
发文机构:<input type="text" name="organ" size="20" value="<%=organ %>" />
<input type="submit" value="搜索" />
</div>
<div id="jieguo" style="float: left; width: 100%">
<table border="1" style="table-layout: fixed;" width="100%" align="center" vertical-align="middle" frame=void rules=none>
<tr
style="text-align: center; color: black; font-family: 黑体; font-size: 25px">
<td align="center" width=40%>政策名称</td>
<td align="center" width=30%>发文机构</td>
<td align="center" width=20%>颁发日期</td>
<td align="center" width=20%>政策分类</td>
</tr>
<%
try {
Connection connection = DBUtil.getConnection();
PreparedStatement preparedStatement = null;
ResultSet rs = null;
String sql = " select id , name , organ , pubdata , type from policy where name like ? and document like ? and organ like ?order by pubdata desc";
preparedStatement = connection.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
preparedStatement.setString(1, "%" + name + "%");
preparedStatement.setString(2, "%" + document + "%");
preparedStatement.setString(3, "%" + organ + "%");
rs = preparedStatement.executeQuery();
//out.write(""+(yema - 1));
rs.absolute((yema - 1) * shuliang);
for (int i = 0; i < shuliang; i++) {
if(!rs.next())
break;
%>
<tr>
<style>
a:link {color: blue}
a:visited {color: blue}
a{ text-decoration:none; }
a:hover{ color:#FF0000 }
a:active {color: purple}
</style>
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis" align="left" ><a href="test2.jsp?id=<%=rs.getObject("id")%>" ><%=rs.getObject("name")%></a></td>
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis" align="center"><%=rs.getObject("organ")%></td>
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis" align="center"><%=rs.getObject("pubdata")%></td>
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis" align="center"><%=rs.getObject("type")%></td>
</tr>
<%
}
rs.last();
row=rs.getRow();
if(row%shuliang==0)
zongye=row/shuliang;
else
zongye=row/shuliang+1;
//out.print(row);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
%>
</table>
</div>
<div id="app-header" align="center">
<%
String str1="<input type=\"button\" value=\"";
String str2="\" onclick=\"location.href='test.jsp?name="+name+"&document="+document+"&organ="+organ+"&yema=";
String str3="'\" />";
if(yema!=1)
out.print(str1+"<"+str2+(yema-1)+str3);
if(yema>3&&yema<zongye-3){
out.print(str1+"1"+str2+"1"+str3);
out.print("...");
out.print(str1+(yema-1)+str2+(yema-1)+str3);
out.print(str1+(yema)+str2+(yema)+str3);
out.print(str1+(yema+1)+str2+(yema+1)+str3);
out.print("...");
out.print(str1+zongye+str2+zongye+str3);
}
else if(yema<=3&&yema<zongye-3){
out.print(str1+"1"+str2+"1"+str3);
out.print(str1+"2"+str2+"2"+str3);
out.print(str1+"3"+str2+"3"+str3);
out.print(str1+"4"+str2+"4"+str3);
out.print("...");
out.print(str1+zongye+str2+zongye+str3);
}
else if(yema>3&&yema>=zongye-3){
out.print(str1+"1"+str2+"1"+str3);
out.print("...");
for(int i=yema-1;i<=zongye;i++){
out.print(str1+i+str2+i+str3);
}
}
else if(yema<=3&&yema>=zongye-3){
for(int i=1;i<=zongye;i++){
out.print(str1+i+str2+i+str3);
}
}
if(yema!=zongye)
out.print(str1+">"+str2+(yema+1)+str3);
out.print(" 共"+row+"条");
out.print(" 共"+zongye+"页");
out.print(" 到第<input type=\"text\" name=\"yema\" size=\"10\" value=\""+yema+"\" />页");
%>
<!-- <select name="shuliang"lay-ignore=""></option><option value="10">10 条/页</option></select>
-->
<%
out.print("<input type=\"submit\" value=\"确定\" /> ");
%>
</div>
</form>
<div class="layui-col-md12 layui-col-sm12 layui-col-xs12">
<!--background: #393E46;-->
<!--<div class="layui-row">-->
<div style="background: #393E46; height: 70px;position: relative; margin-top: 20px" align="center">
<div style="top: 27px ; position: relative; align-content: center">
<span style="font-family: 微软雅黑;font-size: 15px; color:#f2f2f2; align-content: center;">
<pre>2023.4.10 20214001 @信2105-3班张若谷</pre>
</span>
</div>
</div>
<!--</div>-->
</div>
</body>
</html>
<%@page import="dbutil.DBUtil"%>
<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>科技政策查询系统</title>
</head>
<body>
<%
String id = request.getParameter("id");
Connection connection = DBUtil.getConnection();
PreparedStatement preparedStatement = null;
ResultSet rs = null;
String sql = " select name,text from policy where id=? ";
preparedStatement = connection.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
preparedStatement.setString(1, id);
rs = preparedStatement.executeQuery();
rs.next();
out.print("<h1>");
out.print(rs.getObject("name"));
out.print("</h1>");
out.print(rs.getObject("text"));
%>
<button onclick="javascript:history.back(-1);">返回上一页</button>
</body>
</html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)