Пример #1
0
 public async Task <int> SaveEqpHistory(EqpHistory eqp)
 {
     return(await WithConnection(async c =>
     {
         string sql = " insert into equipment_history " +
                      " values (0,@EqpID,@Type,@WorkingOrder,@ShowName,@CreatedTime,@CreatedBy); ";
         return await c.ExecuteAsync(sql, eqp);
     }));
 }
Пример #2
0
        public async Task <ApiResult> UpdatePMEntity(PMEntity pmEntity)
        {
            ApiResult  ret = new ApiResult();
            EqpHistory eqp = new EqpHistory();
            DateTime   dt  = DateTime.Now;

            pmEntity.UpdatedBy   = _userID;
            pmEntity.UpdatedTime = dt;
            pmEntity.Status      = (int)PMStatus.Editing;
            if (pmEntity.IsFinished)
            {
                pmEntity.Status = (int)PMStatus.Finished;
                if (pmEntity.Eqp != null)
                {
                    eqp.CreatedBy    = _userID;
                    eqp.CreatedTime  = dt;
                    eqp.EqpID        = (int)pmEntity.Eqp;
                    eqp.Type         = (int)EqpHistoryType.Maintenance;
                    eqp.ShowName     = pmEntity.Title;
                    eqp.WorkingOrder = pmEntity.ID;
                }
            }
            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    //保存excel
                    PMModule module = await _repo.GetModuleByIDEasy(pmEntity.Module);

                    PMEntity oldEntity = await _repo.GetEntityByID(pmEntity.ID);

                    string modulePath, entityPath, fileName;
                    string fileType = Path.GetExtension(module.FileName);
                    entityPath = oldEntity.FilePath;
                    if (File.Exists(entityPath))
                    {
                        File.Delete(entityPath);
                    }
                    if (pmEntity.Module != oldEntity.Module)
                    {
                        //复制模板为实例
                        modulePath  = Path.GetDirectoryName(module.FilePath);
                        entityPath  = modulePath.Substring(0, modulePath.Length - 6) + "Entity\\";
                        fileName    = pmEntity.Title + dt.ToString("yyyyMMdd");
                        fileType    = Path.GetExtension(module.FileName);
                        entityPath += fileName + fileType;
                    }
                    File.Copy(module.FilePath, entityPath);
                    SaveExcelEntity(entityPath, fileType, pmEntity);
                    if (pmEntity.Module != oldEntity.Module || pmEntity.IsPlanChanged || pmEntity.Status != oldEntity.Status)
                    {
                        pmEntity.FilePath = entityPath;
                        ret.data          = await _repo.UpdatePMEntity(pmEntity);
                    }
                    if (pmEntity.IsPlanChanged)
                    {
                        await _repo.DelPMEntityMonthDetail(new string[] { pmEntity.ID.ToString() });

                        List <PMEntityMonthDetail> details = new List <PMEntityMonthDetail>();
                        foreach (int item in pmEntity.PMMonthDetails)
                        {
                            PMEntityMonthDetail detail = new PMEntityMonthDetail();
                            detail.MonthDetail = item;
                            detail.PMEntity    = pmEntity.ID;
                            details.Add(detail);
                        }
                        ret.data = await _repo.SavePMEntityMonthDetail(details);
                    }
                    if (pmEntity.IsFinished)
                    {
                        await _repo.SaveEqpHistory(eqp);
                    }
                    scope.Complete();
                }
                return(ret);
            }
            catch (Exception ex)
            {
                ret.code = Code.Failure;
                ret.msg  = ex.Message;
                return(ret);
            }
        }