报告的特点

报告是向上级机关汇报工作、反应情况、提出意见或者建议,答复上级机关的询问时使用的公文。按照上级部署或工作计划,每完成一项人物,一般都要向上级写报告,反映工作中的基本情况,工作中取得的经验教训、存在的问题以及今后工作设想等,以取得上级领导部门的指导。

报告具有行文的单向性、表述的概括性、选材的灵活性、内容的实践性等特点。按内容不同,报告可分为工作报告、情况报告、建议报告、答复报告、报送报告5种类型。

报告所包含的格式要素即标准党政机关公文所包含的格式要素,包括标题、主送机关、正文、发文机关署名和成文日期等。

 显示效果

示例代码所生成的OFD文件:下载

 示例代码

package test.create.c12;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import org.bouncycastle.asn1.ASN1BitString;
import org.bouncycastle.asn1.DERBitString;

import iofd.layout.signature.SignatureRequest;
import iofd.official.OfficialDocument;
import iofd.official.gbt9704.bean.SealInfo;
import iofd.official.gbt9704.contants.ContentLevel;
import iofd.official.gbt9704.contants.OfficialDocumentType;
import iofd.official.gbt9704.style.OfficialDocContent;
import iofd.pki.core.asn1.SM2Signature;
import iofd.pki.core.sm2.Sm2Signer;
import iofd.signature.OfdSignatureHelper;
import iofd.signature.OfdSignatureHelper.DigestInfo;
import iofd.signature.asn1.seal.SeSeal;
import test.create.TestDocUtil;
import test.create.c11.C1101SealHelloWorld;

/**
 * 公文:报告
 * */
public class C1210BaoGao {

	public static void main(String[] args) throws Throwable {
		C1210BaoGao o = new C1210BaoGao();
		o.done();
	}

