Example #1
0
        public static string GetInOutCode(InOutType inOutType)
        {
            string code;

            switch (inOutType)
            {
            case InOutType.MATERIEL_OUT:
                code = "OM";
                break;

            case InOutType.MATERIEL_IN:
                code = "IM";
                break;

            case InOutType.KNIFE_OUT_USE:
                code = "OU";
                break;

            case InOutType.KNIFE_IN:
                code = "IK";
                break;

            case InOutType.KNIFE_IN_USE:
                code = "IU";
                break;

            default:
                code = "";
                break;
            }

            return(code);
        }
Example #2
0
        public void NpcInOut(InOutType bType, float fX, float fZ, float fY)
        {
            if (GetRegion() == null)
            {
                SetRegion((short)GetNewRegionX(), (short)GetNewRegionZ());
            }

            if (GetRegion() == null)
            {
                return;
            }

            if (bType == InOutType.INOUT_OUT)
            {
                GetRegion().Remove(this);
            }
            else
            {
                GetRegion().Add(this);
                SetPosition(fX, fY, fZ);
            }

            Packet result = new Packet();

            GetInOut(ref result, bType);
            SendToRegion(result);
        }
Example #3
0
 public SelectPlaceInForm(InterfaceSelect parent, InOutType inOutType, string placeArea, DataTable dtPar)
 {
     InitializeComponent();
     this.parent    = parent;
     this.inOutType = inOutType;
     this.placeArea = placeArea;
     this.dtPar     = dtPar;
 }
Example #4
0
 public string getIOType(InOutType type)
 {
     if (type == InOutType.In)
     {
         return("01");
     }
     return("02");
 }
 public void GetInOut(ref Packet result, InOutType bType)
 {
     result = new Packet(WIZ.USER_INOUT);
     result = result + (short)bType + GetSocketID();
     if (bType != InOutType.INOUT_OUT)
     {
         GetUserInfo(ref result);
     }
 }
Example #6
0
 public void Assign(DealItem item)
 {
     Time     = item.Time;
     BuyPr    = item.BuyPr;
     SellPr   = item.SellPr;
     DealPr   = item.DealPr;
     TickQty  = item.TickQty;
     TotalQty = item.TotalQty;
     InOut    = item.InOut;
 }
Example #7
0
 public DealItem(int time, double buyPr, double sellPr, double dealPr, uint tickQty, uint totalQty, byte prFlag, uint matchBuyCnt, uint matchSellCnt)
 {
     Time         = time;
     BuyPr        = buyPr;
     SellPr       = sellPr;
     DealPr       = dealPr;
     TickQty      = tickQty;
     TotalQty     = totalQty;
     MatchBuyCnt  = matchBuyCnt;
     MatchSellCnt = matchSellCnt;
     InOut        = (InOutType)prFlag;
 }
Example #8
0
        public void GetInOut(ref Packet result, InOutType bType)
        {
            result = new Packet(WIZ.NPC_INOUT);
            result = result + (byte)bType + GetID();
            if (bType != InOutType.INOUT_OUT)
            {
                GetNpcInfo(ref result);
            }

            if (bType == InOutType.INOUT_IN)
            {
                OnRespawn();
            }
        }
        public STR_Skel_EnterExitUI(String key, ProcessState_EnterExit parent, InOutType ioType,
            double indicator)
        {
            InitializeComponent();

            _key = key;
            _parent = parent;
            _ioType = ioType;

            this._indicator = indicator;

            SetValue();

            ExecuteAutoHotKey();
        }
Example #10
0
        /// <summary>
        /// 删除记录
        /// </summary>
        /// <returns></returns>
        public ActionResult DeleteData()
        {
            string res = "";

            if (Request["DeleteItem"] == null)
            {
                res = "参数错误!";
            }
            else
            {
                string    item     = Request["DeleteItem"].ToString();
                InOutType itemLine = JsonConvert.DeserializeObject <InOutType>(item);
                res = InOutTypeService.DeleteEntity(itemLine) ? "删除成功" : "删除失败";
            }
            return(Content(res));
        }
Example #11
0
        /// <summary>
        /// 添加和修改
        /// </summary>
        /// <returns></returns>
        public ActionResult SaveData()
        {
            bool      result    = false;
            string    dataitem  = Request["InOutType"];
            string    savetype  = Request["savetype"].ToString().Trim();
            InOutType model_lgt = JsonConvert.DeserializeObject <InOutType>(dataitem);

            if (savetype == "add")
            {
                InOutTypeService.AddEntity(model_lgt);
                result = true;
            }
            else if (savetype == "edit")
            {
                result = InOutTypeService.EditEntity(model_lgt);
            }
            return(Content(result.ToString()));
        }
        public void UserInOut(InOutType bType)
        {
            if (GetRegion() == null)
            {
                return;//
            }
            Packet result = new Packet();

            GetInOut(ref result, bType);

            if (bType == InOutType.INOUT_OUT)
            {
                GetRegion().Remove(this);
            }
            else
            {
                GetRegion().Add(this);
            }

            SendToRegion(result);
        }
