Version: 3.8.2
设备管理模板
概述
- 注重于对设备的管理,有PM作业,TPM作业,定期润滑,定期更换滤网,计量器具的校准作业。
PM作业
- 主要是对设备的一些日常检查,比较基础,操作工就可以完成。

注意的就是计划重复的周期不同即可。
每日作业是安装天重复计划。

周作业是按月重复计划。作业时间为7天。

重点:
- 我们以D2-Rack-OP10作业组为例。计划重复周期为每周一次,但不是所有作业都是每周一次,有些作业是在每年的第1,5,9,13,17,21,25,29,33,37,41,45,49周执行。那就需要用到下面的脚本。

var a =new Date() ;
var b = a.getFullYear() ;
var firstday = new Date(b, 0, 1) ;
var c = firstday.getDay() ;
var day = 1+7-c ;
var d ;
if( c != 0 )
{
var d = new Date(b, 0, 1+day) ;
var e = a.getTime() - d.getTime() ;
var zq = Math.floor(e/(7*24*3600000)+ 1) + 1 ;
}
else if (c == 0)
{
var d = new Date(b, 0, 1+1) ;
var e = a.getTime() - d.getTime() ;
var zq = Math.floor(e/(7*24*3600000)+ 1)+ 1 ;
}
return zq == 1 || zq == 5 || zq == 9|| zq == 13|| zq == 17|| zq == 21|| zq == 25|| zq == 29|| zq == 33 || zq == 37|| zq == 41|| zq == 45|| zq == 49;
上述脚本能计算当前时间处于本年第几周,当变量*zq*处于这些周时,返还true;
当设备配件使用时间到达更换周期时,作业时需要提示更换并创建更换作业组。
我们以D2-Rack每日作业(10-40)作业组下D2-Rack-OP10冷冻机过滤网检查为例。D2-Rack-OP10冷冻机过滤网为系统资产,有资产属性更换周期,下次更换时间。

当作业时间超过下次更换时间时,那代表需要更换滤网,我们需要提醒执行人员进行更换。创建更换滤网说明链接

var a =new Date() ;
var b = @MyTask.Asset.下次更换时间 ;
return b.valueOf() < a.valueOf() ;
当作业时间超过*下次更换时间*时,返回true。
@MyTask.Asset.下次更换时间 != 0 ;
这个作业组属性*下次更换时间*不能为空。
TPM作业组
- 同PM作业组的配置,计划时周期不同。
更换滤网作业组
- 作业组为空,在被创建时会在其下临时添加一个更换滤网作业规范,资产为创建作业项的资产。
更换滤网作业规范
- 更新作业组名称
var a = @MyTask.Asset.DisplayName ;
alert(a);
var docName = a;
var daAccess = new DAAccess();
var da = daAccess.GetExternalEntityDA('Documentation');
var sql = 'SELECT * FROM Documentation WHERE Name=?';
da.ExecuteSQL(sql,[docName],function (_isSuccess, _rows) {
if (_isSuccess) {
if (_rows && _rows.length > 0) {
var attachmentPath = GlobalInfo.GetAttachmentSavePath();
var fileUrl = plus.io.convertLocalFileSystemURL('_downloads/' + _rows.item(0)['FileName']);
plus.runtime.openFile('file://' + fileUrl);
}
else
Common.MessageTip('未找到'+docName+ '附件');
}
else
Common.MessageTip('执行'+sql+ '失败');
});
return true;
弹出和资产显示名相同的附件照片。

var tg = ScriptEngine.Context.GetCurTaskGroup();
tg.Name = @MyTask.Asset.DisplayName + '加换滤网' ;
ScriptEngine.Context.GotoTaskGroup();
return true ;
更新作业组名称为资产显示名+加换滤网。

- 更新下次更换时间
- 更新当前资产的资产属性下次更换时间,这样就和PM作业滤网检查形成一个时间闭环。

var a = @MyTask.Asset.下次更换时间;
var b = a.valueOf() ;
var c = @MyTask.Asset.更换周期 ;
var d = c * 24 *3600000 + b ;
var e= new Date(Number(d)) ;
return e.getFullYear()+'-'+ e.getMonth()+'-'+e.getDate() +'-'+ e.getHours()+':'+e.getMinutes() +':'+e.getSeconds();
现在时间+资产属性*更换周期*更新到资产属性*下次更换时间*。
更换滤网-按需
同更换滤网作业组,只是由终端随时创建产生,创建后选择具体是哪个资产需要更换滤网。

