public TransferRecord(string key, Pipe pipe, TransferItem transferItem, DateTime dateCreated) : base(key) { this.Pipe = pipe; this.TransferItem = transferItem; this.DateCreated = dateCreated; }
public void CacheLoaded() { if (this.Pipe != null) this.Pipe = RepositoryFactory.GetRepository<IPipeRepository, Pipe>().FindBy(this.Pipe.Key); if (this.PrevPos != null) this.PrevPos = RepositoryFactory.GetRepository<IPipePositionRepository, PipePosition>().FindBy(this.PrevPos.Key); if (this.NewPos != null) this.NewPos = RepositoryFactory.GetRepository<IPipePositionRepository, PipePosition>().FindBy(this.NewPos.Key); if (this.TransferItem != null) this.TransferItem = RepositoryFactory.GetRepository<ITransferItemRepository, TransferItem>().FindBy(this.TransferItem.Key); }
public JsonResult CreateTask(int pipeTypeId, String code, String diggerId,String team,String faxno, String items) { string pipeneednoticeitemid = Request.Form["needlength"].ToString(); PipeType pipeType = null; Digger targetDigger = null; IList<PDCPMS.DataContracts.Transfer.TransferItem> transferItemContracts; Account onlineAccount = UserSession.OnlineAccount; #region Get Basic Data if (onlineAccount.DetectionCompany == null) { return Json(new { success = false, message = "你无权发起常检任务" }); } if (string.IsNullOrEmpty(code)) { return Json(new { success = false, message = "编号不能为空" }); } Regex codePattern = new Regex("^[-|a-z|A-Z|0-9]+$"); if (!codePattern.IsMatch(code)) { return Json(new { success = false, message = "编号格式不正确,只能为英文字母、数字或者短横线(-)的组合" }); } if (null != repository.FindByCode(code)) { return Json(new { success = false, message = string.Format("编号为{0}的常检任务存在,请尝试使用其他编号", code) }); } if (string.IsNullOrEmpty(items)) { return Json(new { success = false, message = "未指定调度项" }); } transferItemContracts = new JavaScriptSerializer().Deserialize<IList<PDCPMS.DataContracts.Transfer.TransferItem>>(items); if (transferItemContracts.Count < 1) { return Json(new { success = false, message = "未指定调度项" }); } if (pipeTypeId < 1) { return Json(new { success = false, message = "未指定管材类型" }); } pipeType = RepositoryFactory.GetRepository<IPipeTypeRepository, PipeType>().FindBy(pipeTypeId); if (pipeType == null) { return Json(new { success = false, message = "未指定管材类型" }); } if (!string.IsNullOrEmpty(diggerId)) { targetDigger = RepositoryFactory.GetRepository<IDiggerRepository, Digger>().FindBy(diggerId); } #endregion ITransferTaskRepository transferTaskRepository = RepositoryFactory.GetRepository<ITransferTaskRepository, TransferTask>(unitOfWork); ITransferItemRepository transferItemRepository = RepositoryFactory.GetRepository<ITransferItemRepository, TransferItem>(unitOfWork); ITransferRecordRepository transferRecordRepository = RepositoryFactory.GetRepository<ITransferRecordRepository, TransferRecord>(unitOfWork); IPipePositionRepository posRepository = RepositoryFactory.GetRepository<IPipePositionRepository, PipePosition>(); IPipeRepository pipeRepository = RepositoryFactory.GetRepository<IPipeRepository, PDCPMS.Model.Common.Pipe>(unitOfWork); DateTime now = DateTime.Now; StringBuilder sb = new StringBuilder(); sb.Append("Begin "); TransferTask transferTask = new TransferTask(Guid.NewGuid().ToString("N"), pipeType, onlineAccount.DetectionCompany, onlineAccount, now, true); #region 我的修改insert TransferTask string TransferTaskId = Guid.NewGuid().ToString("N"); string DateCreated = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); string CreatorId = onlineAccount.Key.ToString(); int TotalCount = transferItemContracts[0].Count; string PipeTypeId = pipeTypeId.ToString(); string DetectionCompanyId = onlineAccount.DetectionCompany.Key.ToString(); sb.Append("Insert Into TransferTask(TransferTaskId,IsSystemTask,DateCreated,CreatorId,IsFinished,DateFinished,TotalCount,PipeTypeId,DetectionCompanyId,\"Comment\")Values("); sb.Append("'" + TransferTaskId + "',"); sb.Append("1,"); sb.Append("to_date('" + DateCreated + "', 'yyyy-mm-dd HH24:mi:ss'),"); sb.Append("'" + CreatorId + "',"); sb.Append("0,"); sb.Append("null,"); sb.Append("" + TotalCount + ","); sb.Append("'" + PipeTypeId + "',"); sb.Append("'" + DetectionCompanyId + "',"); sb.Append("'');"); #endregion TotalCount = 0; foreach (PDCPMS.DataContracts.Transfer.TransferItem tic in transferItemContracts) { PipePosition prePos = posRepository.FindBy(tic.PrevPosId); PipePosition newPos = posRepository.FindBy(tic.NewPosId); if (prePos == null || newPos == null || tic.Count < 0) { return Json(new { success = false, message = "你的调度项输入有误" }); } TransferItem item = new TransferItem(Guid.NewGuid().ToString("N"), transferTask); item.PrevPos = prePos; item.NewPos = newPos; item.Count = tic.Count; #region 我的修改 TransferItem Insert string TransferItemId = Guid.NewGuid().ToString("N"); string TransferTaskId_Forignkey = TransferTaskId; int Count = TotalCount; string PrevPositionId = item.PrevPos.Key.ToString(); string NewPositionId = item.NewPos.Key.ToString(); sb.Append("Insert Into TransferItem(TransferItemId, TransferTaskId, Count, PrevPositionId, NewPositionId)Values("); sb.Append("'" + TransferItemId + "',"); sb.Append("'" + TransferTaskId_Forignkey + "',"); sb.Append("" + tic.Count + ","); sb.Append("'" + PrevPositionId + "',"); sb.Append("'" + NewPositionId + "');"); #endregion System.Data.DataTable dt = pipeRepository.FindByMyCondition(prePos, pipeType, PipeState.Received | PipeState.Storing, PipeState.Transfering | PipeState.NormalChecking); if (dt.Rows.Count < tic.Count) { return Json(new { success = false, message = string.Format("调度失败:垛位({0})已无{1}根可检测的存货,可能已经被调至别处", prePos.ToString(), tic.Count) }); } for (int i = 0; i < tic.Count; i++) { #region 我改的 TransferRecord Insert string TransferRecordId = Guid.NewGuid().ToString("N"); string TransferItemId_ForignKey = TransferItemId; string DateCreated_Record = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); string PrevPositionId_Record = item.PrevPos.Key.ToString(); string NewPositionId_Record = item.NewPos.Key.ToString(); string PipeId = dt.Rows[i]["pipeid"].ToString(); sb.Append("Insert Into TransferRecord(TransferRecordId,TransferItemId,DateCreated,DateFinished,PrevPositionId,NewPositionId,PipeId)Values("); sb.Append("'" + TransferRecordId + "',"); sb.Append("'" + TransferItemId_ForignKey + "',"); sb.Append("to_date('" + DateCreated + "', 'yyyy-mm-dd HH24:mi:ss'),"); sb.Append("null,"); sb.Append("'" + PrevPositionId_Record + "',"); sb.Append("'" + NewPositionId_Record + "',"); sb.Append("'" + PipeId + "');"); //2010-12-01 by huncherby 发起常检任务改变状态 sb.Append("update Pipe set state = (state + "); sb.Append((int)PipeState.Transfering); sb.Append(" - bitand(state, "); sb.Append((int)PipeState.Transfering); sb.Append(" )) Where PipeId = "); sb.Append(dt.Rows[i]["PipeId"].ToString()); sb.Append(";"); #endregion } TotalCount += item.Count; transferTask.TotalCount += item.Count; } NormalCheckTask ncTask = new NormalCheckTask(Guid.NewGuid().ToString("N"), code, onlineAccount.DetectionCompany, pipeType, targetDigger, transferTask, onlineAccount, now); #region 我的修改 NormalCheckTask Insert string NormalCheckTaskId = Guid.NewGuid().ToString("N"); string PipeTypeId_ForignKey = PipeTypeId; string DetectionCompanyId_ForignKey = DetectionCompanyId; string DiggerId = diggerId; string TransferTaskId_ForignKey = TransferTaskId; string Code = code; string DateCreated_NCTask = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); int Count_NCTask = TotalCount; //string pipeneednoticeitemid = null; sb.Append("Insert Into NormalCheckTask(NormalCheckTaskId,PipeTypeId,DetectionCompanyId,DiggerId,TransferTaskId,State,Code,WorkNO,CreatorId,DateCreated,SenderId,DateSent,ReceiverId,DateReceived,CheckItemCreatorId,CheckItemDateCreated,Count,CheckStandard,IsNeedMark,IsCheckAppearance,IsCheckThickness,IsCheckLength,IsNeedWash,IsCheckUnBlock,IsCheckPressure,CheckPressureType,IsCheckCloseness,IsCheckBodyCrack,CheckBodyCrackType,IsCheckBlindCrack,\"Comment\",FinisherId,DateFinished,CheckTools,CheckConclusion,ReportComment,MainCheckId,VeriferId,DateVerified,ApproverId,DateApproved,ReportNO,team,faxno,pipeneednoticeitemid)Values("); sb.Append("'" + NormalCheckTaskId + "',"); sb.Append("'" + PipeTypeId_ForignKey + "',"); sb.Append("'" + DetectionCompanyId_ForignKey + "',"); sb.Append("'" + diggerId + "',"); sb.Append("'" + TransferTaskId_ForignKey + "',"); sb.Append("0,"); sb.Append("'" + Code + "',"); sb.Append("'',"); sb.Append("'" + CreatorId + "',"); sb.Append("to_date('" + DateCreated_NCTask + "', 'yyyy-mm-dd HH24:mi:ss'),"); sb.Append("null,"); sb.Append("null,"); sb.Append("null,"); sb.Append("null,"); sb.Append("null,"); sb.Append("null,"); sb.Append("'" + Count_NCTask + "',"); sb.Append("null,"); sb.Append("null,"); sb.Append("null,"); sb.Append("null,"); sb.Append("null,"); sb.Append("null,"); sb.Append("null,"); sb.Append("null,"); sb.Append("-1,"); sb.Append("null,"); sb.Append("null,"); sb.Append("-1,"); sb.Append("null,"); sb.Append("null,"); sb.Append("null,"); sb.Append("null,"); sb.Append("null,"); sb.Append("null,"); sb.Append("null,"); sb.Append("null,"); sb.Append("null,"); sb.Append("null,"); sb.Append("null,"); sb.Append("null,"); sb.Append("null,'"+team+"','"+faxno+"',"); sb.Append("'" + pipeneednoticeitemid + "');"); sb.Append(" End;"); #endregion INormalCheckTaskRepository NCTaskR = RepositoryFactory.GetRepository<INormalCheckTaskRepository, NormalCheckTask>(); NCTaskR.Excute(sb.ToString()); TempData["HintMessage"] = new PDCPMS.Application.HintMessage { Content = string.Format("成功发起常检任务({0})", Code) }; return Json(new { success = true, taskId = Code }); }
public JsonResult Update(string code, string items) { #region 基本信息 if (string.IsNullOrEmpty(code)) { return Json(new { success = false, message = "未指定常检任务单" }); } NormalCheckTask task = repository.FindByCode(code); if (string.IsNullOrEmpty(items)) { return Json(new { success = false, message = "未指定调度项" }); } IList<PDCPMS.DataContracts.Transfer.TransferItem> transferItemContracts; transferItemContracts = new JavaScriptSerializer().Deserialize<IList<PDCPMS.DataContracts.Transfer.TransferItem>>(items); if (transferItemContracts.Count < 1) { return Json(new { success = false, message = "未指定调度项" }); } PipeType pipeType = null; //Digger targetDigger = null; if (Convert.ToInt32(task.PipeType.Key) < 1) { return Json(new { success = false, message = "未指定管材类型" }); } pipeType = RepositoryFactory.GetRepository<IPipeTypeRepository, PipeType>().FindBy(task.PipeType.Key); if (pipeType == null) { return Json(new { success = false, message = "未指定管材类型" }); } #endregion ITransferTaskRepository transferTaskRepository = RepositoryFactory.GetRepository<ITransferTaskRepository, TransferTask>(unitOfWork); ITransferItemRepository transferItemRepository = RepositoryFactory.GetRepository<ITransferItemRepository, TransferItem>(unitOfWork); ITransferRecordRepository transferRecordRepository = RepositoryFactory.GetRepository<ITransferRecordRepository, TransferRecord>(unitOfWork); IPipePositionRepository posRepository = RepositoryFactory.GetRepository<IPipePositionRepository, PipePosition>(); IPipeRepository pipeRepository = RepositoryFactory.GetRepository<IPipeRepository, PDCPMS.Model.Common.Pipe>(unitOfWork); System.Data.DataTable dt2 = retory.FindNormalCheckRecords(task); int j = 0; StringBuilder sb = new StringBuilder(); sb.Append("Begin "); foreach (PDCPMS.DataContracts.Transfer.TransferItem tic in transferItemContracts) { PipePosition prePos = posRepository.FindBy(tic.PrevPosId); PipePosition newPos = posRepository.FindBy(tic.NewPosId); System.Data.DataTable dt = pipeRepository.FindByMyCondition(prePos, pipeType, PipeState.Received | PipeState.Storing, PipeState.Transfering | PipeState.NormalChecking); if (prePos == null || newPos == null || tic.Count < 0) { return Json(new { success = false, message = "你的调度项输入有误" }); } TransferItem item = new TransferItem(Guid.NewGuid().ToString("N"), task.TransferTask); item.PrevPos = prePos; item.NewPos = newPos; item.Count = tic.Count; //改变数量 //retory.AddNormalCheck(task, TotalCount); sb.Append("update normalchecktask set count=count+"); sb.Append(tic.Count); sb.Append(" where normalchecktaskid='"); sb.Append(task.Key.ToString()+"';"); sb.Append("update transfertask set totalcount=totalcount+"); sb.Append(tic.Count); sb.Append(" where TransferTaskid='"); sb.Append(task.TransferTask.Key.ToString() + "';"); if (dt.Rows.Count < tic.Count) { return Json(new { success = false, message = string.Format("调度失败:垛位({0})已无{1}根可检测的存货,可能已经被调至别处", prePos.ToString(), tic.Count) }); } #region 新增常检任务 //新增transferitem string TransferItemId = Guid.NewGuid().ToString("N"); string TransferTaskId_Forignkey = task.TransferTask.Key.ToString(); //int Count = TotalCount; string PrevPositionId = item.PrevPos.Key.ToString(); string NewPositionId = item.NewPos.Key.ToString(); System.Data.DataTable dt1 = transferItemRepository.FindTransfer(task, item); if (dt1.Rows.Count > 0) { sb.Append("update transferitem set count=count+"); sb.Append(tic.Count); sb.Append(" where TransferTaskid='"); sb.Append(task.TransferTask.Key.ToString() + "' and prevpositionid="); sb.Append(dt1.Rows[0]["PrevPositionId"].ToString() + ";"); } else { sb.Append("Insert Into TransferItem(TransferItemId, TransferTaskId, Count, PrevPositionId, NewPositionId)Values("); sb.Append("'" + TransferItemId + "',"); sb.Append("'" + TransferTaskId_Forignkey + "',"); sb.Append("" + tic.Count + ","); sb.Append("'" + PrevPositionId + "',"); sb.Append("'" + NewPositionId + "');"); } for (int i = 0; i < tic.Count; i++) { j++; //新增TransferRecord string TransferRecordId = Guid.NewGuid().ToString("N"); string TransferItemId_key = dt1.Rows[0]["TransferItemId"].ToString(); string DateCreated = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); string PrevPositionId_Record = item.PrevPos.Key.ToString(); string NewPositionId_Record = item.NewPos.Key.ToString(); string PipeId = dt.Rows[i]["pipeid"].ToString(); sb.Append("Insert Into TransferRecord(TransferRecordId,TransferItemId,DateCreated,DateFinished,PrevPositionId,NewPositionId,PipeId)Values("); sb.Append("'" + TransferRecordId + "',"); sb.Append("'" + TransferItemId_key + "',"); sb.Append("to_date('" + DateCreated + "', 'yyyy-mm-dd HH24:mi:ss'),"); sb.Append("null,"); sb.Append("'" + PrevPositionId_Record + "',"); sb.Append("'" + NewPositionId_Record + "',"); sb.Append("'" + PipeId + "');"); //更新pipe sb.Append("update Pipe set state = (state + "); if (task.State == NormalCheckTaskState.Created) { sb.Append((int)PipeState.Transfering); sb.Append(" - bitand(state, "); sb.Append((int)PipeState.Transfering); sb.Append(" ))"); } else { sb.Append((int)PipeState.NormalChecking); sb.Append(" - bitand(state, "); sb.Append((int)PipeState.NormalChecking); sb.Append(")),positionid = "); sb.Append("'" + NewPositionId_Record + "',"); sb.Append(" prevposid= "); sb.Append("'" + PrevPositionId_Record + "',poslastchangetime="); sb.Append("to_date('" + DateCreated + "', 'yyyy-mm-dd HH24:mi:ss')"); } sb.Append(" Where PipeId = "); sb.Append(dt.Rows[i]["PipeId"].ToString() + ";"); if ((int)task.State >= (int)NormalCheckTaskState.Received && task.Approver != null) { int orderno = Convert.ToInt32(dt2.Rows[0]["max(orderno)"]) + j; //新增Normalcheckrecords记录 string normalchecktaskid = Guid.NewGuid().ToString("N"); sb.Append("Insert Into normalcheckrecord(normalcheckrecordid,pipeid,normalchecktaskid,datecreated,orderno ) Values ("); sb.Append("'" + normalchecktaskid + "',"); sb.Append("'" + PipeId + "',"); sb.Append("'" + task.Key + "',"); sb.Append("to_date('" + DateCreated + "', 'yyyy-mm-dd HH24:mi:ss'),"); sb.Append("'" + orderno.ToString() + "' );"); } } } #endregion sb.Append(" End;"); INormalCheckTaskRepository AddNCK = RepositoryFactory.GetRepository<INormalCheckTaskRepository, NormalCheckTask>(); AddNCK.Excute(sb.ToString()); TempData["HintMessage"] = new PDCPMS.Application.HintMessage { Content = "成功新增常检任务记录!" }; return Json(new { success = true ,code=task.Code}); }