Browse Source

.加缓存区

master
yibo 4 years ago
parent
commit
c1c31c04dc
8 changed files with 751 additions and 626 deletions
  1. +5
    -1
      ButcherFactory.BO/BaseInfo/ClientGoodsSet.cs
  2. +3
    -0
      ButcherFactory.BO/BaseInfo/Goods.cs
  3. +5
    -1
      ButcherFactory.BO/Bill/SegmentProduction.cs
  4. +4
    -1
      ButcherFactory.BO/Bill/TotalCode.cs
  5. +3
    -1
      ButcherFactory.BO/LocalBL/FormClientGoodsSetBL.cs
  6. +49
    -2
      ButcherFactory.BO/LocalBL/SegmentProductionBL.cs
  7. +565
    -564
      ButcherFactory.Form/SegmentProductionAuto_/SegmentProductionAutoForm.Designer.cs
  8. +117
    -56
      ButcherFactory.Form/SegmentProductionAuto_/SegmentProductionAutoForm.cs

+ 5
- 1
ButcherFactory.BO/BaseInfo/ClientGoodsSet.cs View File

@ -51,7 +51,11 @@ namespace ButcherFactory.BO
[ReferenceTo(typeof(Goods), "EachNumber")] [ReferenceTo(typeof(Goods), "EachNumber")]
[Join("Goods_ID", "ID")] [Join("Goods_ID", "ID")]
public int? EachNumber { get; set; }
public int? EachNumber { get; set; }
[ReferenceTo(typeof(Goods), "NoTotalCode")]
[Join("Goods_ID", "ID")]
public bool? NoTotalCode { get; set; }
public decimal? StandardWeight { get; set; } public decimal? StandardWeight { get; set; }


+ 3
- 0
ButcherFactory.BO/BaseInfo/Goods.cs View File

@ -26,5 +26,8 @@ namespace ButcherFactory.BO
public string ShotPrintName { get; set; } public string ShotPrintName { get; set; }
public int? EachNumber { get; set; } public int? EachNumber { get; set; }
[DbColumn(DefaultValue = 0)]
public bool NoTotalCode { get; set; }
} }
} }

+ 5
- 1
ButcherFactory.BO/Bill/SegmentProduction.cs View File

@ -61,7 +61,11 @@ namespace ButcherFactory.BO
[ReferenceTo(typeof(Goods), "GoodsType")] [ReferenceTo(typeof(Goods), "GoodsType")]
[Join("Goods_ID", "ID")] [Join("Goods_ID", "ID")]
public short? GoodsType { get; set; }
public short? GoodsType { get; set; }
[ReferenceTo(typeof(Goods), "NoTotalCode")]
[Join("Goods_ID", "ID")]
public bool? NoTotalCode { get; set; }
public long? GroupID { get; set; } public long? GroupID { get; set; }


+ 4
- 1
ButcherFactory.BO/Bill/TotalCode.cs View File

@ -18,7 +18,10 @@ namespace ButcherFactory.BO
public short GoodsType { public short GoodsType {
get { return _goodsType; } get { return _goodsType; }
set { _goodsType = value; } set { _goodsType = value; }
}
}
[DbColumn(DefaultValue = 0)]
public bool NoTotalCode { get; set; }
[NonDmoProperty] [NonDmoProperty]
public string ShortCode public string ShortCode


+ 3
- 1
ButcherFactory.BO/LocalBL/FormClientGoodsSetBL.cs View File

@ -71,7 +71,8 @@ namespace ButcherFactory.BO.LocalBL
query.Columns.Add(DQSelectColumn.Field("StandardPic", detail)); query.Columns.Add(DQSelectColumn.Field("StandardPic", detail));
query.Columns.Add(DQSelectColumn.Field("MainUnit", detail)); query.Columns.Add(DQSelectColumn.Field("MainUnit", detail));
query.Columns.Add(DQSelectColumn.Field("ShotPrintName", detail)); query.Columns.Add(DQSelectColumn.Field("ShotPrintName", detail));
query.Columns.Add(DQSelectColumn.Field("EachNumber", detail));
query.Columns.Add(DQSelectColumn.Field("EachNumber", detail));
query.Columns.Add(DQSelectColumn.Field("NoTotalCode", detail));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create(main, "ID")); query.OrderBy.Expressions.Add(DQOrderByExpression.Create(main, "ID"));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create(detail, "ID")); query.OrderBy.Expressions.Add(DQOrderByExpression.Create(detail, "ID"));
@ -97,6 +98,7 @@ namespace ButcherFactory.BO.LocalBL
entity.MainUnit = (string)reader[10]; entity.MainUnit = (string)reader[10];
entity.ShotPrintName = (string)reader[11]; entity.ShotPrintName = (string)reader[11];
entity.EachNumber = (int?)reader[12]; entity.EachNumber = (int?)reader[12];
entity.NoTotalCode = (bool)reader[13];
if (result.ContainsKey(key)) if (result.ContainsKey(key))
result[key].Add(entity); result[key].Add(entity);
else else


