生成干部任免审批表

这篇具有很好参考价值的文章主要介绍了生成干部任免审批表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

干部任免审批表:说白了就是国有企业独有的一种格式,省了手抄信息
1.具体就是这个样子:
lrmx,json,java,前端lrmx,json,java,前端

2.步骤就是:
拿到该人员信息,生成一个类似xml格式的文件,文件后缀名以.lrmx结束,再用专用的编辑器打开就可以了。
3.代码难点:
①取人员信息,需要很多表关联,是一个重复写关联表的过程
②下面生成xml格式文件,写前端下载。OK
3.代码示例:
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.xml.sax.SAXException;

import java.io.File;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
import java.net.URL;
import java.nio.file.Paths;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class JsonToXml {
private static final String ENCODING = “UTF-8”;

/**
 * Json to xml string.
 *
 * @param json the json
 * @return the string
 */
public static String jsonToXml(String json){
    try {
        StringBuffer buffer = new StringBuffer();
        buffer.append("<?xml version=\"1.0\" encoding=\"utf-8\"?> \n <Person> \n");
        JSONObject jObj = JSONObject.fromObject(json);
        jsonToXmlstr(jObj,buffer);
        buffer.append("<Version>3.2.1.16</Version> \n");
        buffer.append("</Person>");
        return buffer.toString();
    } catch (Exception e) {
        e.printStackTrace();
        return "";
    }
}


/**
 * Json to xmlstr string.
 *
 * @param jObj   the j obj
 * @param buffer the buffer
 * @return the string
 */
public static String jsonToXmlstr(JSONObject jObj,StringBuffer buffer ){
    Set<Map.Entry<String, Object>> se = jObj.entrySet();
    for(Iterator<Map.Entry<String, Object>> it = se.iterator(); it.hasNext(); )
    {
        Map.Entry<String, Object> en = it.next();
        if(en.getValue().getClass().getName().equals("net.sf.json.JSONObject")){
            buffer.append("<"+en.getKey()+">");
            JSONObject jo = jObj.getJSONObject(en.getKey());
            jsonToXmlstr(jo,buffer);
            buffer.append("</"+en.getKey()+"> \n");
        }else if(en.getValue().getClass().getName().equals("net.sf.json.JSONArray")){
            JSONArray jarray = jObj.getJSONArray(en.getKey());
            for (int i = 0; i < jarray.size(); i++) {
                if(i==0) {
                    buffer.append("<" + en.getKey() + ">");
                }
                buffer.append("<"+"Item"+">");
                JSONObject jsonobject =  jarray.getJSONObject(i);
                jsonToXmlstr(jsonobject,buffer);
                buffer.append("</"+"Item"+">");
                if(i<jarray.size()-1){
                    continue;
                }
                buffer.append("</"+en.getKey()+"> \n");
            }
        }else if(en.getValue().getClass().getName().equals("java.lang.String")){
            buffer.append("<"+en.getKey()+">"+en.getValue());
            buffer.append("</"+en.getKey()+"> \n");
        }

    }

    return buffer.toString();
}

//
// /**
// * JSON对象转的xml字符串-格式化 带空格 换行符 输出到文件可读性好
// *
// * @param json JSON对象
// * @return 漂亮的xml字符串
// /
// public static String jsonToFormatXml(JSONObject json) {
// StringWriter formatXml = new StringWriter();
// try {
// Document document = jsonToDocument(json);
// /
格式化xml /
// OutputFormat format = OutputFormat.createPrettyPrint();
// // 设置缩进为4个空格
// format.setIndent(" ");
// format.setIndentSize(4);
// XMLWriter writer = new XMLWriter(formatXml, format);
// writer.write(document);
// } catch (IOException e) {
// e.printStackTrace();
// }
// return formatXml.toString();
// }
//
// /
*
// * JSON对象转xml字符串-不带空格换行符
// *
// * @param json JSON对象
// * @return xml字符串
// * @throws SAXException
// /
// public static String JsonToXml(JSONObject json) {
// return jsonToDocument(json).asXML();
// }
//
/
*
* JSON对象转Document对象
*
* @param json JSON对象
* @return Document对象
/
public static Document jsonToDocument(JSONObject json) {
Document document = DocumentHelper.createDocument();
document.setXMLEncoding(ENCODING);
for (String rootKey : json.keySet()) {
Element root = DocumentHelper.createElement(rootKey);
// JSONObject cc = new JSONObject(rootKey);
JSONObject rootkeyjson = json.parseObject(rootKey);
addJsonObjectElement(json.getJSONObject(rootKey), root);
document.add(root);
// root对象只能有一个,多个时只读一个
break;
}
return document;
}
//
// /
*
// * 添加JSONArray Element
// *
// * @param jsonArray 传入的json数组
// * @param nodeName 节点名称
// * @param arrRoot 上层节点
// /
// private static void addJsonArrayElement(JSONArray jsonArray, String nodeName, Element arrRoot) {
//
// for (Object aJsonArray : jsonArray) {
// JSONObject jsonObject = (JSONObject) aJsonArray;
// Element node = DocumentHelper.createElement(nodeName);
// // 继续遍历
// for (String key : jsonObject.keySet()) {
// Element element = DocumentHelper.createElement(key);
// Object child = JSON.toJSON(jsonObject.get(key));
// if (child instanceof JSONArray) {
// // 递归
// addJsonArrayElement(jsonObject.getJSONArray(key), key, node);
// } else if (child instanceof JSONObject) {
// addJsonObjectElement(jsonObject.getJSONObject(key), element);
// node.add(element);
// } else {
// element.setText(jsonObject.getString(key));
// node.add(element);
// }
// }
// arrRoot.add(node);
// }
//
// }
//
//
// /
*
// * 添加JSONObject Element
// *
// * @param json JSON对象
// * @param root 上层节点
// * @return Element对象
// */
// private static void addJsonObjectElement(JSONObject json, Element root) {
//
// for (String key : json.keySet()) {
// Element node = DocumentHelper.createElement(key);
// Object child = json.get(key);
// if (child instanceof JSONObject) {
// addJsonObjectElement(json.getJSONObject(key), node);
// root.add(node);
// } else if (child instanceof JSONArray) {
// addJsonArrayElement(json.getJSONArray(key), key, root);
// } else {
// node.setText(json.getString(key));
// root.add(node);
// }
// }
//
// }

/**
 * XML字符串转JSON对象
 *
 * @param xml xml字符串
 * @return JSON对象
 * @throws DocumentException
 */
public static JSONObject xmlToJson(String xml) throws DocumentException {
    JSONObject json = new JSONObject();
    SAXReader reader = new SAXReader();
    Document document = reader.read(new StringReader(xml));
    Element root = document.getRootElement();
    json.put(root.getName(), elementToJson(root));

    return json;
}

/**
 * Element对象转JSON对象
 *
 * @param element Element对象
 * @return JSON对象
 */
public static JSONObject elementToJson(Element element) {
    JSONObject json = new JSONObject();
    for (Object child : element.elements()) {
        Element e = (Element) child;
        if (e.elements().isEmpty()) {
            json.put(e.getName(), e.getText());
        } else {
            json.put(e.getName(), elementToJson(e));
        }
    }

    return json;
}




/**
 * 字符串输出到文件
 *
 * @param str      字符串内容
 * @param filePath 文件路径
 * @throws IOException
 */
public static void stringToFile(String str, String filePath) throws IOException {
    FileUtils.writeStringToFile(Paths.get(filePath).toFile(), str, ENCODING);
}

/**
 * 字符串输出到文件
 *
 * @param str      字符串内容
 * @param filePath 文件路径
 * @throws IOException
 */
public static void stringToFile(String str, URL filePath) throws IOException {
    FileUtils.writeStringToFile(new File(filePath.getPath()), str, ENCODING);
}

}文章来源地址https://www.toymoban.com/news/detail-555708.html

