Version: next

设备管理模板

概述

  • 注重于对设备的管理,有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作业组

更换滤网作业组

  • 作业组为空,在被创建时会在其下临时添加一个更换滤网作业规范,资产为创建作业项的资产。

更换滤网作业规范

  • 更新作业组名称
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', new
      Date(startTime)) ;
      paraObj['PlanEndTime'] = Common.FormatDateTimeByFormat('yyyy-MM-dd', new
      Date(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;
  • 上述脚本执行两次后结果为:

  • 确定验定报告编号,更新有效期至,更新是否合格

  • 这些作业项都是用来更新资产属性的。

Last updated on