决议的特点

决议适用于会议讨论通过的重大决策事项,是党的领导机关就重要事项,经会议讨论通过其决策,并要求进行贯彻执行的重要指导性公文。决议一直都是党的机关使用的重要公文,虽然国家行政机关也可以使用,但常常都是用会议纪要这一文种来代替。

决议是一种重要的下行文,其最基本的特点就是决策性和权威性,另外也具备指导性、程序性、表决性等特点。决议可根据其涉及的内容范围不同,分为公布性决议、批准性决议和阐述性决议3种类型。

决议的格式要素基本上与标准公文相似,其中份号、密级和保密期限、紧急程度、主送机关,以及正文后的发文机关署名、成文日期、印章等都可以根据实际情况选择编排或不编排。如果标题下编排成文日期,那么正文后的成文日期就可以省略,如果发文机关为人民代表大会或国务院等高层领导机构,则可以不需要发文机关署名和印章。

 显示效果

示例代码所生成的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.block.paragraph.Text;
import iofd.layout.signature.SignatureRequest;
import iofd.official.OfficialDocument;
import iofd.official.gbt9704.bean.SealInfo;
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 C1201JueYi {

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

	private void done() throws Throwable {
		String clzName = this.getClass().getSimpleName();
		System.out.println(clzName + " begin");
		
		OfficialDocument official = new OfficialDocument(OfficialDocumentType.JUE_YI);
		
		official.setIssuerAgency("测试县人民代表大会常务委员会文件");
		official.setIssueNum("测人发〔2016〕13号");
		
		official.setTitles("测试县人大常委会关于批准2015年县级财政决算和2016年财政预算变动的决议");
		List subTitles = new ArrayList<>();
		subTitles.add("(1996年10月10日测试测试符");
		subTitles.add("第十四届中央委员会第六次全体会议通过)");
		official.setSubTitles(subTitles);
		
		official.addContent("测试县第十七届人大常委会财经工作委员会,对县财政局局长周建华受县人民政府委托提交的《关于测试县2015年财政决算和2016年财政预算变动的报告》进行了认真审查,认为2015年财政工作支出保障了全县经济和社会各项事业的健康发展,圆满完成了各项收支任务,财政决算客观真实,财经工委同意2015年财政决算。");
		OfficialDocContent p = new OfficialDocContent();
		p.add("2016年由于“营改增”,停征价调基金,财政收入明显下滑,财政预算由33300万元下调为22300万元,新增债券资金5600万元,预算的调整符合我县财政和经济发展要求,同意2016年财政预算调整。");
		official.addContent(p);
		
		p = new OfficialDocContent();
		p.add(new Text("结合审计工作报告和县人大常委会财经工作委员会的审查意见,经会议研究,决定批准《关于测试县2015年财政决算和2016年财政预算变动的报告》,批准测试县2015年县级财政决算,批准2016年的财政预算变动。"));
		official.addContent(p);
		
		List sealList = new ArrayList<>();
		SealInfo info = new SealInfo();
		info.setName("测试县人大常委会办公室");
		info.setDate("2016年12月21日");
		info.setSeal(C1101SealHelloWorld.SEAL1);
		sealList.add(info);
		official.setSeals(sealList);
		
		List ccSends = new ArrayList<>();
		ccSends.add("县委");
		ccSends.add("市人大常委会办公室");
		ccSends.add("县人大常委会组成人员");
		ccSends.add("县人民法院");
		ccSends.add("县人民检察院");
		ccSends.add("县政府办");
		ccSends.add("财政局");
		ccSends.add("各镇人大");
		official.setCcSends(ccSends);
		
		official.setPrintOrg("测试县人大常委会办公室");
		official.setPrintDate("2016年12月21日");
		
		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");
		
	}

}