Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
            }
        }
Ejemplo n.º 3
0
        /// <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);
            }
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
        /// <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);
            }
        }
Ejemplo n.º 6
0
        /// <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);
            }
        }
Ejemplo n.º 7
0
        /// <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);
        }
Ejemplo n.º 8
0
        /// <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);
            }
        }
Ejemplo n.º 9
0
        /// <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);
        }
Ejemplo n.º 10
0
        /// <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);
            }
        }