| | |
| | | |
| | | log.info("找到 {} 台堆垛机,开始记录倾斜度数据", crnSlaves.size()); |
| | | |
| | | Date recordDate = new Date(); |
| | | Date recordTime = new Date(); |
| | | // 计算今天的开始时间(用于去重判断) |
| | | Calendar cal = Calendar.getInstance(); |
| | | cal.setTime(recordDate); |
| | | cal.setTime(recordTime); |
| | | cal.set(Calendar.HOUR_OF_DAY, 0); |
| | | cal.set(Calendar.MINUTE, 0); |
| | | cal.set(Calendar.SECOND, 0); |
| | | cal.set(Calendar.MILLISECOND, 0); |
| | | Date recordDateOnly = cal.getTime(); |
| | | Date todayStart = cal.getTime(); |
| | | Date todayEnd = new Date(todayStart.getTime() + 24 * 60 * 60 * 1000 - 1); |
| | | |
| | | int successCount = 0; |
| | | int failCount = 0; |
| | | |
| | | for (CrnSlave crnSlave : crnSlaves) { |
| | | try { |
| | | // 检查今天是否已经记录过(使用 record_time 的日期部分) |
| | | EntityWrapper<CrnTiltRecord> checkWrapper = new EntityWrapper<>(); |
| | | checkWrapper.eq("crn_no", crnSlave.getId()); |
| | | checkWrapper.ge("record_time", todayStart); |
| | | checkWrapper.le("record_time", todayEnd); |
| | | int count = crnTiltRecordService.selectCount(checkWrapper); |
| | | if (count > 0) { |
| | | log.info("堆垛机{}今天已记录过倾斜度数据,跳过", crnSlave.getId()); |
| | | continue; |
| | | } |
| | | |
| | | // 读取倾斜度数据 |
| | | CrnTiltRecord record = readTiltDataFromPLC(crnSlave); |
| | | if (record != null) { |
| | | record.setCrnNo(crnSlave.getId()); |
| | | record.setRecordDate(recordDateOnly); |
| | | record.setRecordTime(recordDate); |
| | | record.setRecordTime(recordTime); |
| | | record.setRecordType("STARTUP"); // 启动时记录 |
| | | |
| | | // 获取上次记录用于对比 |
| | | EntityWrapper<CrnTiltRecord> lastWrapper = new EntityWrapper<>(); |
| | | lastWrapper.eq("crn_no", crnSlave.getId()); |
| | | lastWrapper.orderBy("record_date", false); |
| | | lastWrapper.orderBy("record_time", false); |
| | | lastWrapper.last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"); |
| | | CrnTiltRecord lastRecord = crnTiltRecordService.selectOne(lastWrapper); |
| | |
| | | return; |
| | | } |
| | | |
| | | Date recordDate = new Date(); |
| | | Date recordTime = new Date(); |
| | | // 计算本周的开始时间(用于去重判断) |
| | | Calendar cal = Calendar.getInstance(); |
| | | cal.setTime(recordDate); |
| | | // 设置为当天的开始时间(00:00:00) |
| | | cal.setTime(recordTime); |
| | | // 设置为本周一 |
| | | int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK); |
| | | int daysFromMonday = (dayOfWeek == Calendar.SUNDAY ? 6 : dayOfWeek - Calendar.MONDAY); |
| | | cal.add(Calendar.DAY_OF_MONTH, -daysFromMonday); |
| | | cal.set(Calendar.HOUR_OF_DAY, 0); |
| | | cal.set(Calendar.MINUTE, 0); |
| | | cal.set(Calendar.SECOND, 0); |
| | | cal.set(Calendar.MILLISECOND, 0); |
| | | Date recordDateOnly = cal.getTime(); |
| | | Date weekStart = cal.getTime(); |
| | | Date weekEnd = new Date(weekStart.getTime() + 7 * 24 * 60 * 60 * 1000 - 1); |
| | | |
| | | int successCount = 0; |
| | | int failCount = 0; |
| | | |
| | | for (CrnSlave crnSlave : crnSlaves) { |
| | | try { |
| | | // 检查本周是否已经记录过 |
| | | // 检查本周是否已经记录过(使用 record_time 的日期部分) |
| | | EntityWrapper<CrnTiltRecord> wrapper = new EntityWrapper<>(); |
| | | wrapper.eq("crn_no", crnSlave.getId()); |
| | | wrapper.ge("record_date", recordDateOnly); |
| | | wrapper.le("record_date", new Date(recordDateOnly.getTime() + 24 * 60 * 60 * 1000 - 1)); |
| | | wrapper.ge("record_time", weekStart); |
| | | wrapper.le("record_time", weekEnd); |
| | | |
| | | int count = crnTiltRecordService.selectCount(wrapper); |
| | | if (count > 0) { |
| | |
| | | CrnTiltRecord record = readTiltDataFromPLC(crnSlave); |
| | | if (record != null) { |
| | | record.setCrnNo(crnSlave.getId()); |
| | | record.setRecordDate(recordDateOnly); |
| | | record.setRecordTime(recordDate); |
| | | record.setRecordTime(recordTime); |
| | | record.setRecordType("AUTO"); // 自动记录 |
| | | |
| | | // 获取上次记录用于对比 |
| | | EntityWrapper<CrnTiltRecord> lastWrapper = new EntityWrapper<>(); |
| | | lastWrapper.eq("crn_no", crnSlave.getId()); |
| | | lastWrapper.orderBy("record_date", false); |
| | | lastWrapper.orderBy("record_time", false); |
| | | lastWrapper.last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"); |
| | | CrnTiltRecord lastRecord = crnTiltRecordService.selectOne(lastWrapper); |
| | |
| | | return; |
| | | } |
| | | |
| | | Date recordDate = new Date(); |
| | | Calendar cal = Calendar.getInstance(); |
| | | cal.setTime(recordDate); |
| | | cal.set(Calendar.HOUR_OF_DAY, 0); |
| | | cal.set(Calendar.MINUTE, 0); |
| | | cal.set(Calendar.SECOND, 0); |
| | | cal.set(Calendar.MILLISECOND, 0); |
| | | Date recordDateOnly = cal.getTime(); |
| | | Date recordTime = new Date(); |
| | | |
| | | int successCount = 0; |
| | | int failCount = 0; |
| | |
| | | CrnTiltRecord record = readTiltDataFromPLC(crnSlave); |
| | | if (record != null) { |
| | | record.setCrnNo(crnSlave.getId()); |
| | | record.setRecordDate(recordDateOnly); |
| | | record.setRecordTime(recordDate); |
| | | record.setRecordTime(recordTime); |
| | | record.setRecordType("MANUAL"); // 手动触发 |
| | | |
| | | // 获取上次记录用于对比 |
| | | EntityWrapper<CrnTiltRecord> lastWrapper = new EntityWrapper<>(); |
| | | lastWrapper.eq("crn_no", crnSlave.getId()); |
| | | lastWrapper.orderBy("record_date", false); |
| | | lastWrapper.orderBy("record_time", false); |
| | | lastWrapper.last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"); |
| | | CrnTiltRecord lastRecord = crnTiltRecordService.selectOne(lastWrapper); |