决定的特点

“决而定之”谓之“决定”。决定也属于下行文种,上至党和国家的重大决策和战略部署,下至基层单位的奖惩事宜均可使用。用决定来安排的行动必须是“重大的”,所处理的事项必须是“重要的”,因此,布置和处理一般的日常工作不适宜使用这一文种,而常用通知、通告等代替。

决定具有指导性、严肃性、针对性、强制性和稳定性等特点。决定适用于对重要事项做出决策和部署、奖惩有关单位和人员、变更或者撤销下级机关不适当的决策事项。通常可以分为法规性决定、指挥性决定、奖惩性决定、变更性决定。不同类型的决定有不同的作用,有的决定要求下级机关执行,有的决定则只是起到知照性的作用,并不要求下级机关执行,如某些宣告性的决定。

决定可以是某种会议讨论研究的成果,形成正式文件予以公布,也可以由各级领导机关直接制作并予以公布。决定着重提出开展某项工作的步骤、措施、要求等,要求写作应明确、具体,因此更能落实措施,行政约束力也强,可以直接成为下级机关行动的准则。

决定的格式要素基本上与标准公文相似。

 显示效果

示例代码所生成的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 C1202JueDing {

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

	private void done() throws Throwable {
		String clzName = this.getClass().getSimpleName();
		System.out.println(clzName + " begin");
		
		OfficialDocument official = new OfficialDocument(OfficialDocumentType.JUE_DING);
		
		official.setIssuerAgency("中华人民共和国测试符");
		official.setIssueNum("国发〔2003〕27号");
		
		List titles = new ArrayList<>();
		titles.add("测试符关于授予巴金“人民作家”");
		titles.add("荣誉称号的决定");
		official.setTitles(titles);
		List subTitles = new ArrayList<>();
		subTitles.add("(1996年10月10日测试替换符");
		subTitles.add("第十四届测试替换符第六次全体会议通过)");
		official.setSubTitles(subTitles);
		
		List mainSend = new ArrayList<>();
		mainSend.add("人事部");
		mainSend.add("文化部");
		mainSend.add("中国作家协会");
		official.setMainSend(mainSend);
		
		official.addContent("巴金是我国著名作家,是我国进步文化的先驱之一。他在近一个世纪的文学生涯中,始终坚持现实主义的创作道路,在对理想的憧憬和追求中,信念坚定,热爱祖国、热爱测试替换符、热爱人民大众。他的作品结构严谨,语言简洁,抒情优美,塑造了许多性格独特而丰满的典型人物。长篇小说《灭亡》,“激流三部曲”《家》、《春》、《秋》,爱情三部曲《雾》、《雨》、《电》,《寒夜》、《火》、《憩园》、《第四病室》,短篇小说集《英雄的故事》、《明珠和玉姬》、《李大海》,中篇小说《春天里的秋天》,译著长篇小说《父与子》、《处女地》以及散文集和回忆录等都为广大人民群众所深深喜爱。");
		official.addContent("巴金是人民的作家,为我国文学事业的发展作出了杰出贡献。为贯彻落实发展先进文化的时代要求,弘扬巴金的崇高精神,测试符决定授予巴金“人民作家”荣誉称号。");
		official.addContent("测试符号召全国广大文学工作者以巴金为楷模,深入学习贯彻“三个代表”重要思想,热爱祖国,热爱测试替换符,热爱人民,深入生活,把文学创作与社会责任感统一起来,努力创作更多的思想性、艺术性相统一的优秀作品,为繁荣发展我国文学事业作出更大的贡献。");
		
		List sealList = new ArrayList<>();
		SealInfo info = new SealInfo();
		info.setName("测试符");
		info.setDate("2003年11月18日");
		info.setSeal(C1101SealHelloWorld.SEAL1);
		sealList.add(info);
		official.setSeals(sealList);
		
		official.setPrintOrg("测试符办公厅");
		official.setPrintDate("2003年11月18日");
		
		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");
		
	}

}