Browse Source

修改。

master
yibo 8 years ago
parent
commit
f42ea9b97b
10 changed files with 360 additions and 354 deletions
  1. +0
    -8
      BO/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs
  2. +4
    -10
      BO/BO/Bill/WeightBill/WeightBill.cs
  3. +19
    -19
      BO/Utils/AfterLoginUtil.cs
  4. +2
    -2
      BO/Utils/BaseInfoRpcUtil.cs
  5. +5
    -5
      BO/Utils/BillRpc/GradeAndWeightRpc.cs
  6. +2
    -0
      BWP.WinFormControl/UDatePicker.cs
  7. +9
    -0
      ButcherWeight/WeightForm.cs
  8. +0
    -78
      WeighAndGrading/GradeFrom.Designer.cs
  9. +202
    -232
      WeighAndGrading/GradeFrom.cs
  10. +117
    -0
      WeighAndGrading/GradeFrom.resx

+ 0
- 8
BO/BO/Bill/GradeAndWeight/GradeAndWeight_Detail.cs View File

@ -16,9 +16,6 @@ namespace BO.BO.Bill
/// </summary>
public long SID { get; set; }
[NonDmoProperty]
public bool ReadWeight { get; set; }
public long? OrderDetail_ID { get; set; }
public int? Order { get; set; }
@ -39,11 +36,6 @@ namespace BO.BO.Bill
public DateTime Time { get; set; }
// public string Shortcut { get; set; }//快捷键
public bool IsLostWeight { get; set; }//是否丢称重
/// <summary>
/// ServerID
/// </summary>


+ 4
- 10
BO/BO/Bill/WeightBill/WeightBill.cs View File

@ -57,16 +57,10 @@ namespace BO.BO
public decimal? ShackPrice { get; set; }
public decimal? ShackMoney
{
get
{
var v = ShackPrice * ShackWeight;
if (v.HasValue)
return decimal.Round(v.Value, 2);
return null;
}
}
//棚前单价= (棚前金额+经检费- 猪场扣款)/棚前重量
//棚前金额 = 棚前单价*棚前重量-经检费+猪场扣款
public decimal? ShackMoney { get; set; }
public decimal? JingJianFee { get; set; }


+ 19
- 19
BO/Utils/AfterLoginUtil.cs View File