Example #13
0
        public RuleItemUI(String var, InOutType Type)
        {
            this.Name = var;
            InitializeComponent();

            if (Type == InOutType.In)
            {
                _current = FuzzyApp.getVariablebyName(FuzzyApp.InputVariables, var);
            }
            else
            {
                _current = FuzzyApp.getVariablebyName(FuzzyApp.OutputVariables, var);
            }

            VarText.Text          = _current.Name;
            this.Name             = var;
            MFCombo.DataSource    = _current.MFs;
            MFCombo.ValueMember   = "Name";
            MFCombo.DisplayMember = "Name";
            MFCombo.SelectedValue = ((FuzzyLogicController.MFs.MemberShipFunction)MFCombo.Items[0]).Name;

            _item = new RuleItem(_current.Name, (String)MFCombo.SelectedValue);
        }
Example #14
0
        /// <summary>
        /// 根据id和名称获得货位(最小控制单元)
        /// </summary>
        /// <param name="tableName"></param>
        /// <returns></returns>
        public DataTable getListByIN(string id, string name, string placeArea, InOutType type)
        {
            string sql;

            if (type.Equals(InOutType.MATERIEL_IN))
            {
                sql = " SELECT [C_ID], [C_NAME], case when b.num > 0 then '是' else '否' end FROM [T_JB_Place] a " +
                      " left join (select C_PLACE, count(*) num from [T_OPERATE_STOCKS] group by C_PLACE) b on a.C_ID = b.C_PLACE where I_END=1 and I_INUSE = 1 " +
                      " and C_ID not in (select C_PLACE from T_RUNING_DOLIST) ";
            }
            else
            {
                sql = " SELECT [C_ID], [C_NAME], case when b.num > 0 then '是' else '否' end FROM [T_JB_Place] a " +
                      " left join (select C_PLACE, count(*) num from [T_OPERATE_STOCKS] group by C_PLACE) b on a.C_ID = b.C_PLACE where I_END=1 and I_INUSE = 1 " +
                      " and C_ID not in (select C_PLACE from T_RUNING_DOLIST) " +
                      " and C_ID not in (select C_PLACE from T_OPERATE_INOUT_SUB where I_FLAG = 1) " +
                      " and C_ID not in (select C_PLACE from T_OPERATE_STOCKS) ";
            }

            DataTable dt = new DataTable();

            try
            {
                if (id != null || name != null || placeArea != null)
                {
                    Hashtable table = new Hashtable();
                    if (id != null)
                    {
                        sql += " and C_ID like @id";
                        table.Add("id", id + "%");
                    }

                    if (name != null)
                    {
                        sql += " and C_NAME like @C_NAME";
                        table.Add("C_NAME", "%" + name + "%");
                    }

                    if (placeArea != null)
                    {
                        sql += " and C_AREA = @C_AREA";
                        table.Add("C_AREA", placeArea);
                    }

                    sql += " order by convert(numeric,c_id) asc";
                    DbParameter[] parms = dbHelper.getParams(table);
                    dt = dbHelper.GetDataSet(sql, parms);
                }
                else
                {
                    sql += " order by convert(numeric,c_id) asc";
                    dt   = dbHelper.GetDataSet(sql);
                }
            }
            catch (Exception ex)
            {
                Log.write(ex.Message + "\r\n" + ex.StackTrace);
                throw ex;
            }
            finally
            {
                dbHelper.getConnection().Close();
            }
            return(dt);
        }
Example #15
0
 /// <summary>
 /// 保存联机队列
 /// </summary>
 /// <param name="dt"></param>
 /// <param name="meno"></param>
 /// <param name="station"></param>
 /// <returns></returns>
 public string SaveDolist(DataTable dt, string meno, InOutType type)
 {
     return(dal.SaveDolist(dt, meno, type));
 }
