diff --git a/src/main/java/META-INF/MANIFEST.MF b/src/main/java/META-INF/MANIFEST.MF new file mode 100644 index 0000000..1d285bc --- /dev/null +++ b/src/main/java/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: com.bonus.autoweb.TestMain + diff --git a/src/main/java/com/bonus/autoweb/DateTimeUtils.java b/src/main/java/com/bonus/autoweb/DateTimeUtils.java new file mode 100644 index 0000000..d8b446a --- /dev/null +++ b/src/main/java/com/bonus/autoweb/DateTimeUtils.java @@ -0,0 +1,261 @@ +package com.bonus.autoweb; + +import com.bonus.autoweb.base.DataConfig; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.util.*; + +/** + * 日期操作工具类 + */ +public class DateTimeUtils { + /** + * 判断上个月的第一天是否是周日 + * @return + */ + public static boolean isFirstDayOfLastMonthSunday() { + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.MONTH, -1); // Move to the previous month + calendar.set(Calendar.DAY_OF_MONTH, 1); // Set to the first day of the month + + int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); + return dayOfWeek == Calendar.SUNDAY; + } + + + /** + * 获取当前时间是本周第几天,从周一开始计算 + * @return + */ + public static int getWeekOfDate(String dateString ) throws ParseException { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date dt= sdf.parse(dateString); + int[] weekDays = {7, 1, 2, 3, 4,5, 6}; + Calendar cal = Calendar.getInstance(); + cal.setTime(dt); + int w = cal.get(Calendar.DAY_OF_WEEK) - 1; + if (w < 0){ + w = 0; + } + return weekDays[w]; + } + + /**' + *获取当前时间是本月第几周 + * @return + */ + public static int getWeekNum(String dateString ) throws ParseException { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date date= sdf.parse(dateString); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + int weekOfMonth = calendar.get(Calendar.WEEK_OF_MONTH); + if (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) { + weekOfMonth -= 1; + } + return weekOfMonth; + } + + /** + * 获取本月第一天在第几周 + * @return true 0 false >0 + * @throws ParseException + */ + public static boolean getMonthOneDayIs0() throws ParseException { + LocalDate firstDayOfMonth = LocalDate.now().withDayOfMonth(1); + int t=getWeekNum(firstDayOfMonth.toString()); +// int t=getWeekNum(day); + if(t>0){ + return false; + } + return true; + } + + /** + * 获取上个月的最后一天 + */ + public static String getBeforeLastMonthdate(){ + SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar=Calendar.getInstance(); + int month=calendar.get(Calendar.MONTH); + calendar.set(Calendar.MONTH, month-1); + calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); + String format = sf.format(calendar.getTime()); + return format; + } + + /** + * 获取当前日期 + * @return + */ + public static String getCurrentDay(){ + Date date=new Date(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + return formatter.format(date); + } + + /** + * 获取昨天的日期 + * @return + */ + public static String getLastDayYYYYMMDD(){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Calendar c = Calendar.getInstance(); + c.add(Calendar.DATE, -1);//-1.昨天时间 0.当前时间 1.明天时间 *以此类推 + String time = sdf.format(c.getTime()); + System.out.println("昨天的时间时间是:" + time);//20190704 + return time; + } + private static List getARandomCollectionOfData() { + Random random = new Random(); + int minCount = 3; // 最小数量 + int maxCount = 5; // 最大数量 + int count = random.nextInt(maxCount - minCount + 1) + minCount; // 随机生成数量 + List numbers = new ArrayList<>(); + while (numbers.size() < count) { + int randomNumber = random.nextInt(6) + 2; // 随机生成1到7的数字 + if (!numbers.contains(randomNumber)) { + numbers.add(randomNumber); + } + } + Collections.shuffle(numbers); + System.out.println(numbers); + return numbers; + } + + public static void main(String[] args) throws ParseException { + System.out.println(DataConfig.weatherUrl); + } + public static String getCurrentDay2(){ + Date date=new Date(); + SimpleDateFormat formatter = new SimpleDateFormat("MM月dd日"); + return formatter.format(date); + } + + /** + * 获取昨天的日期 + * @return + */ + public static String getLastDay(){ + SimpleDateFormat sdf = new SimpleDateFormat("MM月dd日"); + Calendar c = Calendar.getInstance(); + c.add(Calendar.DATE, -1);//-1.昨天时间 0.当前时间 1.明天时间 *以此类推 + String time = sdf.format(c.getTime()); + System.out.println("昨天的时间时间是:" + time);//20190704 + return time; + } + /** + * 获取明天的日期 + * @return + */ + public static String getTomorrowDate() { + SimpleDateFormat sdf = new SimpleDateFormat("MM月dd日"); + Calendar c = Calendar.getInstance(); + c.add(Calendar.DATE, 1);//-1.昨天时间 0.当前时间 1.明天时间 *以此类推 + String time = sdf.format(c.getTime()); + System.out.println("昨天的时间时间是:" + time);//20190704 + return time; + } + /** + * 获取当前月日 + * @return + */ + public static String getCurrentDayByMonth(){ + Date date=new Date(); + SimpleDateFormat formatter = new SimpleDateFormat("MM月dd日"); + return formatter.format(date); + } + public static String getMMDDByNow(){ + Date date=new Date(); + SimpleDateFormat formatter = new SimpleDateFormat("MMdd"); + return formatter.format(date); + } + + /** + * 判断当前日期是否为本月第一天 + * @return + */ + public static boolean isOneDay(){ + // TODO Auto-generated method stub + Date now = new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");//可以方便地修改日期格式 + String curr = dateFormat.format( now ); + System.out.println("当前日期:" + curr); + + Calendar c = Calendar.getInstance();//可以对每个时间域单独修改 + + int year = c.get(Calendar.YEAR); + int month = c.get(Calendar.MONTH); + int date = c.get(Calendar.DATE); + if(date == 1){ + System.out.println(curr + "是第一天"); + return true; + } + else{ + System.out.println(curr + "不是第一天"); + return false; + } + } + + /** + * 判断当前时间是否在[startTime, endTime]区间,注意三个参数的时间格式要一致 + * @param startTime + * @param endTime + * @return 在时间段内返回true,不在返回false + */ + public static boolean isEffectiveDate(String startTime, String endTime){ + /** + * 判断当前时间是否在一个时间段内 HH:mm 格式 + */ + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); + String now = sdf.format(new Date()); + Date nowTime; + try{ + nowTime = sdf.parse(now); + Date startTime1 = sdf.parse(startTime); + Date endTime1 = sdf.parse(endTime); + if (nowTime.getTime() == startTime1.getTime() + || nowTime.getTime() == endTime1.getTime()) { + return true; + } + + Calendar date = Calendar.getInstance(); + date.setTime(nowTime); + + Calendar begin = Calendar.getInstance(); + begin.setTime(startTime1); + + Calendar end = Calendar.getInstance(); + end.setTime(endTime1); + + return date.after(begin) && date.before(end); + }catch (Exception e){ + e.printStackTrace(); + } + return false; + } + + public static boolean compareDate(String date1, String date2) throws ParseException { + boolean tf = false; + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); + + // 定义起始日期和结束日期 + Date startDate = dateFormat.parse(date1 + " 00:00:00"); + Date endDate = dateFormat.parse(date2 + " 23:59:59"); + + // 定义要判断的日期 + Date dateToCheck = new Date(); + + // 判断日期是否在范围内 + if (startDate.compareTo(dateToCheck) <= 0 && endDate.compareTo(dateToCheck) >= 0) { + System.out.println("日期在范围内"); + tf = true; + } else { + tf = false; + System.out.println("日期不在范围内"); + } + return tf; + } +} diff --git a/src/main/java/com/bonus/autoweb/GetBasicData.java b/src/main/java/com/bonus/autoweb/GetBasicData.java new file mode 100644 index 0000000..da14938 --- /dev/null +++ b/src/main/java/com/bonus/autoweb/GetBasicData.java @@ -0,0 +1,1180 @@ +package com.bonus.autoweb; + +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpUtil; +import com.bonus.autoweb.UI.entity.DailyBean; +import com.bonus.autoweb.UI.entity.LogBean; +import com.bonus.autoweb.UI.entity.WeatherData; +import com.bonus.autoweb.base.DataConfig; +import com.google.gson.Gson; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.*; +import java.net.HttpURLConnection; +import java.net.URL; +import java.nio.charset.Charset; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashSet; +import java.util.Random; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +/** + * 项目名称: autoWebForSuZhou + * 文件名称: getBasicData + * 文件描述: @Description: 定时获取新一代应急系统内的数据 + * 创建人: @author tqzhang + * 创建时间: 2023年07月31日 10:21 + */ +public class GetBasicData { + private Logger log = LoggerFactory.getLogger(GetBasicData.class); + private WebDriver webDriver; + + public GetBasicData(WebDriver webDriver) { + this.webDriver = webDriver; + } + + /** + * 解决乱码问题 + * + * @param path + * @return + */ + public static String resolveGarbledCode(String path) { + StringBuffer sb = new StringBuffer(); + try { + FileInputStream fis = new FileInputStream(path); + InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); + BufferedReader reader = new BufferedReader(isr); + String line; + while ((line = reader.readLine()) != null) { + sb.append(line); + } + + reader.close(); + } catch (Exception e) { + sb = new StringBuffer(); + sb.append("error"); + e.printStackTrace(); + } + return sb.toString(); + } + + public static void getYuJingActionBasicData(int classes) throws ParseException, InterruptedException { + Thread.sleep(5000); +// webDriver.findElement(By.xpath("//*[@id=\"app\"]/section/header/form/div/div[2]/button[1]")).click(); +// Thread.sleep(300); +// String date1 = DateTimeUtils.getLastDayYYYYMMDD() + " 00:00"; +// String date2 = DateTimeUtils.getLastDayYYYYMMDD() + " 23:59"; +// if (classes == 2) { +// date1 = DateTimeUtils.getCurrentDay() + " 00:00"; +// date2 = DateTimeUtils.getCurrentDay() + " 23:59"; +// } +// webDriver.findElement(By.xpath("//*[@id=\"app\"]/section/header/form/div/div[1]/div[3]/div[1]/div/div/div/input[1]")).sendKeys(date1); +// Thread.sleep(300); +// webDriver.findElement(By.xpath("//*[@id=\"app\"]/section/header/form/div/div[1]/div[3]/div[1]/div/div/div/input[2]")).sendKeys(date2); +// Thread.sleep(300); +// webDriver.findElement(By.xpath("//*[@id=\"app\"]/section/header/form/div/div[2]/button[2]")).click(); +// Thread.sleep(1000); +// WebElement numEle = webDriver.findElement(By.xpath("//*[@id=\"tab-已完工\"]/div/span")); + DailyBean dailyBean = readDailyBean("morning_daily"); + DailyBean dailyBean2 = readDailyBean("evening_daily"); + LogBean logBean = readDutyBean(); +// if (!"0".equals(numEle.getText())) { +// int num = parseInt(numEle.getText()); +// if (num > 10) { +// num = 10; +// } +// webDriver.findElement(By.xpath("//*[@id=\"tab-已完工\"]")).click(); +// Thread.sleep(2000); +// String[] strings = new String[num]; +// for (int i = 1; i <= num; i++) { +// WebElement companyElem = webDriver.findElement(By.xpath("//*[@id=\"app\"]/section/main/main/div/div[3]/table/tbody/tr[" + i + "]/td[5]/div/div")); +// String name = getDailyName(companyElem.getText()); +// strings[i - 1] = name; +// } +// Map countMap = new HashMap<>(); +// for (String str : strings) { +// if (countMap.containsKey(str)) { +// countMap.put(str, countMap.get(str) + 1); +// } else { +// countMap.put(str, 1); +// } +// } +// String codeYuJing = "(8)针对预警,公司各单位开展预警响应,对线路、变电站进行特巡,共计开展特巡" + numEle.getText() + "次,"; +// if (num > 0) { +// codeYuJing += "其中:"; +// for (Map.Entry entry : countMap.entrySet()) { +// codeYuJing += entry.getKey() + "公司特巡" + entry.getValue() + "次,"; +// } +// } +// dailyBean.setPersonnel_daily_work(dailyBean.getPersonnel_daily_work() + codeYuJing); +// dailyBean2.setPersonnel_daily_work(dailyBean.getPersonnel_daily_work() + codeYuJing); +// logBean.setGeneral_chronicles_content(logBean.getGeneral_chronicles_content() + codeYuJing); +// } + String month = DateTimeUtils.getCurrentDay().substring(5, 7); + if ("11".equals(month) || "12".equals(month) || "01".equals(month) || "02".equals(month) || "03".equals(month)) { + dailyBean.getTenBean().setUhv("0"); + dailyBean.getTenBean().setFiveHundredKv("0"); + dailyBean.getTenBean().setTwoHundredTwentyKv("0"); + dailyBean.getTenBean().setOneHundredTenKv("0"); + dailyBean.getTenBean().setThirtyFiveKv("0"); + dailyBean.getTenBean().setTenKv("0"); + dailyBean.getTenBean().setAverageWaterLevel("0"); + dailyBean.getTenBean().setDesignValues("0"); + dailyBean.getTenBean().setMeasuredValue("0"); + dailyBean.getTenBean().setActionHasBeenTaken("0"); + + dailyBean.getElevenBean().setUhv("0"); + dailyBean.getElevenBean().setFiveHundredKv("0"); + dailyBean.getElevenBean().setTwoHundredTwentyKv("0"); + dailyBean.getElevenBean().setOneHundredTenKv("0"); + dailyBean.getElevenBean().setThirtyFiveKv("0"); + dailyBean.getElevenBean().setTenKv("0"); + dailyBean.getElevenBean().setAverageWaterLevel("0"); + dailyBean.getElevenBean().setMeasuredValue("0"); + dailyBean.getElevenBean().setActionHasBeenTaken("0"); + + dailyBean2.getTenBean().setUhv("0"); + dailyBean2.getTenBean().setFiveHundredKv("0"); + dailyBean2.getTenBean().setTwoHundredTwentyKv("0"); + dailyBean2.getTenBean().setOneHundredTenKv("0"); + dailyBean2.getTenBean().setThirtyFiveKv("0"); + dailyBean2.getTenBean().setTenKv("0"); + dailyBean2.getTenBean().setAverageWaterLevel("0"); + dailyBean2.getTenBean().setDesignValues("0"); + dailyBean2.getTenBean().setMeasuredValue("0"); + dailyBean2.getTenBean().setActionHasBeenTaken("0"); + + dailyBean2.getElevenBean().setUhv("0"); + dailyBean2.getElevenBean().setFiveHundredKv("0"); + dailyBean2.getElevenBean().setTwoHundredTwentyKv("0"); + dailyBean2.getElevenBean().setOneHundredTenKv("0"); + dailyBean2.getElevenBean().setThirtyFiveKv("0"); + dailyBean2.getElevenBean().setTenKv("0"); + dailyBean2.getElevenBean().setAverageWaterLevel("0"); + dailyBean2.getElevenBean().setMeasuredValue("0"); + dailyBean2.getElevenBean().setActionHasBeenTaken("0"); + } else { + dailyBean.getTenBean().setUhv(""); + dailyBean.getTenBean().setFiveHundredKv(""); + dailyBean.getTenBean().setTwoHundredTwentyKv(""); + dailyBean.getTenBean().setOneHundredTenKv(""); + dailyBean.getTenBean().setThirtyFiveKv(""); + dailyBean.getTenBean().setTenKv(""); + dailyBean.getTenBean().setAverageWaterLevel(""); + dailyBean.getTenBean().setDesignValues(""); + dailyBean.getTenBean().setMeasuredValue(""); + dailyBean.getTenBean().setActionHasBeenTaken(""); + + dailyBean.getElevenBean().setUhv(""); + dailyBean.getElevenBean().setFiveHundredKv(""); + dailyBean.getElevenBean().setTwoHundredTwentyKv(""); + dailyBean.getElevenBean().setOneHundredTenKv(""); + dailyBean.getElevenBean().setThirtyFiveKv(""); + dailyBean.getElevenBean().setTenKv(""); + dailyBean.getElevenBean().setAverageWaterLevel(""); + dailyBean.getElevenBean().setMeasuredValue(""); + dailyBean.getElevenBean().setActionHasBeenTaken(""); + + dailyBean2.getTenBean().setUhv(""); + dailyBean2.getTenBean().setFiveHundredKv(""); + dailyBean2.getTenBean().setTwoHundredTwentyKv(""); + dailyBean2.getTenBean().setOneHundredTenKv(""); + dailyBean2.getTenBean().setThirtyFiveKv(""); + dailyBean2.getTenBean().setTenKv(""); + dailyBean2.getTenBean().setAverageWaterLevel(""); + dailyBean2.getTenBean().setDesignValues(""); + dailyBean2.getTenBean().setMeasuredValue(""); + dailyBean2.getTenBean().setActionHasBeenTaken(""); + + dailyBean2.getElevenBean().setUhv(""); + dailyBean2.getElevenBean().setFiveHundredKv(""); + dailyBean2.getElevenBean().setTwoHundredTwentyKv(""); + dailyBean2.getElevenBean().setOneHundredTenKv(""); + dailyBean2.getElevenBean().setThirtyFiveKv(""); + dailyBean2.getElevenBean().setTenKv(""); + dailyBean2.getElevenBean().setAverageWaterLevel(""); + dailyBean2.getElevenBean().setMeasuredValue(""); + dailyBean2.getElevenBean().setActionHasBeenTaken(""); + } + if ("06".equals(month) || "07".equals(month) || "08".equals(month) || "09".equals(month)) { + dailyBean.getTwelveBean().setUhv("0"); + dailyBean.getTwelveBean().setFiveHundredKv("0"); + dailyBean.getTwelveBean().setTwoHundredTwentyKv("0"); + dailyBean.getTwelveBean().setOneHundredTenKv("0"); + dailyBean.getTwelveBean().setThirtyFiveKv("0"); + dailyBean.getTwelveBean().setTenKv("0"); + dailyBean.getTwelveBean().setAverageWaterLevel("0"); + dailyBean.getTwelveBean().setDesignValues("0"); + dailyBean.getTwelveBean().setMeasuredValue("0"); + dailyBean.getTwelveBean().setActionHasBeenTaken("0"); + + dailyBean.getThirteenBean().setUhv("0"); + dailyBean.getThirteenBean().setFiveHundredKv("0"); + dailyBean.getThirteenBean().setTwoHundredTwentyKv("0"); + dailyBean.getThirteenBean().setOneHundredTenKv("0"); + dailyBean.getThirteenBean().setThirtyFiveKv("0"); + dailyBean.getThirteenBean().setTenKv("0"); + dailyBean.getThirteenBean().setAverageWaterLevel("0"); + dailyBean.getThirteenBean().setDesignValues("0"); + dailyBean.getThirteenBean().setMeasuredValue("0"); + dailyBean.getThirteenBean().setActionHasBeenTaken("0"); + + dailyBean2.getTwelveBean().setUhv("0"); + dailyBean2.getTwelveBean().setFiveHundredKv("0"); + dailyBean2.getTwelveBean().setTwoHundredTwentyKv("0"); + dailyBean2.getTwelveBean().setOneHundredTenKv("0"); + dailyBean2.getTwelveBean().setThirtyFiveKv("0"); + dailyBean2.getTwelveBean().setTenKv("0"); + dailyBean2.getTwelveBean().setAverageWaterLevel("0"); + dailyBean2.getTwelveBean().setDesignValues("0"); + dailyBean2.getTwelveBean().setMeasuredValue("0"); + dailyBean2.getTwelveBean().setActionHasBeenTaken("0"); + + dailyBean2.getThirteenBean().setUhv("0"); + dailyBean2.getThirteenBean().setFiveHundredKv("0"); + dailyBean2.getThirteenBean().setTwoHundredTwentyKv("0"); + dailyBean2.getThirteenBean().setOneHundredTenKv("0"); + dailyBean2.getThirteenBean().setThirtyFiveKv("0"); + dailyBean2.getThirteenBean().setTenKv("0"); + dailyBean2.getThirteenBean().setAverageWaterLevel("0"); + dailyBean2.getThirteenBean().setDesignValues("0"); + dailyBean2.getThirteenBean().setMeasuredValue("0"); + dailyBean2.getThirteenBean().setActionHasBeenTaken("0"); + } else { + dailyBean.getTwelveBean().setUhv(""); + dailyBean.getTwelveBean().setFiveHundredKv(""); + dailyBean.getTwelveBean().setTwoHundredTwentyKv(""); + dailyBean.getTwelveBean().setOneHundredTenKv(""); + dailyBean.getTwelveBean().setThirtyFiveKv(""); + dailyBean.getTwelveBean().setTenKv(""); + dailyBean.getTwelveBean().setAverageWaterLevel(""); + dailyBean.getTwelveBean().setDesignValues(""); + dailyBean.getTwelveBean().setMeasuredValue(""); + dailyBean.getTwelveBean().setActionHasBeenTaken(""); + + dailyBean.getThirteenBean().setUhv(""); + dailyBean.getThirteenBean().setFiveHundredKv(""); + dailyBean.getThirteenBean().setTwoHundredTwentyKv(""); + dailyBean.getThirteenBean().setOneHundredTenKv(""); + dailyBean.getThirteenBean().setThirtyFiveKv(""); + dailyBean.getThirteenBean().setTenKv(""); + dailyBean.getThirteenBean().setAverageWaterLevel(""); + dailyBean.getThirteenBean().setDesignValues(""); + dailyBean.getThirteenBean().setMeasuredValue(""); + dailyBean.getThirteenBean().setActionHasBeenTaken(""); + + dailyBean2.getTwelveBean().setUhv(""); + dailyBean2.getTwelveBean().setFiveHundredKv(""); + dailyBean2.getTwelveBean().setTwoHundredTwentyKv(""); + dailyBean2.getTwelveBean().setOneHundredTenKv(""); + dailyBean2.getTwelveBean().setThirtyFiveKv(""); + dailyBean2.getTwelveBean().setTenKv(""); + dailyBean2.getTwelveBean().setAverageWaterLevel(""); + dailyBean2.getTwelveBean().setDesignValues(""); + dailyBean2.getTwelveBean().setMeasuredValue(""); + dailyBean2.getTwelveBean().setActionHasBeenTaken(""); + + dailyBean2.getThirteenBean().setUhv(""); + dailyBean2.getThirteenBean().setFiveHundredKv(""); + dailyBean2.getThirteenBean().setTwoHundredTwentyKv(""); + dailyBean2.getThirteenBean().setOneHundredTenKv(""); + dailyBean2.getThirteenBean().setThirtyFiveKv(""); + dailyBean2.getThirteenBean().setTenKv(""); + dailyBean2.getThirteenBean().setAverageWaterLevel(""); + dailyBean2.getThirteenBean().setDesignValues(""); + dailyBean2.getThirteenBean().setMeasuredValue(""); + dailyBean2.getThirteenBean().setActionHasBeenTaken(""); + } + insertData(dailyBean, null, "morning_daily"); + insertData(dailyBean2, null, "evening_daily"); + insertData(null, logBean, "log"); + } + + public void getYuJingBasicData(int classes) throws ParseException, InterruptedException { + Thread.sleep(5000); + String code = ""; + String code_child = "安排抢修队伍20支,合计242人(客户用电保障人员68人,电网运维保障人员174人)" + + "、车辆36台、发电机10台、照明灯具89套值守待命,准备配电20台、电缆2千米、电杆65基、绝缘子150只等,"; + String code_chlid2 = "针对此次预警,今日砀山供电公司开展预警响应,对重要保电线路、变电站进行特巡,安排抢修队伍、绑定应急车辆、装备,抢修队长,通过i" + + "国网反馈巡视照片、视频,在新一代系统里均形成巡视记录、车辆队伍轨迹,未发现问题。"; + //判断是否有发布数据 + WebElement numClasses = webDriver.findElement(By.xpath("//*[@id=\"tab-3\"]/div/span")); + if ("0".equals(numClasses.getText())) { + code = "砀山县未发布预警,"; + } else { + //险情类别与等级 例:高温蓝色,暴雨蓝色 + WebElement weatherEle = webDriver.findElement(By.xpath("/html/body/div[1]/div/section/main/div[1]/div[2]/div[1]/section/main/div/div[3]/table/tbody/tr[1]/td[6]/div/div")); + Thread.sleep(300); + log.info("天气:" + weatherEle.getText()); + WebElement time1Ele = webDriver.findElement(By.xpath("/html/body/div[1]/div/section/main/div[1]/div[2]/div[1]/section/main/div/div[3]/table/tbody/tr[1]/td[8]/div/div/div[1]")); + Thread.sleep(300); + log.info("时间1:" + time1Ele.getText()); + WebElement time2Ele = webDriver.findElement(By.xpath("/html/body/div[1]/div/section/main/div[1]/div[2]/div[1]/section/main/div/div[3]/table/tbody/tr[1]/td[8]/div/div/div[2]")); + Thread.sleep(300); + log.info("时间2:" + time2Ele.getText()); + //判断当前日期是否在此之间 + String startTime = time1Ele.getText().substring(0, 10); + String endTime = time2Ele.getText().substring(0, 10); +// boolean tf = DateTimeUtils.compareDate(startTime, endTime); + SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = inputFormat.parse(startTime); + Date date1 = inputFormat.parse(endTime); + + SimpleDateFormat outputFormat = new SimpleDateFormat("MM月dd日"); +// if (tf) { + code = "砀山供电公司发布" + weatherEle.getText() + "预警1项,(" + outputFormat.format(date) + "-" + outputFormat.format(date1) + "发布" + weatherEle.getText() + "),"; +// } else {/ +// code = "砀山县未发布预警,"; +// } + } + if (code.indexOf("砀山县未发布预警") != -1) { + code_child = ""; + code_chlid2 = ""; + } + log.info("code:" + code); + DailyBean dailyBean = readDailyBean("morning_daily"); + DailyBean dailyBean2 = readDailyBean("evening_daily"); + LogBean logBean = readDutyBean(); + String dailyContent = resolveGarbledCode("E:\\bns\\config\\日报基本信息.txt"); + String logContent = resolveGarbledCode("E:\\bns\\config\\日志基本信息.txt"); + String[] dailyContentArrayArray = dailyContent.split("--头部不可修改--"); + String[] logContentArrayArray = logContent.split("--头部不可修改--"); + log.info("dailyContent:" + dailyContent); + log.info("logContent:" + logContent); + log.info("logContentArrayArray[18]:" + logContentArrayArray[18]); + //一、总体情况 + //昨天的日期 + String data1 = DateTimeUtils.getLastDay(); + //今天的日期 + String data2 = DateTimeUtils.getCurrentDay2(); + //明天的日期 + String data3 = DateTimeUtils.getTomorrowDate(); + String data = ""; + if (classes == 1) { + data = data2 + "17:30至" + data3 + "08:00,"; + } else { + data = data2 + "08:00至" + data2 + "17:30,"; + } + + + logBean.setEvent_detection_content(data + logContentArrayArray[3].trim() + (classes == 1 ? data3 + "08:00," : + data2 + "17:30,") + logContentArrayArray[4].trim() + code + "对系统检测图层中气象实况风速、温度、降雨进行查看、对专题灾害图层地震、台风防汛进行查看均正常,未对砀山辖区造成影响。通过首页公共气象图层检查砀山境内公共预警正常;降雨预报、预警正常;雷达预报正常。"); + logBean.setWarning_disposal_title(code.substring(0, code.length() - 1)); + logBean.setWarning_disposal_content(data + code + code_child + logContentArrayArray[18] + code_chlid2); + logBean.setGeneral_chronicles_content(logBean.getGeneral_chronicles_content()); + insertData(null, logBean, "log"); + log.info("天气预警日志更新完成"); + dailyBean.setWarning_company(data + code+code_child + dailyContentArrayArray[28] + code_chlid2); + + //一、总体情况 + dailyBean.setOverall(data + dailyContentArrayArray[2].trim() + (classes == 1 ? data3 + "08:00," : data2 + "17:30" + + ",") + dailyContentArrayArray[3].trim() + code + "对系统检测图层中气象实况风速、温度、降雨进行查看、对专题灾害图层地震、台风防汛进行查看均正常,未对砀山辖区造成影响。通过首页公共气象图层检查砀山境内公共预警正常;降雨预报、预警正常;雷达预报正常。"); + dailyBean.setPersonnel_daily_work(dailyBean.getPersonnel_daily_work()); +// +("0".equals(numClasses.getText()) ? "" :"针对此次预警,今日砀山供电公司开展预警响应,对重要保电线路、变电站进行特巡,安排抢修队伍、绑定应急车辆、装备,抢修队长,通过i国网反馈巡视照片、视频,在新一代系统里均形成巡视记录、车辆队伍轨迹,未发现问题") + dailyBean2.setOverall(data + dailyContentArrayArray[2].trim() + (classes == 1 ? data3 + "08:00," : data2 + "17:30" + + ",") + dailyContentArrayArray[3].trim() + code + "对系统检测图层中气象实况风速、温度、降雨进行查看、对专题灾害图层地震、台风防汛进行查看均正常,未对砀山辖区造成影响。通过首页公共气象图层检查砀山境内公共预警正常;降雨预报、预警正常;雷达预报正常。"); + dailyBean2.setPersonnel_daily_work(dailyBean2.getPersonnel_daily_work()); + dailyBean2.setWarning_company(data + code+code_child + dailyContentArrayArray[28] + code_chlid2); + insertData(dailyBean, null, "morning_daily"); + insertData(dailyBean2, null, "evening_daily"); + log.info("日志内容:" + readDutyBean()); + log.info("天气预警日报更新完成"); + } + + Random random = new Random(); + + public void getCaoLianBasicData(int classes) throws InterruptedException, ParseException, IOException { + Thread.sleep(5000); + DailyBean dailyBean = readDailyBean("morning_daily"); + DailyBean dailyBean2 = readDailyBean("evening_daily"); + LogBean logBean = readDutyBean(); + String dailyContent = resolveGarbledCode("E:\\bns\\config\\日报基本信息.txt"); + String checkContent = resolveGarbledCode("E:\\bns\\config\\七个公司资源核查情况.txt"); + String checkNumContent = resolveGarbledCode("E:\\bns\\config\\七个公司核查数量.txt"); + String logContent = resolveGarbledCode("E:\\bns\\config\\日志基本信息.txt"); + String videoContent = resolveGarbledCode("E:\\bns\\config\\变电站名称.txt"); + String lineContent = resolveGarbledCode("E:\\bns\\config\\线路名称.txt"); + String maximumLoad = resolveGarbledCode("E:\\bns\\config\\最大负荷.txt"); + +// String useContent = resolveGarbledCode("E:\\bns\\config\\七家公司两天记录.txt"); + String[] dailyContentArrayArray = dailyContent.split("--头部不可修改--"); + String[] logContentArrayArray = logContent.split("--头部不可修改--"); + String[] videoContentArrayArray = videoContent.split("--头部不可修改--"); + String[] lineContentArrayArray = lineContent.split("--头部不可修改--"); + String[] checkContentArrayArray = checkContent.split("资源核查情况:"); + String[] checkContentNumArrayArray = checkNumContent.split("装备数量:"); + String[] maximumLoadArr = maximumLoad.split(";"); + +// log.info("------开始获取企业停电的天气数据"); +// log.info("------url:" + DataConfig.weatherUrl); +// HttpRequest request = HttpUtil.createGet(DataConfig.weatherUrl); +// String result = request.execute().body(); +// //空 +// log.info("------result:" + result); +// Gson gson = new Gson(); +// WeatherData weatherData = gson.fromJson(result, WeatherData.class); +// WeatherData.WeatherDataChild weatherDataChild = weatherData.getData(); +// log.info("------weatherDataChild:" + weatherDataChild); +// String city = weatherDataChild.getCity(); +// String weatherNoon = weatherDataChild.getWeatherNoon(); +// String weatherNight = weatherDataChild.getWeatherNight(); +// String minTemperature = weatherDataChild.getMinTemperature(); +// String maxTemperature = weatherDataChild.getMaxTemperature(); +// log.info("city:"+city); +// log.info("weatherNoon:"+weatherNoon); +// log.info("weatherNight:"+weatherNight); +// log.info("minTemperature:"+minTemperature); +// log.info("maxTemperature:"+maxTemperature); +// logBean.setWeather(weatherNoon); +// logBean.setMax_temperature(maxTemperature); +// logBean.setMin_temperature(minTemperature); +// String[] useLogArr = useContent.split("记录:"); +// log.info("读取本地模板数据成功"); + String videoContentStr = ""; + String lineContentStr = ""; + + Set numberSet = new HashSet<>(); + while (numberSet.size() < 2) { + int randomNumber = random.nextInt(22) + 1; // Generate random number between 1 and 35 + numberSet.add(randomNumber); + videoContentStr += videoContentArrayArray[randomNumber] + "、"; + } + videoContentStr = videoContentStr.substring(0, videoContentStr.length() - 1); + Set lineNumberSet = new HashSet<>(); + while (lineNumberSet.size() < 2) { + int randomNumber = random.nextInt(35) + 1; // Generate random number between 1 and 35 + lineNumberSet.add(randomNumber); + lineContentStr += lineContentArrayArray[randomNumber] + "、"; + } + lineContentStr = lineContentStr.substring(0, lineContentStr.length() - 1); + //昨天的日期 + String data1 = DateTimeUtils.getLastDay(); +// log.info("昨天的日期:" + data1); + //今天的日期 + String data2 = DateTimeUtils.getCurrentDay2(); + String data3 = DateTimeUtils.getTomorrowDate(); +// log.info("今天的日期:" + data2); + + /** + * 获取指定位置标签的值 + */ + boolean tf = true; + int communicationTestNum = 0; + String communicationTestName = ""; + String communicationTestName1 = ""; + int dailyExercisesNum = 0; + String dailyExercisesName = ""; + String dailyExercisesName1 = ""; + String dailyExercisesName2 = ""; + String contingentName = ""; + String carName = ""; + String materialName = ""; + String time = ""; + if (classes == 1) { + //zao + time = DateTimeUtils.getLastDayYYYYMMDD(); + } else { + time = DateTimeUtils.getCurrentDay(); + } + + int i = 1; +// while (tf) { +// Thread.sleep(10000); +//// WebElement numberEle = webDriver.findElement(By.xpath("/html/body/div/div/main/div/div/footer/span")); +//// log.info("numberEle:" + numberEle.getText()); +////// String num = numberEle.getText().substring(2, 3); +//// String num1 = numberEle.getText().substring(2, numberEle.getText().length()); +//// String num = num1.substring(0, num1.length() - 2); +//// log.info("num:" + num); +//// if ("0".equals(num)) { +//// tf = false; +//// } else { +// WebElement timeEle; +//// if ("1".equals(num)) { +//// timeEle = webDriver.findElement(By.xpath("/html/body/div/div/main/div/div/div[2]/div/div[3]/table/tbody/tr/td[8]/div")); +//// } else { +// timeEle = webDriver.findElement(By.xpath("/html/body/div/section/div[1]/div[2]/div[2]/section/main/section/main/div/div[3]/table/tbody/tr[" + i + "]/td[8]/div/span")); +//// } +// +// log.info("timeEle.getText():"+timeEle.getText()); +// if (time.equals(timeEle.getText())) { +// //操练环节 -通信测试 日常操练 +// WebElement drillSessionEle; +//// if ("1".equals(num)) { +//// drillSessionEle = webDriver.findElement(By.xpath("/html/body/div/div/main/div/div/div[2]/div/div[3]/table/tbody/tr/td[6]/div")); +//// } else { +// drillSessionEle = webDriver.findElement(By.xpath("/html/body/div/section/div[1]/div[2]/div[2]/section/main/section/main/div/div[3]/table/tbody/tr[" + i + "]/td[6]/div")); +//// } +// log.info("操练环节:" + drillSessionEle.getText()); +// +// /*---------------------------------------------------------------------------------------------------------------------*/ +// +// //供电公司----检查的对方 +// WebElement powerSupplyCompaniesEle; +//// if ("1".equals(num)) { +//// powerSupplyCompaniesEle = webDriver.findElement(By.xpath("/html/body/div/div/main/div/div/div[2]/div/div[3]/table/tbody/tr/td[5]/div")); +//// } else { +// powerSupplyCompaniesEle = webDriver.findElement(By.xpath("/html/body/div/section/div[1]/div[2]/div[2]/section/main/section/main/div/div[3]/table/tbody/tr[" + i + "]/td[5]/div")); +//// } +// log.info("供电公司:" + powerSupplyCompaniesEle.getText()); +// if ("通信测试".equals(drillSessionEle.getText())) { +// communicationTestNum++; +// communicationTestName1 += getDailyName(powerSupplyCompaniesEle.getText()) + "、"; +// } else if ("重要站线视频连线检查".equals(drillSessionEle.getText())) { +// dailyExercisesNum++; +// dailyExercisesName1 += powerSupplyCompaniesEle.getText().substring(0, powerSupplyCompaniesEle.getText().length() - 4) + "、"; +// dailyExercisesName1 += getDailyName(powerSupplyCompaniesEle.getText()) + "、"; +// } else { +// dailyExercisesNum++; +// dailyExercisesName2 += powerSupplyCompaniesEle.getText().substring(0, powerSupplyCompaniesEle.getText().length() - 4) + "、"; +// WebElement ele = webDriver.findElement(By.xpath("/html/body/div/div/main/div/div/div[2]/div/div[3]/table/tbody/tr[" + i + "]/td[7]/div")); +// if ("物资".equals(ele.getText())) materialName += getDailyName(powerSupplyCompaniesEle.getText()) + "、"; +// if ("车辆".equals(ele.getText())) carName += getDailyName(powerSupplyCompaniesEle.getText()) + "、"; +// if ("队伍".equals(ele.getText())) contingentName += getDailyName(powerSupplyCompaniesEle.getText()) + "、"; +// dailyExercisesName2 += getDailyName(powerSupplyCompaniesEle.getText()) + "、"; +// } +// +// /*---------------------------------------------------------------------------------------------------------------------*/ +// +// +//// int x = parseInt(num); +//// if (i == parseInt(num)) { +//// tf = false; +//// } +// i++; +//// } else { +//// tf = false; +//// } +// } +// } +// log.info("communicationTestName1:" + communicationTestName1); +// if (communicationTestNum > 0) { +// communicationTestName = "今日砀山县公司本部对所属3家中心供电所(" + communicationTestName1.substring(0, communicationTestName1.length() - 1) + ")进行通信测试"; +// } else { +// communicationTestName = "今日砀山县公司本部对所属中心供电所无通信测试"; +// } +// communicationTestName = "今日砀山县公司本部对所属中心供电所无通信测试"; + communicationTestName = "今日砀山县公司本部对所属3家中心供电所进行通信测试"; +// if (dailyExercisesName1.length() > 0) { +// dailyExercisesName1 = dailyExercisesName1.substring(0, dailyExercisesName1.length() - 1); +// } +// if (dailyExercisesName2.length() > 0) { +// dailyExercisesName2 = dailyExercisesName2.substring(0, dailyExercisesName2.length() - 1); +// } +// String fourElementVerification = ""; +// if (materialName.length() > 0) { +// materialName = materialName.substring(0, materialName.length() - 1); +// fourElementVerification += materialName + "中心供电所进行四要素物资核查、"; +// } +// if (carName.length() > 0) { +// carName = carName.substring(0, carName.length() - 1); +// fourElementVerification += carName + "中心供电所进行四要素车辆核查、"; +// } +// if (contingentName.length() > 0) { +// contingentName = contingentName.substring(0, contingentName.length() - 1); +// fourElementVerification += contingentName + "中心供电所进行四要素队伍核查、"; +// } +// if (dailyExercisesName1.length() > 0 && dailyExercisesName2.length() > 0) { +// dailyExercisesName = "今日市公司本部对所属" + dailyExercisesNum + "家中心供电所进行日常操练(" + fourElementVerification + dailyExercisesName1 + "公司重要站连线检查)"; +// } else if (dailyExercisesName1.length() == 0 && dailyExercisesName2.length() > 0) { +// dailyExercisesName = "今日市公司本部对所属" + dailyExercisesNum + "家中心供电所进行日常操练(" + fourElementVerification + ")"; +// } else if (dailyExercisesName1.length() > 0 && fourElementVerification.length() == 0) { +// dailyExercisesName = "今日市公司本部对所属" + dailyExercisesNum + "家中心供电所进行日常操练(" + dailyExercisesName1 + "公司重要站连线检查)"; +// } else { +// dailyExercisesName = "今日市公司本部对所属" + dailyExercisesNum + "家中心供电所进行日常操练"; +// } + dailyExercisesName = "今日砀山县公司本部对所属3家中心供电所进行日常操练"; + String type = ""; + + +// OkHttpClient client = new OkHttpClient().newBuilder() +// .connectTimeout(180, TimeUnit.SECONDS) +// .readTimeout(180, TimeUnit.SECONDS) +// .writeTimeout(180, TimeUnit.SECONDS) +// .build(); +// +// String dataUrl = DataConfig.weatherUrl+DateTimeUtils.getCurrentDay(); +// log.info("dataUrl:" + dataUrl); +// Request request = new Request.Builder() +// .url(dataUrl) +// .get() +// .build(); +// Response response; +// String result; +// String city; +// String weatherNoon; +// String weatherNight; +// String minTemperature; +// String maxTemperature; +// try { +// response = client.newCall(request).execute(); +// log.info("response:" + response); +// result = response.body().string(); +// log.info("result:" + result); +// Gson gson = new Gson(); +// WeatherData weatherData = gson.fromJson(result, WeatherData.class); +// log.info("------weatherData:" + weatherData); +// WeatherData.WeatherDataChild weatherDataChild = weatherData.getData(); +// log.info("------weatherDataChild:" + weatherDataChild); +// city = weatherDataChild.getCity(); +// log.info("city:" + city); +// weatherNoon = weatherDataChild.getWeatherNoon(); +// log.info("weatherNoon:" + weatherNoon); +// weatherNight = weatherDataChild.getWeatherNight(); +// log.info("weatherNight:" + weatherNight); +// minTemperature = weatherDataChild.getMinTemperature(); +// log.info("minTemperature:" + minTemperature); +// maxTemperature = weatherDataChild.getMaxTemperature(); +// log.info("maxTemperature:" + maxTemperature); +// } catch (IOException e) { +// throw new IOException("天气get请求失败", e); +// } + + + if (classes == 1) { + type = "morning_daily"; + //早报 +// boolean t = true; + int num = getRandom(1, 12); +// while (t) { +// if (!Arrays.asList(useLogArr).contains(String.valueOf(num))) { +// t = false; +// } else { +// num = getRandom(1, 7); +// t = true; +// } +// } + String data = data2 + "17:30至" + data3 + "08:00,"; + + //二、重要事项 + dailyBean.setImportant_matters(data + dailyContentArrayArray[5].trim()); + //随机-1 到 1 直接的两位小数 + double randomNum = Math.random() * 8 - 4; + double numRandom = (double) Math.round(randomNum * 100) / 100; + //三、安全生产情况 + dailyBean.setSafety_production(data + dailyContentArrayArray[7].trim().split("--")[0] + (String.format("%" + + ".2f", Double.parseDouble(maximumLoadArr[0].split(":")[1]) + numRandom)) + dailyContentArrayArray[7].trim().split( + "--")[2]); + //四、值班员日常工作情况 + dailyBean.setPersonnel_daily_work(data + dailyContentArrayArray[10].trim() + "(4)资源核查情况:20:00至21:00" + checkContentArrayArray[num].trim() + + dailyContentArrayArray[11].trim() + communicationTestName + dailyContentArrayArray[13].trim() + dailyContentArrayArray[14].trim() + dailyExercisesName + dailyContentArrayArray[16].trim() + "砀山公司对" + videoContentStr + "视频监控进行检查,未发现问题,对" + lineContentStr + "线路视频进行检查,视频接入正常。"); + //五、供电保障情况 + //(一)今日重大活动保电情况 + dailyBean.setPower_guarantee_today_work(dailyContentArrayArray[21]); + //(二)明日重大活动保电安排 + dailyBean.setPower_guarantee_tomorrow_work(dailyContentArrayArray[23]); + //(三)今日疫情防控应急保电情况 + dailyBean.setPower_guarantee_today_pestilence(dailyContentArrayArray[25]); + //六、预警及应急响应情况 + //(一)公司预警情况 --另外一个方法使用 + + //(二)公司应急响应情况 + dailyBean.setWarning_company_impatient(data + dailyContentArrayArray[30]); + //(三)社会突发事件救援及处置情况 + dailyBean.setWarning_society_emergency(data + dailyContentArrayArray[32]); + //七、其他情况说明 + dailyBean.setOther_situations(data + dailyContentArrayArray[34]); + //附件表一 + dailyBean.getOneBean().setExercise_person_num(getRandom(1, 50) + ""); + dailyBean.getOneBean().setExercise_vehicle_num(getRandom(1, 20) + ""); + dailyBean.getOneBean().setExercise_power_vehicle_num(getRandom(1, 3) + ""); + dailyBean.getOneBean().setExercise_dynamo_num(getRandom(1, 10) + ""); + dailyBean.getOneBean().setExercise_find_problems("0"); + + dailyBean.getTwoBean().setVerification_material_num("30"); + dailyBean.getTwoBean().setVerification_vehicle_num(checkContentNumArrayArray[num].split("-")[1]); + dailyBean.getTwoBean().setVerification_person_num(checkContentNumArrayArray[num].split("-")[0]); + dailyBean.getTwoBean().setVerification_team_num("1"); + dailyBean.getTwoBean().setVerification_equip_num(checkContentNumArrayArray[num].split("-")[2]); + + insertData(dailyBean, null, type); + +// logBean.setWeather(weatherNight); +// logBean.setMax_temperature(maxTemperature); +// logBean.setMin_temperature(minTemperature); + +// logBean.setEvent_detection_title(logContentArrayArray[2].trim()); + logBean.setEvent_detection_content(data + logContentArrayArray[3].trim() + data2 + logContentArrayArray[4].trim()); + logBean.setPower_work_title(logContentArrayArray[6]); + logBean.setPower_work_content(data + logContentArrayArray[7]); + logBean.setResource_check_title(logContentArrayArray[9]); + logBean.setResource_check_content(data + checkContentArrayArray[num]); + logBean.setCommunications_test_title("今日开展通信测试1项,均正常"); + logBean.setCommunications_test_content(communicationTestName + ";" + logContentArrayArray[11]); + logBean.setDaily_operation_title("今日开展日常操练1次"); + logBean.setDaily_operation_content(dailyExercisesName + ";" + logContentArrayArray[13]); + logBean.setDaily_submission_title(logContentArrayArray[15]); + logBean.setDaily_submission_content(data + logContentArrayArray[16]); + logBean.setGeneral_chronicles_title(logContentArrayArray[20]); + logBean.setGeneral_chronicles_content(data + logContentArrayArray[21] + "通讯测试情况:21:00至21:30,对3家进行通信测试,电话流畅" + + ";日常操练情况:21:30至22:00,砀山县公司对所属3家中心供电所进行日常操练,未发现其他问题," + "砀山公司对" + videoContentStr + + "视频监控进行检查,未发现问题,对" + lineContentStr + "线路视频进行检查,视频接入正常。"); + insertData(null, logBean, "log"); +// AutoUtils.write("E:\\bns\\config\\七家公司两天记录.txt", useLogArr[1] + "记录:" + useLogArr[2] + "记录:" + num); + } else { + type = "evening_daily"; + //晚报 + boolean t = true; + int num = getRandom(1, 12); +// while (t) { +// if (!Arrays.asList(useLogArr).contains(String.valueOf(num))) { +// t = false; +// } else { +// num = getRandom(1, 7); +// t = true; +// } +// } + String data = data2 + "08:00至" + data2 + "17:30,"; + //一、总体情况 +// dailyBean2.setOverall(data + dailyContentArrayArray[2].trim() + data2 + "17:30," + dailyContentArrayArray[3].trim()); + //二、重要事项 + dailyBean2.setImportant_matters(data + dailyContentArrayArray[5].trim()); + //三、安全生产情况 + double randomNum = Math.random() * 8 - 4; + double numRandom = (double) Math.round(randomNum * 100) / 100; + + //四、值班员日常工作情况 + dailyBean2.setPersonnel_daily_work(data + dailyContentArrayArray[9].trim() + "(4)资源核查情况:10:00至12:00," + checkContentArrayArray[num].trim() + + dailyContentArrayArray[11].trim() + communicationTestName + dailyContentArrayArray[13].trim() + dailyContentArrayArray[14].trim() + dailyExercisesName + dailyContentArrayArray[16].trim() + "16:00至18:00" + "砀山公司对" + videoContentStr + "视频监控进行检查,未发现问题,对" + lineContentStr + "线路视频进行检查,视频接入正常。"); + //五、供电保障情况 + //(一)今日重大活动保电情况 + dailyBean2.setPower_guarantee_today_work(dailyContentArrayArray[21]); + //(二)明日重大活动保电安排 + dailyBean2.setPower_guarantee_tomorrow_work(dailyContentArrayArray[23]); + //(三)今日疫情防控应急保电情况 + dailyBean2.setPower_guarantee_today_pestilence(dailyContentArrayArray[25]); + //六、预警及应急响应情况 + //(一)公司预警情况 --另外一个方法使用 + + //(二)公司应急响应情况 + dailyBean2.setWarning_company_impatient(data + dailyContentArrayArray[30]); + //(三)社会突发事件救援及处置情况 + dailyBean2.setWarning_society_emergency(data + dailyContentArrayArray[32]); + //七、其他情况说明 + dailyBean2.setOther_situations(data + dailyContentArrayArray[34]); + //附件表一 + dailyBean2.getOneBean().setExercise_person_num(getRandom(1, 50) + ""); + dailyBean2.getOneBean().setExercise_vehicle_num(getRandom(1, 20) + ""); + dailyBean2.getOneBean().setExercise_power_vehicle_num(getRandom(1, 3) + ""); + dailyBean2.getOneBean().setExercise_dynamo_num(getRandom(1, 10) + ""); + dailyBean2.getOneBean().setExercise_find_problems("0"); + dailyBean2.getTwoBean().setVerification_material_num("30"); + dailyBean2.getTwoBean().setVerification_vehicle_num(checkContentNumArrayArray[num].split("-")[1]); + dailyBean2.getTwoBean().setVerification_person_num(checkContentNumArrayArray[num].split("-")[0]); + dailyBean2.getTwoBean().setVerification_team_num("1"); + dailyBean2.getTwoBean().setVerification_equip_num(checkContentNumArrayArray[num].split("-")[2]); +//三、安全生产情况 + dailyBean2.setSafety_production(data + dailyContentArrayArray[7].trim().split("--")[0] + (String.format( + "%.2f", Double.parseDouble(maximumLoadArr[1].split(":")[1]) + numRandom)) + dailyContentArrayArray[7].trim().split("--")[2]); + insertData(dailyBean2, null, type); + +// logBean.setWeather(weatherNight); +// logBean.setMax_temperature(maxTemperature); +// logBean.setMin_temperature(minTemperature); + + logBean.setEvent_detection_title(logContentArrayArray[2].trim()); +// logBean.setEvent_detection_content(data + logContentArrayArray[3].trim()+ data2 + logContentArrayArray[4].trim()); + logBean.setPower_work_title(logContentArrayArray[6]); + logBean.setPower_work_content(data + logContentArrayArray[7]); + logBean.setResource_check_title(logContentArrayArray[9]); + logBean.setResource_check_content(data + checkContentArrayArray[num]); + logBean.setCommunications_test_title("今日开展通信测试1项,均正常"); + logBean.setCommunications_test_content(communicationTestName + ";" + logContentArrayArray[11]); + logBean.setDaily_operation_title("今日开展日常操练1次"); + logBean.setDaily_operation_content(dailyExercisesName + ";" + logContentArrayArray[13]); + logBean.setDaily_submission_title(logContentArrayArray[15]); + logBean.setDaily_submission_content(data + logContentArrayArray[16]); + logBean.setGeneral_chronicles_title(logContentArrayArray[20]); + logBean.setGeneral_chronicles_content(data + logContentArrayArray[22] + "通讯测试情况:13:00至14:30,对3家进行通信测试,电话流畅" + + ";日常操练情况:14:30至15:00,市公司对所属3家中心供电所进行日常操练,未发现其他问题," + "砀山公司对" + videoContentStr + + "视频监控进行检查,未发现问题,对" + lineContentStr + "线路视频进行检查,视频接入正常。"); + insertData(null, logBean, "log"); +// AutoUtils.write("E:\\bns\\config\\七家公司两天记录.txt", useLogArr[1] + "记录:" + useLogArr[2] + "记录:" + num); + } + } + + /** + * 读取日报xml的内容 + * + * @param type 早报 morning_daily 晚报 evening_daily + * @return + */ + public static DailyBean readDailyBean(String type) { + DailyBean bean; + XStream xstream = new XStream(new JettisonMappedXmlDriver()); + String path = DataConfig.filePath + "\\" + type + ".xml"; + File file = new File(path); + InputStreamReader in = null; + String xml = null; + try { + //主要就是这里的设置 + in = new InputStreamReader(new FileInputStream(file), Charset.forName("gbk")); + StringBuffer sb = new StringBuffer(); + char[] array = new char[1024]; + int length = -1; + while ((length = in.read(array)) != -1) { + sb.append(array, 0, length); + } + in.close(); + xml = sb.toString().trim(); + } catch (Exception e) { + // TODO: handle exception + } + xstream.alias(type, DailyBean.class); + bean = (DailyBean) xstream.fromXML(xml); + return bean; + } + + /** + * 读取日志xml的内容 + * + * @return + */ + public static LogBean readDutyBean() { + LogBean bean; + XStream xstream = new XStream(new JettisonMappedXmlDriver()); + File file = new File(DataConfig.filePath + "\\log.xml"); + InputStreamReader in = null; + String xml = null; + try { + //主要就是这里的设置 + in = new InputStreamReader(new FileInputStream(file), Charset.forName("gbk")); + StringBuffer sb = new StringBuffer(); + char[] array = new char[1024]; + int length = -1; + while ((length = in.read(array)) != -1) { + sb.append(array, 0, length); + } + in.close(); + xml = sb.toString().trim(); + } catch (Exception e) { + // TODO: handle exception + } + xstream.alias("log", LogBean.class); + bean = (LogBean) xstream.fromXML(xml); + return bean; + } + + + private static void insertData(DailyBean dailyBean, LogBean logBean, String type) { + String path = DataConfig.filePath + "\\" + type + ".xml"; + String xml = null; + XStream xstream = new XStream(new JettisonMappedXmlDriver()); + xstream.setMode(XStream.NO_REFERENCES); + xstream.alias(type, DailyBean.class); + try { + if ("log".equals(type)) { + xml = xstream.toXML(logBean); + } else { + xml = xstream.toXML(dailyBean); + } + // 将XML字符串写入文件,并指定字符编码为UTF-8 + FileOutputStream fos = new FileOutputStream(path); + OutputStreamWriter writer = new OutputStreamWriter(fos, "GBK"); + writer.write(xml); + writer.close(); + System.out.println("文件保存成功"); + } catch (IOException e) { + throw new RuntimeException(e); + } + if (new File(path).exists()) { + System.out.println("文件存在,数据保存成功"); +// System.exit(0); + } + } + + public static void main(String[] args) throws ParseException, InterruptedException { + String videoContent = resolveGarbledCode("E:\\bns\\config\\变电站名称.txt"); + String lineContent = resolveGarbledCode("E:\\bns\\config\\线路名称.txt"); + String[] videoContentArrayArray = videoContent.split("--头部不可修改--"); + String[] lineContentArrayArray = lineContent.split("--头部不可修改--"); + String videoContentStr = ""; + String lineContentStr = ""; + Random random = new Random(); + Set numberSet = new HashSet<>(); + while (numberSet.size() < 2) { + int randomNumber = random.nextInt(22) + 1; // Generate random number between 1 and 35 + numberSet.add(randomNumber); + videoContentStr += videoContentArrayArray[randomNumber] + "、"; + } + videoContentStr = videoContentStr.substring(0, videoContentStr.length() - 1); + Set lineNumberSet = new HashSet<>(); + while (lineNumberSet.size() < 2) { + int randomNumber = random.nextInt(35) + 1; // Generate random number between 1 and 35 + lineNumberSet.add(randomNumber); + lineContentStr += lineContentArrayArray[randomNumber] + "、"; + } + lineContentStr = lineContentStr.substring(0, lineContentStr.length() - 1); + System.out.println("videoContentStr:" + videoContentStr); + System.out.println("lineContentStr:" + lineContentStr); + } + + String[] powerSupplyStations = {"关帝庙中心供电所", "城北中心供电所", "玄庙中心供电所", "周寨中心供电所", "城郊中心供电所", "官庄中心供电所", "李庄中心供电所", "葛集中心供电所", "唐寨中心供电所", "赵屯中心供电所", "朱楼中心供电所", "砀城客服中心供电所",}; + + private String getDailyName(String text) { + String name = ""; + switch (text) { + case "关帝庙中心供电所抢修队": + name = "关帝庙"; + break; + case "城北中心供电所抢修队": + name = "城北"; + break; + case "玄庙中心供电所抢修队": + name = "玄庙"; + break; + case "周寨中心供电所抢修队": + name = "周寨"; + break; + case "城郊中心供电所抢修队": + name = "城郊"; + break; + case "官庄中心供电所抢修队": + name = "官庄"; + break; + case "李庄中心供电所抢修队": + name = "李庄"; + break; + case "葛集中心供电所抢修队": + name = "葛集"; + break; + case "唐寨中心供电所抢修队": + name = "唐寨"; + break; + case "赵屯中心供电所抢修队": + name = "赵屯"; + break; + case "朱楼中心供电所抢修队": + name = "朱楼"; + break; + case "砀城客服中心供电所抢修队": + name = "砀城客服"; + break; + } + return name; + } + + public static int getRandom(int start, int end) { + int number = new Random().nextInt(end - start + 1) + start; + return number; + } + + public void addExercisePlan(String type, String company, int code) throws InterruptedException { + Thread.sleep(3000); + //添加计划 + addPlan(type, company, code); + //审核计划 +// auditPlan(type, company); +// String projectName = "通信"; + //执行计划 +// try { + executePlan(type, company, ""); +// }catch (Exception e){ +// while (true){ +// WebElement webElement = webDriver.findElement(By.xpath("/html/body/div/div/div/div[2]/div[1]/section/div/section/section/div/div[3]/table/tbody/tr[1]/td[9]/div")); +// if (!StringHelper.isEmptyAndNull(webElement.getText())){ +// executePlan("","",""); +// } +// } +// } + } + + private void executePlan(String type, String company, String projectName) throws InterruptedException { + Thread.sleep(5000); + webDriver.findElement(By.xpath("//*[@id=\"pane-sec\"]/section/header/form/div[1]/div[8]/div/div/button[2]")).click(); + Thread.sleep(20000); + String checkContent = resolveGarbledCode("E:\\bns\\config\\检查计划评价.txt"); + String[] checkContentArrayArray = checkContent.split("检查评价:"); + //勾选计划 + webDriver.findElement(By.xpath("//*[@id=\"pane-sec\"]/section/main/section/main/div/div[3]/table/tbody/tr[1]")).click(); + Thread.sleep(2000); + //点击执行按钮--打开选择被检查对象 + webDriver.findElement(By.xpath("/html/body/div[1]/section/div[1]/div[2]/div[2]/section/main/section/header/button[4]")).click(); + Thread.sleep(5000); + + + webDriver.switchTo().defaultContent(); // 退出第一个同级 iframe + WebElement body = webDriver.findElement(By.tagName("body")); // 定位主文档的 body 元素 + WebElement dutyIframe = body.findElement(By.id("plancheck-to-rccl")); + webDriver.switchTo().frame(dutyIframe); + log.info("定位到检查计划iframe-----------"); + Thread.sleep(1500); + //填写项目评价 + String appraise = ""; + webDriver.findElement(By.xpath("/html/body/div[1]/section/main/section/header/div/div/div")).click(); + Thread.sleep(1000); + webDriver.findElement(By.xpath("/html/body/div[2]/div[1]/div[1]/ul/li")).click(); + if ("日常操练".equals(type)) { + webDriver.findElement(By.xpath("/html/body/div/section/main/header/div/div[1]/div/div/div/div[4]")).click(); + appraise = checkContentArrayArray[3].trim(); + } else { + webDriver.findElement(By.xpath("/html/body/div/section/main/header/div/div[1]/div/div/div/div[3]")).click(); + appraise = checkContentArrayArray[4].trim(); + } + Thread.sleep(800); + //填写发现的问题 + webDriver.findElement(By.xpath("/html/body/div/section/main/section/form/div[2]/div[1]/div/div/textarea")).sendKeys("未发现问题"); + Thread.sleep(500); + //填写项目评分 + webDriver.findElement(By.xpath("/html/body/div/section/main/section/form/div[3]/div[1]/div/div/div/input")).sendKeys(getRandom(95, 100) + ""); + Thread.sleep(500); + + log.info("appraise:" + appraise); + Thread.sleep(1000); + webDriver.findElement(By.xpath("/html/body/div/section/main/section/form/div[3]/div[2]/div/div/textarea")).sendKeys(appraise); + Thread.sleep(500); + //点击提 + try { + webDriver.findElement(By.xpath("/html/body/div/section/main/section/form/div[4]/button[2]")).click(); + Thread.sleep(1500); + }catch (Exception e) { + log.info("div4不存在:" + appraise); + try { + webDriver.findElement(By.xpath("/html/body/div/section/main/section/form/div[3]/button[2]")).click(); + Thread.sleep(1500); + } catch (Exception a) { + log.info("div3不存在:" + appraise); + } + } + + + // /html/body/div/div/div/div[2]/div[1]/section/div/section/section/div/div[3]/table/tbody/tr[1]/td[9]/div + + } + + private void auditPlan(String type, String company) throws InterruptedException { + log.info("开始审核操作---"); + //点击待审核按钮 + webDriver.findElement(By.xpath("/html/body/div/div/div/div[1]/div/div/div/div[3]")).click(); + log.info("点击待审核按钮"); + Thread.sleep(1500); + //勾选计划 + webDriver.findElement(By.xpath("/html/body/div/div/div/div[2]/div[2]/section/div/section/section/div/div[3]/table/tbody/tr/td[1]/div/label")).click(); + log.info("点击勾选计划"); + Thread.sleep(800); + //点击审核按钮---打开审核页面 + webDriver.findElement(By.xpath("/html/body/div/div/div/div[2]/div[2]/section/div/section/header/button")).click(); + log.info("打开审核页面"); + Thread.sleep(1500); + //选择同意按钮 + webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div/div/div/div")).click(); + log.info("选择同意按钮"); + Thread.sleep(300); + webDriver.findElement(By.xpath("/html/body/div[4]/div[1]/div[1]/ul/li[1]")).click(); + Thread.sleep(300); + //点击提交按钮 + webDriver.findElement(By.xpath("/html/body/div[3]/div/div[3]/div/button[2]")).click(); + log.info("点击提交按钮"); + Thread.sleep(5000); + //勾选计划 + webDriver.findElement(By.xpath("/html/body/div/div/div/div[2]/div[2]/section/div/section/section/div/div[3]/table/tbody/tr/td[1]/div/label/span/span")).click(); + log.info("点击勾选计划"); + Thread.sleep(800); + //点击审核按钮---打开审核页面 + webDriver.findElement(By.xpath("/html/body/div/div/div/div[2]/div[2]/section/div/section/header/button")).click(); + log.info("打开审核页面"); + Thread.sleep(1500); + //选择同意按钮 + webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div/div/div/div")).click(); + log.info("选择同意按钮"); + Thread.sleep(300); + webDriver.findElement(By.xpath("/html/body/div[4]/div[1]/div[1]/ul/li[1]")).click(); + Thread.sleep(300); + //点击提交按钮 + webDriver.findElement(By.xpath("/html/body/div[3]/div/div[3]/div/button[2]")).click(); + log.info("点击提交按钮"); + Thread.sleep(5000); + log.info("结束审核操作---"); + } + + private void addPlan(String type, String company, int code) throws InterruptedException { + log.info("开始执行操作---"); + String projectName = "通信"; + //点击新增按钮 --- 打开新增页面 + webDriver.findElement(By.xpath("/html/body/div[1]/section/div[1]/div[2]/div[2]/section/main/section/header" + + "/button[1]")).click(); + Thread.sleep(2000); + //填写主题 + webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/section/header/form/div/div[1]/div/div[2]/div[1" + + "]/input")).sendKeys("对砀山公司3家供电所开展操练"); + Thread.sleep(500); + //选择操练环节 + webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/section/header/form/div/div[2]/div/div[2]")).click(); + log.info("选择操练环节-----------"); + Thread.sleep(1000); + webDriver.findElement(By.xpath("通信测试".equals(type) ? "/html/body/div[4]/div[1]/div[1]/ul/li[1]" : "/html/body" + + "/div[4]/div[1]/div[1]/ul/li[2]")).click(); + log.info("选择操练环节----------"); + Thread.sleep(500); + //选择检查操练项目 + webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/section/header/form/div/div[3]/div/div[2]")).click(); + log.info("点击检查操练项目选择框-----------"); + Thread.sleep(1000); + webDriver.findElement(By.xpath("/html/body/div[5]/div[1]/div[1]/ul/li[1]")).click(); + log.info("选择操作内容----------"); + Thread.sleep(1000); + //选择被检查单位 + webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/section/header/form/div/div[4]/div/div[2]")).click(); + log.info("点击选择被检查单位型选择框-----------"); + Thread.sleep(1000); + webDriver.findElement(By.xpath("/html/body/div[6]/div[1]/div/div/div[1]/div[1]/span[2]")).click(); + log.info("选择被检查单位----------"); + Thread.sleep(500); +// //选择被检查对象 +// webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/section/header/form/div/div[5]/div/div[2]")).click(); +// Thread.sleep(3000); +// if ("通信测试".equals(type)) { +// webDriver.findElement(By.xpath("/html/body/div[7]/div/div[2]/section/main/div[1]/div[3]/table/tbody" + +// "/tr[1]/td[1]/div/label")).click(); +// Thread.sleep(500); +// webDriver.findElement(By.xpath("/html/body/div[7]/div/div[2]/section/main/div[1]/div[3]/table/tbody" + +// "/tr[2]/td[1]/div/label")).click(); +// Thread.sleep(1000); +// webDriver.findElement(By.xpath("/html/body/div[7]/div/div[2]/section/footer/button[2]")).click(); +// Thread.sleep(2000); +// } else { +//// webDriver.findElement(By.xpath("/html/body/div[6]/div/div[2]/section/footer[1]/div/span[2]/div")).click(); +//// Thread.sleep(1000); +//// webDriver.findElement(By.xpath("/html/body/div[7]/div[1]/div[1]/ul/li[2]")).click(); +//// Thread.sleep(1000); +// webDriver.findElement(By.xpath("/html/body/div[7]/div/div[2]/section/header/form/div/section/div" + +// "[1]/div/div[2]/div/input")).sendKeys("中心"); +// Thread.sleep(1000); +// webDriver.findElement(By.xpath("/html/body/div[7]/div/div[2]/section/header/form/div/div/div/div" + +// "/button[1]")).click(); +// Thread.sleep(3000); +// int num = getRandom(1, 12); +// Random random = new Random(); +// Set numberSet = new HashSet<>(); +// +// while (numberSet.size() < 3) { +// int randomNumber = random.nextInt(5) + 1; +// numberSet.add(randomNumber); +// } +// for (int number : numberSet) { +// webDriver.findElement(By.xpath("/html/body/div[7]/div/div[2]/section/main/div[1]/div[3]/table" + +// "/tbody/tr[" + number + "]/td[1]/div/label")).click(); +// Thread.sleep(1000); +// } +// webDriver.findElement(By.xpath("/html/body/div[7]/div/div[2]/section/footer[2]/button[2]")).click(); +// Thread.sleep(2000); +// } + //提交 + webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/section/div/button[3]")).click(); + Thread.sleep(3000); + } + +} diff --git a/src/main/java/com/bonus/autoweb/TestMain.java b/src/main/java/com/bonus/autoweb/TestMain.java new file mode 100644 index 0000000..4716430 --- /dev/null +++ b/src/main/java/com/bonus/autoweb/TestMain.java @@ -0,0 +1,1044 @@ +package com.bonus.autoweb; + +import com.bonus.autoweb.UI.entity.WeatherData; +import com.bonus.autoweb.base.AutoMain; +import com.bonus.autoweb.base.AutoUtils; +import com.bonus.autoweb.base.DataConfig; +import com.bonus.autoweb.task.AutoWebTask; +import com.google.gson.Gson; +import com.jacob.activeX.ActiveXComponent; +import com.jacob.com.ComFailException; +import com.jacob.com.Dispatch; +import com.jacob.com.Variant; +import lombok.SneakyThrows; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.sound.sampled.*; +import java.io.File; +import java.io.IOException; +import java.text.ParseException; +import java.util.*; +import java.util.concurrent.TimeUnit; + +/** + * 系统测试 + * + * @author 24526 + */ +public class TestMain { + private static Logger log = LoggerFactory.getLogger(TestMain.class); + + public static void main(String[] args) throws Exception { + log.info("执行任务开始。。。。。。"); +// testRCCL(); +// testqd(); +// testjjb(); +// testGetData(); +// testWeather(); +// testDailrb(); +// start("工作人员请注意,桌号8001顾客正在寻求帮助!!"); +// testLog(); +// changeTodayPersonaTask(); +// readAccount(); +// updateYesterdaySAccount(); +// readAccount(); + new Thread(new Runnable() { + @SneakyThrows + @Override + public void run() { + try { + new TestMain().autoJob(); + } catch (Exception e) { + e.printStackTrace(); + log.error("错误信息", e); + } + } + }).start(); +// for (int i = 1; i < 6; i++) { +// AutoWebTask autoWebTask = new AutoWebTask(); +// if (i == 1 || i == 5 || i == 4) { +// System.out.println(autoWebTask.checkIsUpload(2, 1, DataConfig.USER_NAME3, DataConfig.PASS3, i, 1)); +// System.out.println(autoWebTask.checkIsUpload(2, 1, DataConfig.USER_NAME3, DataConfig.PASS3, i, 2)); +// } else { +// System.out.println(autoWebTask.checkIsUpload(2, 1, DataConfig.USER_NAME3, DataConfig.PASS3, i, 1)); +// } +// +// } +// testLogPreview(); + } + + private static void testLogPreview() { + AutoWebTask autoWebTask = new AutoWebTask(); +// autoWebTask.logPreview(1, DataConfig.USER_NAME3, DataConfig.PASS3); + } + + private static void testWeather() throws InterruptedException, IOException { + OkHttpClient client = new OkHttpClient().newBuilder() + .connectTimeout(180, TimeUnit.SECONDS) + .readTimeout(180, TimeUnit.SECONDS) + .writeTimeout(180, TimeUnit.SECONDS) + .build(); + + String dataUrl = DataConfig.weatherUrl; + log.info("dataUrl:" + dataUrl); + Request request = new Request.Builder() + .url(dataUrl) + .get() + .build(); + Response response; + String result; + try { + response = client.newCall(request).execute(); + log.info("response:" + response); + result = response.body().string(); + log.info("result:" + result); + Gson gson = new Gson(); + WeatherData weatherData = gson.fromJson(result, WeatherData.class); + log.info("------weatherData:" + weatherData); + WeatherData.WeatherDataChild weatherDataChild = weatherData.getData(); + log.info("------weatherDataChild:" + weatherDataChild); + String city = weatherDataChild.getCity(); + log.info("city:" + city); + String weatherNoon = weatherDataChild.getWeatherNoon(); + log.info("weatherNoon:" + weatherNoon); + String weatherNight = weatherDataChild.getWeatherNight(); + log.info("weatherNight:" + weatherNight); + String minTemperature = weatherDataChild.getMinTemperature(); + log.info("minTemperature:" + minTemperature); + String maxTemperature = weatherDataChild.getMaxTemperature(); + log.info("maxTemperature:" + maxTemperature); + } catch (IOException e) { + throw new IOException("天气get请求失败", e); + } + } + + + //签到签退测试 + private static void testqd() { + String content = GetBasicData.resolveGarbledCode("E:\\bns\\config\\account.txt"); + String date = content.toString().split(";")[0].split(":")[1]; + String num = content.toString().split(";")[1].split(":")[1]; + if ("1".equals(num)) { + log.info("xgd,yj签到签退任务"); + } else { + log.info("zkj,zh签到签退任务"); + } + } + + //账号更新测试 + private static void changeTodayPersonaTask() throws IOException { + AutoWebTask autoWebTask = new AutoWebTask(); + autoWebTask.changeTodayPersonaTask(DataConfig.USER_NAME3, DataConfig.PASS3); + } + + //更新昨日账号 + private static void updateYesterdaySAccount() throws IOException { + String value = GetBasicData.resolveGarbledCode("E:\\bns\\config\\今日值班账号.txt"); + AutoUtils.write("E:\\bns\\config\\昨日值班账号.txt", value); + } + + private static void readAccount() { + String todayContent = GetBasicData.resolveGarbledCode("E:\\bns\\config\\今日值班账号.txt"); + String yesterdayContent = GetBasicData.resolveGarbledCode("E:\\bns\\config\\昨日值班账号.txt"); + //今日签到值班人员 + String todaySignInPerson = todayContent.toString().split(";")[0].split(":")[1]; + String todaySignInPersonPassword = todayContent.toString().split(";")[1].split(":")[1]; + + String todaySignInPerson1 = todayContent.toString().split(";")[2].split(":")[1]; + String todaySignInPersonPassword1 = todayContent.toString().split(";")[3].split(":")[1]; + + System.out.println(todaySignInPerson + ":" + todaySignInPersonPassword); + System.out.println(todaySignInPerson1 + ":" + todaySignInPersonPassword1); + //昨日签退人员 + String yesterdaySignOutPerson = yesterdayContent.toString().split(";")[0].split(":")[1]; + String yesterdaySignOutPersonPassword = yesterdayContent.toString().split(";")[1].split(":")[1]; + String yesterdaySignOutPerson1 = yesterdayContent.toString().split(";")[2].split(":")[1]; + String yesterdaySignOutPersonPassword1 = yesterdayContent.toString().split(";")[3].split(":")[1]; + System.out.println(yesterdaySignOutPerson + ":" + yesterdaySignOutPersonPassword); + System.out.println(yesterdaySignOutPerson1 + ":" + yesterdaySignOutPersonPassword1); + } + + // + private static void testjjb() { + AutoWebTask autoWebTask = new AutoWebTask(); + autoWebTask.dutyChangeTask1(2, DataConfig.USER_NAME1, DataConfig.PASS1); + } + + //自动获取数据测试 + private static void testGetData() throws ParseException, InterruptedException { + AutoWebTask autoWebTask = new AutoWebTask(); + Thread.sleep(2000); + autoWebTask.getCaoLianData(2); + Thread.sleep(2000); + autoWebTask.getYuJingData(2); + Thread.sleep(2000); + GetBasicData.getYuJingActionBasicData(2); + } + + //日报填写测试 + private static void testDailrb() { + try { + //操作日报 + //日报审核工作 + AutoWebTask autoWebTask = new AutoWebTask(); + autoWebTask.dutyAddDailyLogsTask(1, DataConfig.USER_NAME1, DataConfig.PASS1); + Thread.sleep(1000); + } catch (Exception e) { + e.printStackTrace(); + } + } + + //日常操练测试 + private static void testRCCL() throws InterruptedException { + int addExercisePlan = 0; + try { + AutoWebTask autoWebTask = new AutoWebTask(); + Thread.sleep(2000); + addExercisePlan = autoWebTask.addExercisePlan("日常操练", "", 0, DataConfig.USER_NAME3, DataConfig.PASS3); + System.out.println("执行成功" + addExercisePlan); + } catch (Exception e) { + e.printStackTrace(); + } + } + + //日志填写测试 + private static int testLog() { + int count = 0; + try { + //操作日志 + AutoWebTask autoWebTask = new AutoWebTask(); + autoWebTask.dutyAddLogsTask(2, DataConfig.USER_NAME1, DataConfig.PASS1); + count = 1; + Thread.sleep(1000); + log.info("count", count); + System.out.println(count); + } catch (Exception e) { + e.printStackTrace(); + } + return count; + } + + private void autoAddPlan() throws InterruptedException { + AutoWebTask autoWebTask = new AutoWebTask(); + int addExercisePlan = 0; + while (true) { + //延迟30s---120s + int time = randNum(30, 120); + log.info("随机时间为:" + time); + try { + Thread.sleep(1000 * time); + } catch (Exception e) { + log.error("时间", e); + } + log.info("服务正在运行。。。" + new Date()); + if (DateTimeUtils.isEffectiveDate("09:00", "10:30")) { + getTime(1200); + String content = GetBasicData.resolveGarbledCode("E:\\bns\\config\\account.txt"); + String date = content.toString().split(";")[0].split(":")[1]; + String num = content.toString().split(";")[1].split(":")[1]; + if (addExercisePlan == 0) { + if ("1".equals(num)) { + addExercisePlan = autoWebTask.addExercisePlan("通信测试", "", 0, DataConfig.USER_NAME3, DataConfig.PASS3); + Thread.sleep(2000); + addExercisePlan = autoWebTask.addExercisePlan("日常操练", "", 0, DataConfig.USER_NAME3, DataConfig.PASS3); + Thread.sleep(2000); + } else { + addExercisePlan = autoWebTask.addExercisePlan("通信测试", "", 0, DataConfig.USER_NAME1, DataConfig.PASS1); + Thread.sleep(2000); + addExercisePlan = autoWebTask.addExercisePlan("日常操练", "", 0, DataConfig.USER_NAME1, DataConfig.PASS1); + Thread.sleep(2000); + } + + //登录操作---陈亚账号 + + } +// if (addExercisePlan == 0){ +// autoWebTask.addExercisePlan("日常操练","萧县",4,DataConfig.USER_NAME3,DataConfig.PASS3); +// } + } else if (DateTimeUtils.isEffectiveDate("20:05", "20:08")) { + addExercisePlan = 0; + } + } + } + + /** + * 自动化任务 + * + * @throws Exception + */ + private void autoJob() throws InterruptedException { + AutoWebTask autoWebTask = new AutoWebTask(); + + int logGatherCount = 0; + int dailyGatherCount = 0; + int logGatherCount1 = 0; + int dailyGatherCount1 = 0; + + int signInzao = 0; + int signInzao2 = 0; + int signInwan = 0; + int signInwan2 = 0; + int dailyzao = 0; + int dailywan = 0; + int jjbzao = 0; + int jjbzao2 = 0; + int jjbwan = 0; + int jjbwan2 = 0; + int signOutzao = 0; + int signOutzao2 = 0; + int signOutwan = 0; + int signOutwan2 = 0; + int logzao = 0; + int logwan = 0; + int resetCode = 0; + int resetCode1 = 0; + + int addExercisePlan = 0; + + while (true) { + //延迟30s---120s + int time = randNum(30, 120); + log.info("随机时间为:" + time); + try { + Thread.sleep(1000 * time); + } catch (Exception e) { + log.error("时间", e); + } + log.info("服务正在运行。。。" + new Date()); +// String content = GetBasicData.resolveGarbledCode("E:\\bns\\config\\account.txt"); +// String date = content.toString().split(";")[0].split(":")[1]; +// String num = content.toString().split(";")[1].split(":")[1]; + String todayContent = GetBasicData.resolveGarbledCode("E:\\bns\\config\\今日值班账号.txt"); + String yesterdayContent = GetBasicData.resolveGarbledCode("E:\\bns\\config\\昨日值班账号.txt"); + //今日签到值班人员 + String todaySignInPerson = todayContent.toString().split(";")[0].split(":")[1]; + String todaySignInPersonPassword = todayContent.toString().split(";")[1].split(":")[1]; + + String todaySignInPerson1 = todayContent.toString().split(";")[2].split(":")[1]; + String todaySignInPersonPassword1 = todayContent.toString().split(";")[3].split(":")[1]; + + System.out.println(todaySignInPerson + ":" + todaySignInPersonPassword); + System.out.println(todaySignInPerson1 + ":" + todaySignInPersonPassword1); + //昨日签退人员 + String yesterdaySignOutPerson = yesterdayContent.toString().split(";")[0].split(":")[1]; + String yesterdaySignOutPersonPassword = yesterdayContent.toString().split(";")[1].split(":")[1]; + String yesterdaySignOutPerson1 = yesterdayContent.toString().split(";")[2].split(":")[1]; + String yesterdaySignOutPersonPassword1 = yesterdayContent.toString().split(";")[3].split(":")[1]; + if (DateTimeUtils.isEffectiveDate("18:01", "18:15")) { + //进行日报信息系统采集及获取工作 + try { + if (logGatherCount == 0) { + logGatherCount = autoWebTask.getCaoLianData(1); + + } + Thread.sleep(3000); + if (dailyGatherCount == 0) { + dailyGatherCount = autoWebTask.getYuJingData(1); + Thread.sleep(2000); + GetBasicData.getYuJingActionBasicData(1); + } + } catch (Exception e) { + log.error("信息采集工作", e); + } + } else if (DateTimeUtils.isEffectiveDate("06:01", "06:30")) { + //进行日志信息系统采集及获取工作 + + } else if (DateTimeUtils.isEffectiveDate("05:00", "05:10")) { + //TODO 更新今日 + try { + autoWebTask.changeTodayPersonaTask(todaySignInPerson, todaySignInPersonPassword); + } catch (IOException e) { + log.error("更新早上打卡人员", e); + } + } else if (DateTimeUtils.isEffectiveDate("06:31", "06:59")) { + //自动完成当值值班日报(早报)填写上报 + if (dailyzao == 0) { + getTime(600); + try { +// if("1".equals(num)){ +// dailyzao = autoWebTask.dutyAddDailyLogsTask(1,DataConfig.USER_NAME1,DataConfig.PASS1); +// }else { +// dailyzao = autoWebTask.dutyAddDailyLogsTask(1,DataConfig.USER_NAME3,DataConfig.PASS3); +// } + dailyzao = autoWebTask.dutyAddDailyLogsTask(1, yesterdaySignOutPerson, yesterdaySignOutPersonPassword); + if (dailyzao == 1) { + int code = autoWebTask.checkIsUpload(1, 1, DataConfig.USER_NAME3, DataConfig.PASS3, 2, 1); + if (code == 0) { + dailyzao = autoWebTask.dutyAddDailyLogsTask(1, yesterdaySignOutPerson, yesterdaySignOutPersonPassword); + } + } + } catch (Exception e) { + log.error("日报工作", e); + } + } + } else if (DateTimeUtils.isEffectiveDate("07:01", "07:30")) { + //完成值班日志填写提交(晚班日志,此次值班日志为总结前一天晚上的情况) + if (logzao == 0) { + getTime(1000); + try { +// if("1".equals(num)){ +// logzao = autoWebTask.dutyAddLogsTask(1,DataConfig.USER_NAME1,DataConfig.PASS1); +// }else { +// logzao = autoWebTask.dutyAddLogsTask(1,DataConfig.USER_NAME3,DataConfig.PASS3); +// } + logzao = autoWebTask.dutyAddLogsTask(1, yesterdaySignOutPerson, yesterdaySignOutPersonPassword); + if (logzao == 1) { + int code = autoWebTask.checkIsUpload(1, 1, DataConfig.USER_NAME3, DataConfig.PASS3, 3, 1); + if (code == 0) { + logzao = autoWebTask.dutyAddLogsTask(1, yesterdaySignOutPerson, yesterdaySignOutPersonPassword); + } + } + } catch (Exception e) { + log.error("日志工作", e); + } + } + } else if (DateTimeUtils.isEffectiveDate("07:31", "07:50")) { + //自动完成当值值班签到(值班主任、值班人员都要签到) +// if ("error".equals(content)) { +// log.error("读取前一天人员数据错误"); +// }else { +// log.info("昨天的日期:" + date + "昨天的账号类别:" + num); +// if (signInzao == 0 && signInzao2 == 0){ +// getTime(600); +// } +// if ("1".equals(num)){ +// if (signInzao == 0) { +// log.info("陈亚账号开始打卡任务---------------------"); +// //使用陈亚账号签到 +// try { +// signInzao = autoWebTask.dutySigin(1, 1, DataConfig.USER_NAME3, DataConfig.PASS3); +// } catch (Exception e) { +// log.error("陈亚打卡任务", e); +// } +// } +// try { +// Thread.sleep(1000 * 2); +// } catch (Exception e) { +// log.error("打卡任务", e); +// } +// if (signInzao2 == 0) { +// //使用王鹤账号签到 +// log.info("王鹤账号开始打卡任务---------------------"); +// try { +// signInzao2 = autoWebTask.dutySigin(1, 1, DataConfig.USER_NAME2, DataConfig.PASS2); +// } catch (Exception e) { +// log.error("王鹤打卡任务", e); +// } +// } +// }else { +// if (signInzao == 0) { +// log.info("王晓锋账号开始打卡任务---------------------"); +// //使用王晓锋账号签到 +// try { +// signInzao = autoWebTask.dutySigin(1, 1, DataConfig.USER_NAME1, DataConfig.PASS1); +// } catch (Exception e) { +// log.error("王晓锋打卡任务", e); +// } +// } +// try { +// Thread.sleep(1000 * 2); +// } catch (Exception e) { +// log.error("打卡任务", e); +// } +// if (signInzao2 == 0) { +// //使用赵静账号签到 +// log.info("赵静账号开始打卡任务---------------------"); +// try { +// signInzao2 = autoWebTask.dutySigin(1, 1, DataConfig.USER_NAME4, DataConfig.PASS4); +// } catch (Exception e) { +// log.error("赵静打卡任务", e); +// } +// } +// +// } +// } + if (signInzao == 0 && signInzao2 == 0) { + getTime(600); + } + if (signInzao == 0) { + log.info(todaySignInPerson + "账号开始打卡任务---------------------"); + //使用王晓锋账号签到 + try { + signInzao = autoWebTask.dutySigin(1, 1, todaySignInPerson, todaySignInPersonPassword); + int code = autoWebTask.checkIsUpload(1, 1, DataConfig.USER_NAME3, DataConfig.PASS3, 1, 1); + if (code == 0) { + signInzao = autoWebTask.dutySigin(1, 1, todaySignInPerson, todaySignInPersonPassword); + } + } catch (Exception e) { + log.error(todaySignInPerson + "打卡任务", e); + } + } + try { + Thread.sleep(1000 * 2); + } catch (Exception e) { + log.error("打卡任务", e); + } + if (signInzao2 == 0) { + //使用赵静账号签到 + log.info(todaySignInPerson1 + "账号开始打卡任务---------------------"); + try { + signInzao2 = autoWebTask.dutySigin(1, 1, todaySignInPerson1, todaySignInPersonPassword1); + int code = autoWebTask.checkIsUpload(1, 1, DataConfig.USER_NAME3, DataConfig.PASS3, 1, 2); + if (code == 0) { + signInzao2 = autoWebTask.dutySigin(1, 1, todaySignInPerson1, todaySignInPersonPassword1); + } + } catch (Exception e) { + log.error(todaySignInPerson1 + "打卡任务", e); + } + } + } else if (DateTimeUtils.isEffectiveDate("07:51", "08:10")) { + if (jjbzao == 0 && jjbzao2 == 0) { + getTime(800); + } + try { + //自动在系统内完成接班(上一值完成交班后) + if (jjbzao == 0 || jjbzao2 == 0) { +// if("1".equals(num)){ +// if (jjbzao == 0){ +// jjbzao = autoWebTask.dutyChangeTask1(1,DataConfig.USER_NAME1,DataConfig.PASS1); +// } +// if (jjbzao2 == 0){ +// jjbzao2 = autoWebTask.dutyChangeTask2(1,DataConfig.USER_NAME3,DataConfig.PASS3); +// } +// }else { +// if (jjbzao == 0){ +// jjbzao = autoWebTask.dutyChangeTask1(1,DataConfig.USER_NAME3,DataConfig.PASS3); +// } +// if (jjbzao2 == 0){ +// jjbzao2 = autoWebTask.dutyChangeTask2(1,DataConfig.USER_NAME1,DataConfig.PASS1); +// } +// } + if (jjbzao == 0) { + jjbzao = autoWebTask.dutyChangeTask1(1, yesterdaySignOutPerson, yesterdaySignOutPersonPassword); + int code = autoWebTask.checkIsUpload(1, 1, DataConfig.USER_NAME3, DataConfig.PASS3, 4, 1); + if (code == 0) { + jjbzao = autoWebTask.dutyChangeTask1(1, yesterdaySignOutPerson, yesterdaySignOutPersonPassword); + } + } + if (jjbzao2 == 0) { + jjbzao2 = autoWebTask.dutyChangeTask2(1, todaySignInPerson, todaySignInPersonPassword); + int code = autoWebTask.checkIsUpload(1, 1, DataConfig.USER_NAME3, DataConfig.PASS3, 4, 2); + if (code == 0) { + jjbzao2 = autoWebTask.dutyChangeTask2(1, todaySignInPerson, todaySignInPersonPassword); + } + } + } + } catch (Exception e) { + log.error("交接班", e); + } + } else if (DateTimeUtils.isEffectiveDate("08:15", "08:30")) { + if (signOutzao == 0 && signOutzao2 == 0) { + getTime(500); + } + //自动在系统内完成签退 +// if ("1".equals(num)){ +// if (signOutzao == 0) { +// try { +// signOutzao = autoWebTask.dutySignOutTask(1, DataConfig.USER_NAME1, DataConfig.PASS1); +// }catch (Exception e){ +// log.error("签退",e); +// } +// } +// try { +// Thread.sleep(1000 * 3); +// } catch (Exception e) { +// log.error("时间", e); +// } +// if (signOutzao2 == 0){ +// try { +// signOutzao2 = autoWebTask.dutySignOutTask(1, DataConfig.USER_NAME4, DataConfig.PASS4); +// }catch (Exception e){ +// log.error("签退",e); +// } +// } +// }else { +// if (signOutzao == 0) { +// try { +// signOutzao = autoWebTask.dutySignOutTask(1, DataConfig.USER_NAME3, DataConfig.PASS3); +// }catch (Exception e){ +// log.error("签退",e); +// } +// } +// try { +// Thread.sleep(1000 * 3); +// } catch (Exception e) { +// log.error("时间", e); +// } +// if (signOutzao2 == 0){ +// try { +// signOutzao2 = autoWebTask.dutySignOutTask(1, DataConfig.USER_NAME2, DataConfig.PASS2); +// }catch (Exception e){ +// log.error("签退",e); +// } +// } +// } + if (signOutzao == 0) { + try { + signOutzao = autoWebTask.dutySignOutTask(1, yesterdaySignOutPerson, yesterdaySignOutPersonPassword); + int code = autoWebTask.checkIsUpload(1, 1, DataConfig.USER_NAME3, DataConfig.PASS3, 5, 1); + if (code == 0) { + signOutzao = autoWebTask.dutySignOutTask(1, yesterdaySignOutPerson, yesterdaySignOutPersonPassword); + } + } catch (Exception e) { + log.error("签退", e); + } + } + try { + Thread.sleep(1000 * 3); + } catch (Exception e) { + log.error("时间", e); + } + if (signOutzao2 == 0) { + try { + signOutzao2 = autoWebTask.dutySignOutTask(1, yesterdaySignOutPerson1, yesterdaySignOutPersonPassword1); + int code = autoWebTask.checkIsUpload(1, 1, DataConfig.USER_NAME3, DataConfig.PASS3, 5, 2); + if (code == 0) { + signOutzao2 = autoWebTask.dutySignOutTask(1, yesterdaySignOutPerson1, yesterdaySignOutPersonPassword1); + } + } catch (Exception e) { + log.error("签退", e); + } + } + } else if (DateTimeUtils.isEffectiveDate("08:40", "09:20")) { + if (addExercisePlan == 0) { + getTime(1200); + } + try { + if (addExercisePlan == 0) { + addExercisePlan = autoWebTask.addExercisePlan("通信测试", "", 0, DataConfig.USER_NAME3, DataConfig.PASS3); + Thread.sleep(1000 * 700); + addExercisePlan = autoWebTask.addExercisePlan("日常操练", "", 0, DataConfig.USER_NAME3, DataConfig.PASS3); + Thread.sleep(2000); + } + } catch (Exception e) { + log.error("日常操练", e); + } + } else if (DateTimeUtils.isEffectiveDate("12:30", "15:50")) { + //进行日志信息系统采集及获取工作 + try { + if (logGatherCount1 == 0) { + logGatherCount1 = autoWebTask.getCaoLianData(2); + } + Thread.sleep(3000); + if (dailyGatherCount1 == 0) { + dailyGatherCount1 = autoWebTask.getYuJingData(2); + Thread.sleep(2000); + GetBasicData.getYuJingActionBasicData(2); + } + } catch (Exception e) { + log.error("信息采集工作", e); + } + } else if (DateTimeUtils.isEffectiveDate("17:01", "17:15")) { + //自动完成当值值班日报(晚报)填写上报 + if (dailywan == 0) { + getTime(600); + try { +// if ("1".equals(num)) { +// dailywan = autoWebTask.dutyAddDailyLogsTask(2,DataConfig.USER_NAME3,DataConfig.PASS3); +// }else { +// dailywan = autoWebTask.dutyAddDailyLogsTask(2,DataConfig.USER_NAME1,DataConfig.PASS1); +// } + dailywan = autoWebTask.dutyAddDailyLogsTask(2, todaySignInPerson, todaySignInPersonPassword); + int code = autoWebTask.checkIsUpload(2, 1, DataConfig.USER_NAME3, DataConfig.PASS3, 2, 1); + if (code == 0) { + dailywan = autoWebTask.dutyAddDailyLogsTask(2, todaySignInPerson, todaySignInPersonPassword); + } + } catch (Exception e) { + log.error("日报工作", e); + } + } + } else if (DateTimeUtils.isEffectiveDate("16:46", "17:00")) { + //完成值班日志填写提交(白班日志,此次值班日志为总结前一天晚上的情况) + if (logwan == 0) { + getTime(600); + try { +// if ("1".equals(num)) { +// logwan = autoWebTask.dutyAddLogsTask(2,DataConfig.USER_NAME3,DataConfig.PASS3); +// }else { +// logwan = autoWebTask.dutyAddLogsTask(2,DataConfig.USER_NAME1,DataConfig.PASS1); +// } + logwan = autoWebTask.dutyAddLogsTask(2, todaySignInPerson, todaySignInPersonPassword); + int code = autoWebTask.checkIsUpload(2, 1, DataConfig.USER_NAME3, DataConfig.PASS3, 3, 1); + if (code == 0) { + logwan = autoWebTask.dutyAddLogsTask(2, todaySignInPerson, todaySignInPersonPassword); + } + } catch (Exception e) { + log.error("日志工作", e); + } + } + } else if (DateTimeUtils.isEffectiveDate("16:31", "16:45")) { + //自动完成当值值班签到(值班主任、值班人员都要签到) +// if ("error".equals(content)) { +// log.error("读取前一天人员数据错误"); +// }else { +// log.info("昨天的日期:" + date + "昨天的账号类别:" + num); +// if(signInwan == 0 && signInwan2 == 0){ +// getTime(600); +// } +// if ("1".equals(num)){ +// if (signInwan == 0) { +// log.info("陈亚账号开始打卡任务---------------------"); +// //使用陈亚账号签到 +// try { +// signInwan = autoWebTask.dutySigin(2, 1, DataConfig.USER_NAME3, DataConfig.PASS3); +// } catch (Exception e) { +// log.error("陈亚打卡任务", e); +// } +// } +// try { +// Thread.sleep(1000 * 2); +// } catch (Exception e) { +// log.error("打卡任务", e); +// } +// if (signInwan2 == 0) { +// //使用王鹤账号签到 +// log.info("王鹤账号开始打卡任务---------------------"); +// try { +// signInwan2 = autoWebTask.dutySigin(2, 1, DataConfig.USER_NAME2, DataConfig.PASS2); +// } catch (Exception e) { +// log.error("王鹤打卡任务", e); +// } +// } +// }else { +// if (signInwan == 0) { +// log.info("王晓锋账号开始打卡任务---------------------"); +// //使用王晓锋账号签到 +// try { +// signInwan = autoWebTask.dutySigin(2, 1, DataConfig.USER_NAME1, DataConfig.PASS1); +// } catch (Exception e) { +// log.error("王晓锋打卡任务", e); +// } +// } +// try { +// Thread.sleep(1000 * 2); +// } catch (Exception e) { +// log.error("打卡任务", e); +// } +// if (signInwan2 == 0) { +// //使用赵静账号签到 +// log.info("赵静账号开始打卡任务---------------------"); +// try { +// signInwan2 = autoWebTask.dutySigin(2, 1, DataConfig.USER_NAME4, DataConfig.PASS4); +// } catch (Exception e) { +// log.error("赵静打卡任务", e); +// } +// } +// } +// } + if (signInwan == 0 && signInwan2 == 0) { + getTime(600); + } + if (signInwan == 0) { + log.info(todaySignInPerson + "账号开始打卡任务---------------------"); + //使用王晓锋账号签到 + try { + signInwan = autoWebTask.dutySigin(2, 1, todaySignInPerson, todaySignInPersonPassword); + int code = autoWebTask.checkIsUpload(2, 1, DataConfig.USER_NAME3, DataConfig.PASS3, 1, 1); + if (code == 0) { + signInwan = autoWebTask.dutySigin(2, 1, todaySignInPerson, todaySignInPersonPassword); + } + } catch (Exception e) { + log.error("王晓锋打卡任务", e); + } + } + try { + Thread.sleep(1000 * 2); + } catch (Exception e) { + log.error("打卡任务", e); + } + if (signInwan2 == 0) { + //使用赵静账号签到 + log.info(todaySignInPerson1 + "账号开始打卡任务---------------------"); + try { + signInwan2 = autoWebTask.dutySigin(2, 1, todaySignInPerson1, todaySignInPersonPassword1); + int code = autoWebTask.checkIsUpload(2, 1, DataConfig.USER_NAME3, DataConfig.PASS3, 1, 2); + if (code == 0) { + signInwan2 = autoWebTask.dutySigin(2, 1, todaySignInPerson1, todaySignInPersonPassword1); + } + } catch (Exception e) { + log.error("打卡任务", e); + } + } + } else if (DateTimeUtils.isEffectiveDate("17:31", "17:45")) { + //自动在系统内完成接班(上一值完成交班后) + if (jjbwan == 0 && jjbwan2 == 0) { + getTime(600); + } + try { + if (jjbwan == 0 || jjbwan2 == 0) { +// if ("1".equals(num)) { +// if (jjbwan == 0) { +// jjbwan = autoWebTask.dutyChangeTask1(2, DataConfig.USER_NAME3, DataConfig.PASS3); +// } +// if (jjbwan2 == 0) { +// jjbwan2 = autoWebTask.dutyChangeTask2(2, DataConfig.USER_NAME3, DataConfig.PASS3); +// } +// } else { +// if (jjbwan == 0) { +// jjbwan = autoWebTask.dutyChangeTask1(2, DataConfig.USER_NAME1, DataConfig.PASS1); +// } +// if (jjbwan2 == 0) { +// jjbwan2 = autoWebTask.dutyChangeTask2(2, DataConfig.USER_NAME1, DataConfig.PASS1); +// } +// } + if (jjbwan == 0) { + jjbwan = autoWebTask.dutyChangeTask1(2, yesterdaySignOutPerson, yesterdaySignOutPersonPassword); + int code = autoWebTask.checkIsUpload(2, 1, DataConfig.USER_NAME3, DataConfig.PASS3, 4, 1); + if (code == 0) { + jjbwan = autoWebTask.dutyChangeTask1(2, yesterdaySignOutPerson, yesterdaySignOutPersonPassword); + } + } + if (jjbwan2 == 0) { + jjbwan2 = autoWebTask.dutyChangeTask2(2, todaySignInPerson, todaySignInPersonPassword); + int code = autoWebTask.checkIsUpload(2, 1, DataConfig.USER_NAME3, DataConfig.PASS3, 4, 2); + if (code == 0) { + jjbwan2 = autoWebTask.dutyChangeTask2(2, todaySignInPerson, todaySignInPersonPassword); + } + } + } + } catch (Exception e) { + log.error("交接班", e); + } + } else if (DateTimeUtils.isEffectiveDate("17:46", "18:00")) { + if (signOutwan == 0 && signOutwan2 == 0) { + getTime(500); + } +// //自动在系统内完成签退 +// if ("1".equals(num)) { +// if (signOutwan == 0) { +// try { +// signOutwan = autoWebTask.dutySignOutTask(2, DataConfig.USER_NAME3, DataConfig.PASS3); +// } catch (Exception e) { +// log.error("签退", e); +// } +// } +// try { +// Thread.sleep(1000 * 3); +// } catch (Exception e) { +// log.error("时间", e); +// } +// if (signOutwan2 == 0) { +// try { +// signOutwan2 = autoWebTask.dutySignOutTask(2, DataConfig.USER_NAME2, DataConfig.PASS2); +// } catch (Exception e) { +// log.error("签退", e); +// } +// } +// } else { +// if (signOutwan == 0) { +// try { +// signOutzao = autoWebTask.dutySignOutTask(2, DataConfig.USER_NAME1, DataConfig.PASS1); +// } catch (Exception e) { +// log.error("签退", e); +// } +// } +// try { +// Thread.sleep(1000 * 3); +// } catch (Exception e) { +// log.error("时间", e); +// } +// if (signOutwan2 == 0) { +// try { +// signOutwan2 = autoWebTask.dutySignOutTask(2, DataConfig.USER_NAME4, DataConfig.PASS4); +// } catch (Exception e) { +// log.error("签退", e); +// } +// } +// } + if (signOutwan == 0) { + try { + signOutwan = autoWebTask.dutySignOutTask(2, todaySignInPerson, todaySignInPersonPassword); + int code = autoWebTask.checkIsUpload(2, 1, DataConfig.USER_NAME3, DataConfig.PASS3, 5, 1); + if (code == 0) { + signOutwan = autoWebTask.dutySignOutTask(2, todaySignInPerson, todaySignInPersonPassword); + } + } catch (Exception e) { + log.error("签退", e); + } + } + try { + Thread.sleep(1000 * 3); + } catch (Exception e) { + log.error("时间", e); + } + if (signOutwan2 == 0) { + try { + signOutwan2 = autoWebTask.dutySignOutTask(2, todaySignInPerson1, todaySignInPersonPassword1); + int code = autoWebTask.checkIsUpload(2, 1, DataConfig.USER_NAME3, DataConfig.PASS3, 5, 2); + if (code == 0) { + signOutwan2 = autoWebTask.dutySignOutTask(2, todaySignInPerson1, todaySignInPersonPassword1); + } + } catch (Exception e) { + log.error("签退", e); + } + } + } else if (DateTimeUtils.isEffectiveDate("11:00", "11:05")) { + log.info("-----开始更新上次需签退账号-----"); + if (resetCode == 0) { + String value = GetBasicData.resolveGarbledCode("E:\\bns\\config\\今日值班账号.txt"); + resetCode = AutoUtils.write("E:\\bns\\config\\昨日值班账号.txt", value); + } + } else if (DateTimeUtils.isEffectiveDate("18:20", "18:25")) { + log.info("-----开始更新下次需签退账号-----"); + if (resetCode1 == 0) { + String value = GetBasicData.resolveGarbledCode("E:\\bns\\config\\今日值班账号.txt"); + resetCode1 = AutoUtils.write("E:\\bns\\config\\昨日值班账号.txt", value); + } + } else if (DateTimeUtils.isEffectiveDate("20:05", "20:08")) {//重置标识 + log.info("-----开始重置各标识符-----"); + logGatherCount = 0; + logGatherCount1 = 0; + dailyGatherCount = 0; + dailyGatherCount1 = 0; + signInzao = 0; + signInzao2 = 0; + signInwan = 0; + signInwan2 = 0; + dailyzao = 0; + dailywan = 0; + jjbzao = 0; + jjbzao2 = 0; + jjbwan = 0; + jjbwan2 = 0; + signOutzao = 0; + signOutzao2 = 0; + signOutwan = 0; + signOutwan2 = 0; + logzao = 0; + logwan = 0; + resetCode = 0; + resetCode1 = 0; + addExercisePlan = 0; + } else { + continue; + } + } + } + + private static List getARandomCollectionOfData() { + Random random = new Random(); + int minCount = 3; // 最小数量 + int maxCount = 5; // 最大数量 + int count = random.nextInt(maxCount - minCount + 1) + minCount; // 随机生成数量 + List numbers = new ArrayList<>(); + while (numbers.size() < count) { + int randomNumber = random.nextInt(6) + 2; // 随机生成2到7的数字 + if (!numbers.contains(randomNumber)) { + numbers.add(randomNumber); + } + } + Collections.shuffle(numbers); + return numbers; + } + + private void getTime(int code) { + int time = randNum(0, code); + log.info("随机时间为:" + time); + try { + Thread.sleep(1000 * time); + } catch (Exception e) { + log.error("时间", e); + } + } + + /** + * 随机产生随机数,包含num1和num2 + * + * @param num1 + * @param num2 + * @return + */ + private int randNum(int num1, int num2) { + int result = (int) (num1 + Math.random() * (num2 - num1 + 1)); + return result; + } + + + public static void start(String text) { + log.info("进入播报模式"); + ActiveXComponent ax = null; + try { + ax = new ActiveXComponent("Sapi.SpVoice"); + // 运行时输出语音内容 + Dispatch spVoice = ax.getObject(); + // 音量 0-100 + ax.setProperty("Volume", new Variant(100)); + // 语音朗读速度 -10 到 +10 + ax.setProperty("Rate", new Variant(1)); + // 执行朗读 +// Dispatch.call(spVoice, "Speak", new Variant(text)); + // 下面是构建文件流把生成语音文件 + ax = new ActiveXComponent("Sapi.SpFileStream"); + Dispatch spFileStream = ax.getObject(); + ax = new ActiveXComponent("Sapi.SpAudioFormat"); + Dispatch spAudioFormat = ax.getObject(); + + // 设置音频流格式 + Dispatch.put(spAudioFormat, "Type", new Variant(22)); + // 设置文件输出流格式 + Dispatch.putRef(spFileStream, "Format", spAudioFormat); + // 调用输出 文件流打开方法,创建一个.wav文件 + Dispatch.call(spFileStream, "Open", new Variant("E:\\bns\\audio.wav"), new Variant(3), new Variant(true)); + // 设置声音对象的音频输出流为输出文件对象 + Dispatch.putRef(spVoice, "AudioOutputStream", spFileStream); + // 设置音量 0到100 + Dispatch.put(spVoice, "Volume", new Variant(100)); + // 设置朗读速度 + Dispatch.put(spVoice, "Rate", new Variant(1)); + // 开始朗读 + Dispatch.call(spVoice, "Speak", new Variant(text)); + + // 关闭输出文件 + Dispatch.call(spFileStream, "Close"); + Dispatch.putRef(spVoice, "AudioOutputStream", null); + + spAudioFormat.safeRelease(); + spFileStream.safeRelease(); + spVoice.safeRelease(); + ax.safeRelease(); + showVoice(); + } catch (ComFailException e) { + log.error(e.getMessage(), e); + log.error("没有可用的音频,请连接外接设备(耳机或音箱播放)"); + } catch (Exception e) { + e.printStackTrace(); + log.error("语音播放错误:" + e.getMessage()); + } + } + + public static void showVoice() { + try { + // 获取音频输入流 + AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("E:\\bns\\audio.wav")); + // 获取音频格式 + AudioFormat audioFormat = audioInputStream.getFormat(); + // 准备数据行格式 + DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat); + // 打开数据行 + SourceDataLine dataLine = (SourceDataLine) AudioSystem.getLine(info); + dataLine.open(audioFormat); + // 开始播放音频 + dataLine.start(); + // 缓冲区大小 + int bufferSize = 4096; + byte[] buffer = new byte[bufferSize]; + int bytesRead = 0; + // 从输入流读取数据并写入数据行进行播放 + while ((bytesRead = audioInputStream.read(buffer)) != -1) { + dataLine.write(buffer, 0, bytesRead); + } + // 等待播放完成 + dataLine.drain(); + } catch (Exception e) { + e.printStackTrace(); + } + } + +} + + +