@ -19,25 +19,25 @@ namespace BO.Utils
public static class AfterLoginUtil
{
static List<Tuple<string, string>> roleToAssemblies = new List<Tuple<string, string>>(){new Tuple<string,string>("排宰员",@"C:\BwpB3Project\src\B3ButcherManageClient\ButcherOrder\bin\Debug\ButcherOrder"),
new Tuple<string,string>("过磅员",@"C:\BwpB3Project\src\B3ButcherManageClient\ButcherWeight\bin\Debug\ButcherWeight"),
new Tuple<string,string>("验质员",@"C:\BwpB3Project\src\B3ButcherManageClient\QualityAndOrder\bin\Debug\QualityAndOrder"),
new Tuple<string,string>("定级员",@"C:\BwpB3Project\src\B3ButcherManageClient\WeighAndGrading\bin\Debug\WeighAndGrading"),
new Tuple<string,string>("窒晕员",@"C:\BwpB3Project\src\B3ButcherManageClient\OrderConfirm\bin\Debug\OrderConfirm"),
new Tuple<string,string>("掉猪处理员",@"C:\BwpB3Project\src\B3ButcherManageClient\DropPigReOrder\bin\Debug\DropPigReOrder"),
new Tuple<string,string>("配货员",@"D:\BWP\BWPB3\src\B3ButcherManageClient\Distribution\bin\Debug\Distribution")
// static List<Tuple<string, string>> roleToAssemblies = new List<Tuple<string, string>>(){new Tuple<string,string>("排宰员",@"C:\BwpB3Project\src\B3ButcherManageClient\ButcherOrder\bin\Debug\ButcherOrder"),
//new Tuple<string,string>("过磅员",@"C:\BwpB3Project\src\B3ButcherManageClient\ButcherWeight\bin\Debug\ButcherWeight"),
// new Tuple<string,string>("验质员",@"C:\BwpB3Project\src\B3ButcherManageClient\QualityAndOrder\bin\Debug\QualityAndOrder"),
// new Tuple<string,string>("定级员",@"C:\BwpB3Project\src\B3ButcherManageClient\WeighAndGrading\bin\Debug\WeighAndGrading"),
// new Tuple<string,string>("窒晕员",@"C:\BwpB3Project\src\B3ButcherManageClient\OrderConfirm\bin\Debug\OrderConfirm"),
// new Tuple<string,string>("掉猪处理员",@"C:\BwpB3Project\src\B3ButcherManageClient\DropPigReOrder\bin\Debug\DropPigReOrder"),
// new Tuple<string,string>("配货员",@"D:\BWP\BWPB3\src\B3ButcherManageClient\Distribution\bin\Debug\Distribution")
};
//};
//static List<Tuple<string, string>> roleToAssemblies = new List<Tuple<string, string>>()
// {
// new Tuple<string,string>("排宰员",@"ButcherOrder"),
// new Tuple<string,string>("过磅员",@"ButcherWeight"),
// new Tuple<string,string>("验质员",@"QualityAndOrder"),
// new Tuple<string,string>("定级员",@"WeighAndGrading"),
// new Tuple<string,string>("窒晕员",@"OrderConfirm"),
// new Tuple<string,string>("掉猪处理员",@"DropPigReOrder"),
// };
static List<Tuple<string, string>> roleToAssemblies = new List<Tuple<string, string>>()
{
new Tuple<string,string>("排宰员",@"ButcherOrder"),
new Tuple<string,string>("过磅员",@"ButcherWeight"),
new Tuple<string,string>("验质员",@"QualityAndOrder"),
new Tuple<string,string>("定级员",@"WeighAndGrading"),
new Tuple<string,string>("窒晕员",@"OrderConfirm"),
new Tuple<string,string>("掉猪处理员",@"DropPigReOrder"),
};
@ -47,10 +47,10 @@ namespace BO.Utils
if (first == null)
throw new Exception("未注册的角色");
//#if debug
var filePath = string.Format("{0}.dll", first.Item2);
//var filePath = string.Format("{0}.dll", first.Item2);
//#endif
//#if !debug
//var filePath = Path.Combine(Application.StartupPath, string.Format("{0}.dll", first.Item2));
var filePath = Path.Combine(Application.StartupPath, string.Format("{0}.dll", first.Item2));
//#endif
if (!File.Exists(filePath))
throw new Exception("相关模块不存在");


+ 2
- 2
BO/Utils/BaseInfoRpcUtil.cs View File

@ -38,10 +38,10 @@ namespace BO.Utils
return result;
}
public static List<CTuple<long, string, short,string>> GetLivestockList()
public static List<CTuple<long, string, short, string>> GetLivestockList()
{
var list = RpcFacade.Call<string>("/MainSystem/B3ClientService/Rpcs/BaseInfoRpc/GetLivestock");
return serializer.Deserialize<List<CTuple<long, string, short,string>>>(list);
return serializer.Deserialize<List<CTuple<long, string, short, string>>>(list);
}
}
}

+ 5
- 5
BO/Utils/BillRpc/GradeAndWeightRpc.cs View File