	private void done() throws Throwable {
		String clzName = this.getClass().getSimpleName();
		System.out.println(clzName + " begin");
		
		OfficialDocument official = new OfficialDocument(OfficialDocumentType.BAO_GAO);
		
		official.setIssuerAgency("测试符质量技术监督局文件");
		official.setIssueNum("阴质监局〔2007〕017号");
		
		List titles = new ArrayList<>();
		titles.add("测试符质量技术监督局");
		titles.add("关于加强我市特种设备安全监管建议的报告");
		official.setTitles(titles);
		
		List mainSend = new ArrayList<>();
		mainSend.add("市委、市政府");
		official.setMainSend(mainSend);
		
		official.addContent("现将我局《关于加强我市特种设备安全监管建议的报告》,呈送你们。");
		official.addContent("特种设备,是指涉及生命安全,危险性较大的设备和设施的总称,包括锅炉、压力容器(含气瓶)、压力管道、电梯、起重机械、客运索道、厂内机动车辆、大型游乐设施等。由于特种设备既在生产和生活过程中广泛使用,同时又具有潜在危险,特别是有的特种设备在高温高压下工作,有的在高空高速下运行,有的盛装易燃易爆和有毒介质,极易发生爆炸或泄漏有毒物质的事故,一旦发生事故,不是导致人员伤亡,就是造成财产损失,并在社会上产生不良影响。为了保障人民群众的生命财产安全,构建和谐社会,本着“安全第一,预防为主”的原则,我局对全市特种设备安全状况进行了普查,现将普查情况报告如下:");
		
		OfficialDocContent p = new OfficialDocContent();
		p.add("一、我市特种设备的基本情况", ContentLevel.ONE);
		official.addContent(p);
		
		official.addContent("我市现有各类锅炉101台(其中工业锅炉31台,生活锅炉80台),压力容器126台,工业管道12km,起重机械222台(不包括房屋建设工地和市政工程工地),气瓶17078只(其中工业气瓶2278只,液化石油气瓶14800只),电梯19台、索道一条。这些特种设备都分布在全市11个乡镇的机关、企事业单位以及宾馆、学校、医院、商场等。我市特种设备主要有以下特点:");
		official.addContent("(一)分布较广,但不集中。全市各乡镇均有特种设备,不集中,较分散,经济较好的乡镇特种设备相对较多。");
		official.addContent("(二)人员密集的地方特种设备较多。越是经济条件好,人员密集的地方,特种设备越多。如商场、学校、宾馆、企业等人员密集场所特种设备较多。主城区以各机关单位、学校使用的生活锅炉等为主,各气站以气瓶为主,各建筑工地以起重机械为主,厂矿企业、制药企业以压力容器、压力管道和起重机械为主。");
		official.addContent("(三)以使用单位为主。我市目前没有特种设备生产制造单位,主要是压力容器、电梯、锅炉、起重机械、客运索道等特种设备使用单位或液化石油气、工业气瓶充装单位。");
		
		p = new OfficialDocContent();
		p.add("二、我市特种设备安全存在的主要问题", ContentLevel.ONE);
		official.addContent(p);
		
		official.addContent("我市经济尚处在发展阶段,特种设备数量虽不算多,监督管理工作也还处在起步阶段,部分单位的特种设备还存在不同程度的安全隐患问题,不容忽视。主要表现为:");
		official.addContent("(一)特种设备质量难以保证。");
		official.addContent("主要表现为:");
		official.addContent("1.部分单位购进的特种设备不是正规企业生产制造;");
		official.addContent("2.部分特种设备产品没有任何出厂质量合格证明资料。");
		official.addContent("(二)特种设备安装不正规。");
		official.addContent("主要表现为:");
		official.addContent("1.有的单位安装特种设备不按规定程序进行开工前告知;");
		official.addContent("2.有的胆大蛮干,请无资质的安装队安装;");
		official.addContent("3.有的是在无资质的情况下,自行安装;");
		official.addContent("4.安装后不报监督检验部门进行安全质量监督检验合格就投入使用。");
		official.addContent("(三)特种设备使用和管理隐患多。");
		official.addContent("主要表现为:");
		official.addContent("1.有的单位购进设备后不进行安全质量检测就投入使用;");
		official.addContent("2.有的设备维修或有效期届满不申请检验仍继续使用,甚至带病运行;");
		official.addContent("3.有的操作人员未经任何岗前培训,基本常识都不具备就上岗操作;");
		official.addContent("4.有的特种设备使用单位无专职管理机构和管理制度,自我约束机制不健全;");
		official.addContent("5.有的无事故应急方案,如遇问题则惊惶失措。");
		official.addContent("这些问题,不仅说明特种设备使用单位的安全意识和责任意识不强,也反映出我们的监管工作还存在一些漏洞。这些问题不彻底解决,特种设备安全隐患不彻底排除,就难以防止各类事故的发生。");
		
		p = new OfficialDocContent();
		p.add("三、抓好我市特种设备安全监管的几点建议", ContentLevel.ONE);
		official.addContent(p);
		
		official.addContent("鉴于特种设备的技术要求和潜在危险性等特点,国家将特种设备的监管工作划给国家质监总局,国务院“三定”方案和省市“三定”方案都将特种设备的监管工作明确划转给各级质量技术监督部门。2003年3月,国务院发布的《特种设备安全监察条例》明确规定:国家质检总局负责全国特种设备安全监管工作,并要求质监部门要从特种设备的设计,制造、安装、改造、维修、使用、检验检测等七个环节进行全面监督管理。");
		official.addContent("特种设备监管的主管部门虽然是质监部门,但特种设备的监管是一项系统的社会工程,光靠质监部门是不够的。就我市而言,不仅要有市委、市政府强有力的领导和支持,而且要在各级乡镇党委政府和各主管部门的齐抓共管下,才能达到理想的效果。正因为如此,市政府把特种设备的安全管理纳入全市各乡镇安全工作目标的重要内容进行考核。");
		official.addContent("安全无小事,加上特种设备的特殊性,我们质监部门身感责任重大。但是,只要有了市委、市政府的强力领导,只要有了各乡镇政府和各部门的大力支持,只要我们坚持科学态度,遵循相关法规和专业技术要求,严格按规程操作,事故是可以预防的。现对特种设备安全监管提出如下建议:");
		
		p = new OfficialDocContent();
		p.add("(一)强化安全无小事观念。", ContentLevel.TWO);
		p.add("一个地方,一旦发生特种设备事故,不仅造成人员伤亡,财产损失,而且扰乱社会秩序,导致不稳定的局面。因此,各乡镇、各部门、各特种设备使用单位不仅要建立特种设备监管机构,更重要的是明确专人做好具体工作,要定期听汇报,定期分析问题,决定处理方案,要把特种设备的监管纳入为民办好事办实事和构建和谐社会的大事来抓。");
		official.addContent(p);
		
		p = new OfficialDocContent();
		p.add("(二)加大投入。", ContentLevel.TWO);
		p.add("特种设备安全监督管理工作的顺利有效开展,离不开经费保障,不加大投入,许多监管工作是难以有效推进的,而且许多监管工作是只有投入,没有回报的。如人员培训、“土锅炉”及安全隐患的整治及一些安全专项检查、日常指导帮扶工作的开展,都需要经费作保障。为此,建议市里加大对特种设备安全工作的领导和经费投入;各乡镇企业也要保障安全监管人员的培训及监管工作开展必须经费的投入;各特种设备使用单位也要保障经费,加强技改,更新设备,加大特种设备管理和操作人员的培训,确保安全工作的落实到位。");
		official.addContent(p);
		
		p = new OfficialDocContent();
		p.add("(三)加强日常检查,防止事故发生。", ContentLevel.TWO);
		p.add("事故苗头和问题只有通过检查才能发现,不深入使用单位,不认真开展检查,特种设备安全现状和情况就会心中无数,特种设备就会疏于管理,安全隐患就难以防范。有的企业不仅平时不加强管理,开展自查;甚至对一些监管部门的安全检查也有厌倦和抵触情绪,一旦出了问题则责怪无人去过问。");
		official.addContent(p);
		
		official.addContent("作为特种设备使用单位,更应建立健全监管制度,加强日常管理,建立设备状况台帐,设立日常自查台帐,切实做到“三落实”(安全管理机构、安全管理人员、安全管理制度)、“两有证”(操作证、设备使用证)、“一检验”(设备定期检验),排除安全隐患。");
		official.addContent("作为职能部门,作为乡镇政府,肩负着履行职责,维护一方平安的重任,就应该依照职能职责加强日常深入检查,对辖区内的特种设备使用单位要定期普查,不定期抽查,一项一项作检查登记,不放掉任何一个环节和问题,并登记在册,及时果断地督促企业限期整改,做到有的放矢,把安全隐患消灭在萌芽阶段。");
		
		p = new OfficialDocContent();
		p.add("(四)加强学习培训工作,提高监管能力和操作使用水平。", ContentLevel.TWO);
		p.add("一是要加强对特种设备安全监管人员的培训,不仅是监管部门的监管人员要加强对特种设备安全法规知识和监管方法、技巧的学习培训,增强洞悉和排除安全隐患的能力;而且,各乡镇政府,特别是安全监管具体工作人员也要加强学习,提高日常监管的能力。二是要加强对本辖区企业特种设备管理和操作人员的培训管理,增强其安全意识,确保做到“三落实”、“两有证”、“一检验”,提高其管理能力和操作水平,督促其严格按规程要求操作,确保安全。");
		official.addContent(p);
		
		p = new OfficialDocContent();
		p.add("(五)制定预案,确保有备无患。", ContentLevel.TWO);
		p.add("各乡镇、各使用单位都要制定特种设备事故应急救援预案,万一发生事故,则处事不惊,有序处理,将损失降到最低程度。");
		official.addContent(p);
		
		p = new OfficialDocContent();
		p.add("(六)严处违法违规行为。", ContentLevel.TWO);
		p.add("安全责任重于泰山,安全问题,不能松绑,不能放任,更不能迁就。我们认为,对于那些借口“发展环境不好”、“无钱整改”、屡教不改的使用单位必须按相关法规进行严肃处理,这是排出阻力,根除隐患,防止发生事故最有效的手段。良好的发展环境不等于放任自流,视安全为儿戏!不能把经济处罚与发展环境不好等同视之。因此,对这些使用单位无论有何借口,都不能同情,不能手软,必须严查严处,消除安全隐患。");
		official.addContent(p);
		
		p = new OfficialDocContent();
		p.add("(七)加强特种设备安全监管信息建设。", ContentLevel.TWO);
		p.add("陕西省特种设备动态安全监察信息系统已经启动,同时,各乡镇政府、各特种设备使用单位应建立和加强信息报告制度,对本辖区的特种设备安装、使用、维修、事故隐患等方面的信息及发现的重大隐患或事故苗头,不仅要及时报告上级机关,也应报告本辖区乡镇政府和特种设备安全监管部门,以便切实做到齐抓共管,确保安全。");
		official.addContent(p);
		
		official.addContent("特此报告!");
		
		List sealList = new ArrayList<>();
		SealInfo info = new SealInfo();
		info.setName("测试符质量技术监督局");
		info.setDate("2007年8月28日");
		info.setSeal(C1101SealHelloWorld.SEAL1);
		sealList.add(info);
		official.setSeals(sealList);
		
		List ccSends = new ArrayList<>();
		ccSends.add("测试符委");
		ccSends.add("测试符人民政府");
		ccSends.add("渭南市质量技术监督局");
		ccSends.add("测试符安委会");
		official.setCcSends(ccSends);
		
		official.setPrintOrg("测试符质量技术监督局办公室");
		official.setPrintDate("2007年8月28日");
		
		String digestFileName = TestDocUtil.getOfdFilePath(this.getClass(), "_digest",  false);
		String finalFileName = TestDocUtil.getOfdFilePath(this.getClass(), false);
		official.save(finalFileName);
		
		List signReqList = official.getSignatureRequestList();
		for(int i = 0; signReqList != null && i < signReqList.size(); i++) {
			File ofdFile = new File(finalFileName);
			File digestFile = new File(digestFileName);
			File finalFile = new File(finalFileName);
			SignatureRequest req = signReqList.get(i);
			SeSeal seSeal = req.getSeal();
			OfdSignatureHelper helper = OfdSignatureHelper.newInstance();
			DigestInfo digestInfo = helper.createSm3Digest(ofdFile, digestFile, C1101SealHelloWorld.pubKey, seSeal, req.getBoundary(), req.getClip(), req.getPageRef());
			byte[] digest = digestInfo.getDigest();
			
			/*
			 * 注意:这部分应该使用可靠的签名设备
			 * */
			Sm2Signer signer = new Sm2Signer();
			SM2Signature sign = signer.signWithHash(C1101SealHelloWorld.priKey, digest);
			
			byte[] signature = sign.getEncoded();
			int signVersion = 1;
			ASN1BitString dataHash = new DERBitString(digest);
			ASN1BitString timeInfo = null;//时间戳
			helper.createSm2Signature(digestInfo.getSignatureRoot(), signature, seSeal, C1101SealHelloWorld.pubKey, 
					C1101SealHelloWorld.cert, signVersion, dataHash, timeInfo, digestFile, finalFile);
		}
		
		System.out.println(clzName + " end");
		
	}

}