/// <summary>
        /// 后台用户库存入库(库存减少用的)
        /// </summary>
        /// <param name="operationId"></param>
        /// <param name="entity"></param>
        /// <param name="loginId"></param>
        /// <returns></returns>
        public static bool CreateStockDeliverAdmin(string operationId, OrderEntity entity, string loginId)
        {
            List<DeliverEntity> deliverList = new List<DeliverEntity>();//需要更新的交割单列表
            List<DeliverRecordEntity> deliverRecordList = new List<DeliverRecordEntity>();
            List<UpdateDataMember> updateList = new List<UpdateDataMember>();//需要更新的订单信息
            List<UpdateDataMember> userList = new List<UpdateDataMember>();//需要更新用户数量

            StockEntity stockEntity = LoadByAccount(entity.UserId);//获取订单所属用户信息
            entity.OrderType = 13;//默认提货单
            Direction d = Direction.库存调整;

            //获取交割单信息
            List<DeliverEntity> list = GetListByAccount(entity.Account, d, 1);
            if (list == null || list.Count <= 0)
                return false;

            #region 计算交割单信息

            Dictionary<GoodsType, decimal> dic = new Dictionary<GoodsType, decimal>();
            dic.Add(GoodsType.Au, entity.Au);
            dic.Add(GoodsType.Ag, entity.Ag);
            dic.Add(GoodsType.Pd, entity.Pd);
            dic.Add(GoodsType.Pt, entity.Pt);
            foreach (var key in dic.Keys)
            {
                var tmp = list.Where(m => m.Goods.Equals((int)key)).ToList();
                var values = dic[key];
                if (values >= 0) continue;
                foreach (var mm in tmp)
                {
                    if (values > mm.AvailableTotal)
                    {
                        values -= mm.AvailableTotal;
                        mm.AvailableTotal = 0;
                        mm.State = 0;
                        deliverList.Add(mm);
                    }
                    else
                    {
                        mm.State = values.Equals(mm.AvailableTotal) ? 0 : 1;
                        mm.AvailableTotal = mm.AvailableTotal + values;
                        if (mm.AvailableTotal == 0)
                        {
                            mm.State = 0;
                        }
                        deliverList.Add(mm);
                        break;
                    }
                }
            }

            #endregion

            List<DeliverAdjustmentEntity> listDeliver = new List<DeliverAdjustmentEntity>();

            DeliverAdjustmentEntity deliver = null;
            if (entity.Au < 0)
            {
                deliver = new DeliverAdjustmentEntity();
                deliver.DeliverAdjustmentID = Guid.NewGuid().ToString("n");
                deliver.DeliverAdjustmentNO = "JS" + DateTime.Now.ToString("yyMMddhhmmssffff");
                deliver.Goods = (int)GoodsType.Au;
                deliver.Direction = (int)OrderType.库存调整;
                deliver.Total = entity.Au;
                deliver.Account = entity.Account;
                deliver.LockPrice = 0;
                deliver.State = 0;
                deliver.AvailableTotal = 0;
                deliver.FromFlag = 1;
                deliver.OperationUserID = operationId;
                deliver.UserID = entity.UserId;
                listDeliver.Add(deliver);
            }
            if (entity.Ag < 0)
            {
                deliver = new DeliverAdjustmentEntity();
                deliver.DeliverAdjustmentID = Guid.NewGuid().ToString("n");
                deliver.DeliverAdjustmentNO = "JS" + DateTime.Now.ToString("yyMMddhhmmssffff");
                deliver.Goods = (int)GoodsType.Ag;
                deliver.Direction = (int)OrderType.库存调整;
                deliver.Total = entity.Ag;
                deliver.Account = entity.Account;
                deliver.LockPrice = 0;
                deliver.State = 0;
                deliver.AvailableTotal = 0;
                deliver.FromFlag = 1;
                deliver.OperationUserID = operationId;
                deliver.UserID = entity.UserId;
                listDeliver.Add(deliver);
            }
            if (entity.Pd < 0)
            {
                deliver = new DeliverAdjustmentEntity();
                deliver.DeliverAdjustmentID = Guid.NewGuid().ToString("n");
                deliver.DeliverAdjustmentNO = "JS" + DateTime.Now.ToString("yyMMddhhmmssffff");
                deliver.Goods = (int)GoodsType.Pd;
                deliver.Direction = (int)OrderType.库存调整;
                deliver.Total = entity.Pd;
                deliver.Account = entity.Account;
                deliver.LockPrice = 0;
                deliver.State = 0;
                deliver.AvailableTotal = 0;
                deliver.FromFlag = 1;
                deliver.OperationUserID = operationId;
                deliver.UserID = entity.UserId;
                listDeliver.Add(deliver);
            }
            if (entity.Pt < 0)
            {
                deliver = new DeliverAdjustmentEntity();
                deliver.DeliverAdjustmentID = Guid.NewGuid().ToString("n");
                deliver.DeliverAdjustmentNO = "JS" + DateTime.Now.ToString("yyMMddhhmmssffff");
                deliver.Goods = (int)GoodsType.Pt;
                deliver.Direction = (int)OrderType.库存调整;
                deliver.Total = entity.Pt;
                deliver.Account = entity.Account;
                deliver.LockPrice = 0;
                deliver.State = 0;
                deliver.AvailableTotal = 0;
                deliver.FromFlag = 1;
                deliver.OperationUserID = operationId;
                deliver.UserID = entity.UserId;
                listDeliver.Add(deliver);
            }

            UserLogEntity userLogEntity = new UserLogEntity();

            userLogEntity.Account = operationId;
            userLogEntity.DESC = string.Format(@"后台用户库存调整(减少):{0}库存,减少.Ag:{1},Au:{2},Pt:{3},Pd:{4};", entity.Account, entity.Au, entity.Ag, entity.Pt, entity.Pd);
            userLogEntity.UserType = (int)LogType.用户库存调整减少;
            YicelTransaction tran = new YicelTransaction();
            try
            {
                tran.BeginTransaction();
                //  CreateOrder(order, tran);//创建订单信息
                deliverList.ForEach(m => UpdateDeliver(m, entity, operationId, tran));//更新交割单信息
                listDeliver.ForEach(m => CreateDeliverAdjustment(m, tran));
                UpdateUserTotal(entity, stockEntity, tran);//更新用户库存数量
                CreateLog(userLogEntity, tran);
                tran.Commit();
                return true;
            }
            catch (Exception ex)
            {
                ManagerLog.WriteErr(ex + ":" + userLogEntity.DESC);
                tran.Rollback();
                return false;
            }
        }
 /// <summary>
 /// 金商库存修改减少
 /// </summary>
 /// <param name="entity"></param>
 /// <param name="tran"></param>
 /// <returns></returns>
 public static int CreateDeliverAdjustment(DeliverAdjustmentEntity entity, YicelTransaction tran)
 {
     entity.DeliverDate = DateTime.Now.ToString();
     entity.CreateDate = entity.DeliverDate;
     SqlParameter[] parms = new SqlParameter[] {
         new SqlParameter("@DeliverAdjustmentId",entity.DeliverAdjustmentID),
         new SqlParameter("@DeliverAdjustmentNo",entity.DeliverAdjustmentNO),
         new SqlParameter("@Goods",entity.Goods),
         new SqlParameter("@Direction",entity.Direction),
         new SqlParameter("@Total",entity.Total),
         new SqlParameter("@DeliverDate",entity.DeliverDate),
         new SqlParameter("@LockPrice",entity.LockPrice),
         new SqlParameter("@State",entity.State),
         new SqlParameter("@AvailableTotal",entity.AvailableTotal),
         new SqlParameter("@CreateDate",entity.CreateDate),
         new SqlParameter("@FromFlag",entity.FromFlag),
         new SqlParameter("@OperationUserID",entity.OperationUserID),
         new SqlParameter("@UserID",entity.UserID),
        new SqlParameter("@Account",entity.Account)
     };
     StringBuilder strSql = new StringBuilder();
     strSql.AppendFormat("insert into DeliverAdjustment_BZJ({0})", Fields.DeliverAdjustment_List);
     strSql.AppendFormat(" values ({0})", "@" + Fields.DeliverAdjustment_List.Replace(",", ",@"));
     object obj = DbHelper.ExecuteNonQuery(strSql.ToString(), parms, tran.Transaction);
     return obj == null || obj == DBNull.Value ? 0 : Convert.ToInt32(obj);
 }