@ -218,14 +218,14 @@ namespace BO.Utils.BillRpc
}
}
public static void Update(GradeAndWeight_Detail detail, GradeAndWeight dmo)
public static void Update(GradeAndWeight_Detail detail, GradeAndWeight toEntity)
{
if (dmo == null)
if (toEntity == null)
{
throw new Exception(string.Format("请选择左侧的{0}顺序", detail.Technics_Name));
}
detail.Order = dmo.Order;
detail.OrderDetail_ID = dmo.OrderDetail_ID;
detail.Order = toEntity.Order;
detail.OrderDetail_ID = toEntity.OrderDetail_ID;
Update(detail, "OrderDetail_ID", "Order", "Livestock_ID", "Livestock_Name", "Technics", "Technics_Name");
}
@ -234,7 +234,7 @@ namespace BO.Utils.BillRpc
ClearUnSyncDelete();
var syncs = GetAllNeedSyncDetails();
foreach (var detail in syncs)
{
{
const string method = "/MainSystem/B3ClientService/Rpcs/BillRpc/GradeAndWeightRpc/UpdateOrInsertDetailOrDelete";
var id = RpcFacade.Call<long>(method, serializer.Serialize(detail));
if (detail.IsDeleted)


+ 2
- 0
BWP.WinFormControl/UDatePicker.cs View File

@ -60,6 +60,8 @@ namespace BWP.WinFormControl
protected override void OnClick(EventArgs e)
{
if (!this.Enabled)
return;
var cs = new CalendarSelecter();
if (cs.ShowDialog() == true)
{


+ 9
- 0
ButcherWeight/WeightForm.cs View File

@ -283,6 +283,15 @@ namespace ButcherWeight
}
else
Dmo.ShackPrice = null;
if (!string.IsNullOrEmpty(penMoneyInput.Text))
{
decimal pm = 0;
if (!decimal.TryParse(penMoneyInput.Text.Trim(), out pm))
throw new Exception("棚前金额输入错误");
Dmo.ShackMoney = pm;
}
else
Dmo.ShackMoney = null;
if (!string.IsNullOrEmpty(jingjianInput.Text))
{
decimal jjf = 0;


+ 0
- 78
WeighAndGrading/GradeFrom.Designer.cs View File

@ -101,12 +101,6 @@
this.btnStartWeight = new System.Windows.Forms.Button();
this.btnStopWeight = new System.Windows.Forms.Button();
this.dataConfirmBtn = new System.Windows.Forms.Button();
this.label5 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.label9 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label8 = new System.Windows.Forms.Label();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.tangGridView)).BeginInit();
this.groupBox2.SuspendLayout();
@ -792,79 +786,13 @@
this.dataConfirmBtn.UseVisualStyleBackColor = true;
this.dataConfirmBtn.Click += new System.EventHandler(this.dataConfirmBtn_Click);
//
// label5
//
this.label5.AutoSize = true;
this.label5.Font = new System.Drawing.Font("宋体", 15F);
this.label5.Location = new System.Drawing.Point(524, 8);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(69, 20);
this.label5.TabIndex = 45;
this.label5.Text = "烫褪:";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Font = new System.Drawing.Font("宋体", 15F);
this.label6.Location = new System.Drawing.Point(524, 45);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(69, 20);
this.label6.TabIndex = 46;
this.label6.Text = "毛剥:";
//
// label7
//
this.label7.AutoSize = true;
this.label7.Font = new System.Drawing.Font("宋体", 15F);
this.label7.Location = new System.Drawing.Point(583, 10);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(179, 20);
this.label7.TabIndex = 47;
this.label7.Text = "5000 头 500000 KG";
//
// label9
//
this.label9.AutoSize = true;
this.label9.Font = new System.Drawing.Font("宋体", 15F);
this.label9.Location = new System.Drawing.Point(524, 81);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(69, 20);
this.label9.TabIndex = 49;
this.label9.Text = "合计:";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Font = new System.Drawing.Font("宋体", 15F);
this.label3.Location = new System.Drawing.Point(583, 47);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(179, 20);
this.label3.TabIndex = 50;
this.label3.Text = "5000 头 500000 KG";
//
// label8
//
this.label8.AutoSize = true;
this.label8.Font = new System.Drawing.Font("宋体", 15F);
this.label8.Location = new System.Drawing.Point(583, 85);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(179, 20);
this.label8.TabIndex = 51;
this.label8.Text = "5000 头 500000 KG";
//
// GradeFrom
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1438, 845);
this.Controls.Add(this.label8);
this.Controls.Add(this.label3);
this.Controls.Add(this.label9);
this.Controls.Add(this.label7);
this.Controls.Add(this.dataConfirmBtn);
this.Controls.Add(this.label6);
this.Controls.Add(this.btnStopWeight);
this.Controls.Add(this.label5);
this.Controls.Add(this.btnStartWeight);
this.Controls.Add(this.dropPigBtn);
this.Controls.Add(this.lblSucessed);
@ -974,11 +902,5 @@
private System.Windows.Forms.DataGridViewTextBoxColumn H_Livestock_Name;
private System.Windows.Forms.DataGridViewTextBoxColumn H_Weight;
private System.Windows.Forms.DataGridViewTextBoxColumn H_Time;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label8;
}
}

+ 202
- 232
WeighAndGrading/GradeFrom.cs View File

