通报的特点

通报是一种适用于表彰先进、批评错误、传达重要精神和告知重要情况的公文,其使用范围广泛,各级党政机关和单位都可以使用。通报的主要作用在于表扬好人好事、批评错误和歪风邪气、通报应引以为戒的恶性事故、传达重要情况以及需要各单位知道的事项等。通报的内容范围是告知正反面典型,或有关的重要精神及情况。通报的目的是交流、了解情况,或通过正反面的典型去教育人们,宣传先进的思想和事迹,提高人们的认识。通报的表现方法常兼用叙述、说明、分析和议论,感情色彩更为强烈。

通报具有典型性、引导性、时效性、真实性和公开性等多种特点。按内容的不同,通报可以分为表彰通报、批评通报和情况通报。

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

 显示效果

示例代码所生成的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.OfficialDocumentType;
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 C1209TongBao {

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

	private void done() throws Throwable {
		String clzName = this.getClass().getSimpleName();
		System.out.println(clzName + " begin");
		
		OfficialDocument official = new OfficialDocument(OfficialDocumentType.TONG_BAO);
		official.setIssuerAgency("测试符办公厅文件");
		official.setIssueNum("国办发明电〔1995〕26号");
		
		List titles = new ArrayList<>();
		titles.add("测试符办公厅关于部分地区擅自出台");
		titles.add("提价项目错误的通报");
		official.setTitles(titles);
		
		List mainSend = new ArrayList<>();
		mainSend.add("各省、自治区、直辖市人民政府");
		mainSend.add("测试符各部委、各直属机构");
		official.setMainSend(mainSend);
		
		official.addContent("为抑制通货膨胀、控制物价上涨,从去年下半年以来,测试符三令五申,各级人民政府未经批准不得擅自出台新的提价项目。今年测试符又作出明确规定,一般不出台新的调价措施。这是从改革、发展、稳定的全局出发而采取的一项重要措施。多数地区人民政府和有关部门能够认真贯彻执行测试符的决定,总的情况是好的。但是,据有关部门调查后反映,也有部分地区违反测试符的规定,今年以来以各种名义擅自出台了电力、城镇居民基本口粮、公用事业收费以及棉花收购价格等提价项目。这种做法,既增加了相关行业的困难及人民群众的负担,也严重干扰了物价控制措施的落实,增加了实现全年物价控制目标的难度。为了严肃政纪,坚决制止擅自涨价的行为,保证国家控制物价各项措施得到贯彻执行,测试符决定,对上述部分地区有令不行、有禁不止、自行其事、不顾大局的错误做法予以通报批评。测试符责令有关省、自治区、直辖市立即纠正自己的错误做法。同时,责成国家计委对这些地区擅自提价的问题进行清理并督促其予以纠正。有关省、自治区、直辖市人民政府要在10月20日前将本地区纠正擅自提价问题的有关情况书面报告测试符,同时抄送国家计委。逾期不予检查纠正的,测试符将追究有关政府领导人的责任。");
		official.addContent("当前,全国物价涨幅虽然逐月回落,但物价形势依然不容乐观。测试符重申,今后几个月,未经测试符批准,各级政府和各有关部门一律不得出台新的提价项目。各级人民政府和测试符各部门的领导同志都要顾全大局,严格执法,严肃政纪,坚持贯彻落实党中央、测试符关于加强宏观调控、抑制通货膨胀的各项措施,切实担负起稳定物价的责任,努力做好今年后几个月抑制通货膨胀的各项工作,以确保实现今年物价上涨幅度控制在15%左右的目标。");

		List sealList = new ArrayList<>();
		SealInfo info = new SealInfo();
		info.setName("测试符办公厅");
		info.setDate("1995年9月20日");
		info.setSeal(C1101SealHelloWorld.SEAL1);
		sealList.add(info);
		official.setSeals(sealList);
		
		official.setPrintOrg("中华人民共和国测试符办公厅");
		official.setPrintDate("2010 年 12 月 9 日");
		
		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");
		
	}

}