+ 49
- 2
ButcherFactory.BO/LocalBL/SegmentProductionBL.cs View File

@ -80,7 +80,51 @@ namespace ButcherFactory.BO.LocalBL
return list; return list;
} }
public static BindingList<long?> GetInStoreList()
public static TotalCode InitStayTotalCode()
{
TotalCode entity = null;
var date = DateTime.Now;
using (var session = DmoSession.New())
{
var tuple = GetStayTotalCode(date, session);
if (tuple == null)
{
entity = new TotalCode();
entity.UserID = AppContext.Worker.ID;
entity.GoodsType = 1;
entity.NoTotalCode = true;
entity.RowIndex = 1;
// 年月日+2位机器号
entity.BarCode = string.Format("{0:yyyyMMdd}{1}", date, AppContext.ConnectInfo.ClientCode);
session.Insert(entity);
session.Commit();
}
else
{
entity = new TotalCode();
entity.ID = tuple.Item1;
entity.BarCode = tuple.Item2;
entity.GoodsType = 1;
entity.NoTotalCode = true;
}
}
return entity;
}
static Tuple<long, string> GetStayTotalCode(DateTime date, IDmoSession session)
{
var query = new DQueryDom(new JoinAlias("_main", typeof(TotalCode)));
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Columns.Add(DQSelectColumn.Field("BarCode"));
query.Where.Conditions.Add(DQCondition.EQ("GoodsType", 1));
query.Where.Conditions.Add(DQCondition.EQ("NoTotalCode", 1));
query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual("CreateTime", date.Date));
query.Where.Conditions.Add(DQCondition.LessThan("CreateTime", date.Date.AddDays(1)));
return query.EExecuteScalar<long, string>(session);
}
public static BindingList<long?> GetInStoreList()
{ {
var query = new DQueryDom(new JoinAlias(typeof(SegmentProduction))); var query = new DQueryDom(new JoinAlias(typeof(SegmentProduction)));
@ -112,10 +156,12 @@ namespace ButcherFactory.BO.LocalBL
query.Columns.Add(DQSelectColumn.Field("RowIndex")); query.Columns.Add(DQSelectColumn.Field("RowIndex"));
query.Columns.Add(DQSelectColumn.Field("BarCode")); query.Columns.Add(DQSelectColumn.Field("BarCode"));
query.Columns.Add(DQSelectColumn.Field("GoodsType")); query.Columns.Add(DQSelectColumn.Field("GoodsType"));
query.Columns.Add(DQSelectColumn.Field("NoTotalCode"));
query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual("CreateTime", date.Date)); query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual("CreateTime", date.Date));
query.Where.Conditions.Add(DQCondition.LessThan("CreateTime", date.Date.AddDays(1))); query.Where.Conditions.Add(DQCondition.LessThan("CreateTime", date.Date.AddDays(1)));
query.Where.Conditions.Add(DQCondition.And( DQCondition.EQ("Delete", false) )); query.Where.Conditions.Add(DQCondition.And( DQCondition.EQ("Delete", false) ));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("GoodsType")); query.OrderBy.Expressions.Add(DQOrderByExpression.Create("GoodsType"));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("NoTotalCode", true));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID",true)); query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID",true));
var list = new BindingList<TotalCode>(); var list = new BindingList<TotalCode>();
using (var session = DmoSession.New()) using (var session = DmoSession.New())
@ -128,7 +174,8 @@ namespace ButcherFactory.BO.LocalBL
entity.ID = (long)reader[0]; entity.ID = (long)reader[0];
entity.RowIndex = (int?)reader[1]; entity.RowIndex = (int?)reader[1];
entity.BarCode = (string)reader[2]; entity.BarCode = (string)reader[2];
entity.GoodsType = (short)reader[3];
entity.GoodsType = (short)reader[3];
entity.NoTotalCode = (bool)reader[4];
list.Add(entity); list.Add(entity);
} }
} }


+ 565
- 564
ButcherFactory.Form/SegmentProductionAuto_/SegmentProductionAutoForm.Designer.cs
File diff suppressed because it is too large
View File


+ 117
- 56
ButcherFactory.Form/SegmentProductionAuto_/SegmentProductionAutoForm.cs View File