@ -51,9 +51,10 @@ namespace WeighAndGrading
bool connection = false;
SerialPort weightPort;
int maxIndex = 0;
ConcurrentQueue<GradeAndWeight_Detail> noLivestockList;
readonly ConcurrentQueue<GradeAndWeight_Detail> noLivestockList;
Thread syncWork;
bool onWorking = false;
Thread syncTangGrid, syncMaoGrid, syncDetailGrid;
Thread syncToServer;
#region weightNeed
private IDataFormat _dataFormat;
@ -71,6 +72,10 @@ namespace WeighAndGrading
maoGridView.AutoGenerateColumns = false;
maoGridView.DataSource = null;
historyGrid.AutoGenerateColumns = false;
historyGrid.DataSource = null;
tangList = new List<GradeAndWeight>();
maoList = new List<GradeAndWeight>();
noLivestockList = new ConcurrentQueue<GradeAndWeight_Detail>();
if (!Directory.Exists(DATA_PATH))
Directory.CreateDirectory(DATA_PATH);
connection = ButcherAppContext.Context.UserConfig.Connection;
@ -81,8 +86,12 @@ namespace WeighAndGrading
{
if (_inQueryThread != null && _inQueryThread.IsAlive)
DisableWeight();
if (syncWork != null && syncWork.IsAlive)
syncWork.Abort();
if (syncTangGrid != null && syncTangGrid.IsAlive)
syncTangGrid.Abort();
if (syncMaoGrid != null && syncMaoGrid.IsAlive)
syncMaoGrid.Abort();
if (syncDetailGrid != null && syncDetailGrid.IsAlive)
syncDetailGrid.Abort();
if (syncToServer != null && syncToServer.IsAlive)
syncToServer.Abort();
};
@ -97,7 +106,6 @@ namespace WeighAndGrading
return;
}
btn.Enabled = false;
SetlblSucessVisibleTrue();
var livestockTag = btn.Tag as CTuple<long, string, short, string>;
var tech = livestockTag.Item3 == TANG_TECH ? "烫褪" : "毛剥";
@ -109,75 +117,57 @@ namespace WeighAndGrading
}
else
{
var needUpdate = modifyDetail.Technics != livestockTag.Item3;
StartPrintEntity(tech, modifyDetail.Index);
modifyDetail.Livestock_ID = livestockTag.Item1;
modifyDetail.Livestock_Name = livestockTag.Item2;
modifyDetail.Technics = livestockTag.Item3;
modifyDetail.Technics_Name = livestockTag.Item3 == TANG_TECH ? "烫褪" : "毛剥";
if (needUpdate)
{
if (modifyDetail.Technics == 0)//毛剥 到 烫褪
{
LocalGradeAndWeightBL.Update(modifyDetail, tangEntity);
if (modifyDetail.Order.HasValue)
{
var first = maoList.First(x => x.Order == modifyDetail.Order);
first.Already -= 1;
maoGridView.Refresh();
}
tangEntity.Already += 1;
tangGridView.Refresh();
}
else//烫褪 到 毛剥
{
LocalGradeAndWeightBL.Update(modifyDetail, maoEntity);
if (modifyDetail.Order.HasValue)
{
var first = tangList.First(x => x.Order == modifyDetail.Order);
first.Already -= 1;
tangGridView.Refresh();
}
maoEntity.Already += 1;
maoGridView.Refresh();
}
}
else
LocalGradeAndWeightBL.Update(modifyDetail, "Livestock_ID", "Livestock_Name", "Technics", "Technics_Name");
noLivestockList = new ConcurrentQueue<GradeAndWeight_Detail>();
var stack = new Stack<GradeAndWeight_Detail>();
//找到锁定的最大id
long suodingmaxsid = 0;
var lostweightlist = details.Where(x => x.IsLostWeight).ToList();
if (lostweightlist.Count > 0)
{
suodingmaxsid = lostweightlist.Max(x => x.SID);
}
//把没有级别的记录加进去
var livestockNoNameList = details.Where(x => string.IsNullOrWhiteSpace(x.Livestock_Name));
foreach (var item in livestockNoNameList)
{
if (item.SID > suodingmaxsid)
{
stack.Push(item);
}
}
while (stack.Count > 0)
{
noLivestockList.Enqueue(stack.Pop());
}
historyGrid.Refresh();
modifyDetail = null;
modifyPanel.Hide();
UpdateDetial(modifyDetail, livestockTag);
cancelBtn_Click(btn, EventArgs.Empty);
}
SetlblSucessVisibleTrue();
SetlblSucessVisibleFalse();
btn.Enabled = true;
}
void UpdateDetial(GradeAndWeight_Detail detail, CTuple<long, string, short, string> btnTag)
{
var techIsEmpty = detail.Technics == null;
var diff = detail.Technics.HasValue && detail.Technics != btnTag.Item3;
detail.Livestock_ID = btnTag.Item1;
detail.Livestock_Name = btnTag.Item2;
detail.Technics = btnTag.Item3;
detail.Technics_Name = detail.Technics == 0 ? "烫褪" : "毛剥";
var current = btnTag.Item3 == 0 ? tangEntity : maoEntity;
if (current != null)
{
detail.Order = current.Order;
detail.OrderDetail_ID = current.OrderDetail_ID;
}
else
{
detail.Order = null;
detail.OrderDetail_ID = null;
}
var updateFileNames = new List<string> { "Order", "OrderDetail_ID", "Livestock_ID", "Livestock_Name", "Technics", "Technics_Name" };
if (techIsEmpty)
ResetQueue();
}
void ResetQueue()
{
ClearQuery();
var stack = new Stack<GradeAndWeight_Detail>();
foreach (var item in details)
{
if (item.Technics == null)
stack.Push(item);
else
break;
}
while (stack.Count > 0)
{
var bottom = stack.Pop();
if (bottom.Weight.HasValue)
noLivestockList.Enqueue(bottom);
}
}
void AddLivestockBtn()
{
var livestocks = new List<CTuple<long, string, short, string>>();
@ -227,91 +217,105 @@ namespace WeighAndGrading
private void syncBtn_Click(object sender, EventArgs e)
{
details = LocalGradeAndWeightBL.GetDetails(butcherTimeInput.Date.Value, 50);
FillQueue();
BindDetailGrid();
ResetQueue();
if (details.Any())
maxIndex = details.First().Index;
if (syncWork == null || !syncWork.IsAlive)
ThreadStartOrAbort(ref syncTangGrid, RefreshTangData);
ThreadStartOrAbort(ref syncMaoGrid, RefreshMaoData);
ThreadStartOrAbort(ref syncDetailGrid, RefreshDetailData);
ChangeSyncBtnState();
}
void ThreadStartOrAbort(ref Thread thread, ThreadStart task)
{
if (thread == null || !thread.IsAlive)
{
thread = new Thread(task);
thread.Start();
}
else
{
thread.Abort();
}
}
void ChangeSyncBtnState()
{
onWorking = !onWorking;
butcherTimeInput.Enabled = !onWorking;
if (onWorking)
{
syncWork = new Thread(Sync);
syncWork.Start();
syncBtn.BackColor = Color.FromArgb(15, 215, 107);
syncBtn.ForeColor = Color.White;
}
else
{
syncWork.Abort();
syncBtn.BackColor = Color.FromKnownColor(KnownColor.Control);
syncBtn.ForeColor = Color.FromKnownColor(KnownColor.ControlText);
}
}
void Sync()
void RefreshTangData()
{
var bc = new BackgroundWorker();
bc.DoWork += Bc_DoWork;
bc.RunWorkerCompleted += Bc_RunWorkerCompleted;
while (true)
{
if (!bc.IsBusy)
GetLeftList(ref tangList, true);
this.Invoke(new InvokeHandler(delegate
{
bc.RunWorkerAsync();
}
BindTangGrid();
}));
Thread.Sleep(5000);
}
}
private void Bc_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
void RefreshMaoData()
{
this.BeginInvoke(new Action(() =>
while (true)
{
BindTangGrid();
BindMaoGrid();
}));
}
private void Bc_DoWork(object sender, DoWorkEventArgs e)
{
BindTangGridFortangList();
BindMaoGridFromaoList();
GetLeftList(ref maoList, false);
this.Invoke(new InvokeHandler(delegate
{
BindMaoGrid();
}));
Thread.Sleep(5000);
}
}
void FillQueue()
void RefreshDetailData()
{
noLivestockList = new ConcurrentQueue<GradeAndWeight_Detail>();
var stack = new Stack<GradeAndWeight_Detail>();
foreach (var item in details)
{
if (item.Livestock_ID == 0 || item.Weight == null || string.IsNullOrWhiteSpace(item.Livestock_Name))
stack.Push(item);
else
break;
}
while (stack.Count > 0)
details = LocalGradeAndWeightBL.GetDetails(butcherTimeInput.Date.Value, 50);
this.Invoke(new InvokeHandler(delegate
{
var bottom = stack.Pop();
if (bottom.Weight.HasValue)
noLivestockList.Enqueue(bottom);
}
BindDetailGrid();
}));
}
void BindTangGridFortangList()
//void BindLeftByClick(List<GradeAndWeight> list, bool tang)
//{
// GetLeftList(ref list, tang);
// if (tang)
// BindTangGrid();
// else
// BindMaoGrid();
//}
//void BindDetailByClick()
//{
// details = LocalGradeAndWeightBL.GetDetails(butcherTimeInput.Date.Value, 50);
// BindDetailGrid();
//}
void GetLeftList(ref List<GradeAndWeight> list, bool tang)
{
VerifyConnection();
if (connection)
{
try
{
tangList = GradeAndWeightRpc.GetGradeAndWeightList(butcherTimeInput.Date.Value, true);
list = GradeAndWeightRpc.GetGradeAndWeightList(butcherTimeInput.Date.Value, tang);
}
catch (TimeoutException) { }
}
else
{
if (tangList == null)
tangList = new List<GradeAndWeight>();
}
}
void BindTangGrid()
@ -348,31 +352,8 @@ namespace WeighAndGrading
tangGridView.Refresh();
}
void BindMaoGridFromaoList()
{
VerifyConnection();
if (connection)
{
try
{
if (butcherTimeInput.Date.HasValue)
{
maoList = GradeAndWeightRpc.GetGradeAndWeightList(butcherTimeInput.Date.Value, false);
}
}
catch (TimeoutException) { }
}
else
{
if (maoList == null)
maoList = new List<GradeAndWeight>();
}
}
void BindMaoGrid()
{
maoGridView.DataSource = maoList.OrderBy(x => x.Order).OrderBy(x => x.Finish).ToList();
if (maoEntity == null && maoGridView.CurrentRow != null)
{
@ -407,15 +388,19 @@ namespace WeighAndGrading
void BindDetailGrid()
{
historyGrid.DataSource = null;
if (details.Any())
historyGrid.DataSource = details;
historyGrid.DataSource = details;
foreach (DataGridViewRow row in historyGrid.Rows)
{
if ((bool)row.Cells["H_IsDrop"].Value)
row.DefaultCellStyle.BackColor = Color.Red;
if (modifyDetail != null && modifyDetail.SID == (long)row.Cells["H_SID"].Value)
{
modifyDetail = row.DataBoundItem as GradeAndWeight_Detail;
row.DefaultCellStyle.BackColor = maoGridView.RowsDefaultCellStyle.SelectionBackColor;
}
}
InitScrollBar2();
InitDetailScrollBar();
historyGrid.ClearSelection();
try
{
if (rightRoll != -1)
@ -489,8 +474,7 @@ namespace WeighAndGrading
return;
}
StartPrintEntity(modifyDetail.Technics_Name, modifyDetail.Index);
modifyDetail = null;
modifyPanel.Hide();
cancelBtn_Click(sender, EventArgs.Empty);
}
private void configBtn_Click(object sender, EventArgs e)
@ -745,7 +729,19 @@ namespace WeighAndGrading
disBtn = null;
}
LocalGradeAndWeightBL.Update(first, "OrderDetail_ID", "Order", "Date", "Livestock_ID", "Livestock_Name", "Technics", "Technics_Name", "Weight");
historyGrid.Refresh();
var tag = details.FirstOrDefault(x => x.SID == first.SID);
if (first != null)
{
tag.Date = first.Date;
tag.Livestock_ID = first.Livestock_ID;
tag.Livestock_Name = first.Livestock_Name;
tag.Order = first.Order;
tag.OrderDetail_ID = first.OrderDetail_ID;
tag.Technics = first.Technics;
tag.Technics_Name = first.Technics_Name;
tag.Weight = first.Weight;
historyGrid.Refresh();
}
}
else//add
{
@ -771,21 +767,12 @@ namespace WeighAndGrading
SetBtnUnCheck(disBtn);
disBtn = null;
}
//如果手动点击新增明细,则明细的重量=0
entity.Weight = 0;
entity.IsLostWeight = true;
if (details.Count == 50)
details.RemoveAt(49);
details.Insert(0, entity);
LocalGradeAndWeightBL.Insert(entity);
//这里绑定界面 东旭说不应该放到锁了 不知道怎么改
BindDetailGrid();
details.Insert(0, entity);
AfterAddBindDetailGrid();
}
if (currentRow != null)
{
currentRow.Already = n + 1;
@ -822,6 +809,14 @@ namespace WeighAndGrading
}));
}
void AfterAddBindDetailGrid()
{
if (details.Count > 50)
details.RemoveAt(50);
BindDetailGrid();
// BindDetailByClick();
}
void AddWeightDetail(decimal weight)
{
lock (_obj)
@ -833,20 +828,25 @@ namespace WeighAndGrading
entity.Weight = (entity.Weight ?? 0) + weight;
entity.Time = DateTime.Now;
entity.Date = butcherTimeInput.Date.Value;
if (details.Count == 50)
details.RemoveAt(49);
details.Insert(0, entity);
LocalGradeAndWeightBL.Insert(entity);
details.Insert(0, entity);
noLivestockList.Enqueue(entity);
}
BindDetailGrid();
AfterAddBindDetailGrid();
}
private void cancelBtn_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in historyGrid.Rows)
{
if (modifyDetail.SID == (long)row.Cells["H_SID"].Value)
{
row.DefaultCellStyle.BackColor = historyGrid.RowsDefaultCellStyle.BackColor;
break;
}
}
historyGrid.Refresh();
modifyDetail = null;
modifyPanel.Hide();
}
@ -868,57 +868,18 @@ namespace WeighAndGrading
modifyDetail.IsDeleted = true;
LocalGradeAndWeightBL.Update(modifyDetail, "IsDeleted");
details.Remove(modifyDetail);
if (modifyDetail.Order > 0)
{
if (modifyDetail.Technics == 0)
{
foreach (DataGridViewRow row in tangGridView.Rows)
{
if ((int)row.Cells["T_Order"].Value == modifyDetail.Order.Value)
{
var r = row.DataBoundItem as GradeAndWeight;
r.Already -= 1;
tangGridView.Refresh();
break;
}
}
}
else
{
foreach (DataGridViewRow row in maoGridView.Rows)
{
if ((int)row.Cells["M_Order"].Value == modifyDetail.Order.Value)
{
var r = row.DataBoundItem as GradeAndWeight;
r.Already -= 1;
maoGridView.Refresh();
break;
}
}
}
}
if (modifyDetail.Technics == null)
{
//重新赋值 队列
//重新设置没有级别的
noLivestockList = new ConcurrentQueue<GradeAndWeight_Detail>();
var stackNoLiveStock = new Stack<GradeAndWeight_Detail>();
//把没有级别的记录加进去
foreach (var item in details)
{
if (item.Technics.HasValue)
break;
stackNoLiveStock.Push(item);
}
while (stackNoLiveStock.Count > 0)
{
noLivestockList.Enqueue(stackNoLiveStock.Pop());
}
ResetQueue();
}
BindDetailGrid();
modifyDetail = null;
modifyPanel.Hide();
}
BindDetailGrid();
if (details.Any())
historyGrid.DataSource = details;
historyGrid.Refresh();
//BindDetailByClick();
}
private void historyGrid_CellClick(object sender, DataGridViewCellEventArgs e)
@ -926,7 +887,19 @@ namespace WeighAndGrading
if (e.RowIndex < 0)
return;
var currentRow = historyGrid.CurrentRow.DataBoundItem as GradeAndWeight_Detail;
if (modifyDetail != null)
{
foreach (DataGridViewRow row in historyGrid.Rows)
{
if (modifyDetail.SID == (long)row.Cells["H_SID"].Value)
{
row.DefaultCellStyle.BackColor = historyGrid.RowsDefaultCellStyle.BackColor;
break;
}
}
}
modifyDetail = currentRow;
historyGrid.Refresh();
stateLabel.Text = string.Format("您正在修改序号为 {0} 的信息", modifyDetail.Index);
modifyPanel.Show();
}
@ -968,9 +941,6 @@ namespace WeighAndGrading
}
entity.Finish = true;
LocalGradeAndWeightBL.SetGradeFinish(entity.Order, butcherTimeInput.Date.Value, TANG_TECH);
//var first = tangList.FirstOrDefault(x => x.OrderDetail_ID == entity.OrderDetail_ID);
//if (first != null)
// first.Finish = true;
tangEntity = null;
BindTangGrid();
}
@ -1012,9 +982,6 @@ namespace WeighAndGrading
}
entity.Finish = true;
LocalGradeAndWeightBL.SetGradeFinish(entity.Order, butcherTimeInput.Date.Value, MAO_TECH);
//var first = maoList.FirstOrDefault(x => x.OrderDetail_ID == entity.OrderDetail_ID);
//if (first != null)
// first.Finish = true;
maoEntity = null;
BindMaoGrid();
}
@ -1059,9 +1026,7 @@ namespace WeighAndGrading
{
modifyDetail.Weight = (modifyDetail.Weight ?? 0) - Convert.ToDecimal(btn.Tag);
LocalGradeAndWeightBL.Update(modifyDetail, "Weight");
historyGrid.Refresh();
modifyDetail = null;
modifyPanel.Hide();
cancelBtn_Click(sender, EventArgs.Empty);
}
};
discontPanel.Controls.Add(btn);
@ -1079,9 +1044,7 @@ namespace WeighAndGrading
{
modifyDetail.IsDrop = !modifyDetail.IsDrop;
LocalGradeAndWeightBL.Update(modifyDetail, "IsDrop");
BindDetailGrid();
modifyDetail = null;
modifyPanel.Hide();
cancelBtn_Click(sender, EventArgs.Empty);
}
}
@ -1136,7 +1099,7 @@ namespace WeighAndGrading
}
int rightRoll = -1;
private void InitScrollBar2()
private void InitDetailScrollBar()
{
vScrollBar2.Maximum = (historyGrid.RowCount - historyGrid.DisplayedRowCount(false) + 30) * historyGrid.RowTemplate.Height;
vScrollBar2.Minimum = 0;
@ -1189,19 +1152,17 @@ namespace WeighAndGrading
{
while (true)
{
VerifyConnection();
if (connection)
{
VerifyConnection();
if (connection)
try
{
try
{
SyncDiscontToSever();
LocalGradeAndWeightBL.Sync();
}
catch (Exception ex)
{
File.WriteAllText(string.Format("{0:yyyyMMddHHmmss}log.txt", DateTime.Now), "错误:" + ex.Message + " \n详细信息:" + ex.StackTrace);
}
SyncDiscontToSever();
LocalGradeAndWeightBL.Sync();
}
catch (Exception ex)
{
File.WriteAllText(string.Format("{0:yyyyMMddHHmmss}log.txt", DateTime.Now), "错误:" + ex.Message + " \n详细信息:" + ex.StackTrace);
}
}
Thread.Sleep(2000);
@ -1222,5 +1183,14 @@ namespace WeighAndGrading
File.Delete(changeFlagPath);
}
}
void ClearQuery()
{
if (noLivestockList == null)
return;
GradeAndWeight_Detail r;
while (noLivestockList.TryDequeue(out r))
{ }
}
}
}

+ 117
- 0
WeighAndGrading/GradeFrom.resx View File

@ -117,6 +117,39 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="label1.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="syncBtn.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="label2.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="orderLabel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="label4.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="alreadyLabel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="groupBox1.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="tangScrollBar.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ttPanel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="lblTangTui.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="tangGridView.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="T_OrderDetail_ID.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@ -135,6 +168,15 @@
<metadata name="T_FinishBtn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="groupBox2.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="maoScrollBar.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="maoGridView.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="M_OrderDetail_ID.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@ -153,6 +195,24 @@
<metadata name="M_FinishBtn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="mbPanel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="lblMaoBo.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="groupBox3.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="vScrollBar2.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="label12.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="historyGrid.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="H_SID.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@ -183,4 +243,61 @@
<metadata name="H_Time.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="isPrintCheckBox.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="printBtn.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="panel1.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="lblChengZhong.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="butcherTimeInput.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="configBtn.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="stateLabel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="modifyPanel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="cancelBtn.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="discontBtn.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="discontPanel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="statePic.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="btnDeleteSelected.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="lblSucessed.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dropPigBtn.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="btnStartWeight.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="btnStopWeight.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataConfirmBtn.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>

Loading…
Cancel
Save