package com.zbooksoft.gdmis.service.impl; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.ObjectNode; import com.ruili.wcp.common.CustomConfigUtil; import com.ruili.wcp.common.IdGenerater; import com.ruili.wcp.data.entity.management.User; import com.zbooksoft.gdmis.config.ArchivesCustomConfig; import com.zbooksoft.gdmis.data.entity.*; import com.zbooksoft.gdmis.service.*; import org.apache.commons.lang.StringUtils; import org.apache.shiro.SecurityUtils; import org.apache.shiro.session.Session; import org.apache.shiro.subject.Subject; import org.dom4j.Document; import org.dom4j.Node; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; import java.util.List; import static com.zbooksoft.gdmis.common.XmlUtil.*; /** * @Description: * @Author: zhai * @Date: 2024/8/7 **/ @Service public class ReadXml2023ServiceImpl implements ReadXml2023Service { @Autowired CatXzqService catXzqService; @Autowired CatDlwzxxService catDlwzxxService; @Autowired CatKcService catKcService; @Autowired CatSmxxService catSmxxService; @Autowired CatZkxxService catZkxxService; @Autowired CatTfxxService catTfxxService; @Autowired CatYswjxxService catYswjxxService; @Autowired CatCgwjxxService catCgwjxxService; @Autowired CatAjjxxService catAjjxxService; @Autowired CatCheckService catCheckService; @Autowired CustomConfigUtil customConfigUtil; @Autowired JdbcTemplate jdbcTemplate; @Override @Transactional(rollbackFor = Exception.class) public void readXml(Document document, String startData, String endData) throws Exception { Subject currentUser = SecurityUtils.getSubject(); Session session = currentUser.getSession(); User user = (User) session.getAttribute("user"); //案卷级信息 Node ajjxxNode = getNode(document, "AJJXX"); // Node bsdNode = getNode(document, "DZZLBSD"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); long ajjxxId = IdGenerater.getId(); CatAjjxx catAjjxx = new CatAjjxx(); catAjjxx.setId(ajjxxId); catAjjxx.setDeleteState(0); catAjjxx.setSlsj(stringToDate(startData)); catAjjxx.setYsjzsj(stringToDate(endData)); catAjjxx.setZlzt(0); if (user != null) { catAjjxx.setSlr(user.getTrueName()); catAjjxx.setYsr(user.getTrueName()); } //项目信息 catAjjxx.setSmqk(getNodeText(ajjxxNode, "SMQK")); catAjjxx.setZjly(getNodeText(ajjxxNode, "ZJLY")); catAjjxx.setXmkyqlx(getNodeText(ajjxxNode, "XMKYQ/XMKYQLX")); catAjjxx.setXmkyqxz(getNodeText(ajjxxNode, "XMKYQ/XMKYQXZ")); catAjjxx.setXmkyqbh(getNodeText(ajjxxNode, "XMKYQ/XMKYQBH")); catAjjxx.setXmkyqmc(getNodeText(ajjxxNode, "XMKYQ/XMKYQMC")); catAjjxx.setXmcddwkyqr(getNodeText(ajjxxNode, "XMKYQ/XMCDDWKYQR")); catAjjxx.setQssj(getNodeText(ajjxxNode, "XMKYQ/QSSJ")); catAjjxx.setZzsj(getNodeText(ajjxxNode, "XMKYQ/ZZSJ")); // catAjjxx.setQssj(stringToDate(getNodeText(ajjxxNode, "XMKYQ/QSSJ"))); // catAjjxx.setZzsj(stringToDate(getNodeText(ajjxxNode, "XMKYQ/ZZSJ"))); catAjjxx.setXmxxsm(getNodeText(ajjxxNode, "XMKYQ/XMXXSM")); catAjjxx.setSpjg(getNodeText(ajjxxNode, "XMKYQ/SPJG")); catAjjxx.setSpsj(stringToDate(getNodeText(ajjxxNode, "XMKYQ/SPSJ"))); //汇交人信息 catAjjxx.setHjrmc(getNodeText(ajjxxNode, "HJR/HJRMC")); catAjjxx.setHjrdz(getNodeText(ajjxxNode, "HJR/HJRDZ")); catAjjxx.setHjryb(getNodeText(ajjxxNode, "HJR/HJRYB")); catAjjxx.setHjrtyshxydm(getNodeText(ajjxxNode, "HJR/HJRTYSHXYDM")); catAjjxx.setHjrlxr(getNodeText(ajjxxNode, "HJR/HJRLXR")); catAjjxx.setHjrdh(getNodeText(ajjxxNode, "HJR/HJRDH")); catAjjxx.setHjrdzyx(getNodeText(ajjxxNode, "HJR/HJRDZYX")); //报送单信息 // xmxx.GPSL = XMLHelper.GetNodeValue(bsdNode, "GPSL").ToInt(); // xmxx.YPSL = XMLHelper.GetNodeValue(bsdNode, "YPSL").ToInt(); // xmxx.QTJZMC = XMLHelper.GetNodeValue(bsdNode, "QTJZSL/JZMC"); // xmxx.QTJZSL = XMLHelper.GetNodeValue(bsdNode, "QTJZSL/JZSL").ToInt(); // xmxx.BSDBZ = XMLHelper.GetNodeValue(bsdNode, "BZ"); //案卷级信息 catAjjxx.setHjrdh(getNodeText(ajjxxNode, "HJRDH")); catAjjxx.setDh(getNodeText(ajjxxNode, "DH")); catAjjxx.setSgdh(getNodeText(ajjxxNode, "SGDH")); catAjjxx.setZlmc(getNodeText(ajjxxNode, "ZLMC")); catAjjxx.setFzmc(getNodeText(ajjxxNode, "FZMC")); String bzz = ""; List BzzNodeList = getNodeList(ajjxxNode, "BZZ/Item"); for (Node bzzNode : BzzNodeList) { String nodeText = bzzNode.getText(); if (nodeText != null && !"".equals(nodeText)) { bzz += nodeText + ","; } } if (!"".equals(bzz)) { bzz = bzz.substring(0, bzz.length() - 1); catAjjxx.setBzz(bzz); } catAjjxx.setXcdwmc(getNodeText(ajjxxNode, "XCDW/Item/XCDWMC")); catAjjxx.setXcdwshxydm(getNodeText(ajjxxNode, "XCDW/Item/XCDWSHXYDM")); catAjjxx.setXcsj(getNodeText(ajjxxNode, "XCSJ")); String xzqmc = ""; String xzqdms = ""; //行政区 List xzqNodeList = getNodeList(ajjxxNode, "XZQ/Item"); for (Node xzqNode : xzqNodeList) { CatXzq catXzq = new CatXzq(); catXzq.setAjId(ajjxxId); String xzqdm = getNodeText(xzqNode, "XZQDM"); if (!"".equals(xzqdm)) { xzqdms += xzqdm + ","; } catXzq.setXzqdm(xzqdm); catXzq.setGb(getNodeText(xzqNode, "XZQMC/GB").replaceAll("\\s+", "")); String sj = getNodeText(xzqNode, "XZQMC/SJ").replaceAll("\\s+", ""); ; if (!"".equals(sj)) { xzqmc += sj; } catXzq.setSj(sj); String dj = getNodeText(xzqNode, "XZQMC/DJ").replaceAll("\\s+", ""); ; if (!"".equals(dj)) { xzqmc += " " + dj; } catXzq.setDj(dj); String xj = getNodeText(xzqNode, "XZQMC/XJ").replaceAll("\\s+", ""); ; if (!"".equals(xj)) { xzqmc += " " + xj; } catXzq.setXj(xj); catXzqService.saveOrUpdate(catXzq); xzqmc += ","; } if (!"".equals(xzqmc)) { catAjjxx.setXzqmc(xzqmc.substring(0, xzqmc.length() - 1)); } if (!"".equals(xzqdms)) { catAjjxx.setXzqdm(xzqdms.substring(0, xzqdms.length() - 1)); } catAjjxx.setDlzbx(getNodeText(ajjxxNode, "DLZBX")); //工作区范围 List gzqfwNodeList = getNodeList(ajjxxNode, "GZQFW/Item"); if (gzqfwNodeList.size() > 0) { ObjectMapper mapper = new ObjectMapper(); ObjectNode root = mapper.createObjectNode(); ArrayNode addresses = mapper.createArrayNode(); for (int i = 0; i < gzqfwNodeList.size(); i++) { Node gzqfwNode = gzqfwNodeList.get(i); if (i == 0) { catAjjxx.setQsjdFx(getNodeText(gzqfwNode, "SZZB/QSJD/FX")); catAjjxx.setQsjdDu(getNodeText(gzqfwNode, "SZZB/QSJD/DU")); catAjjxx.setQsjdFen(getNodeText(gzqfwNode, "SZZB/QSJD/FEN")); catAjjxx.setQsjdMiao(getNodeText(gzqfwNode, "SZZB/QSJD/MIAO")); catAjjxx.setZzjdFx(getNodeText(gzqfwNode, "SZZB/ZZJD/FX")); catAjjxx.setZzjdDu(getNodeText(gzqfwNode, "SZZB/ZZJD/DU")); catAjjxx.setZzjdFen(getNodeText(gzqfwNode, "SZZB/ZZJD/FEN")); catAjjxx.setZzjdMiao(getNodeText(gzqfwNode, "SZZB/ZZJD/MIAO")); catAjjxx.setQswdFx(getNodeText(gzqfwNode, "SZZB/QSWD/FX")); catAjjxx.setQswdDu(getNodeText(gzqfwNode, "SZZB/QSWD/DU")); catAjjxx.setQswdFen(getNodeText(gzqfwNode, "SZZB/QSWD/FEN")); catAjjxx.setQswdMiao(getNodeText(gzqfwNode, "SZZB/QSWD/MIAO")); catAjjxx.setZzwdFx(getNodeText(gzqfwNode, "SZZB/ZZWD/FX")); catAjjxx.setZzwdDu(getNodeText(gzqfwNode, "SZZB/ZZWD/DU")); catAjjxx.setZzwdFen(getNodeText(gzqfwNode, "SZZB/ZZWD/FEN")); catAjjxx.setZzwdMiao(getNodeText(gzqfwNode, "SZZB/ZZWD/MIAO")); catAjjxx.setGdzb(getNodeText(gzqfwNode, "GDZB")); } else { String qsjdFx = getNodeText(gzqfwNode, "SZZB/QSJD/FX"); String qsjdDu = getNodeText(gzqfwNode, "SZZB/QSJD/DU"); String qsjdFen = getNodeText(gzqfwNode, "SZZB/QSJD/FEN"); String qsjdMiao = getNodeText(gzqfwNode, "SZZB/QSJD/MIAO"); String zzjdFx = getNodeText(gzqfwNode, "SZZB/ZZJD/FX"); String zzjdDu = getNodeText(gzqfwNode, "SZZB/ZZJD/DU"); String zzjdFen = getNodeText(gzqfwNode, "SZZB/ZZJD/FEN"); String zzjdMiao = getNodeText(gzqfwNode, "SZZB/ZZJD/MIAO"); String qswdFx = getNodeText(gzqfwNode, "SZZB/QSWD/FX"); String qswdDu = getNodeText(gzqfwNode, "SZZB/QSWD/DU"); String qswdFen = getNodeText(gzqfwNode, "SZZB/QSWD/FEN"); String qswdMiao = getNodeText(gzqfwNode, "SZZB/QSWD/MIAO"); String zzwdFx = getNodeText(gzqfwNode, "SZZB/ZZWD/FX"); String zzwdDu = getNodeText(gzqfwNode, "SZZB/ZZWD/DU"); String zzwdFen = getNodeText(gzqfwNode, "SZZB/ZZWD/FEN"); String zzwdMiao = getNodeText(gzqfwNode, "SZZB/ZZWD/MIAO"); String gdzb = getNodeText(gzqfwNode, "GDZB"); // CatDlwzxx catDlwzxx = new CatDlwzxx(); // catDlwzxx.setAjId(ajjxxId); // catDlwzxx.setQsjdFx(qsjdFx); // catDlwzxx.setQsjdDu(qsjdDu); // catDlwzxx.setQsjdFen(qsjdFen); // catDlwzxx.setQsjdMiao(qsjdMiao); // catDlwzxx.setZzjdFx(zzjdFx); // catDlwzxx.setZzjdDu(zzjdDu); // catDlwzxx.setZzjdFen(zzjdFen); // catDlwzxx.setZzjdMiao(zzjdMiao); // catDlwzxx.setQswdFx(qswdFx); // catDlwzxx.setQswdDu(qswdDu); // catDlwzxx.setQswdFen(qswdFen); // catDlwzxx.setQswdMiao(qswdMiao); // catDlwzxx.setZzwdFx(zzwdFx); // catDlwzxx.setZzwdDu(zzwdDu); // catDlwzxx.setZzwdFen(zzwdFen); // catDlwzxx.setZzwdMiao(zzwdMiao); // catDlwzxx.setGdzb(gdzb); // catDlwzxxService.saveOrUpdate(catDlwzxx); ObjectNode address = mapper.createObjectNode(); address.put("qsjd", qsjdFx); address.put("qsjd_d", qsjdDu); address.put("qsjd_f", qsjdFen); address.put("qsjd_m", qsjdMiao); address.put("zzjd", zzjdFx); address.put("zzjd_d", zzjdDu); address.put("zzjd_f", zzjdFen); address.put("zzjd_m", zzjdMiao); address.put("qswd", qswdFx); address.put("qswd_d", qswdDu); address.put("qswd_f", qswdFen); address.put("qswd_m", qswdMiao); address.put("zzwd", zzwdFx); address.put("zzwd_d", zzwdDu); address.put("zzwd_f", zzwdFen); address.put("zzwd_m", zzwdMiao); address.put("gdzb", gdzb); addresses.add(address); } } if (addresses.size() > 0) { root.put("coordinate", addresses); String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(root); catAjjxx.setDlwzs(jsonString); } } else { catAjjxx.setQsjdFx(getNodeText(ajjxxNode, "GZQFW/SZZB/QSJD/FX")); catAjjxx.setQsjdDu(getNodeText(ajjxxNode, "GZQFW/SZZB/QSJD/DU")); catAjjxx.setQsjdFen(getNodeText(ajjxxNode, "GZQFW/SZZB/QSJD/FEN")); catAjjxx.setQsjdMiao(getNodeText(ajjxxNode, "GZQFW/SZZB/QSJD/MIAO")); catAjjxx.setZzjdFx(getNodeText(ajjxxNode, "GZQFW/SZZB/ZZJD/FX")); catAjjxx.setZzjdDu(getNodeText(ajjxxNode, "GZQFW/SZZB/ZZJD/DU")); catAjjxx.setZzjdFen(getNodeText(ajjxxNode, "GZQFW/SZZB/ZZJD/FEN")); catAjjxx.setZzjdMiao(getNodeText(ajjxxNode, "GZQFW/SZZB/ZZJD/MIAO")); catAjjxx.setQsjdFx(getNodeText(ajjxxNode, "GZQFW/SZZB/QSWD/FX")); catAjjxx.setQsjdDu(getNodeText(ajjxxNode, "GZQFW/SZZB/QSWD/DU")); catAjjxx.setQsjdFen(getNodeText(ajjxxNode, "GZQFW/SZZB/QSWD/FEN")); catAjjxx.setQsjdMiao(getNodeText(ajjxxNode, "GZQFW/SZZB/QSWD/MIAO")); catAjjxx.setZzwdFx(getNodeText(ajjxxNode, "GZQFW/SZZB/ZZWD/FX")); catAjjxx.setZzwdDu(getNodeText(ajjxxNode, "GZQFW/SZZB/ZZWD/DU")); catAjjxx.setZzwdFen(getNodeText(ajjxxNode, "GZQFW/SZZB/ZZWD/FEN")); catAjjxx.setZzwdMiao(getNodeText(ajjxxNode, "GZQFW/SZZB/ZZWD/MIAO")); } String yz = "["; List yzNodeList = getNodeList(ajjxxNode, "YZ/Item"); for (Node yzNode : yzNodeList) { String nodeText = yzNode.getText(); if (nodeText != null && !"".equals(nodeText)) { yz += nodeText + ","; } } if (!"".equals(yz)) { yz = yz.substring(0, yz.length() - 1) + "]"; catAjjxx.setYz(yz); } //矿产 List kcNodeList = getNodeList(ajjxxNode, "KC/Item"); String kcmcs = ""; for (Node kcNode : kcNodeList) { CatKc catKc = new CatKc(); catKc.setAjId(ajjxxId); String kcdm = getNodeText(kcNode, "KCDM"); catKc.setKcdm(kcdm); String kcmc = getNodeText(kcNode, "KCMC"); catKc.setKcmc(kcmc); if (!"".equals(kcdm) && !"".equals(kcmc)) { kcmcs += kcdm + "-" + kcmc + ","; } catKcService.saveOrUpdate(catKc); } if (!"".equals(kcmcs)) { catAjjxx.setKcmc(kcmcs.substring(0, kcmcs.length() - 1)); } catAjjxx.setZllb(getNodeText(ajjxxNode, "ZLLB/ZLLBMC")); String yj = getNodeText(ajjxxNode, "ZLLB/ZLLBMC/YJ"); String ej = getNodeText(ajjxxNode, "ZLLB/ZLLBMC/EJ"); String sj = getNodeText(ajjxxNode, "ZLLB/ZLLBMC/SJ"); if (sj != null && !"".equals(sj)) { catAjjxx.setZllb(sj); } else if (ej != null && !"".equals(ej)) { catAjjxx.setZllb(ej); } else if (yj != null && !"".equals(yj)) { catAjjxx.setZllb(yj); } String gzcd = getNodeText(ajjxxNode, "GZCD"); gzcd = gzcd.replaceAll("/", ":").replaceAll("万", "0000"); catAjjxx.setGzcd(gzcd); catAjjxx.setQtgzcd(getNodeText(ajjxxNode, "QTGZCD")); String gzff = ""; List gzffNodeList = getNodeList(ajjxxNode, "GZFF/Item"); for (Node gzffNode : gzffNodeList) { String gzffYJ = getNodeText(gzffNode, "YJ").replaceAll("\\s+", ""); String gzffEJ = getNodeText(gzffNode, "EJ").replaceAll("\\s+", ""); if (gzffEJ != null && !"".equals(gzffEJ)) { gzff += gzffEJ + ","; } if (gzffYJ != null && !"".equals(gzffYJ)) { gzff += gzffYJ + ","; } } if (!"".equals(gzff)) { gzff = gzff.substring(0, gzff.length() - 1); catAjjxx.setGzff(gzff); } String gjz = ""; List gjzNodeList = getNodeList(ajjxxNode, "GJZ/Item"); for (Node gjzNode : gjzNodeList) { String nodeText = gjzNode.getText(); if (nodeText != null && !"".equals(nodeText)) { gjz += nodeText + ","; } } if (!"".equals(gjz)) { gjz = gjz.substring(0, gjz.length() - 1); catAjjxx.setGjz(gjz); } catAjjxx.setNrzy(getNodeText(ajjxxNode, "ZY")); catAjjxx.setYdzwjgsjbb(getNodeText(ajjxxNode, "YDZWJGSJBB")); catAjjxx.setYjhj(getNodeText(ajjxxNode, "YJHJ")); catAjjxx.setRjhj(getNodeText(ajjxxNode, "RJHJ")); catAjjxx.setTjxtkzktysm(getNodeText(ajjxxNode, "TJXTKZKTYSM")); catAjjxx.setQtsm(getNodeText(ajjxxNode, "QTSM")); catAjjxx.setBz(getNodeText(ajjxxNode, "BZ")); catAjjxx.setHjrmc(getNodeText(ajjxxNode, "HJR/HJRMC")); catAjjxx.setHjrdz(getNodeText(ajjxxNode, "HJR/HJRTXDZ")); catAjjxx.setHjryb(getNodeText(ajjxxNode, "HJR/HJRYB")); catAjjxx.setHjrtyshxydm(getNodeText(ajjxxNode, "HJR/HJRTYSHXYDM")); catAjjxx.setHjrlxr(getNodeText(ajjxxNode, "HJR/HJRLXR")); catAjjxx.setHjrlxfs(getNodeText(ajjxxNode, "HJR/HJRDH")); catAjjxx.setHjrdzyx(getNodeText(ajjxxNode, "HJR/HJRDZYX")); String bhq = getNodeText(ajjxxNode, "BHQ"); catAjjxx.setBhq(bhq); if (bhq != null && !"".equals(bhq)) { catAjjxx.setSfbh("是"); } else { catAjjxx.setSfbh("否"); } catAjjxx.setSmqk(getNodeText(ajjxxNode, "SMQK")); String nodeText = getNodeText(ajjxxNode, "MJ"); if ("不涉密".equals(nodeText)) { catAjjxx.setMjdm("0"); } else if ("内部".equals(nodeText)) { catAjjxx.setMjdm("1"); } else if ("秘密".equals(nodeText)) { catAjjxx.setMjdm("2"); } else if ("机密".equals(nodeText)) { catAjjxx.setMjdm("3"); } else if ("绝密".equals(nodeText)) { catAjjxx.setMjdm("4"); } catAjjxx.setMj(nodeText); catAjjxx.setJsrq(stringToDate(getNodeText(ajjxxNode, "JSRQ"))); catAjjxx.setJsdwmc(getNodeText(ajjxxNode, "JSDW/JSDWMC")); catAjjxx.setBgdwmc(getNodeText(ajjxxNode, "BGDW/Item/BGDWMC")); catAjjxx.setHjpzh(getNodeText(ajjxxNode, "HJPZH")); catAjjxx.setFzrq(stringToDate(getNodeText(ajjxxNode, "FZRQ"))); catAjjxx.setFbrq(stringToDate(getNodeText(ajjxxNode, "FBRQ"))); catAjjxx.setBzsdh(getNodeText(ajjxxNode, "BZSDH")); catAjjxx.setZlly(getNodeText(ajjxxNode, "ZLLY")); catAjjxx.setHjzsdw(getNodeText(ajjxxNode, "HJZSDW")); //成果数量信息CGZLSJL catAjjxx.setCgzldzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/CGSLXX/CGZLDZJS"))); catAjjxx.setCgzlsjl(stringToDouble(getNodeText(ajjxxNode, "SLXX/CGSLXX/CGZLSJL"))); catAjjxx.setCgzldzwjzs(stringToInteger(getNodeText(ajjxxNode, "SLXX/CGSLXX/CGZLDZWJZS"))); catAjjxx.setCgzldzwjjzs(stringToInteger(getNodeText(ajjxxNode, "SLXX/CGSLXX/CGZLDZWJJZS"))); catAjjxx.setCgzlzzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/CGSLXX/CGZLZZJS"))); catAjjxx.setZwdzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/CGSLXX/ZWDZJS"))); catAjjxx.setSpdzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/CGSLXX/SPDZJS"))); catAjjxx.setFtdzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/CGSLXX/FTDZJS"))); catAjjxx.setFbdzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/CGSLXX/FBDZJS"))); catAjjxx.setFjdzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/CGSLXX/FJDZJS"))); catAjjxx.setRjdzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/CGSLXX/RJDZJS"))); catAjjxx.setSjkdzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/CGSLXX/SJKDZJS"))); catAjjxx.setDmtdzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/CGSLXX/DMTDZJS"))); catAjjxx.setQtdzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/CGSLXX/QTDZJS"))); catAjjxx.setZwydzjs(getNodeText(ajjxxNode, "SLXX/CGSLXX/ZWYDZJS")); catAjjxx.setSpydzjs(getNodeText(ajjxxNode, "SLXX/CGSLXX/SPYDZJS")); catAjjxx.setFtydzjs(getNodeText(ajjxxNode, "SLXX/CGSLXX/FTYDZJS")); catAjjxx.setFbydzjs(getNodeText(ajjxxNode, "SLXX/CGSLXX/FBYDZJS")); catAjjxx.setFjydzjs(getNodeText(ajjxxNode, "SLXX/CGSLXX/FJYDZJS")); catAjjxx.setRjydzjs(getNodeText(ajjxxNode, "SLXX/CGSLXX/RJYDZJS")); catAjjxx.setSjkydzjs(getNodeText(ajjxxNode, "SLXX/CGSLXX/SJKYDZJS")); catAjjxx.setDmtydzjs(getNodeText(ajjxxNode, "SLXX/CGSLXX/DMTYDZJS")); catAjjxx.setQtydzjs(getNodeText(ajjxxNode, "SLXX/CGSLXX/QTYDZJS")); catAjjxx.setZwcddzjs(getNodeText(ajjxxNode, "SLXX/CGSLXX/ZWCDDZJS")); catAjjxx.setSpcddzjs(getNodeText(ajjxxNode, "SLXX/CGSLXX/SPCDDZJS")); catAjjxx.setFtcddzjs(getNodeText(ajjxxNode, "SLXX/CGSLXX/FTCDDZJS")); catAjjxx.setFbcddzjs(getNodeText(ajjxxNode, "SLXX/CGSLXX/FBCDDZJS")); catAjjxx.setFjcddzjs(getNodeText(ajjxxNode, "SLXX/CGSLXX/FJCDDZJS")); catAjjxx.setRjcddzjs(getNodeText(ajjxxNode, "SLXX/CGSLXX/RJCDDZJS")); catAjjxx.setSjkcddzjs(getNodeText(ajjxxNode, "SLXX/CGSLXX/SJKCDDZJS")); catAjjxx.setDmtcddzjs(getNodeText(ajjxxNode, "SLXX/CGSLXX/DMTCDDZJS")); catAjjxx.setQtcddzjs(getNodeText(ajjxxNode, "SLXX/CGSLXX/QTCDDZJS")); catAjjxx.setZwzzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/CGSLXX/ZWZZJS"))); catAjjxx.setSpzzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/CGSLXX/SPZZJS"))); catAjjxx.setFtzzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/CGSLXX/FTZZJS"))); catAjjxx.setFbzzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/CGSLXX/FBZZJS"))); catAjjxx.setFjzzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/CGSLXX/FJZZJS"))); catAjjxx.setQtzzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/CGSLXX/QTZZJS"))); //原始数量信息 catAjjxx.setYszldzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/YSZLDZJS"))); catAjjxx.setYszlsjl(stringToDouble(getNodeText(ajjxxNode, "SLXX/YSSLXX/YSZLSJL"))); catAjjxx.setYszldzwjzs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/YSZLDZWJZS"))); catAjjxx.setYszldzwjjzs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/YSZLDZWJJZS"))); catAjjxx.setYszlzzjs(getNodeText(ajjxxNode, "SLXX/YSSLXX/YSZLZZJS")); catAjjxx.setDzzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/DZZJS"))); catAjjxx.setCzzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/CZZJS"))); catAjjxx.setGzzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/GZZJS"))); catAjjxx.setTzzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/TZZJS"))); catAjjxx.setYzzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/YZZJS"))); catAjjxx.setSzzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/SZZJS"))); catAjjxx.setLzzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/LZZJS"))); catAjjxx.setXzzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/XZZJS"))); catAjjxx.setZzzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/ZZZJS"))); catAjjxx.setWzzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/WZZJS"))); catAjjxx.setDdzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/DDZJS"))); catAjjxx.setCdzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/CDZJS"))); catAjjxx.setGdzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/GDZJS"))); catAjjxx.setTdzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/TDZJS"))); catAjjxx.setYdzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/YDZJS"))); catAjjxx.setSdzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/SDZJS"))); catAjjxx.setLdzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/LDZJS"))); catAjjxx.setXdzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/XDZJS"))); catAjjxx.setZdzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/ZDZJS"))); catAjjxx.setWdzjs(stringToInteger(getNodeText(ajjxxNode, "SLXX/YSSLXX/WDZJS"))); //实物汇总数量信息 catAjjxx.setDdgzwz(getNodeText(ajjxxNode, "SWHZXX/DDGZWZ")); catAjjxx.setCkd(getNodeText(ajjxxNode, "SWHZXX/CKD")); catAjjxx.setZykz(getNodeText(ajjxxNode, "SWHZXX/ZYKZ")); catAjjxx.setCylx(getNodeText(ajjxxNode, "SWHZXX/CYLX")); catAjjxx.setCksd(getNodeText(ajjxxNode, "SWHZXX/CKSD")); catAjjxx.setZycgjs(getNodeText(ajjxxNode, "SWHZXX/ZYCGJS")); catAjjxx.setSwbz(getNodeText(ajjxxNode, "SWHZXX/BZ")); catAjjxx.setZksl(stringToInteger(getNodeText(ajjxxNode, "SWHZXX/ZKSL"))); catAjjxx.setZjc(stringToDouble(getNodeText(ajjxxNode, "SWHZXX/ZJC"))); catAjjxx.setYxzsl(stringToDouble(getNodeText(ajjxxNode, "SWHZXX/YXZSL"))); catAjjxx.setYxizsl(stringToInteger(getNodeText(ajjxxNode, "SWHZXX/YXIZSL"))); catAjjxx.setBbzsl(stringToInteger(getNodeText(ajjxxNode, "SWHZXX/BBZSL"))); catAjjxx.setYpzsl(stringToInteger(getNodeText(ajjxxNode, "SWHZXX/YPZSL"))); catAjjxx.setGpzsl(stringToInteger(getNodeText(ajjxxNode, "SWHZXX/GPZSL"))); catAjjxx.setBpzsl(stringToInteger(getNodeText(ajjxxNode, "SWHZXX/BPZSL"))); catAjjxx.setQtswmc(getNodeText(ajjxxNode, "SWHZXX/QTZSL/QTSWMC")); catAjjxx.setQtswsl(getNodeText(ajjxxNode, "SWHZXX/QTZSL/QTSWSL")); // ArchivesCustomConfig archivesCustomConfig = customConfigUtil.getConfigObj(ArchivesCustomConfig.class); // String checkRule = archivesCustomConfig.getCheckRule(); // // if (StringUtils.isNotEmpty(checkRule)) { // String sql = "select count(*) from CAT_FILE_AJJXX where "; // String[] checkRules = checkRule.split("\\|"); // for (String rule : checkRules) { // String camelCaseFieldName = CommonUtil.underscoreToCamelCase(rule); // Object fieldValue = CommonUtil.getFieldValue(catAjjxx, camelCaseFieldName); // sql += rule + " = '" + fieldValue + "' and "; // } // sql = sql.substring(0, sql.length() - 4); // Integer integer = jdbcTemplate.queryForObject(sql, Integer.class); // if (integer > 0) { // throw new RuntimeException("数据重复"); // } // } catAjjxxService.saveOrUpdate(catAjjxx); Node wjjxxNode = getNode(document, "WJJXX"); List cgwjjxxNodeList = getNodeList(wjjxxNode, "CGWJJXX/CGWJXX"); //成果文件级信息 for (Node cgwjjxxNode : cgwjjxxNodeList) { String cgwjmc = getNodeText(cgwjjxxNode, "WJLB"); //成果文件册 List nodeList = getNodeList(cgwjjxxNode, "CGWJC"); for (Node cgwjcNode : nodeList) { Integer cxh = stringToInteger(getNodeText(cgwjcNode, "CXH")); List cgwjNodeList = getNodeList(cgwjcNode, "CGWJ"); for (Node cgwjNode : cgwjNodeList) { Long catCgwjxxId = IdGenerater.getId(); CatCgwjxx catCgwjxx = new CatCgwjxx(); String fileType = getFileType(cgwjmc); catCgwjxx.setWjlx(fileType); catCgwjxx.setAjId(catAjjxx.getId()); catCgwjxx.setId(catCgwjxxId); catCgwjxx.setCh(cxh); String wjm = getNodeText(cgwjNode, "WJM"); catCgwjxx.setWjm(wjm); if (wjm.length() >= 5) { catCgwjxx.setJh(stringToInteger(wjm.substring(4))); } catCgwjxx.setWjtm(getNodeText(cgwjNode, "WJTM")); catCgwjxx.setJm(getNodeText(cgwjNode, "JM")); String ydzwjm = getNodeText(cgwjNode, "YDZWJM"); catCgwjxx.setYdzwjm(ydzwjm); catCgwjxx.setYdzwjlb(getNodeText(cgwjNode, "YDZWJLB")); catCgwjxx.setYdzwjlj(getNodeText(cgwjNode, "YDZWJLJ")); catCgwjxx.setYdzwjdx(stringToDouble(getNodeText(cgwjNode, "YDZWJDX"))); catCgwjxx.setYdzfjwjmc(getNodeText(cgwjNode, "YDZFJWJMC")); catCgwjxx.setYdzfjwjlb(getNodeText(cgwjNode, "YDZFJWJLB")); String ydzfjwjlj = getNodeText(cgwjNode, "YDZFJWJLJ"); catCgwjxx.setYdzfjwjlj(ydzfjwjlj); catCgwjxx.setYdzfjwjdx(getNodeText(cgwjNode, "YDZFJWJDX")); catCgwjxx.setYdzwjs(getNodeText(cgwjNode, "YDZWJS")); catCgwjxx.setYdzwjjs(getNodeText(cgwjNode, "YDZWJJS")); //读取源电子文件格式 catCgwjxx.setYdzwjgs(getNodeText(cgwjNode, "WJGSXX/YDZWJGSXX/WJGS")); catCgwjxx.setYdzwjgssm(getNodeText(cgwjNode, "WJGSXX/YDZWJGSXX/WJGSSM")); catCgwjxx.setCddzwjm(getNodeText(cgwjNode, "CDDZWJM")); catCgwjxx.setCddzwjlb(getNodeText(cgwjNode, "CDDZWJLB")); catCgwjxx.setCddzwjlj(getNodeText(cgwjNode, "CDDZWJLJ")); catCgwjxx.setCddzwjdx(stringToDouble(getNodeText(cgwjNode, "CDDZWJDX"))); catCgwjxx.setCddzwjs(getNodeText(cgwjNode, "CDDZWJS")); catCgwjxx.setCddzwjjs(getNodeText(cgwjNode, "CDDZWJJS")); //读取存档电子文件格式 catCgwjxx.setCddzwjgs(getNodeText(cgwjNode, "WJGSXX/CDDZWJGSXX/WJGS")); catCgwjxx.setCddzwjgssm(getNodeText(cgwjNode, "WJGSXX/CDDZWJGSXX/WJGSSM")); catCgwjxx.setZtxs(getNodeText(cgwjNode, "ZTXS")); catCgwjxx.setXcr(getNodeText(cgwjNode, "XCR/Item")); catCgwjxx.setXcdwmc(getNodeText(cgwjNode, "XCDWMC/Item")); // catCgwjxx.setXcsj(stringToDate(getNodeText(cgwjNode, "XCSJ"))); catCgwjxx.setXcsj(getNodeText(cgwjNode, "XCSJ")); catCgwjxx.setTh(getNodeText(cgwjNode, "TH")); catCgwjxx.setFthxblc(getNodeText(cgwjNode, "BLC/FTHXBLC")); catCgwjxx.setFtzxblc(getNodeText(cgwjNode, "BLC/FTZXBLC")); catCgwjxx.setFtgg(getNodeText(cgwjNode, "FTGG")); catCgwjxx.setQzy(getNodeText(cgwjNode, "QZY")); catCgwjxx.setBz(getNodeText(cgwjNode, "BZ")); //涉密信息 List smxxNodeList = getNodeList(cgwjNode, "SMXX/Item"); ObjectMapper mapper = new ObjectMapper(); ObjectNode root = mapper.createObjectNode(); ArrayNode addresses = mapper.createArrayNode(); if (smxxNodeList.size() > 0) { catCgwjxx.setSfsm("是"); } else { catCgwjxx.setSfsm("否"); } for (int i = 0; i < smxxNodeList.size(); i++) { Node smxxNode = smxxNodeList.get(i); if (i == 0) { catCgwjxx.setSmym(getNodeText(smxxNode, "SMNR")); catCgwjxx.setSmzl(getNodeText(smxxNode, "SMZL")); catCgwjxx.setSmsx(getNodeText(smxxNode, "SMSX")); catCgwjxx.setWjmj(getNodeText(smxxNode, "WJMJ")); Integer securityCode = getSecurityCode(getNodeText(smxxNode, "WJMJ")); catCgwjxx.setSecurityCode(securityCode); catCgwjxx.setBmqx(getNodeText(smxxNode, "BMQX")); catCgwjxx.setZxfw(getNodeText(smxxNode, "ZXFW")); } else { String smnr = getNodeText(smxxNode, "SMNR"); String smzl = getNodeText(smxxNode, "SMZL"); String smsx = getNodeText(smxxNode, "SMSX"); String wjmj = getNodeText(smxxNode, "WJMJ"); String bmqx = getNodeText(smxxNode, "BMQX"); String zxfw = getNodeText(smxxNode, "ZXFW"); CatSmxx catSmxx = new CatSmxx(); catSmxx.setAjId(ajjxxId); catSmxx.setWjId(catCgwjxxId); catSmxx.setSmnr(smnr); catSmxx.setSmzl(smzl); catSmxx.setSmsx(smsx); catSmxx.setWjmj(wjmj); catSmxx.setBmqx(bmqx); // catSmxx.setZxfw(zxfw); catSmxxService.saveOrUpdate(catSmxx); //{"classified":[{"mj":"内部","smym":"11","smsx":"22","bmqx":"33","zxfw":"34","smzl":""}]} ObjectNode address = mapper.createObjectNode(); address.put("mj", wjmj); address.put("smym", smnr); address.put("smsx", smsx); address.put("bmqx", bmqx); address.put("zxfw", zxfw); address.put("smzl", smzl); addresses.add(address); } } root.put("classified", addresses); String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(root); catCgwjxx.setSmxx(jsonString); catCgwjxxService.saveOrUpdate(catCgwjxx); } } } // 原始文件级信息 // List yswjxxNodeList = getNodeList(wjjxxNode, "YSWJJXX/YSWJXX"); // for (Node yswjxxNode : yswjxxNodeList) { // String cgwjmc = getNodeText(yswjxxNode, "WJLB"); // //原始文件 // List yswjNodeList = getNodeList(yswjxxNode, "YSWJ"); // for (int i = 0; i < yswjNodeList.size(); i++) { // Node yswjNode = yswjNodeList.get(i); // Long catYswjxxId = IdGenerater.getId(); // CatYswjxx catYswjxx = new CatYswjxx(); // catYswjxx.setWjlx(cgwjmc); // catYswjxx.setAjId(ajjxxId); // catYswjxx.setId(catYswjxxId); // catYswjxx.setWjm(getNodeText(yswjNode, "WJM")); // // catYswjxx.setXh(Integer.toString(i + 1)); // catYswjxx.setWjtm(getNodeText(yswjNode, "WJTM")); // catYswjxx.setWjdx(getNodeText(yswjNode, "WJDX")); // catYswjxx.setWjlb(getNodeText(yswjNode, "WJLB")); // catYswjxx.setWjlj(getNodeText(yswjNode, "WJLJ")); // // //读取文件格式 // catYswjxx.setWjgs(getNodeText(yswjNode, "WJGSXX/WJGS")); // catYswjxx.setWjgssm(getNodeText(yswjNode, "WJGSXX/WJGSSM")); // // catYswjxx.setZtxs(getNodeText(yswjNode, "ZTXS")); //// catYswjxx.setGdztxs(getNodeText(yswjNode, "GDZTXS")); // catYswjxx.setXcr(getNodeText(yswjNode, "XCR/Item")); // catYswjxx.setXcdwmc(getNodeText(yswjNode, "XCDWMC/Item")); // catYswjxx.setXcsj(getNodeText(yswjNode, "XCSJ")); // catYswjxx.setSfhj(getNodeText(yswjNode, "SFHJ")); // catYswjxx.setQzy(getNodeText(yswjNode, "QZY")); // catYswjxx.setFthxblc(getNodeText(yswjNode, "FTHXBLC")); // catYswjxx.setFtzxblc(getNodeText(yswjNode, "FTZXBLC")); // catYswjxx.setBz(getNodeText(yswjNode, "BZ")); // // // catYswjxx.setFthxblc(getNodeText(yswjNode, "BLC/FTHXBLC")); // catYswjxx.setFtzxblc(getNodeText(yswjNode, "BLC/FTZXBLC")); // // //涉密信息 // List smxxNodeList = getNodeList(yswjNode, "SMXX/Item"); // ObjectMapper mapper = new ObjectMapper(); // ObjectNode root = mapper.createObjectNode(); // ArrayNode addresses = mapper.createArrayNode(); // if (smxxNodeList.size() > 0) { // catYswjxx.setSfsm("是"); // } else { // catYswjxx.setSfsm("否"); // } // for (int j = 0; j < smxxNodeList.size(); j++) { // Node smxxNode = smxxNodeList.get(j); // if (j == 0) { // catYswjxx.setSmym(getNodeText(smxxNode, "SMNR")); // catYswjxx.setSmzl(getNodeText(smxxNode, "SMZL")); // catYswjxx.setSmsx(getNodeText(smxxNode, "SMSX")); // catYswjxx.setWjmj(getNodeText(smxxNode, "WJMJ")); // Integer securityCode = getSecurityCode(getNodeText(smxxNode, "WJMJ")); // catYswjxx.setSecurityCode(securityCode); // catYswjxx.setBmqx(getNodeText(smxxNode, "BMQX")); // catYswjxx.setZxfw(getNodeText(smxxNode, "ZXFW")); // } else { // // String smnr = getNodeText(smxxNode, "SMNR"); // String smzl = getNodeText(smxxNode, "SMZL"); // String smsx = getNodeText(smxxNode, "SMSX"); // String wjmj = getNodeText(smxxNode, "WJMJ"); // String bmqx = getNodeText(smxxNode, "BMQX"); // String zxfw = getNodeText(smxxNode, "ZXFW"); // // CatSmxx catSmxx = new CatSmxx(); // catSmxx.setAjId(ajjxxId); // catSmxx.setWjId(catYswjxxId); // catSmxx.setSmnr(smnr); // catSmxx.setSmzl(smzl); // catSmxx.setSmsx(smsx); // catSmxx.setWjmj(wjmj); // catSmxx.setBmqx(bmqx); //// catSmxx.setZxfw(zxfw); // catSmxxService.saveOrUpdate(catSmxx); // // //{"classified":[{"mj":"内部","smym":"11","smsx":"22","bmqx":"33","zxfw":"34","smzl":""}]} // ObjectNode address = mapper.createObjectNode(); // address.put("mj", wjmj); // address.put("smym", smnr); // address.put("smsx", smsx); // address.put("bmqx", bmqx); // address.put("zxfw", zxfw); // address.put("smzl", smzl); // addresses.add(address); // } // } // root.put("classified", addresses); // String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(root); // catYswjxx.setSmxx(jsonString); // catYswjxxService.saveOrUpdate(catYswjxx); // } // } // //实物钻孔信息 // Node swqdxxNode = getNode(document, "SWQDXX"); // List zkxxNodeList = getNodeList(swqdxxNode, "ZKXX/Item"); // for (int i = 0; i < zkxxNodeList.size(); i++) { // Node zkxxNode = zkxxNodeList.get(i); // CatZkxx catZkxx = new CatZkxx(); // catZkxx.setAjId(ajjxxId); // catZkxx.setXh(getNodeText(zkxxNode, "XH")); // catZkxx.setZkmc(getNodeText(zkxxNode, "ZKMC")); // catZkxx.setZkjd(getNodeText(zkxxNode, "ZKJD")); // catZkxx.setZkwd(getNodeText(zkxxNode, "ZKWD")); // catZkxx.setZjc(getNodeText(zkxxNode, "ZJC")); // catZkxx.setQxsl(getNodeText(zkxxNode, "QXSL")); // catZkxx.setYxsl(getNodeText(zkxxNode, "YXSL")); // catZkxx.setJksdfw(getNodeText(zkxxNode, "JKSDFW")); // catZkxx.setSwzllb(getNodeText(zkxxNode, "SWZLLB")); // catZkxx.setTyhjjgm(getNodeText(zkxxNode, "TYHJJGM")); // catZkxx.setBz(getNodeText(zkxxNode, "BZ")); // catZkxxService.saveOrUpdate(catZkxx); // } // //实物图幅信息 // List tfxxNodeList = getNodeList(swqdxxNode, "TFXX/Item"); // for (int i = 0; i < tfxxNodeList.size(); i++) { // Node tfxxNode = tfxxNodeList.get(i); // CatTfxx catTfxx = new CatTfxx(); // catTfxx.setAjId(ajjxxId); // catTfxx.setXh(getNodeText(tfxxNode, "XH")); // catTfxx.setTfmc(getNodeText(tfxxNode, "TFMC")); // catTfxx.setScpmmc(getNodeText(tfxxNode, "SCPMMC")); // catTfxx.setZyfx(getNodeText(tfxxNode, "ZYFX")); // catTfxx.setBbsl(getNodeText(tfxxNode, "BBSL")); // catTfxx.setYpsl(getNodeText(tfxxNode, "YPSL")); // catTfxx.setGpsl(getNodeText(tfxxNode, "GPSL")); // catTfxx.setBpsl(getNodeText(tfxxNode, "BPSL")); // catTfxx.setSwzllb(getNodeText(tfxxNode, "SWZLLB")); // catTfxx.setBz(getNodeText(tfxxNode, "BZ")); // catTfxxService.saveOrUpdate(catTfxx); // } } }