到了这里,关于生成干部任免审批表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • jenkins发布使用邮件添加审批

    首先安装好Email Extension Plugin插件并在 system下配置好邮件 然后配置流水线需要的参数 #pic_center pipeline如下: 效果如下:

    2024年02月17日
    浏览(28)
  • jenkins pipeline 实现钉钉审批

    一、需求 Jenkins job 在构建任务时,推送一条审批消息。 点击消息确认与取消按钮进行审批。 根据审批结果触发继续构建还是取消构建。 二、流程图 三、实现效果 任务开始: 确认效果: 拒绝效果 任务状态失败与取消后点击效果: 重复点击效果: 四、pipeline脚本 脚本中使

    2024年02月05日
    浏览(29)
  • 使用 jmeter 进行审批类接口并发测试

    目录 前言: 背景: 难点: 场景 a: 场景 b: 前言: 使用JMeter进行审批类接口的并发测试是一种有效的方法,可以模拟多个用户同时对接口进行审批操作,以评估系统在高负载情况下的性能和稳定性。 背景 : 页面上单据审核操作,单据并发操

    2024年02月16日
    浏览(36)
  • 八、云尚办公系统-管理端-审批设置

    B站直达【为尚硅谷点赞】 : https://www.bilibili.com/video/BV1Ya411S7aT 本博文以课程相关为主发布,并且融入了自己的一些看法以及对学习过程中遇见的问题给出相关的解决方法。一起学习一起进步!!! 恭喜大家完成前面用户管理、菜单管理、权限管理的学习,这个博文笔记将详细

    2024年02月11日
    浏览(35)
  • 电子作业票如何实现特殊作业审批规范管理?

    电子作业票系统是针对传统作业许可管理存在的问题和缺陷,结合物联网、云计算和大数据等新一代信息技术,以企业作业安全为主线,现场作业与安全监控相结合,通过识别、分析与控制非常规作业过程中的危险及隐患,智能化调度和协调相关区域作业,直观显示属地作业

    2024年02月13日
    浏览(33)
  • OA办公系统如何通过审批流程提高效率

    企业的发展与管理离不开信息化,很多企业的信息化都会选择从OA信息化开始。一个成熟先进的OA办公系统流程审批也是核心功能关注的功能之一,今天小编举例有18年平台经验的天翎低代码平台OA系统,给大家分享一下如果提升流程审批效率: 流程设计 利用OA办公系统可以实

    2024年02月11日
    浏览(28)
  • 成集云 | 飞书审批同步金蝶云星空 | 解决方案

    源系统 成集云 目标系统 飞书员工报销审批通过后,审批单据内容和审批状态实时同步金蝶云星空 飞书是字节跳动于2016年自研的新一代一站式协作平台,将即时沟通、日历、云文档、云盘和工作台深度整合,通过开放兼容的平台,让成员在一处即可实现高效的沟通和流畅的

    2024年02月09日
    浏览(41)
  • Java与MySQL的绝妙结合:打造高效审批流程

    1️⃣.串行流程 当前节点审批完成后,下一次节点才能进行操作,例如经理通过之后,总监才能审批; 2️⃣.并行流程 一个审批节点需要多人联审。一般有两种方式: 会签、或签 ; 会签:         注意: 别跟串行审批混淆。会签的多个角色是平行的,没有上下级关系、

    2024年02月03日
    浏览(28)
  • 记一次 .NET 某旅行社审批系统 崩溃分析

    前些天有位朋友找到我,说他的程序跑着跑着就崩溃了,让我看下怎么回事,其实没怎么回事,抓它的 crash dump 就好,具体怎么抓也是被问到的一个高频问题,这里再补一下链接: [.NET程序崩溃了怎么抓 Dump ? 我总结了三种方案] https://www.cnblogs.com/huangxincheng/p/14811953.html ,采用

    2024年02月09日
    浏览(36)
  • [AIGC] 如何设计和实现工作流的审批项目?

    工作流的审批项目是指一个系统化、可重复的审批过程,它能够帮助你更有效地完成审批任务和达成目标。无论你是一个项目经理、一个审批官还是一个企业主管,设计和实现工作流的审批项目都是一个重要的步骤。 工作流的审批项目能够帮助你: 节省时间:工作流的审批

    2024年02月19日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包