Example #16
0
        /// <summary>
        /// 开始调度
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_start_Click(object sender, RoutedEventArgs e)
        {
            direction = DirectionWay.None;
            ShowText("正在发送运行指令...");
            x_sbar.ShowText("正在处理...");
            #region old method
            //InstructionInfo insInfo = new InstructionInfo();

            //insInfo.TruckCode = cb_trucklist.Text;//叉车
            //insInfo.StartCode = "01";

            //var truck_item = x_tService.Get(a => a.Truckcode == insInfo.TruckCode && a.HouseId == houseId).FirstOrDefault();
            //if (truck_item != null && truck_item.Truckstatus != 0)
            //{
            //    MsgBox.Show("叉车"+ insInfo.TruckCode +"正在运行中,请等待叉车运行完成。");
            //    return;
            //}

            //string startcode = cb_start_route.Text;
            //if (string.IsNullOrEmpty(startcode))
            //{
            //    MsgBox.Show("叉车暂无停车位信息,请选择叉车出发点");
            //    return;
            //}
            //string rackcode = cb_pack_route.SelectedValue.ToString();
            //var rack_item = x_rkService.Get(a => a.Rackcode == rackcode).FirstOrDefault();

            //inpackroute = insInfo.InPackCode = rack_item.RouteCode; //取货点
            //string ulayer = cb_pack_layer.Text;
            //if (string.IsNullOrEmpty(ulayer))
            //{
            //    MsgBox.Show("取货点没有层位数据,请先完善层位信息");
            //    return;
            //}
            //insInfo.InPackLayer = Convert.ToInt32(cb_pack_layer.Text).ToString("x2");

            //ComboBoxItem cb_item = cb_packtype.SelectedItem as ComboBoxItem;
            //insInfo.InOut = cb_item.Tag.ToString(); //出库入库

            //rackcode = cb_downpack_route.SelectedValue.ToString();
            //var out_rack_item = x_rkService.Get(a => a.Rackcode == rackcode).FirstOrDefault();
            //outpackroute = insInfo.OutPackCode = out_rack_item.RouteCode;

            //string dlayer = cb_downpack_layer.Text;
            //if (string.IsNullOrEmpty(dlayer))
            //{
            //    MsgBox.Show("卸货点没有层位数据,请先完善层位信息");
            //    return;
            //}
            //insInfo.OutPackLayer = Convert.ToInt32(dlayer).ToString("x2");

            //string end = cb_end_route.Text;
            //var end_item = routelist.Where(a => a.Routecode == end).FirstOrDefault();

            //Dictionary<string, List<DNode>> dict = SetToNodes();
            //PathMathHelper.InitRouteNodes(dict);
            //string path1 = startcode + PathMathHelper.Start(startcode, inpackroute);   //取货路径

            //PathMathHelper.InitRouteNodes(dict);
            //string path2 = PathMathHelper.Start(inpackroute, outpackroute);     //卸货路径

            //PathMathHelper.InitRouteNodes(dict);
            //string path3 = PathMathHelper.Start(outpackroute, end);      //停车路径


            //ComputePath(insInfo, path1, path2, rack_item);
            //ComputePath(insInfo, path2, path3, out_rack_item);
            //ComputePath(insInfo, path3);
            //if (end_item != null && end_item.Isstart == 2)  //如果终点是停车位,则反转停车位的转向
            //{
            //    if (insInfo.RouteWay.Count > 2)
            //    {
            //        var wayinfo = insInfo.RouteWay.Last();
            //        if (wayinfo.Way == TurnWay.Left)
            //        {
            //            wayinfo.Way = TurnWay.Right;
            //            insInfo.AddItem(wayinfo.RouteCode, TurnWay.Back);
            //        }
            //        else if (wayinfo.Way == TurnWay.Right)
            //        {
            //            wayinfo.Way = TurnWay.Left;
            //            insInfo.AddItem(wayinfo.RouteCode, TurnWay.Back);
            //        }
            //    }
            //}
            //insInfo.AddItem(end, TurnWay.Stop);
            #endregion
            ComboBoxItem cb_item = cb_packtype.SelectedItem as ComboBoxItem;
            string       iotype  = cb_item.Tag.ToString(); //出库入库
            InOutType    intype  = InOutType.Out;
            if (iotype == "02")
            {
                intype = InOutType.In;
            }
            string rackcode  = cb_pack_route.SelectedValue.ToString();
            var    rack_item = x_rkService.Get(a => a.Rackcode == rackcode).FirstOrDefault();

            inpackroute = rack_item.RouteCode; //取货点
            string ulayer = cb_pack_layer.SelectedValue.ToString();

            string rackcode2     = cb_downpack_route.SelectedValue.ToString();
            var    out_rack_item = x_rkService.Get(a => a.Rackcode == rackcode2).FirstOrDefault();
            outpackroute = out_rack_item.RouteCode;

            string          dlayer  = cb_downpack_layer.SelectedValue.ToString();
            InstructionInfo insInfo = new DispathService(houseId).SetToMap(intype, ulayer, dlayer, "");
            string          path1   = insInfo.PathList[0];
            string          path2   = insInfo.PathList[1];
            string          path3   = insInfo.PathList[2];

            #region 显示路径
            string[] pathArr = (path1 + path2 + path3).Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            if (MainWindow.routeShow != null && MainWindow.routeShow.IsVisible)
            {
                Dispatcher.Invoke(new Action(() =>
                {
                    MainWindow.routeShow.ClearTruckLine();
                    foreach (string p in pathArr)
                    {
                        MainWindow.routeShow.ShowTruckLine(p);
                    }
                }));
            }
            #endregion
            string route = insInfo.ResetInstruction(rackList);
            MainWindow.WriteToPort(route);
            #region 显示算法结果
            string route1 = route.Substring(0, 14);
            string route2 = route.Substring(14, route.Length - 14);
            ShowText(route1);
            ShowText(route2);

            ShowText("已向叉车" + insInfo.TruckCode + "发送运行指令,等待启动……");
            string showpath = "运行路径:" + path1 + ", 取货 " + path2 + " 卸货 " + path3 + " 停车";

            ShowText(showpath);
            //ShowText("叉车" + cb_trucklist.Text + "已运行结束");
            ShowText("----------------------------------------");
            x_sbar.ShowText("处理完成.");
            #endregion
        }
