package com.zskk.task; import java.text.SimpleDateFormat; import java.util.Date; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Record; import com.jfinal.plugin.cron4j.ITask; import com.zskk.service.DataService; import com.zskk.service.ServiceFactory; import com.zskk.tools.ExecUtil; public class CMoveTask implements ITask { @Override public void run() { // TODO Auto-generated method stub //0wait1match2break int flag = 0; DataService dService = ServiceFactory.getService(DataService.class); JSONArray jsonArray = dService.getExamList(50); Record studyidfind = null; while (flag != 2) { studyidfind = Db.use("local").findFirst("select * from study where status =1 or status =2 order by createAt desc"); if (studyidfind == null) { return; } // for (Object object : jsonArray) { // JSONObject jsonObject = JSON.parseObject(object.toString()); // if (jsonObject.getString("studyuid").equals(studyidfind.getStr("STUDYUID"))) { // flag = 1; // } // } if (studyidfind.getStr("device")==null) { Record dRecord = Db.use("connected").findFirst("select * from reportinfo where STUDYUID = ?", studyidfind.getStr("STUDYUID")); String deviceString = ""; if (dRecord != null && dRecord.getStr("DEVICE") != null) { deviceString = dRecord.getStr("DEVICE"); } studyidfind.set("device", deviceString); studyidfind.set("updateAt", parseStringToDateTime()); Db.use("local").update("study", studyidfind); } if (!studyidfind.getStr("device").equals("联影 40排CT") && !studyidfind.getStr("device").equals("Achieva 3.0T")) { studyidfind.set("status", 5); studyidfind.set("updateAt", parseStringToDateTime()); Db.use("local").update("study", studyidfind); }else if(studyidfind.getStr("device").equals("联影 40排CT") || studyidfind.getStr("device").equals("Achieva 3.0T")){ studyidfind.set("status", 4); studyidfind.set("updateAt", parseStringToDateTime()); Db.use("local").update("study", studyidfind); String execCmd = ExecUtil.execCmd("/zskk_system/other/cmove.sh " + studyidfind.getStr("studyuid")); if (execCmd.contains("Connection refused") || execCmd.contains("Socket closed")) { studyidfind.set("status", 2); studyidfind.set("updateAt", parseStringToDateTime()); Db.use("local").update("study", studyidfind); return; } studyidfind.set("status", 3); studyidfind.set("updateAt", parseStringToDateTime()); Db.use("local").update("study", studyidfind); flag = 2; } } } @Override public void stop() { // TODO Auto-generated method stub } /** * 日期字符串格式转换年月日时分秒 * * @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; } }