/// <summary> /// 新增调拨单 /// </summary> /// <param name="entity"></param> /// <returns></returns> public ReturnInfo AddAssTransferOrder(TOInputDto entity, OperateType type) { ReturnInfo RInfo = new ReturnInfo(); if (String.IsNullOrEmpty(entity.MANAGER)) { throw new Exception("调入管理员不能为空"); } if (String.IsNullOrEmpty(entity.HANDLEMAN)) { throw new Exception("处理人不能为空"); } if (String.IsNullOrEmpty(entity.TRANSFERDATE.ToString())) { throw new Exception("业务日期不能为空"); } if (String.IsNullOrEmpty(entity.DESSLID)) { throw new Exception("调入区域不能为空"); } String MaxID = _AssTransferOrderRepository.GetMaxID(); //获取当前最大报修单编号 String NowID = Helper.GeneratePRID("T", MaxID); //生成最新的报修单编号 entity.TOID = NowID; try { AssTransferOrder OrderData = new AssTransferOrder(); OrderData.TOID = NowID; OrderData.MANAGER = entity.MANAGER; OrderData.HANDLEMAN = entity.HANDLEMAN; OrderData.TRANSFERDATE = entity.TRANSFERDATE; OrderData.WAREID = entity.WAREID; OrderData.STID = entity.STID; OrderData.DESSLID = entity.DESSLID; OrderData.NOTE = entity.NOTE; OrderData.TYPE = (int)type; OrderData.STATUS = 0; OrderData.CREATEDATE = entity.CREATEDATE; OrderData.CREATEUSER = entity.CREATEUSER; _unitOfWork.RegisterNew(OrderData); AddAssTransferOrderRow(entity, type); 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 UpdateAssTransferOrder(TOInputDto entity, PROCESSMODE ProType, OperateType type) { ReturnInfo RInfo = new ReturnInfo(); try { if (String.IsNullOrEmpty(entity.TOID)) { throw new Exception("调拨单编号不能为空"); } AssTransferOrder aro = _AssTransferOrderRepository.GetByID(entity.TOID).FirstOrDefault(); if (aro != null) { if (aro.STATUS == 1 || aro.STATUS == 2) { throw new Exception("只有调拨中的才能确认"); } else { List <AssTransferOrderRow> Rows = _AssTransferOrderRowRepository.GetUnTransferTOID(aro.TOID).AsNoTracking().ToList(); if (Rows.Count == entity.Rows.Count) //判断调拨单是完成还是取消 { Boolean isOver = false; foreach (AssTransferOrderRow Row in entity.Rows) //只要调拨行项中有一个确认,则调拨单属于完成 { if (Row.STATUS == 1) { isOver = true; aro.STATUS = 1; } } if (isOver == false) //否之,调拨单为取消 { aro.STATUS = 2; } } //更新报修单行项 aro.MODIFYDATE = entity.MODIFYDATE; aro.MODIFYUSER = entity.MODIFYUSER; entity.DESLOCATIONID = aro.DESLOCATIONID; _unitOfWork.RegisterDirty(aro); UpdateAssTransferOrderRow(entity, ProType, type); 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); } }