Example #17
0
 /// <summary>
 /// 获得刀具报废
 /// </summary>
 /// <param name="materile"></param>
 /// <param name="startDate"></param>
 /// <param name="endDate"></param>
 /// <param name="inout"></param>
 /// <returns></returns>
 public DataTable getKDList(DateTime startDate, DateTime endDate, string place, string machine, InOutType type, string mid)
 {
     return(dal.getKDList(startDate, endDate, place, machine, type, mid));
 }
Example #18
0
 /// <summary>
 /// 手工出库
 /// </summary>
 /// <param name="user">货位信息</param>
 /// <returns></returns>
 public string handOut(DataTable dt, string mainMeno, InOutType type)
 {
     return(dal.handOut(dt, mainMeno, type));
 }
Example #19
0
 /// <summary>
 /// 手工入库
 /// </summary>
 /// <returns></returns>
 public string HandIn(DataTable dt, string mainMeno, InOutType type)
 {
     return(dal.HandIn(dt, mainMeno, type));
 }
Example #20
0
 /// <summary>
 /// 根据id和名称获得货位(最小控制单元)
 /// </summary>
 /// <param name="tableName"></param>
 /// <returns></returns>
 public DataTable getListByIN(string id, string name, string placeArea, InOutType type)
 {
     return(dal.getListByIN(id, name, placeArea, type));
 }
