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); }
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); }
public SelectPlaceInForm(InterfaceSelect parent, InOutType inOutType, string placeArea, DataTable dtPar) { InitializeComponent(); this.parent = parent; this.inOutType = inOutType; this.placeArea = placeArea; this.dtPar = dtPar; }
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); } }
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; }
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; }
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(); }
/// <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)); }
/// <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); }
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); }
/// <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); }
/// <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)); }
/// <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 }
/// <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)); }
/// <summary> /// 手工出库 /// </summary> /// <param name="user">货位信息</param> /// <returns></returns> public string handOut(DataTable dt, string mainMeno, InOutType type) { return(dal.handOut(dt, mainMeno, type)); }
/// <summary> /// 手工入库 /// </summary> /// <returns></returns> public string HandIn(DataTable dt, string mainMeno, InOutType type) { return(dal.HandIn(dt, mainMeno, type)); }
/// <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)); }
/// <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); }
/// <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(); } }
public static void UserInOut(InOutType inOutType, User m_pUser) { }
/// <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(); } }