|
@@ -33,13 +33,17 @@ import org.springblade.core.tool.utils.DateUtil;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
import org.springblade.core.tool.utils.ObjectUtil;
|
|
|
import org.springblade.resource.feign.NewIOSSClient;
|
|
|
+import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.File;
|
|
|
import java.io.FileOutputStream;
|
|
|
import java.io.IOException;
|
|
|
+import java.text.ParseException;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -63,6 +67,41 @@ public class TrialDeviceInfoServiceImpl extends BaseServiceImpl<TrialDeviceInfoM
|
|
|
return this.saveOrUpdate(obj);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 修改校验状态定时任务
|
|
|
+ * cron = "0 0 1 * * ?" 每天1点执行
|
|
|
+ */
|
|
|
+ @Scheduled(cron = "0 0 1 * * ?")
|
|
|
+ public void syncUpdateIsCalibration() {
|
|
|
+ //获取所有数据
|
|
|
+ List<TrialDeviceInfo> trialDeviceInfos = baseMapper.selectList(Wrappers.<TrialDeviceInfo>lambdaQuery());
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ String format = DateUtil.format(new Date(), "yyyy-MM-dd");
|
|
|
+ try {
|
|
|
+ List<TrialDeviceInfo> updateData = new ArrayList<>();
|
|
|
+ for (TrialDeviceInfo trialDeviceInfo : trialDeviceInfos) {
|
|
|
+ if (ObjectUtil.isNotEmpty(trialDeviceInfo.getLastCalibrationTime()) && ObjectUtil.isNotEmpty(trialDeviceInfo.getCalibrationCycle())) {
|
|
|
+ String lastCalibrationTime = DateUtil.format(trialDeviceInfo.getLastCalibrationTime(), "yyyy-MM-dd");
|
|
|
+ long dayTimes = trialDeviceInfo.getCalibrationCycle() * 30 * (24 * 60 * 60 * 1000); //周期时间戳 30天1个周期
|
|
|
+ long lastCalibrationTimes = sdf.parse(lastCalibrationTime).getTime(); //上次校准时间戳
|
|
|
+ long nowTimes = sdf.parse(format).getTime(); //当前时间戳
|
|
|
+ //最近一次校验时间超过了周期,就需要再次校验
|
|
|
+ if ((dayTimes + lastCalibrationTimes) >= nowTimes) { //TODO 业务不明
|
|
|
+ //上次校准时间修改为当前时间
|
|
|
+ trialDeviceInfo.setLastCalibrationTime(DateUtil.parse(format, "yyyy-MM-dd"));
|
|
|
+ trialDeviceInfo.setIsCalibration(1); //是
|
|
|
+ updateData.add(trialDeviceInfo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //修改
|
|
|
+ this.saveOrUpdateBatch(updateData, 1000);
|
|
|
+ } catch (ParseException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public TrialDeviceInfo detail(Long id) {
|
|
|
return baseMapper.selectById(id);
|