Example #21
0
        /// <summary>
        /// 构造指令地图
        /// </summary>
        /// <param name="iotype">出库入库</param>
        /// <param name="rackcode1">取货仓位编码</param>
        /// <param name="rackcode2">卸货仓位编码</param>
        /// <param name="tuopancode">托盘编码</param>
        /// <returns></returns>
        public InstructionInfo SetToMap(InOutType iotype, string rackcode1, string rackcode2, string tuopancode)
        {
            initData();
            InstructionInfo insInfo = new InstructionInfo();

            RackLayerService x_rlService = new RackLayerService();
            var rlayer = x_rlService.Get(a => a.RackLayerCode == rackcode1).FirstOrDefault();

            if (rlayer != null)
            {
                var rkitem = rackList.Single(a => a.Id == rlayer.RackId);
                insInfo.InPackCode  = rkitem.RouteCode;
                insInfo.InPackLayer = rlayer.RackLayerNum.ToString("x2");
            }
            var rlayer2 = x_rlService.Get(a => a.RackLayerCode == rackcode2).FirstOrDefault();

            if (rlayer2 != null)
            {
                var rkitem = rackList.Single(a => a.Id == rlayer2.RackId);
                insInfo.OutPackCode  = rkitem.RouteCode;
                insInfo.OutPackLayer = rlayer2.RackLayerNum.ToString("x2");
            }


            TruckInfo freetruck = getLatestTruck(insInfo.InPackCode); //寻找最近空闲叉车

            if (freetruck == null)
            {
                insInfo.StatusEnum = InstructionStatus.NoTruck;
                return(insInfo);
            }
            string truckcode      = freetruck.Truckcode;
            string truckcoderoute = freetruck.TruckrouteCode;

            insInfo.StartCode = insInfo.getStartType(StartType.Start);
            insInfo.InOut     = insInfo.getIOType(iotype);
            insInfo.TruckCode = truckcode;


            insInfo.TuopanCode = tuopancode;
            if (iotype == InOutType.In)
            {
                insInfo.RackLayerCode = rackcode2;
            }
            else
            {
                insInfo.RackLayerCode = rackcode1;
            }

            var          packList   = routelist.Where(a => a.Isstart == 2);
            TruckService x_tkServic = new TruckService();
            var          tkList     = x_tkServic.Get(a => a.Isvalid == 1 && a.HouseId == HouseId);

            //排除掉已占用的停车位,还需要排除掉已被规划的停车位
            foreach (var item in packList)
            {
                foreach (var titem in tkList)
                {
                    if (titem.TruckrouteCode == item.Routecode)
                    {
                        item.IsValid = 0;
                    }
                }
            }
            foreach (var item in waylist)
            {
                var code = item[item.Count - 1].RouteCode;
                foreach (var pitem in packList)
                {
                    if (pitem.Routecode == code)
                    {
                        pitem.IsValid = 0;
                    }
                }
            }
            string endroute = "";
            var    end_item = packList.Where(a => a.IsValid == 1).FirstOrDefault();

            if (end_item != null)
            {
                endroute = end_item.Routecode;
            }
            else
            {
                endroute = truckcoderoute;
                end_item = routelist.Where(a => a.Routecode == endroute).First();
            }

            //开始计算路径

            PathMathHelper.InitRouteNodes(nodeDict);
            PathMathResult result = PathMathHelper.Start(truckcoderoute, insInfo.InPackCode); //取货路径
            string         path1  = truckcoderoute + result.Path;                             //取货路径

            insInfo.PathList.Add(path1);
            PathMathHelper.InitRouteNodes(nodeDict);
            result = PathMathHelper.Start(insInfo.InPackCode, insInfo.OutPackCode);
            string path2 = result.Path;     //卸货路径

            insInfo.PathList.Add(path2);
            PathMathHelper.InitRouteNodes(nodeDict);
            result = PathMathHelper.Start(insInfo.OutPackCode, endroute); //停车路径
            string path3 = result.Path;                                   //停车路径

            insInfo.PathList.Add(path3);
            var rack_item     = rackList.Where(a => a.Rackcode == insInfo.InPackCode).FirstOrDefault();
            var out_rack_item = rackList.Where(a => a.Rackcode == insInfo.OutPackCode).FirstOrDefault();

            ComputePath(insInfo, path1, path2, rack_item);
            ComputePath(insInfo, path2, path3, out_rack_item);
            ComputePath(insInfo, path3);

            //如果终点是停车位,则反转停车位的转向
            if (end_item != null && end_item.Isstart == 2)
            {
                if (insInfo.RouteWay.Count > 2)
                {
                    var wayinfo = insInfo.RouteWay.Last();
                    if (wayinfo.Way == TurnWay.Left)
                    {
                        wayinfo.Way = TurnWay.Right;
                        insInfo.AddItem(wayinfo.RouteCode, TurnWay.Back);
                    }
                    else if (wayinfo.Way == TurnWay.Right)
                    {
                        wayinfo.Way = TurnWay.Left;
                        insInfo.AddItem(wayinfo.RouteCode, TurnWay.Back);
                    }
                }
            }
            insInfo.AddItem(end_item.Routecode, TurnWay.Stop);

            waylist.Add(insInfo.RouteWay);
            return(insInfo);
        }
