|
@@ -0,0 +1,73 @@
|
|
|
|
|
+package com.lc.ibps.platform.plan.job;
|
|
|
|
|
+
|
|
|
|
|
+import com.lc.ibps.base.core.util.AppUtil;
|
|
|
|
|
+import com.lc.ibps.base.core.util.JacksonUtil;
|
|
|
|
|
+import com.lc.ibps.base.core.util.string.StringUtil;
|
|
|
|
|
+import com.lc.ibps.base.framework.table.ICommonDao;
|
|
|
|
|
+import com.lc.ibps.components.quartz.BaseJob2;
|
|
|
|
|
+import org.quartz.JobDataMap;
|
|
|
|
|
+import org.quartz.JobExecutionContext;
|
|
|
|
|
+import org.slf4j.Logger;
|
|
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
|
|
+
|
|
|
|
|
+import java.time.LocalDate;
|
|
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
|
|
+import java.util.HashMap;
|
|
|
|
|
+import java.util.Map;
|
|
|
|
|
+
|
|
|
|
|
+public class BinXiangJob extends BaseJob2 {
|
|
|
|
|
+
|
|
|
|
|
+ private static final Logger logger = LoggerFactory.getLogger(BinXiangJob.class);
|
|
|
|
|
+
|
|
|
|
|
+ private ICommonDao<?> commonDao = AppUtil.getBean(ICommonDao.class);
|
|
|
|
|
+ public static final String PLAN_TIME = "plan-time"; //default: 8,12,17
|
|
|
|
|
+ public static final String UNCONTROL_TIMES = "uncontrol-times"; //default: 4
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void executeJob(JobExecutionContext context) throws Exception {
|
|
|
|
|
+ Map<String, Object> objectMap = buildQueryParam(context);
|
|
|
|
|
+ //检查失控数据
|
|
|
|
|
+ checkUncontrolBx((String)objectMap.get(UNCONTROL_TIMES));
|
|
|
|
|
+
|
|
|
|
|
+ //创建日记录
|
|
|
|
|
+ createDailyRecord((String[])objectMap.get(PLAN_TIME));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void checkUncontrolBx(String uncontrolTimes){
|
|
|
|
|
+ String sql ="SELECT bing_xiang_id_,COUNT(id_) total FROM t_dsfbxwdjl " +
|
|
|
|
|
+ " WHERE (CONVERT(wen_du_,SIGNED) > CONVERT(wen_du_shang_xian,SIGNED) OR CONVERT(wen_du_,SIGNED) < CONVERT(wen_du_xia_xian_,SIGNED) )" +
|
|
|
|
|
+ " AND DATE(cai_ji_shi_jian_)= CURDATE() GROUP BY bing_xiang_id_ HAVING total >= 4";
|
|
|
|
|
+
|
|
|
|
|
+ //根据返回的冰箱ID,再去查当天温度记录,确定是否有连续4个点失控。
|
|
|
|
|
+ //如果有,走温度失控流程。
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ private void createDailyRecord(String[] planTime){
|
|
|
|
|
+ String sql = "SELECT * FROM t_dsfbxwdjl a, (SELECT bing_xiang_id_,MAX(cai_ji_shi_jian_) cai_ji_shi_jian_ FROM t_dsfbxwdjl " +
|
|
|
|
|
+ " WHERE cai_ji_shi_jian_<'2024-04-07 08:00:00' GROUP BY bing_xiang_id_) b" +
|
|
|
|
|
+ " WHERE a.bing_xiang_id_=b.bing_xiang_id_ AND a.cai_ji_shi_jian_ = b.cai_ji_shi_jian_";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private Map<String,Object> buildQueryParam(JobExecutionContext context) {
|
|
|
|
|
+ JobDataMap dataMap = context.getMergedJobDataMap();
|
|
|
|
|
+ logger.warn("group={} job={} trigger={} is running.",
|
|
|
|
|
+ context.getJobDetail().getKey().getGroup(),
|
|
|
|
|
+ context.getJobDetail().getKey().getName(),
|
|
|
|
|
+ context.getTrigger().getKey().getName());
|
|
|
|
|
+ logger.warn("jobDataMap=is {}.", JacksonUtil.toJsonString(dataMap.getWrappedMap()));
|
|
|
|
|
+ String[] planTime ={"8","12","17"};
|
|
|
|
|
+ String planDateParam = dataMap.getString(PLAN_TIME);
|
|
|
|
|
+ if(StringUtil.isNotBlank(planDateParam)){
|
|
|
|
|
+ planTime = planDateParam.split(",");
|
|
|
|
|
+ }
|
|
|
|
|
+ String uncontrolTimes = "4";
|
|
|
|
|
+ if(StringUtil.isNotBlank(dataMap.getString(UNCONTROL_TIMES))){
|
|
|
|
|
+ uncontrolTimes = dataMap.getString(UNCONTROL_TIMES);
|
|
|
|
|
+ }
|
|
|
|
|
+ HashMap map = new HashMap<String,Object>();
|
|
|
|
|
+ map.put(PLAN_TIME,planTime);
|
|
|
|
|
+ map.put(UNCONTROL_TIMES,uncontrolTimes);
|
|
|
|
|
+ return map;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|