/// <summary> /// 根据报修单编号返回报修单信息 /// </summary> /// <param name="ID"></param> /// <returns></returns> public ROInputDto GetByID(int ID) { ROInputDto ro = Mapper.Map <cmdb_repairlog, ROInputDto>(_AssRepairOrderRepository.GetByID(ID).AsNoTracking().FirstOrDefault()); //ro.Rows = _AssRepairOrderRowRepository.GetByROID(ID).AsNoTracking().ToList(); return(ro); }
/// <summary> /// 加载数据 /// </summary> public void Bind() { try { ROInputDto ROData = autofacConfig.assRepairOrderService.GetByID(ROID); coreUser User = autofacConfig.coreUserService.GetUserByID(ROData.HANDLEMAN); lblDealMan.Text = User.USER_NAME; DatePicker.Value = ROData.APPLYDATE; if (ROData.COST != 0) { lblPrice.Text = ROData.COST.ToString(); } lblContent.Text = ROData.REPAIRCONTENT; if (String.IsNullOrEmpty(ROData.NOTE)) { lblNote.Text = ROData.NOTE; } DataTable tableAssets = new DataTable(); //未开启SN的资产列表 tableAssets.Columns.Add("ASSID"); //资产编号 tableAssets.Columns.Add("NAME"); //资产名称 tableAssets.Columns.Add("IMAGE"); //资产图片 tableAssets.Columns.Add("SN"); //序列号 tableAssets.Columns.Add("STATUS"); //行项状态 foreach (AssRepairOrderRow Row in ROData.Rows) { Assets assets = autofacConfig.orderCommonService.GetAssetsByID(Row.ASSID); if (Row.STATUS == 0) { tableAssets.Rows.Add(Row.ASSID, assets.NAME, assets.IMAGE, Row.SN, "等待维修"); } else { tableAssets.Rows.Add(Row.ASSID, assets.NAME, assets.IMAGE, Row.SN, "维修完毕"); } } if (tableAssets.Rows.Count > 0) { ListAssetsSN.DataSource = tableAssets; ListAssetsSN.DataBind(); } if (Client.Session["Role"].ToString() == "SMOSECUser") { plButton.Visible = false; } //如果维修单已完成,则隐藏维修单处理按钮 if (ROData.STATUS == 1) { plButton.Visible = false; } } catch (Exception ex) { Toast(ex.Message); } }
/// <summary> /// 加载数据 /// </summary> public void Bind() { try { ROInputDto ROData = autofacConfig.assRepairOrderService.GetByID(ROID); if (ROData != null) { lblDealMan.Text = ROData.call_man; DatePicker.Value = ROData.call_date; lblPrice.Text = ROData.repair_man; lblContent.Text = ROData.repair_content; lblNote.Text = ROData.find_man; } //coreUser User = autofacConfig.coreUserService.GetUserByID(ROData.HANDLEMAN); //lblDealMan.Text = User.USER_NAME; AssetsOutputDto assets = autofacConfig.SettingService.GetAssetsByid(ROData.asset_id); DataRow row = AssTable.NewRow(); row["ASSID"] = assets.AssId; row["SN"] = assets.SN; row["STATUS"] = ROData.repair_status; AssTable.Rows.Add(row); //AssIdList.Add(sn); //foreach (AssRepairOrderRow Row in ROData.Rows) //{ // Assets assets = autofacConfig.orderCommonService.GetAssetsByID(Row.ASSID); // if (Row.STATUS == 0) // { // tableAssets.Rows.Add(Row.ASSID, assets.NAME, assets.IMAGE, Row.SN, "等待修"); // } // else // { // tableAssets.Rows.Add(Row.ASSID, assets.NAME, assets.IMAGE, Row.SN, "维修完毕"); // } //} if (AssTable.Rows.Count > 0) { BindListView(); } //if (Client.Session["Role"].ToString() == "SMOSECUser") plButton.Visible = false; //如果维修单已完成,则隐藏维修单处理按钮 if (ROData.repair_status != "等待修") { plButton.Visible = false; } } catch (Exception ex) { Toast(ex.Message); } }
/// <summary> /// 更新报修单行项 /// </summary> /// <param name="entity"></param> /// <returns></returns> public ReturnInfo UpdateAssRepairOrderRow(ROInputDto entity) { ReturnInfo RInfo = new ReturnInfo(); try { AssRepairOrderRow assROR = new AssRepairOrderRow(); AssQuant assQuant = new AssQuant(); foreach (AssRepairOrderRow Row in entity.Rows) { assROR = _AssRepairOrderRowRepository.GetByID(entity.ROID, Row.ROROWID).FirstOrDefault(); if (assROR == null) { throw new Exception("维修单行项:" + Row.ROROWID + "不存在!"); } assROR.WAITREPAIRQTY = assROR.WAITREPAIRQTY - Row.REPAIREDQTY; //待维修数量 if (Row.WAITREPAIRQTY < 0) { throw new Exception("维修数量不能超过待维修总数"); } assROR.REPAIREDQTY = Convert.ToDecimal(assROR.REPAIREDQTY) + Row.REPAIREDQTY; if (assROR.WAITREPAIRQTY == 0) //如果全部维修完毕,则修改行项状态 { assROR.STATUS = 1; } //更新OrderRow数据 _unitOfWork.RegisterDirty(assROR); //往AssProcessRecord表添加数据 CreatePR(entity, Row, PROCESSMODE.维修完毕); Assets assetsSN = _AssetsRepository.GetByID(Row.ASSID).FirstOrDefault(); if (assetsSN == null) { throw new Exception("不存在条码为:" + Row.ASSID + "的资产!"); } assetsSN.STATUS = (Int32)STATUS.闲置; _unitOfWork.RegisterDirty(assetsSN); } RInfo.IsSuccess = true; RInfo.ErrorInfo = "维修单行项更新成功!"; } catch (Exception ex) { _unitOfWork.Rollback(); RInfo.IsSuccess = false; RInfo.ErrorInfo = ex.Message; } return(RInfo); }
/// <summary> /// 更新报修单 /// </summary> /// <param name="entity"></param> /// <returns></returns> public ReturnInfo UpdateAssRepairOrder(ROInputDto entity) { ReturnInfo RInfo = new ReturnInfo(); try { if (String.IsNullOrEmpty(entity.ROID)) { throw new Exception("报修单编号不能为空"); } AssRepairOrder aro = _AssRepairOrderRepository.GetByID(entity.ROID).FirstOrDefault(); if (aro != null) { if (aro.STATUS == 1) { throw new Exception("只有待维修中的才能确认"); } else { List <AssRepairOrderRow> Rows = _AssRepairOrderRowRepository.GetUnRepairByROID(aro.ROID).AsNoTracking().ToList(); if (Rows.Count == entity.Rows.Count) { aro.STATUS = 1; } //更新报修单行项 aro.MODIFYDATE = entity.MODIFYDATE; aro.MODIFYUSER = entity.MODIFYUSER; _unitOfWork.RegisterDirty(aro); UpdateAssRepairOrderRow(entity); bool result = _unitOfWork.Commit(); RInfo.IsSuccess = result; RInfo.ErrorInfo = "修改成功!"; return(RInfo); } } else { throw new Exception("报修单不存在!"); } } catch (Exception ex) { _unitOfWork.Rollback(); RInfo.IsSuccess = false; RInfo.ErrorInfo = ex.Message; return(RInfo); } }
/// <summary> /// 新增报修单 /// </summary> /// <param name="entity"></param> /// <returns></returns> public ReturnInfo AddAssRepairOrder(ROInputDto entity) { ReturnInfo RInfo = new ReturnInfo(); if (String.IsNullOrEmpty(entity.HANDLEMAN)) { throw new Exception("处理人不能为空"); } if (String.IsNullOrEmpty(entity.APPLYDATE.ToString())) { throw new Exception("业务日期不能为空"); } if (String.IsNullOrEmpty(entity.REPAIRCONTENT)) { throw new Exception("维修内容不能为空"); } String MaxID = _AssRepairOrderRepository.GetMaxID(); //获取当前最大报修单编号 String NowID = Helper.GeneratePRID("W", MaxID); //生成最新的报修单编号 entity.ROID = NowID; try { AssRepairOrder OrderData = new AssRepairOrder(); OrderData.ROID = NowID; OrderData.HANDLEMAN = entity.HANDLEMAN; OrderData.APPLYDATE = entity.APPLYDATE; OrderData.COST = entity.COST; OrderData.REPAIRCONTENT = entity.REPAIRCONTENT; OrderData.NOTE = entity.NOTE; OrderData.STATUS = 0; OrderData.CREATEDATE = entity.CREATEDATE; OrderData.CREATEUSER = entity.CREATEUSER; _unitOfWork.RegisterNew(OrderData); AddAssRepairOrderRow(entity); bool result = _unitOfWork.Commit(); RInfo.IsSuccess = result; RInfo.ErrorInfo = "创建成功!"; return(RInfo); } catch (Exception ex) { _unitOfWork.Rollback(); RInfo.IsSuccess = false; RInfo.ErrorInfo = ex.Message; return(RInfo); } }
/// <summary> /// 新增报修单行项 /// </summary> /// <param name="entity"></param> /// <returns></returns> public ReturnInfo AddAssRepairOrderRow(ROInputDto entity) { ReturnInfo RInfo = new ReturnInfo(); try { String ROROWID = "0"; AssQuant assQuant = new AssQuant(); if (entity.Rows != null) { foreach (AssRepairOrderRow Row in entity.Rows) { ROROWID = (int.Parse(ROROWID) + 1).ToString(); Row.ROID = entity.ROID; Row.ROROWID = ROROWID; if (GetRowByRowID(Row.ROID, Row.ROROWID) != null) { throw new Exception("维修单行项号已存在!"); } _unitOfWork.RegisterNew(Row); //往AssProcessRecord表添加数据 CreatePR(entity, Row, PROCESSMODE.报修); Assets assetsSN = _AssetsRepository.GetByID(Row.ASSID).FirstOrDefault(); if (assetsSN == null) { throw new Exception("不存在条码为:" + Row.ASSID + "的资产!"); } assetsSN.STATUS = (Int32)STATUS.维修中; _unitOfWork.RegisterDirty(assetsSN); } } RInfo.IsSuccess = true; RInfo.ErrorInfo = "维修单行项创建成功!"; } catch (Exception ex) { _unitOfWork.Rollback(); RInfo.IsSuccess = false; RInfo.ErrorInfo = ex.Message; } return(RInfo); }
/// <summary> /// 加载数据 /// </summary> public void Bind() { try { ROInputDto ROData = autofacConfig.assRepairOrderService.GetByID(ROID); coreUser User = autofacConfig.coreUserService.GetUserByID(ROData.HANDLEMAN); lblDealMan.Text = User.USER_NAME; DatePicker.Value = ROData.APPLYDATE; if (ROData.COST != 0) { lblPrice.Text = ROData.COST.ToString(); } lblContent.Text = ROData.REPAIRCONTENT; if (String.IsNullOrEmpty(ROData.NOTE)) { lblNote.Text = ROData.NOTE; } DataTable tableAssets = new DataTable(); //未开启SN的资产列表 tableAssets.Columns.Add("ROROWID"); //报修单行项编号 tableAssets.Columns.Add("ASSID"); //资产编号 tableAssets.Columns.Add("NAME"); //资产名称 tableAssets.Columns.Add("IMAGE"); //图片编号 tableAssets.Columns.Add("SN"); //序列号 foreach (AssRepairOrderRow Row in ROData.Rows) { Assets assets = autofacConfig.orderCommonService.GetAssetsByID(Row.ASSID); if (Row.STATUS == 0) { tableAssets.Rows.Add(Row.ROROWID, Row.ASSID, assets.NAME, Row.IMAGE, Row.SN); } } if (tableAssets.Rows.Count > 0) { ListAssetsSN.DataSource = tableAssets; ListAssetsSN.DataBind(); } } catch (Exception ex) { Toast(ex.Message); } }
/// <summary> /// 创建ProcessRecorder表数据 /// </summary> /// <param name="Data"></param> /// <param name="RowData"></param> /// <param name="Type"></param> public void CreatePR(ROInputDto Data, AssRepairOrderRow RowData, PROCESSMODE Type) { AssProcessRecord assProcessRecord = new AssProcessRecord { ASSID = RowData.ASSID, //资产条码 CREATEDATE = DateTime.Now, //创建时间 CREATEUSER = Data.CREATEUSER, //创建用户 HANDLEDATE = DateTime.Now, //处理时间 MODIFYDATE = DateTime.Now, //修改时间 MODIFYUSER = Data.MODIFYUSER, //修改用户 }; switch (Type) { case PROCESSMODE.报修: assProcessRecord.QUANTITY = RowData.WAITREPAIRQTY; assProcessRecord.PROCESSMODE = (Int32)PROCESSMODE.报修; assProcessRecord.HANDLEMAN = Data.CREATEUSER; break; case PROCESSMODE.维修完毕: assProcessRecord.QUANTITY = RowData.REPAIREDQTY; assProcessRecord.PROCESSMODE = (Int32)PROCESSMODE.维修完毕; assProcessRecord.HANDLEMAN = Data.MODIFYUSER; break; } switch (Type) //根据操作模式,输入操作内容 { case PROCESSMODE.报修: assProcessRecord.PROCESSCONTENT = Data.CREATEUSER + "报修了物品编号为" + RowData.ASSID + "的资产"; break; case PROCESSMODE.维修完毕: assProcessRecord.PROCESSCONTENT = Data.CREATEUSER + "维修了物品编号为" + RowData.ASSID + "的资产"; break; } _unitOfWork.RegisterNew(assProcessRecord); }
/// <summary> /// 确认维修 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSave_Press(object sender, EventArgs e) { try { if (getNum() == 0) { throw new Exception("请选择确认行项!"); } ROInputDto BasicData = new ROInputDto(); BasicData.MODIFYDATE = DateTime.Now; BasicData.MODIFYUSER = Client.Session["UserID"].ToString(); BasicData.ROID = ROID; List <AssRepairOrderRow> Data = new List <AssRepairOrderRow>(); foreach (ListViewRow Row in ListAssetsSN.Rows) { frmAssSNRDLayout Layout = Row.Control as frmAssSNRDLayout; Data.Add(Layout.getData()); } BasicData.Rows = Data; ReturnInfo r = autofacConfig.assRepairOrderService.UpdateAssRepairOrder(BasicData); if (r.IsSuccess) { ShowResult = ShowResult.Yes; Form.Close(); Toast("确认维修成功!"); } else { throw new Exception(r.ErrorInfo); } } catch (Exception ex) { Toast(ex.Message); } }