package com.zskk.task; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.text.SimpleDateFormat; import java.util.Date; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.NodeList; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Record; import com.jfinal.plugin.cron4j.ITask; import com.zskk.tools.XmlHelper; public class UpdateTask implements ITask { @Override public void run() { // TODO Auto-generated method stub String dateString = parseStringToDate(); String fileString = dateString.replace("0", "o"); File fin_floder = new File("/home/zskk/CFIND_XML/STUDYUID_" + fileString + "1.xml"); // 创建从文件读取数据的FileInputStream流 FileInputStream fin; try { fin = new FileInputStream(fin_floder); InputStreamReader isr = null; isr = new InputStreamReader(fin); BufferedReader raf = null; raf = new BufferedReader(isr); String xmlContent = null; xmlContent = raf.readLine(); xmlContent = xmlContent.replace("", ""); xmlContent = "" + xmlContent + ""; xmlContent = xmlContent.replace("�", ""); XmlHelper xmlHelper = XmlHelper.of(xmlContent); // NativeDicomModel节点列表 NodeList nativeDicomModelList = xmlHelper.getNodeList("/zskk/NativeDicomModel"); for (int i = 0; i < nativeDicomModelList.getLength(); i++) { String qString = ""; String studyuidString = ""; String modalitiesString = ""; // DicomAttribute节点列表 NodeList dicomAttributeList = xmlHelper.getNodeList(nativeDicomModelList.item(i), "DicomAttribute"); for (int j = 0; j < dicomAttributeList.getLength(); j++) { // DicomAttribute节点属性列表 NamedNodeMap attributeMap = dicomAttributeList.item(j).getAttributes(); if (attributeMap != null && attributeMap.getLength() > 0) { for (int k = 0; k < attributeMap.getLength(); k++) { if (attributeMap.item(k).getNodeName().equals("tag")) { // 获取studyuid if (attributeMap.item(k).getNodeValue().equals("0020000D")) { studyuidString = xmlHelper.getString(dicomAttributeList.item(j), "Value"); continue; } // 获取检查类型 if (attributeMap.item(k).getNodeValue().equals("00080061")) { modalitiesString = xmlHelper.getString(dicomAttributeList.item(j), "Value"); } } } } } Record studyidfind = Db.use("local").findFirst("select * from study where studyuid = ?", studyuidString); if (studyidfind == null) { Record studyinfo = new Record().set("studyuid", studyuidString).set("modalities", modalitiesString) .set("status", 1).set("createAt", parseStringToDateTime()).set("updateAt", parseStringToDateTime()); Db.use("local").save("study", studyinfo); } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void stop() { // TODO Auto-generated method stub } /** * 日期字符串格式转换年月日 * * @param dateStr * @return */ private String parseStringToDate() { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); Date date = new Date(); long dInteger = date.getTime(); String daString = sdf.format(new Date(dInteger)); return daString; } /** * 日期字符串格式转换年月日时分秒 * * @param dateStr * @return */ private String parseStringToDateTime() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); String daString = sdf.format(date); return daString; } }