加换油,液作业
加换油,液作业-按需
验定作业组
客户实际资产验定标准:资产固定周期需要去拆解验定,验定需要送到固定检测所,7天-14天后会送回,需要客户在验收一遍,并将验定报告编号更新到这个资产的信息库里。验收之后一定周期后(每个资产都不一样)又需要验定。
下面是4个和验定息息相关的资产属性。

计划验定任务及作业组
先在EOC-任务里新建两个验定任务。

再在EOC-计划里新建验定作业组。然后发布计划。

按照流程执行并审核后,您会发现7天后的验收作业组被创建出来了。

这是由于我们的流程后函数去创建的,具体可在函数与脚本说明查看。

上图的验收信息是个作业组属性,它是有作业项脚本更新的。
- 提示作业项
var a = @MyTask.Asset.验定日期 ;return '上次验定时间为:' + a.getFullYear()+'-'+(a.getMonth()+1)+'-'+a.getDate() + ';存放地点为:' + @MyTask.Asset.存放地点 + ';工位号为:' + @MyTask.Asset.工位号 + ';接受标准为:' + @MyTask.Asset.接受标准 +';公司编号为:' + @MyTask.Asset.公司编号 + '。' ;提示执行人上次验定的日期。var tgName = '验收作业组';var tgPropertyName = '验收作业组';var assetID = @MyTask.Asset;var assetName = @MyTask.Asset.DisplayName;var tsName = '验定验收';var paraObj = {};var tgValue = ScriptEngine.Context.GetTaskGroupPropertyValue('验收信息');if (tgValue) {paraObj = JSON2.parse(tgValue)}paraObj['TGName'] = tgName;paraObj['TGPlanName'] = tgName;var now = new Date();var startTime = now.getTime() + 168*3600000;var endTime = now.getTime() + 336*3600000 ;paraObj['PlanStartTime'] = Common.FormatDateTimeByFormat('yyyy-MM-dd', newDate(startTime)) ;paraObj['PlanEndTime'] = Common.FormatDateTimeByFormat('yyyy-MM-dd', newDate(endTime)) ;paraObj['PlanType'] = 'Plan';var addTaskJobs = [];if(paraObj['AddTaskJobs']) {addTaskJobs = paraObj['AddTaskJobs'];}var tjName = assetName + '_' + tsName;var find = _.find(addTaskJobs, function (_obj) {return _obj['TJName'] == tjName});if(!find){var obj = {'TSName':tsName,'AssetID': assetID,'TJName':tjName};addTaskJobs.push(obj);}paraObj['AddTaskJobs'] = addTaskJobs;var newTgValue = JSON2.stringify(paraObj);ScriptEngine.Context.SetTaskGroupPropertyValue('验收信息',newTgValue);return true;我们刚才的示例中是两个资产的验定,所以上述脚本执行两次之后结果如下:

验收作业组
我们将刚才产生的验收作业组执行完成,发现任务下又有了两个待计划任务,开始时间与现在都间隔180天。

那这两个任务也是由流程后函数产生的,根据作业组属性验定资产信息创建任务。

更新验定时间作业项
作业项数据类型为时间类型,主要作用是将当前时间更新到当前资产的资产属性验定日期。

var assetID = @MyTask.Asset;
var assetName = @MyTask.Asset.DisplayName;
var assetPre = @MyTask.Asset.验定周期.DisplayName;
var assetLastTime = @Me.Value;
assetLastTime = new Date(assetLastTime).getTime();
var tsName = '验定规范';
var date = @Me.Value;
var endTime = date.getTime() + assetPre * 24 * 60 * 60 * 1000;
var startTime = endTime - 30 * 24 * 60 * 60 * 1000;
var endTimeString = Common.FormatDateTimeByFormat('yyyy-MM-dd', new Date(endTime));
var startTimeString = Common.FormatDateTimeByFormat('yyyy-MM-dd', new Date(startTime));
var tgValue = ScriptEngine.Context.GetTaskGroupPropertyValue('验定资产信息');
var keyValue = assetName + '_验定' ;
var existInTG = Common.Ex_IsExist(tgValue, 'TJName', keyValue);
if (!existInTG)
{
var obj = { 'AssetID': assetID ,'StartTime':
startTimeString ,'EndTime':endTimeString,'TSName':tsName,'TJName':keyValue,'IsDelete':true};
var newTGValue = Common.Ex_AddObj(tgValue, obj);
ScriptEngine.Context.SetTaskGroupPropertyValue('验定资产信息', newTGValue);
}
return true;
上述脚本执行两次后结果为:

确定验定报告编号,更新有效期至,更新是否合格
这些作业项都是用来更新资产属性的。