@ -114,6 +114,7 @@ namespace ButcherFactory.SegmentProductionAuto_
} }
wDic = mCache.Cache; wDic = mCache.Cache;
_freshTotalCode = SegmentProductionBL.InitFreshTotalCode(); _freshTotalCode = SegmentProductionBL.InitFreshTotalCode();
_stayTotalCode = SegmentProductionBL.InitStayTotalCode();
} }
void LoadBind() void LoadBind()
@ -335,6 +336,7 @@ namespace ButcherFactory.SegmentProductionAuto_
entity.ProductBatch_ID = batchID.Value; entity.ProductBatch_ID = batchID.Value;
entity.StandardPic = detail.StandardPic; entity.StandardPic = detail.StandardPic;
entity.GoodsType = detail.GoodsType; entity.GoodsType = detail.GoodsType;
entity.NoTotalCode = detail.NoTotalCode;
if (!string.IsNullOrEmpty(statisticNumberBox.Text)) if (!string.IsNullOrEmpty(statisticNumberBox.Text))
entity.StatisticNumber = decimal.Parse(statisticNumberBox.Text); entity.StatisticNumber = decimal.Parse(statisticNumberBox.Text);
@ -344,38 +346,61 @@ namespace ButcherFactory.SegmentProductionAuto_
bool rebuild = false; bool rebuild = false;
if (entity.GoodsType == 0) if (entity.GoodsType == 0)
{ {
entity.TotalCode_ID = _freshTotalCode.ID;
thisTotal = _freshTotalCode;
thisPanel = _freshPanel;
if (_totalCode.GoodsType != 0)
entity.TotalCode_ID = _freshTotalCode.ID;
thisTotal = _freshTotalCode;
thisPanel = _freshPanel;
if (_totalCode.GoodsType != 0)
{
foreach (var bt in codeButtons)
{ {
foreach (var bt in codeButtons)
{
if (bt.Selected)
{
bt.Selected = false;
bt.Invalidate();
}
}
_codePanel = _freshPanel;
_codePanel.Selected = true;
_codePanel.Invalidate();
_totalCode = _freshTotalCode;
rebuild=true;
if (bt.Selected)
{
bt.Selected = false;
bt.Invalidate();
}
} }
_codePanel = _freshPanel;
_codePanel.Selected = true;
_codePanel.Invalidate();
_totalCode = _freshTotalCode;
rebuild = true;
}
} }
else
else if (entity.GoodsType == 1 && entity.NoTotalCode == true)
{ {
if (_totalCode == null || _codePanel == null)
entity.TotalCode_ID = _stayTotalCode.ID;
thisTotal = _stayTotalCode;
thisPanel = _stayPanel;
if (_totalCode.GoodsType != 1 || _totalCode.NoTotalCode != true)
{
foreach (var bt in codeButtons)
{ {
throw new Exception(string.Format("请先选择总码!"));
}
if(_totalCode.GoodsType==0){
throw new Exception(string.Format("只有鲜品才可以选择鲜品总码!"));
if (bt.Selected)
{
bt.Selected = false;
bt.Invalidate();
}
} }
entity.TotalCode_ID = _totalCode.ID;
thisTotal = _totalCode;
thisPanel = _codePanel;
_codePanel = _stayPanel;
_codePanel.Selected = true;
_codePanel.Invalidate();
_totalCode = _stayTotalCode;
rebuild = true;
}
}
else
{
if (_totalCode == null || _codePanel == null)
{
throw new Exception(string.Format("请先选择总码!"));
}
if (_totalCode.GoodsType == 0)
{
throw new Exception(string.Format("只有鲜品才可以选择鲜品总码!"));
}
entity.TotalCode_ID = _totalCode.ID;
thisTotal = _totalCode;
thisPanel = _codePanel;
} }
SegmentProductionBL.InsertAndSetGroupID(entity, batchDate.Value); SegmentProductionBL.InsertAndSetGroupID(entity, batchDate.Value);
@ -499,16 +524,16 @@ namespace ButcherFactory.SegmentProductionAuto_
flowLayoutPanel4.Controls.Clear(); flowLayoutPanel4.Controls.Clear();
foreach (var item in allCode) foreach (var item in allCode)
{ {
if (item.GoodsType == 0)
if (item.GoodsType == 0 || (item.GoodsType == 1 && item.NoTotalCode == true))
{ {
} }
else else
{ {
if (deleteList.Contains(item.ID))
{
continue;
}
if (deleteList.Contains(item.ID))
{
continue;
}
} }
var n = new ColorButton(); var n = new ColorButton();
@ -561,31 +586,55 @@ namespace ButcherFactory.SegmentProductionAuto_
foreach (var item2 in groupByTotal) foreach (var item2 in groupByTotal)
{ {
var d = item2.FirstOrDefault(); var d = item2.FirstOrDefault();
//鲜品不删除总码
//鲜品不删除总码
if (d.GoodsType == 0) if (d.GoodsType == 0)
{ {
if (_freshPanel != null)
if (_freshPanel != null)
{
var list = new List<ColorButton>();
foreach (var t in item2)
{ {
var list=new List<ColorButton>();
foreach (var t in item2)
foreach (ColorButton item in flowLayoutPanel4.Controls)
{
var tagItem = (SegmentProduction)item.Tag;
if (tagItem.BarCode == t.BarCode)
{ {
foreach (ColorButton item in flowLayoutPanel4.Controls)
{
var tagItem = (SegmentProduction)item.Tag;
if (tagItem.BarCode == t.BarCode)
{
list.Add(item) ;
break;
}
}
list.Add(item);
break;
} }
foreach (var item in list)
{
flowLayoutPanel4.Controls.Remove(item);
}
}
foreach (var item in list)
{
flowLayoutPanel4.Controls.Remove(item);
}
}
continue;
}
else if (d.GoodsType == 1 && d.NoTotalCode == true)//暂存区不删除总码
{
if (_stayPanel != null)
{
var list = new List<ColorButton>();
foreach (var t in item2)
{
foreach (ColorButton item in flowLayoutPanel4.Controls)
{
var tagItem = (SegmentProduction)item.Tag;
if (tagItem.BarCode == t.BarCode)
{
list.Add(item);
break;
} }
}
continue;
}
}
foreach (var item in list)
{
flowLayoutPanel4.Controls.Remove(item);
}
}
continue;
} }
var f = codeButtons.FirstOrDefault(x => ((TotalCode)x.Tag).ID == item2.Key); var f = codeButtons.FirstOrDefault(x => ((TotalCode)x.Tag).ID == item2.Key);
if (f != null) if (f != null)
@ -706,8 +755,13 @@ namespace ButcherFactory.SegmentProductionAuto_
} }
if (_totalCode.GoodsType == 0) if (_totalCode.GoodsType == 0)
{ {
MessageBox.Show("鲜品总码不允许删除");
return;
MessageBox.Show("鲜品总码不允许删除");
return;
}
else if (_totalCode.GoodsType == 1 && _totalCode.NoTotalCode == true)
{
MessageBox.Show("暂存区总码不允许删除");
return;
} }
SegmentProductionBL.DeleteTotalCode(_totalCode); SegmentProductionBL.DeleteTotalCode(_totalCode);
allCode.Remove(_totalCode); allCode.Remove(_totalCode);
@ -802,8 +856,10 @@ namespace ButcherFactory.SegmentProductionAuto_
ColorButton _codePanel; ColorButton _codePanel;
ColorButton _freshPanel; ColorButton _freshPanel;
ColorButton _stayPanel;
TotalCode _totalCode; TotalCode _totalCode;
TotalCode _freshTotalCode; TotalCode _freshTotalCode;
TotalCode _stayTotalCode;
private void colorButton1_Click(object sender, EventArgs e) private void colorButton1_Click(object sender, EventArgs e)
{ {
@ -814,7 +870,7 @@ namespace ButcherFactory.SegmentProductionAuto_
AddCodeButton(n, tCode,true); AddCodeButton(n, tCode,true);
flowLayoutPanel4.Controls.Clear(); flowLayoutPanel4.Controls.Clear();
flowLayoutPanel3.Controls.Add(n); flowLayoutPanel3.Controls.Add(n);
flowLayoutPanel3.Controls.SetChildIndex(n, 1);
flowLayoutPanel3.Controls.SetChildIndex(n, 2);
} }
private void AddCodeButton(ColorButton n, TotalCode tCode, bool add = false) private void AddCodeButton(ColorButton n, TotalCode tCode, bool add = false)
@ -822,11 +878,16 @@ namespace ButcherFactory.SegmentProductionAuto_
n .Tag = tCode; n .Tag = tCode;
if (tCode.GoodsType == 0) if (tCode.GoodsType == 0)
{ {
n .Text ="鲜品";
_freshPanel = n;
n.Text = "鲜品";
_freshPanel = n;
}
else if (tCode.GoodsType == 1 && tCode.NoTotalCode == true)
{
n.Text = "暂存区";
_stayPanel = n;
} }
else else
n .Text = tCode.ShortCode;
n.Text = tCode.ShortCode;
n .Click += delegate n .Click += delegate
{ {


Loading…
Cancel
Save