|
|
|
@ -2,6 +2,11 @@ package cn.estsh.i3plus.pojo.wms.bean.health;
|
|
|
|
|
|
|
|
|
|
import lombok.Getter;
|
|
|
|
|
import lombok.Setter;
|
|
|
|
|
import org.apache.commons.lang3.time.DateUtils;
|
|
|
|
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
import java.time.Instant;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -9,23 +14,20 @@ import lombok.Setter;
|
|
|
|
|
*/
|
|
|
|
|
@Getter
|
|
|
|
|
public class WmsHealthIndexVariable {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 指标变量代码
|
|
|
|
|
*/
|
|
|
|
|
private final WmsHealthIndexVariableId id;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 指标变量名称
|
|
|
|
|
*/
|
|
|
|
|
@Setter
|
|
|
|
|
private String name;
|
|
|
|
|
/**
|
|
|
|
|
* 计算周期
|
|
|
|
|
*/
|
|
|
|
|
@Setter
|
|
|
|
|
private IWmsHealthIndexCron cycleRange;
|
|
|
|
|
|
|
|
|
|
// /**
|
|
|
|
|
// * 计算周期
|
|
|
|
|
// */
|
|
|
|
|
// @Setter
|
|
|
|
|
// private IWmsHealthIndexCron cycleRange;
|
|
|
|
|
/**
|
|
|
|
|
* 计算频次
|
|
|
|
|
*/
|
|
|
|
@ -50,34 +52,59 @@ public class WmsHealthIndexVariable {
|
|
|
|
|
@Setter
|
|
|
|
|
private String applyPartGroup;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 数据库脚本语句
|
|
|
|
|
*/
|
|
|
|
|
@Setter
|
|
|
|
|
private String sqlStatement;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 本地对象名(类名称,spring管理的对象别名)
|
|
|
|
|
*/
|
|
|
|
|
@Setter
|
|
|
|
|
private String className;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 函数名称
|
|
|
|
|
*/
|
|
|
|
|
@Setter
|
|
|
|
|
private String functionName;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 脚本编号
|
|
|
|
|
*/
|
|
|
|
|
@Setter
|
|
|
|
|
private String scriptNo;
|
|
|
|
|
/**
|
|
|
|
|
* 计算值
|
|
|
|
|
*/
|
|
|
|
|
@Setter
|
|
|
|
|
private Object value;
|
|
|
|
|
|
|
|
|
|
private WmsHealthIndexVariableValue value;
|
|
|
|
|
/**
|
|
|
|
|
* 修改CRON,计算周期、频次需要刷新数据
|
|
|
|
|
*/
|
|
|
|
|
@Setter
|
|
|
|
|
private boolean refresh;
|
|
|
|
|
/**
|
|
|
|
|
* 上次计算时间
|
|
|
|
|
*/
|
|
|
|
|
@Setter
|
|
|
|
|
private Instant lastCalcTime;
|
|
|
|
|
/**
|
|
|
|
|
* 下一次计算时间
|
|
|
|
|
*/
|
|
|
|
|
@Setter
|
|
|
|
|
private Instant nextCalcTime;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public WmsHealthIndexVariable(String organizeCode,String variable){
|
|
|
|
|
this(new WmsHealthIndexVariableId(organizeCode,variable));
|
|
|
|
|
public WmsHealthIndexVariable(final String organizeCode,final String variable){
|
|
|
|
|
this(new WmsHealthIndexVariableId(organizeCode, variable));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public WmsHealthIndexVariable(WmsHealthIndexVariableId id){
|
|
|
|
|
if(null==id){
|
|
|
|
|
throw new IllegalArgumentException("WmsHealthIndexVariableId can't be null");
|
|
|
|
|
}
|
|
|
|
|
this.id = id;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -92,17 +119,75 @@ public class WmsHealthIndexVariable {
|
|
|
|
|
return flag;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean checked(){
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 是否有值
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public boolean hasValue(){
|
|
|
|
|
return null!=value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 修改CRON表达式
|
|
|
|
|
* @param cron
|
|
|
|
|
*/
|
|
|
|
|
public void changeCalcFrequency(IWmsHealthIndexCron cron){
|
|
|
|
|
setCalcFrequency(cron);
|
|
|
|
|
setRefresh(true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void changeCycleRange(IWmsHealthIndexCron cron){
|
|
|
|
|
setCycleRange(cron);
|
|
|
|
|
setRefresh(true);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*设置上次执行时间
|
|
|
|
|
* @param formartTime 格式化日期 yyyy-MM-dd HH:mm:ss 入参如 2022-01-13 10:45:43
|
|
|
|
|
*/
|
|
|
|
|
public boolean setLastCalcTimeFormat(String formartTime){
|
|
|
|
|
if(null==formartTime||formartTime.trim().isEmpty()){
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
try{
|
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
long time = sdf.parse(formartTime).getTime();
|
|
|
|
|
this.lastCalcTime = (Instant.ofEpochMilli(time));
|
|
|
|
|
}catch (Exception e){
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return null!=lastCalcTime;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String formatToDateTime(Long time) {
|
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
return sdf.format(new Date(time));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取上次计算时间,并且格式化输出
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public String getLastCalcTimeFormat() {
|
|
|
|
|
return null!=this.lastCalcTime ? formatToDateTime(this.lastCalcTime.toEpochMilli()):"";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取下一次计算时间,并且格式化输出
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public String getNextCalcTimeFormat() {
|
|
|
|
|
return formatToDateTime(calcFrequency.getNextDate().getTime());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* @param value
|
|
|
|
|
*/
|
|
|
|
|
public void changeValue(WmsHealthIndexVariableValue value){
|
|
|
|
|
if(null!=value) {
|
|
|
|
|
this.setValue(value);
|
|
|
|
|
this.setRefresh(true);
|
|
|
|
|
this.setLastCalcTime(Instant.now());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|