public static string UpdateThrough(T_PRODUCE_SORTTROUGH info, string lastCigarettecode) { using (DZEntities en = new DZEntities()) { T_PRODUCE_SORTTROUGH tps = new T_PRODUCE_SORTTROUGH(); tps = en.T_PRODUCE_SORTTROUGH.Where(item => item.ID == info.ID).FirstOrDefault(); tps.CIGARETTECODE = info.CIGARETTECODE; tps.CIGARETTENAME = info.CIGARETTENAME; int rows = en.SaveChanges(); if (rows > 0) { try { SetThroughActcount(info.CIGARETTECODE, info.GROUPNO ?? 0, lastCigarettecode); } catch (Exception ex) { return("分拣通道信息修改失败!" + ex.ToString()); } return("分拣通道信息修改成功!"); } return("分拣通道信息修改失败!"); } }
/// <summary> /// 验证单个通道 1验证,通道是否启用 /// </summary> /// <param name="cahnnel"></param> /// <returns></returns> public Response ValiSingleChannel(T_PRODUCE_SORTTROUGH channel) { Response re = new Response(); using (DZEntities en = new DZEntities()) { var date = (from item in en.T_PRODUCE_SORTTROUGH orderby item.MACHINESEQ select item).ToList(); //先判断该品牌是否通道中存在 var vali_1 = date.Where(a => a.CIGARETTECODE == channel.CIGARETTECODE && a.STATE == "10").ToList(); var Vali_2 = date.Where(a => a.MACHINESEQ == channel.MACHINESEQ && a.STATE == "10").ToList(); if (!vali_1.Any()) { if (!Vali_2.Any()) { re.IsSuccess = true; re.MessageText = "该通道未被启用" + channel.MACHINESEQ; return(re); } else { re.IsSuccess = false; re.MessageText = "该通道已经启用:" + channel.MACHINESEQ; return(re); } } else { re.IsSuccess = false; re.MessageText = "该通道已经启用:" + channel.MACHINESEQ; return(re); } } }
/// <summary> /// 删除一个通道 /// </summary> /// <returns></returns> public Response RemoveOneTrough(T_PRODUCE_SORTTROUGH tps, bool thDelete = false) { Response re = new Response("删除通道失败:"); try { using (DZEntities en = new DZEntities()) { var res = ValiSingleChannel(tps); if (res.IsSuccess) //如果通道已经启用 { if (thDelete) //如果强制删除 则删除 { en.T_PRODUCE_SORTTROUGH.DeleteObject(tps); if (en.SaveChanges() > 0) { re.IsSuccess = true; re.MessageText = tps.MACHINESEQ + "通道删除成功"; return(re); } else { re.DefaultResponse.MessageText += "数据更新行数为0"; return(re.DefaultResponse); } } else { res.IsSuccess = false; res.MessageText += "通道删除失败!"; return(res); } } else//如果没有启用 则直接删除 { en.T_PRODUCE_SORTTROUGH.DeleteObject(tps); if (en.SaveChanges() > 0) { re.IsSuccess = true; re.MessageText = tps.MACHINESEQ + "通道删除成功"; return(re); } else { return(re.DefaultResponse); } } } } catch (Exception ex) { re.DefaultResponse.MessageText += ex.Message; return(re); } }
public static bool UpdateLeftCount(CigarreteLeftCountInfo info, decimal groupNo) { using (DZEntities en = new DZEntities()) { T_PRODUCE_SORTTROUGH infos = new T_PRODUCE_SORTTROUGH(); infos = en.T_PRODUCE_SORTTROUGH.Where(item => item.CIGARETTETYPE == 30 && item.GROUPNO == groupNo && item.STATE == "10" && item.MACHINESEQ == info.MachineSeq).OrderBy(item => item.MACHINESEQ).FirstOrDefault(); infos.MANTISSA = info.Mantissa; infos.THRESHOLD = info.Threshold; return(en.SaveChanges() > 0); } }
public static bool UpdateThroughState(ThroughInfo info) { using (DZEntities en = new DZEntities()) { decimal CigType = Convert.ToDecimal(info.CigaretteType); decimal tType = Convert.ToDecimal(info.GroupNo); T_PRODUCE_SORTTROUGH infos = new T_PRODUCE_SORTTROUGH(); infos = en.T_PRODUCE_SORTTROUGH.Where(item => item.ID == info.ID && item.CIGARETTETYPE == CigType && item.GROUPNO == tType).FirstOrDefault(); if (info.State == "禁用") { infos.STATE = "0"; } else { infos.STATE = "10"; } return(en.SaveChanges() > 0 ? true : false); } }
/// <summary> /// 修改一个通道 /// </summary> /// <returns></returns> public Response ChangeOneTrough(T_PRODUCE_SORTTROUGH tps) { Response re = new Response("修改通道失败:"); using (DZEntities en = new DZEntities()) { var date = (from item in en.T_PRODUCE_SORTTROUGH where item.MACHINESEQ == tps.MACHINESEQ select item).ToList(); if (date.Any()) { var singleDate = date.FirstOrDefault(); singleDate.STATE = tps.STATE; singleDate.ACTCOUNT = tps.ACTCOUNT; singleDate.CIGARETTECODE = tps.CIGARETTECODE; singleDate.CIGARETTENAME = tps.CIGARETTENAME; singleDate.CIGARETTETYPE = tps.CIGARETTETYPE; singleDate.GROUPNO = tps.GROUPNO; singleDate.LASTMANTISSA = tps.LASTMANTISSA; singleDate.LINENUM = tps.LINENUM; singleDate.MACHINESEQ = tps.MACHINESEQ; singleDate.MANTISSA = tps.MANTISSA; singleDate.SEQ = tps.SEQ; if (en.SaveChanges() > 0) { re.IsSuccess = true; re.MessageText = "通道修改成功"; return(re); } else { re.IsSuccess = false; re.MessageText = "通道修改失败"; return(re); } } else { re.DefaultResponse.MessageText += "未找到该通道"; return(re); } } }
public static decimal GetTroughNextUnFinished(string throughno, int orderCount) { decimal total = 0; using (Entities entity = new Entities()) { T_PRODUCE_SORTTROUGH info = SortTroughService.GetFJTroughInfo(10, throughno, 20); var query = (from item in entity.T_PRODUCE_POKE // where item.TROUGHNUM == throughno where item.SORTSTATE != 20 && item.GROUPNO == info.GROUPNO orderby item.SORTNUM select item).ToList(); if (query != null) { total = query.Take(orderCount).Sum(p => p.POKENUM) ?? 0; } return(total); } }
/// <summary> /// 增加一个通道 /// </summary> /// <returns></returns> public Response AddOneTrough(T_PRODUCE_SORTTROUGH addInfo) { Response re = new Response("增加通道失败:"); try { using (DZEntities en = new DZEntities()) { var res = ValiSingleChannel(addInfo); if (res.IsSuccess) { addInfo.ID = GetId;//自增 涨一个ID en.T_PRODUCE_SORTTROUGH.AddObject(addInfo); if (en.SaveChanges() > 0) { re.IsSuccess = true; re.MessageText = "增加通道成功"; return(re); } else { re.IsSuccess = false; re.MessageText = "增加通道失败!"; return(re); } } else { return(res); } } } catch (Exception ex) { re.MessageText += "\r\n" + ex.Message; return(re); } }
private void cmb_GroupList_SelectedIndexChanged(object sender, EventArgs e) { T_PRODUCE_SORTTROUGH obj = cmb_GroupList.SelectedItem as T_PRODUCE_SORTTROUGH; loadData.LoadDatas <List <T_PRODUCE_SORTTROUGH> >(() => { var list = SortTroughService.GetTrough(10, 20).Where(w => w.GROUPNO == obj.GROUPNO).OrderBy(ord => Decimal.Parse(ord.TROUGHNUM.Trim())).ToList(); return(list); }, (list) => { cbsource.DataSource = list; cbsource.DisplayMember = "TROUGHNUM"; cbsource.ValueMember = "TROUGHNUM"; var chagelist = SortTroughService.GetBackTrough(10, 20).Where(w => w.GROUPNO == obj.GROUPNO).OrderBy(ord => Decimal.Parse(ord.TROUGHNUM.Trim())).ToList(); cbStandby.DataSource = chagelist; cbStandby.DisplayMember = "TROUGHNUM"; cbStandby.ValueMember = "TROUGHNUM"; }, (exceptionInfo) => { MessageBox.Show(exceptionInfo); }); }
public static decimal GetTroughFirstUnFinished(string throughno) { decimal total = 0; using (Entities entity = new Entities()) { T_PRODUCE_SORTTROUGH info = SortTroughService.GetFJTroughInfo(10, throughno, 20); var query = (from item in entity.T_PRODUCE_POKE // where item.TROUGHNUM == throughno where item.SORTSTATE != 20 && item.GROUPNO == info.GROUPNO orderby item.SORTNUM select item).FirstOrDefault(); if (query != null) { var query2 = (from item in entity.T_PRODUCE_POKE where item.SORTNUM == query.SORTNUM && item.TROUGHNUM == throughno select item).FirstOrDefault(); if (query2 != null) { total = query2.POKENUM ?? 0; } } return(total); } }
private void btn_save_Click(object sender, EventArgs e) { if (Type == 0) { T_PRODUCE_SORTTROUGH tps = new T_PRODUCE_SORTTROUGH(); tps.CIGARETTECODE = cigcode; tps.CIGARETTENAME = cigname; tps.STATE = "10"; // Convert.ToDecimal(cbthroughnum.SelectedValue); tps.MACHINESEQ = Convert.ToDecimal(cbthroughnum.SelectedItem); var a = cc.AddOneTrough(tps); if (a.IsSuccess) { Close(); } else { MessageBox.Show(a.MessageText); } } else if (Type == 1) { T_PRODUCE_SORTTROUGH tps = new T_PRODUCE_SORTTROUGH(); tps.MACHINESEQ = Machineseq; tps.CIGARETTENAME = cigname; tps.CIGARETTECODE = cigcode; var a = cc.ChangeOneTrough(tps); if (a.IsSuccess) { Close(); } else { MessageBox.Show(a.MessageText); } } }
private void cbsource_SelectedIndexChanged(object sender, EventArgs e) { T_PRODUCE_SORTTROUGH selectedItem = cbsource.SelectedItem as T_PRODUCE_SORTTROUGH; cbciagrettcode.Text = selectedItem.CIGARETTENAME; }
public static string InsertThrough(T_PRODUCE_SORTTROUGH through) { using (DZEntities en = new DZEntities()) { decimal id = en.T_PRODUCE_SORTTROUGH.Select(item => item.ID).Max(); decimal throughNum = Convert.ToDecimal(en.T_PRODUCE_SORTTROUGH.Where(item => item.GROUPNO == through.GROUPNO).Select(item => item.TROUGHNUM).Max()); decimal seq = en.T_PRODUCE_SORTTROUGH.Where(item => item.GROUPNO == through.GROUPNO).Select(item => item.SEQ).Max() ?? 0; T_PRODUCE_SORTTROUGH tps = new T_PRODUCE_SORTTROUGH(); if (through.MACHINESEQ == 90) { int count = en.T_PRODUCE_SORTTROUGH.Where(item => item.CIGARETTETYPE == 40 && item.GROUPNO == 2 && item.CIGARETTECODE == through.CIGARETTECODE).Count(); if (count != 0) { return("该品牌在混合道中已经存在-" + through.CIGARETTENAME); } tps = new T_PRODUCE_SORTTROUGH() { ID = id + 1, CIGARETTECODE = through.CIGARETTECODE, CIGARETTENAME = through.CIGARETTENAME, CIGARETTETYPE = through.CIGARETTETYPE, GROUPNO = through.GROUPNO, LINENUM = through.LINENUM, MANTISSA = through.MANTISSA, SEQ = through.SEQ, STATE = through.STATE, TROUGHNUM = (throughNum + 1).ToString(), TROUGHTYPE = through.TROUGHTYPE, MACHINESEQ = through.MACHINESEQ, LASTMANTISSA = through.LASTMANTISSA, THRESHOLD = through.THRESHOLD, ACTCOUNT = through.ACTCOUNT, TROUGHDESC = through.TROUGHDESC }; } else { int count = en.T_PRODUCE_SORTTROUGH.Where(item => item.CIGARETTETYPE == 40 && item.GROUPNO == 1 && item.CIGARETTECODE == through.CIGARETTECODE).Count(); if (count != 0) { return("该品牌在特异形烟混合道中已经存在-" + through.CIGARETTENAME); } tps = new T_PRODUCE_SORTTROUGH() { ID = id + 1, CIGARETTECODE = through.CIGARETTECODE, CIGARETTENAME = through.CIGARETTENAME, CIGARETTETYPE = through.CIGARETTETYPE, GROUPNO = through.GROUPNO, LINENUM = through.LINENUM, MANTISSA = through.MANTISSA, SEQ = seq + 1, STATE = through.STATE, TROUGHNUM = (throughNum + 1).ToString(), TROUGHTYPE = through.TROUGHTYPE, MACHINESEQ = through.MACHINESEQ, LASTMANTISSA = through.LASTMANTISSA, THRESHOLD = through.THRESHOLD, ACTCOUNT = through.ACTCOUNT, TROUGHDESC = through.TROUGHDESC }; } en.T_PRODUCE_SORTTROUGH.AddObject(tps); int rows = en.SaveChanges(); if (rows > 0) { return("异形烟混合通道-" + through.CIGARETTENAME + "创建成功!"); } return("异形烟混合通道-" + through.CIGARETTENAME + "创建失败!"); } }
public Response AutoGenReplan() { Response response = new Response(); Boolean flag = false; int i = 0; using (DZEntities entites = new DZEntities()) { TransactionOptions transactionOption = new TransactionOptions(); transactionOption.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; using (TransactionScope tran = new TransactionScope(TransactionScopeOption.Required, transactionOption)) { try { decimal maxid = 0; //卧式通道预补货 var wsList = (from ws in entites.T_PRODUCE_SORTTROUGH where ws.STATE == "10" && ws.GROUPNO == 3 select ws).ToList(); var itemList = (from item in entites.T_WMS_ITEM where item.ROWSTATUS == 10 select item).ToList(); if (wsList.Any()) { foreach (var item in wsList) { T_WMS_ITEM citem = itemList.Find(x => x.ITEMNO == item.CIGARETTECODE); //计算需要预补多少件 decimal jtsize = citem.JT_SIZE ?? 0; if (jtsize > 0) { decimal ct = ((item.THRESHOLD - item.MANTISSA) / jtsize) ?? 0; double cigCount = Math.Floor(Convert.ToDouble(ct)); if (cigCount > 0) { for (int j = 0; j < cigCount; j++) { i++; T_PRODUCE_REPLENISHPLAN plan = new T_PRODUCE_REPLENISHPLAN(); plan.CIGARETTECODE = item.CIGARETTECODE; plan.CIGARETTENAME = item.CIGARETTENAME; plan.ID = (++maxid); plan.JYCODE = citem.BIGBOX_BAR; plan.REPLENISHQTY = 1; plan.TASKNUM = maxid.ToString(); plan.MANTISSA = item.MANTISSA + citem.JT_SIZE; item.MANTISSA = plan.MANTISSA; plan.TROUGHNUM = item.MACHINESEQ.ToString(); //通道编号默认 plan.STATUS = 0; //新增状态 plan.TYPE = 10; //排程自动补货 plan.SEQ = 1; plan.ISCOMPLETED = 10; //已生成托盘补货计划 entites.T_PRODUCE_REPLENISHPLAN.AddObject(plan); //item.STATUS = 10;//已生成托盘补货计划 } } } } entites.SaveChanges();//提交 最多24条补货 } //根据订单正常补货 var sortList = (from item in entites.T_PRODUCE_SORTTROUGH where item.TROUGHTYPE == 10 && item.STATE == "10" && (item.CIGARETTETYPE == 30 || item.CIGARETTETYPE == 40) select item).ToList(); sortList.ForEach(x => x.LASTMANTISSA = x.MANTISSA);//更新上次尾数 var pokeList1 = (from item in entites.T_UN_POKE where item.STATUS == 0 select item).ToList(); var pokeList = (from item in entites.T_UN_POKE where item.STATUS == 0 group item by new { item.SORTNUM, item.TROUGHNUM, item.CIGARETTECODE } into g orderby g.Key.SORTNUM, g.Key.TROUGHNUM select new { SORTNUM = g.Key.SORTNUM, TROUGHNUM = g.Key.TROUGHNUM, CIGARETTECODE = g.Key.CIGARETTECODE, POKENUM = g.Sum(x => x.POKENUM) }).ToList(); var list = (from item in entites.T_PRODUCE_REPLENISHPLAN select item.ID).ToList(); if (list.Count > 0) { maxid = list.Max(); } if (pokeList1.Any()) { foreach (var item in pokeList) { T_PRODUCE_SORTTROUGH sorttrough = sortList.Find(x => x.CIGARETTECODE == item.CIGARETTECODE && x.TROUGHNUM == item.TROUGHNUM); T_WMS_ITEM citem = itemList.Find(x => x.ITEMNO == item.CIGARETTECODE); sorttrough.MANTISSA = sorttrough.MANTISSA - item.POKENUM; if (sorttrough.THRESHOLD - sorttrough.MANTISSA >= citem.JT_SIZE)//如果空出一件烟就可以补 { i++; T_PRODUCE_REPLENISHPLAN plan = new T_PRODUCE_REPLENISHPLAN(); plan.CIGARETTECODE = item.CIGARETTECODE; plan.CIGARETTENAME = sorttrough.CIGARETTENAME; plan.ID = (++maxid); plan.JYCODE = citem.BIGBOX_BAR; plan.REPLENISHQTY = 1; plan.TASKNUM = maxid.ToString(); plan.MANTISSA = sorttrough.MANTISSA + citem.JT_SIZE; sorttrough.MANTISSA = plan.MANTISSA; plan.TROUGHNUM = sorttrough.MACHINESEQ.ToString(); //通道编号默认 plan.STATUS = 0; //新增状态 plan.TYPE = 30; //排程自动补货 plan.SEQ = 0; plan.ISCOMPLETED = 10; //已生成托盘补货计划 entites.T_PRODUCE_REPLENISHPLAN.AddObject(plan); //item.STATUS = 10;//已生成托盘补货计划 if (i == 100) { entites.SaveChanges(); i = 0; } } // //entites.SaveChanges(); } pokeList1.ForEach(x => x.STATUS = 10); entites.SaveChanges(); tran.Complete(); flag = true; response.MessageText = "补货计划生成成功!"; } else { flag = false; response.MessageText = "暂无新的分拣数据,无需生成补货计划!"; } response.IsSuccess = flag; } catch (Exception e) { flag = false; response.MessageText = "生成补货计划出错,请联系系统管理员!" + e.ToString(); response.IsSuccess = flag; } return(response); } } }
private void btn_save_Click(object sender, EventArgs e) { T_PRODUCE_SORTTROUGH tps = new T_PRODUCE_SORTTROUGH(); //tps.MACHINESEQ = Convert.ToDecimal(this.cbthroughnum.Text.Trim());//设备物理号编号:获取选择下拉框内的通道编号 if (cbthroughnum.SelectedIndex == 0) { groupNo = 2; tps.SEQ = 60; tps.LINENUM = "1"; tps.TROUGHDESC = "立式烟仓第90道(混合道)"; } else { groupNo = 1; //tps.SEQ = 200; tps.LINENUM = "2"; tps.TROUGHDESC = "特异型烟道"; } //tps.TROUGHDESC = this.txt_troughdesc.Text.Trim(); tps.CIGARETTECODE = this.txt_itemno.Text; tps.CIGARETTENAME = this.txt_itemname.Text; //tps.SEQ = 2; tps.GROUPNO = groupNo; tps.TROUGHTYPE = 10; tps.CIGARETTETYPE = Convert.ToDecimal(40); tps.MANTISSA = 0; tps.STATE = "10"; tps.ACTCOUNT = 1; tps.TROUGHTYPE = 10; tps.THRESHOLD = 50; tps.LASTMANTISSA = 0; //tps.LINENUM = "0"; //if (tps.MACHINESEQ.ToString() == "") //{ // MessageBox.Show("请选择通道编号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); // return; //} if (tps.CIGARETTECODE == "") { MessageBox.Show("请选择卷烟品牌!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (handle_sign == "0") { string str = this.cbthroughnum.Text.Trim(); //string s = str.Substring(str.IndexOf('(')+1, str.IndexOf(')') - str.IndexOf('(')-1); tps.MACHINESEQ = Convert.ToDecimal(str.Substring(str.IndexOf('(') + 1, str.IndexOf(')') - str.IndexOf('(') - 1)); string msg = ThroughClass.InsertThrough(tps); MessageBox.Show(msg); this.Close(); } else { tps.MACHINESEQ = Convert.ToDecimal(this.cbthroughnum.Text.Trim()); if (tps.MACHINESEQ.ToString() == "") { MessageBox.Show("请选择通道编号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } tps.MACHINESEQ = Convert.ToDecimal(this.cbthroughnum.Text.Trim()); tps.ID = Convert.ToDecimal(id); string msg = ThroughClass.UpdateThrough(tps, lastCigarettecode); MessageBox.Show(msg); } }