Example #22
0
        /// <summary>
        /// 联机任务
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="meno"></param>
        /// <param name="station"></param>
        /// <returns></returns>
        public string SaveDolist(DataTable dt, string meno, InOutType type)
        {
            int result = 0;

            DbConnection conn = dbHelper.getConnection();

            try
            {
                conn.Open();
            }
            catch (Exception ex)
            {
                Log.write(ex.Message + "\r\n" + ex.StackTrace);
                conn.Close();
                throw ex;
            }
            DbTransaction tran = conn.BeginTransaction();
            DbCommand     com  = conn.CreateCommand();
            string        sql  = string.Empty;

            try
            {
                com.Transaction = tran;

                string   dh;
                DateTime dtNow  = DateTime.Now;
                long     dec_id = 0;
                string   c_id   = string.Empty;
                sql = "SELECT MAX(c_id) FROM T_OPERATE_INOUT_MAIN where datediff(day,[D_TIME],getdate()) = 0 AND C_CRK_LEIBIE = '" + (int)type + "'";

                com.CommandText = sql;
                object obj = com.ExecuteScalar();
                dec_id = Convert.IsDBNull(obj) ? 0 : Convert.ToInt64(obj.ToString().Substring(10));
                c_id   = Common.GetInOutCode(type) + dtNow.ToString("yyyyMMdd") + (dec_id + 1).ToString().PadLeft(6, '0');
                dh     = c_id;

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    sql             = @"INSERT INTO [T_Runing_Dolist]([Dec_ID], [C_DH],  [I_INOUT], [D_RQ], [C_MATERIEL], 
                            [C_PLACE], [DEC_COUNT],  [C_CZY], [I_RUN], [D_AddRQ], [C_MEMO], [I_FLAG], [C_MACHINE])
                            VALUES(@Dec_ID, @C_DH, @I_INOUT, @D_RQ, @C_MATERIEL, @C_PLACE, @DEC_COUNT, @C_CZY, @I_RUN, @D_AddRQ, @C_MEMO, @I_FLAG, @C_MACHINE)";
                    com.CommandText = sql;

                    Hashtable table2 = new Hashtable();
                    table2.Add("Dec_ID", i + 1);
                    table2.Add("C_DH", dh);
                    table2.Add("I_INOUT", (int)type);
                    table2.Add("D_RQ", Convert.ToDateTime(dt.Rows[i][5]).ToString("yyyy-MM-dd"));
                    table2.Add("C_MATERIEL", dt.Rows[i][0]);
                    table2.Add("C_PLACE", dt.Rows[i][4]);
                    table2.Add("DEC_COUNT", dt.Rows[i][3]);
                    table2.Add("C_CZY", dt.Rows[i][6]);
                    table2.Add("I_RUN", 0);
                    table2.Add("D_AddRQ", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));
                    if (meno == null || string.Empty.Equals(meno.Trim()))
                    {
                        table2.Add("C_MEMO", DBNull.Value);
                    }
                    else
                    {
                        table2.Add("C_MEMO", meno);
                    }

                    if (type.Equals(InOutType.KNIFE_OUT_USE))
                    {
                        table2.Add("I_FLAG", 1);
                        table2.Add("C_MACHINE", dt.Rows[i][7]);
                    }
                    else
                    {
                        table2.Add("I_FLAG", 0);
                        table2.Add("C_MACHINE", DBNull.Value);
                    }

                    DbParameter[] parms2 = dbHelper.getParams(table2);
                    com.Parameters.Clear();
                    com.Parameters.AddRange(parms2);
                    result = com.ExecuteNonQuery();
                }

                tran.Commit();

                if (result > 0)
                {
                    return(dh);
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception ex)
            {
                tran.Rollback();
                conn.Close();
                Log.write(ex.Message + "\r\n" + ex.StackTrace);
                throw ex;
            }
            finally
            {
                conn.Close();
            }
        }
Example #23
0
        public static void UserInOut(InOutType inOutType, User m_pUser)
        {

        }
Example #24
0
 public static void UserInOut(InOutType inOutType, User m_pUser)
 {
 }
Example #25
0
        /// <summary>
        /// 执行联机任务
        /// </summary>
        /// <returns></returns>
        public bool executeDoList(List <string> list, string dh)
        {
            int          result = 0;
            DbConnection conn   = dbHelper.getConnection();

            try
            {
                conn.Open();
            }
            catch (Exception ex)
            {
                conn.Close();
                throw ex;
            }

            SqlTransaction tran  = (SqlTransaction)conn.BeginTransaction();
            SqlCommand     com   = (SqlCommand)conn.CreateCommand();
            string         sql   = string.Empty;
            DateTime       dtNow = DateTime.Now;

            try
            {
                com.Transaction = tran;

                sql             = " select * from T_Runing_Dolist where Dec_ID in (" + string.Join(",", list.ToArray()) + ") and C_DH = @C_DH and I_RUN = 0";
                com.CommandText = sql;
                Hashtable table = new Hashtable();

                //List<string> list1 = new List<string>(list.ToArray());

                table.Add("C_DH", dh);

                DbParameter[] parms = dbHelper.getParams(table);
                com.Parameters.Clear();
                com.Parameters.AddRange(parms);

                SqlDataAdapter sda = new SqlDataAdapter(com);
                DataTable      dt  = new DataTable();
                sda.Fill(dt);
                InOutType type = InOutType.KNIFE_IN;

                if (dt.Rows.Count > 0)
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        if (i == 0)
                        {//主表只加一次
                            type = (InOutType)Convert.ToInt32(dt.Rows[0]["I_INOUT"]);
                            //判断主表数据是否存在
                            sql             = "SELECT count(*) FROM T_OPERATE_INOUT_MAIN where [C_ID] = @C_ID";
                            com.CommandText = sql;
                            Hashtable tableDh = new Hashtable();
                            tableDh.Add("C_ID", dh);
                            DbParameter[] parmsDh = dbHelper.getParams(tableDh);
                            com.Parameters.Clear();
                            com.Parameters.AddRange(parmsDh);
                            int mainCount = int.Parse(com.ExecuteScalar().ToString());

                            if (mainCount == 0)
                            {
                                sql             = "INSERT INTO [T_OPERATE_INOUT_MAIN]([C_ID], [D_RQ], [C_CRK_LEIBIE],  [C_CZY], [C_MEMO], [D_TIME]) VALUES(@C_ID, @D_RQ, @C_CRK_LEIBIE,  @C_CZY,  @C_MEMO, @D_TIME)";
                                com.CommandText = sql;
                                Hashtable tableMain = new Hashtable();

                                tableMain.Add("C_ID", dh);
                                tableMain.Add("D_RQ", dt.Rows[0][3]);
                                tableMain.Add("C_CZY", dt.Rows[0][7]);
                                tableMain.Add("C_CRK_LEIBIE", (int)type);
                                tableMain.Add("D_TIME", dtNow);
                                tableMain.Add("C_MEMO", dt.Rows[0][10]);

                                DbParameter[] parmsMain = dbHelper.getParams(tableMain);
                                com.Parameters.Clear();
                                com.Parameters.AddRange(parmsMain);
                                com.ExecuteNonQuery();
                            }
                        }

                        //子表
                        sql = "INSERT INTO [T_OPERATE_INOUT_SUB]([C_ID], [C_CRK_LEIBIE],[C_MATERIEL], [C_PLACE], [DEC_COUNT], [I_FLAG], [C_MACHINE]) " +
                              "  VALUES(@C_ID,@C_CRK_LEIBIE, @C_MATERIEL, @C_PLACE, @DEC_COUNT, @I_FLAG, @C_MACHINE)";
                        com.CommandText = sql;
                        Hashtable table2 = new Hashtable();
                        table2.Add("C_ID", dh);
                        table2.Add("C_CRK_LEIBIE", (int)type);
                        table2.Add("C_MATERIEL", dt.Rows[i][4]);
                        table2.Add("C_PLACE", dt.Rows[i][5]);
                        table2.Add("DEC_COUNT", dt.Rows[i][6]);
                        table2.Add("I_FLAG", dt.Rows[i][11]);
                        table2.Add("C_MACHINE", dt.Rows[i][12]);

                        DbParameter[] parms2 = dbHelper.getParams(table2);
                        com.Parameters.Clear();
                        com.Parameters.AddRange(parms2);
                        com.ExecuteNonQuery();

                        switch (type)
                        {
                        case InOutType.MATERIEL_OUT:
                        case InOutType.KNIFE_OUT_USE:
                            sql             = "UPDATE [T_OPERATE_STOCKS] SET  [DEC_COUNT]=[DEC_COUNT] - @DEC_COUNT where [C_MATERIEL_ID] = @C_MATERIEL_ID and [C_PLACE] = @C_PLACE";
                            com.CommandText = sql;
                            Hashtable table3 = new Hashtable();
                            table3.Add("C_MATERIEL_ID", dt.Rows[i][4]);
                            table3.Add("C_PLACE", dt.Rows[i][5]);
                            table3.Add("DEC_COUNT", dt.Rows[i][6]);

                            DbParameter[] parms3 = dbHelper.getParams(table3);
                            com.Parameters.Clear();
                            com.Parameters.AddRange(parms3);
                            result = com.ExecuteNonQuery();

                            sql             = "DELETE FROM  [T_OPERATE_STOCKS] where [DEC_COUNT] <=0";
                            com.CommandText = sql;
                            com.ExecuteNonQuery();
                            break;

                        case InOutType.MATERIEL_IN:
                            //判断货位原来是否有同样零件
                            sql             = "SELECT count(*) FROM T_OPERATE_STOCKS where [C_MATERIEL_ID] = @C_MATERIEL_ID and [C_PLACE] = @C_PLACE";
                            com.CommandText = sql;
                            Hashtable table4 = new Hashtable();
                            table4.Add("C_MATERIEL_ID", dt.Rows[i][4]);
                            table4.Add("C_PLACE", dt.Rows[i][5]);
                            DbParameter[] parms4 = dbHelper.getParams(table4);
                            com.Parameters.Clear();
                            com.Parameters.AddRange(parms4);
                            int stockCount = int.Parse(com.ExecuteScalar().ToString());

                            if (stockCount > 0)
                            {    //有同样零件
                                sql             = "UPDATE T_OPERATE_STOCKS SET [DEC_COUNT] = [DEC_COUNT] + @DEC_COUNT, [D_END_TIME] = @D_END_TIME, [C_DH] = @C_DH where [C_MATERIEL_ID] = @C_MATERIEL_ID and [C_PLACE] = @C_PLACE ";
                                com.CommandText = sql;
                                Hashtable table5 = new Hashtable();
                                table5.Add("C_MATERIEL_ID", dt.Rows[i][4]);
                                table5.Add("C_PLACE", dt.Rows[i][5]);
                                table5.Add("DEC_COUNT", dt.Rows[i][6]);
                                table5.Add("D_END_TIME", dt.Rows[i][3]);
                                table5.Add("C_DH", dh);

                                DbParameter[] parms5 = dbHelper.getParams(table5);
                                com.Parameters.Clear();
                                com.Parameters.AddRange(parms5);
                                com.ExecuteNonQuery();
                            }
                            else
                            {    //无同样零件
                                sql             = "INSERT INTO [T_OPERATE_STOCKS]([C_MATERIEL_ID], [C_PLACE], [DEC_COUNT], [D_END_TIME], [C_DH])  VALUES (@C_MATERIEL_ID, @C_PLACE, @DEC_COUNT, @D_END_TIME, @C_DH)";
                                com.CommandText = sql;
                                Hashtable table6 = new Hashtable();
                                table6.Add("C_MATERIEL_ID", dt.Rows[i][4]);
                                table6.Add("C_PLACE", dt.Rows[i][5]);
                                table6.Add("DEC_COUNT", dt.Rows[i][6]);
                                table6.Add("D_END_TIME", dt.Rows[i][3]);
                                table6.Add("C_DH", dh);

                                DbParameter[] parms6 = dbHelper.getParams(table6);
                                com.Parameters.Clear();
                                com.Parameters.AddRange(parms6);
                                com.ExecuteNonQuery();
                            }
                            break;

                        case InOutType.KNIFE_IN_USE:
                            sql             = "UPDATE [T_OPERATE_INOUT_SUB] SET  [I_FLAG]=2 where [C_PLACE] = @C_PLACE and [I_FLAG]=1";
                            com.CommandText = sql;
                            Hashtable tablePrid = new Hashtable();
                            tablePrid.Add("C_PLACE", dt.Rows[i][5]);

                            DbParameter[] parmsPrid = dbHelper.getParams(tablePrid);
                            com.Parameters.Clear();
                            com.Parameters.AddRange(parmsPrid);
                            result = com.ExecuteNonQuery();

                            sql             = "INSERT INTO [T_OPERATE_STOCKS]([C_MATERIEL_ID], [C_PLACE], [DEC_COUNT], [D_END_TIME], [C_DH])  VALUES (@C_MATERIEL_ID, @C_PLACE, @DEC_COUNT, @D_END_TIME, @C_DH)";
                            com.CommandText = sql;
                            Hashtable table7 = new Hashtable();
                            table7.Add("C_MATERIEL_ID", dt.Rows[i][4]);
                            table7.Add("C_PLACE", dt.Rows[i][5]);
                            table7.Add("DEC_COUNT", dt.Rows[i][6]);
                            table7.Add("D_END_TIME", dt.Rows[i][3]);
                            table7.Add("C_DH", dh);

                            DbParameter[] parms7 = dbHelper.getParams(table7);
                            com.Parameters.Clear();
                            com.Parameters.AddRange(parms7);
                            com.ExecuteNonQuery();
                            break;

                        case InOutType.KNIFE_IN:
                            sql             = "INSERT INTO [T_OPERATE_STOCKS]([C_MATERIEL_ID], [C_PLACE], [DEC_COUNT], [D_END_TIME], [C_DH])  VALUES (@C_MATERIEL_ID, @C_PLACE, @DEC_COUNT, @D_END_TIME, @C_DH)";
                            com.CommandText = sql;
                            Hashtable tableKI = new Hashtable();
                            tableKI.Add("C_MATERIEL_ID", dt.Rows[i][4]);
                            tableKI.Add("C_PLACE", dt.Rows[i][5]);
                            tableKI.Add("DEC_COUNT", dt.Rows[i][6]);
                            tableKI.Add("D_END_TIME", dt.Rows[i][3]);
                            tableKI.Add("C_DH", dh);

                            DbParameter[] parmsKI = dbHelper.getParams(tableKI);
                            com.Parameters.Clear();
                            com.Parameters.AddRange(parmsKI);
                            com.ExecuteNonQuery();
                            break;

                        default:
                            break;
                        }
                    }

                    sql             = "DELETE FROM  [T_Runing_Dolist] where Dec_ID in (" + string.Join(",", list.ToArray()) + ") and C_DH = @C_DH and I_RUN = 0";
                    com.CommandText = sql;

                    DbParameter[] parmsDel = dbHelper.getParams(table);
                    com.Parameters.Clear();
                    com.Parameters.AddRange(parmsDel);

                    result = com.ExecuteNonQuery();
                }

                tran.Commit();

                if (result > 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                tran.Rollback();
                conn.Close();

                throw ex;
            }
            finally
            {
                conn.Close();
            }
        }