From 360085ec1218bf0627e511fabee36d0524a8482d Mon Sep 17 00:00:00 2001
From: 王 垚 <1402714037@qq.com>
Date: 星期三, 19 五月 2021 09:10:08 +0800
Subject: [PATCH] 生产计划排程更改
---
src/BLL/Demo.BillView/PRD/Pro_SCLLSH.cs | 4
src/BLL/Demo.BillView/PRD/ProductScheduleButtonClick.cs | 148 ++++++++++++++++++++++++++++++++++++------------
2 files changed, 112 insertions(+), 40 deletions(-)
diff --git a/src/BLL/Demo.BillView/PRD/Pro_SCLLSH.cs b/src/BLL/Demo.BillView/PRD/Pro_SCLLSH.cs
index c9dffc0..e9b04cc 100644
--- a/src/BLL/Demo.BillView/PRD/Pro_SCLLSH.cs
+++ b/src/BLL/Demo.BillView/PRD/Pro_SCLLSH.cs
@@ -36,7 +36,7 @@
e.FieldKeys.Add("FDayPlanFentryId");
}
/// <summary>
- ///鍙嶅鏍� 鍙嶆洿鏂版棩璁″垝鐢ㄦ枡娓呭崟璋冩嫧鏁伴噺
+ ///鍙嶅鏍� 鍙嶆洿鏂版棩璁″垝鐢ㄦ枡娓呭崟棰嗘枡鏁伴噺
/// </summary>
/// <param name="e"></param>
public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
@@ -44,7 +44,7 @@
base.AfterExecuteOperationTransaction(e);
List<string> sqlList = new List<string>();
string sql = "";
- //瀹℃牳鏃舵洿鏂扮敓浜х敤鏂欐竻鍗曡〃鏄庣粏璋冩嫧鏁伴噺
+ //瀹℃牳鏃舵洿鏂扮敓浜х敤鏂欐竻鍗曡〃鏄庣粏棰嗘枡鏁伴噺
Entity entity = this.BusinessInfo.GetEntity("FEntity");//鑾峰彇鏄庣粏淇℃伅
foreach (var billObj in e.SelectedRows)
{
diff --git a/src/BLL/Demo.BillView/PRD/ProductScheduleButtonClick.cs b/src/BLL/Demo.BillView/PRD/ProductScheduleButtonClick.cs
index 11f9528..f7b8822 100644
--- a/src/BLL/Demo.BillView/PRD/ProductScheduleButtonClick.cs
+++ b/src/BLL/Demo.BillView/PRD/ProductScheduleButtonClick.cs
@@ -93,6 +93,52 @@
_i++;
}
}
+ /// <summary>
+ /// 鑷姩鎺掔▼鏃ヨ鍒� 榻愬鍒嗘瀽鍚庣殑缁撴灉娓叉煋
+ /// </summary>
+ private void ChangeColorZDPC()
+ {
+ DateTime DateNow = DateTime.Now;
+ string sql = "";
+ Entity entity = this.View.BillBusinessInfo.GetEntity("FZdpcEntity");
+ //鍗曟嵁浣撲俊鎭浆鎹负鍒楄〃闆嗗悎
+ DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity);
+ EntryGrid grid = this.View.GetControl<EntryGrid>("FZdpcEntity");
+ int _i = 0;
+ foreach (DynamicObject current in entityDataObjoct)
+ {
+ sql = @"/*dialect*/SELECT * FROM Sc_WorkBillSortBillSub WHERE DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0 and FID=" + current["FIDZD"].ToString();
+ DataTable _dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
+ foreach (DataRow dr in _dt.Rows)
+ {
+ DateTime start = Convert.ToDateTime(DateNow.ToShortDateString());
+ DateTime end = Convert.ToDateTime(Convert.ToDateTime(dr["FHMASTERDATE"]).ToShortDateString());
+ TimeSpan getDay = end.Subtract(start);
+ if (getDay.Days > 60)
+ continue;
+
+ if (dr["FHLockedSub"].ToString() == "1")
+ this.View.GetFieldEditor("FT" + getDay.Days.ToString(), _i).Enabled = false; //鍗曟嵁浣撹閿佸畾瀛楁
+ if (dr["FCOMPLETE"].ToString() == "鏈綈濂�")
+ {
+ this.View.GetFieldEditor("FT" + getDay.Days.ToString(), _i).Enabled = false; //鍗曟嵁浣撹閿佸畾瀛楁
+ grid.SetForecolor("FT" + "" + getDay.Days.ToString() + "", "#FF0000", _i);
+ }
+ else if (dr["FCOMPLETE"].ToString() == "榻愬")
+ {
+ this.View.GetFieldEditor("FT" + getDay.Days.ToString(), _i).Enabled = false; //鍗曟嵁浣撹閿佸畾瀛楁
+ grid.SetForecolor("FT" + "" + getDay.Days.ToString() + "", "#00FF00", _i);
+ }
+ //鎵嬪伐淇敼鏍囪
+ if (dr["FIsSGXG"].ToString() == "1")
+ {
+ this.View.GetFieldEditor("FT" + getDay.Days.ToString(), _i).Enabled = false; //鍗曟嵁浣撹閿佸畾瀛楁
+ grid.SetForecolor("FT" + "" + getDay.Days.ToString() + "", "#00FFFF", _i);
+ }
+ }
+ _i++;
+ }
+ }
private bool isSearched = true;
/// <summary>
/// 鍊兼洿鏂颁簨浠�
@@ -100,47 +146,56 @@
/// <param name="e"></param>
public override void DataChanged(DataChangedEventArgs e)
{
- if (!isSearched) return;
- base.DataChanged(e);
- var columns = new List<string>() { "", "" };
- for (int i = 0; i < 100; i++)
+ try
{
- columns.Add("FT" + i.ToString());
- }
- var model = this.View.Model;
- if (columns.Contains(e.Field.Key))
- {
- //if (Convert.ToDouble(model.GetValue(e.Field.Key, e.Row)) == 0)
- //{
- // this.View.ShowErrMessage("鏃ヨ鍒掓暟閲忛渶澶т簬0");
- // //this.View.Model.SetValue("FT0", 100, e.Row);//杩斿洖鍊�
- // return;
- //}
- var sum = columns.Select(x => Convert.ToDouble(model.GetValue(x, e.Row))).Sum();//鏃ヨ鍒掓�诲拰
- var scOrderCount = Convert.ToDouble(model.GetValue("FSCOrderCountZD", e.Row));//鐢熶骇璁㈠崟鏁伴噺
- var FQTYLS = Convert.ToDouble(model.GetValue("FQTYLS", e.Row));//鍘嗗彶
- this.View.Model.SetValue("FNoScheduledCount", scOrderCount - sum - FQTYLS, e.Row);//寰呮帓鏁�
- this.View.Model.SetValue("FSumQty", sum, e.Row);//鏃ヨ鍒掓�绘暟
- }
- //鍒嗛厤鏁伴噺
- if (e.Field.Key == "FAllocatedCount")
- {
- var scOrderNo = model.GetValue("FProOrderNo", e.Row).ToString();
- var scOrderFentrySeqNo = model.GetValue("FSRCBILLENTRYSEQ", e.Row).ToString();
- var scOrderCount = Convert.ToDouble(model.GetValue("FSCOrderCount", e.Row));
- Entity entity = this.View.BillBusinessInfo.GetEntity("FDprwEntity");
- //鍗曟嵁浣撲俊鎭浆鎹负鍒楄〃闆嗗悎
- DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity);
- var groups = entityDataObjoct.Where(x => Convert.ToString(x["FProOrderNo"]) == scOrderNo && Convert.ToString(x["FSRCBILLENTRYSEQ"]) == scOrderFentrySeqNo);//鐢熶骇璧勬簮鍒嗙粍锛堣绠椾紭鍏堢骇锛�
- double allocatedCount = 0;
- foreach (var group in groups)
+ if (!isSearched) return;
+ base.DataChanged(e);
+ var columns = new List<string>() { "", "" };
+ for (int i = 0; i < 100; i++)
{
- allocatedCount += Convert.ToDouble(group["FAllocatedCount"]);
+ columns.Add("FT" + i.ToString());
}
- if (allocatedCount > scOrderCount)
+ var model = this.View.Model;
+ if (columns.Contains(e.Field.Key))
{
- this.View.ShowErrMessage("搴忓彿锛�"+ model.GetValue("FSEQ", e.Row).ToString() + ",璁㈠崟鍙凤細" + scOrderNo + "锛岃鍙�:" + scOrderFentrySeqNo + " 鍒嗛厤鎬绘暟瓒呭嚭鐢熶骇璁㈠崟鏁般��");
+ //if (Convert.ToDouble(model.GetValue(e.Field.Key, e.Row)) == 0)
+ //{
+ // this.View.ShowErrMessage("鏃ヨ鍒掓暟閲忛渶澶т簬0");
+ // //this.View.Model.SetValue("FT0", 100, e.Row);//杩斿洖鍊�
+ // return;
+ //}
+ var sum = columns.Select(x => Convert.ToDouble(model.GetValue(x, e.Row))).Sum();//鏃ヨ鍒掓�诲拰
+ var scOrderCount = Convert.ToDouble(model.GetValue("FSCOrderCountZD", e.Row));//鐢熶骇璁㈠崟鏁伴噺
+ var FQTYLS = Convert.ToDouble(model.GetValue("FQTYLS", e.Row));//鍘嗗彶
+ this.View.Model.SetValue("FNoScheduledCount", scOrderCount - sum - FQTYLS, e.Row);//寰呮帓鏁�
+ this.View.Model.SetValue("FSumQty", sum, e.Row);//鏃ヨ鍒掓�绘暟
+ string sql = $"update Sc_WorkBillSortBillSub set FIsSGXG =1 where FID ={model.GetValue("FIDZD", e.Row)} AND DATEDIFF(D,GETDATE(),FHMasterDate) = '{e.Field.Key.Substring(2)}'";
+ DBServiceHelper.Execute(Context, sql);
}
+ //鍒嗛厤鏁伴噺
+ if (e.Field.Key == "FAllocatedCount")
+ {
+ var scOrderNo = model.GetValue("FProOrderNo", e.Row).ToString();
+ var scOrderFentrySeqNo = model.GetValue("FSRCBILLENTRYSEQ", e.Row).ToString();
+ var scOrderCount = Convert.ToDouble(model.GetValue("FSCOrderCount", e.Row));
+ Entity entity = this.View.BillBusinessInfo.GetEntity("FDprwEntity");
+ //鍗曟嵁浣撲俊鎭浆鎹负鍒楄〃闆嗗悎
+ DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity);
+ var groups = entityDataObjoct.Where(x => Convert.ToString(x["FProOrderNo"]) == scOrderNo && Convert.ToString(x["FSRCBILLENTRYSEQ"]) == scOrderFentrySeqNo);//鐢熶骇璧勬簮鍒嗙粍锛堣绠椾紭鍏堢骇锛�
+ double allocatedCount = 0;
+ foreach (var group in groups)
+ {
+ allocatedCount += Convert.ToDouble(group["FAllocatedCount"]);
+ }
+ if (allocatedCount > scOrderCount)
+ {
+ this.View.ShowErrMessage("搴忓彿锛�" + model.GetValue("FSEQ", e.Row).ToString() + ",璁㈠崟鍙凤細" + scOrderNo + "锛岃鍙�:" + scOrderFentrySeqNo + " 鍒嗛厤鎬绘暟瓒呭嚭鐢熶骇璁㈠崟鏁般��");
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ this.View.ShowErrMessage(ex.Message);
}
}
/// <summary>
@@ -336,6 +391,8 @@
//{
// this.View.GetControl("FT" + "" + m + "").Text = DateNow.AddDays(m).ToShortDateString();
//}
+ ChangeColorZDPC();
+
}
}
catch (Exception ex)
@@ -454,6 +511,13 @@
where FDateStyle = 1 and FIsWorkTime = 1
and FCalUserType ='ENG_RepetitiveProductLine'
and DATEDIFF(D,getdate(),FDAY)>0
+and convert(nvarchar(20),FCalUserId)+convert(nvarchar(20),FDay,23) not in
+(
+ select DISTINCT convert(nvarchar(20),FHSourceID)+convert(nvarchar(20),FHMasterDate,23) from Sc_WorkBillSortBillMain a
+join Sc_WorkBillSortBillSub b on a.FID =B.FID
+WHERE FIsSGXG =1
+)
+--鍘婚櫎鎵嬪姩淇敼杩囩殑鏃ユ湡
--鏉′欢涓� 宸ヤ綔鏃�+鏄惁鐢熶骇 == 1 ";
ENG_WORKCALFULLDATA = DBServiceHelper.ExecuteDataSet(Context, _sql).ToModelList<ENG_WORKCALFULLDATA>();
@@ -465,11 +529,19 @@
{
var orders = group.OrderBy(x => Convert.ToDateTime(x["FPlanEndDate"]));//璁″垝瀹屽伐鏃ユ湡鎺掑簭
var seq = 1;
+
foreach (var order in orders)
{
//璁$畻浜ц兘
decimal FCapacity = Convert.ToDecimal(order["FCapacity"]);//灏忔椂浜ц兘
- decimal FSCOrderCount = Convert.ToDecimal(order["FSCOrderCount"]);//鐢熶骇璁㈠崟鏁�
+ decimal FSCOrderCount = Convert.ToDecimal(order["FSCOrderCount"]);//鐢熶骇璁㈠崟
+ var _FID = order["FID"]?.ToString();
+ string cnSql = "";
+ cnSql = $"select sum(FHQty) from Sc_WorkBillSortBillSub where FID = {_FID} and FIsSGXG =1";
+ decimal fDayPlanQuality = DBServiceHelper.ExecuteScalar<decimal>(Context, cnSql, 0);
+ cnSql = $"delete Sc_WorkBillSortBillSub where FID = {_FID} and FIsSGXG <>1";
+ DBServiceHelper.Execute(Context, cnSql);
+ FSCOrderCount = FSCOrderCount - fDayPlanQuality;
List<ENG_WORKCALFULLDATA> finalyResult = new List<ENG_WORKCALFULLDATA>();
decimal dayFCapacity = 0;//褰撴棩鍓╀綑浜ч噺 = 灏忔椂浜ц兘 * 鏃ュ墿浣欏伐浣滄椂闀�
List<ENG_WORKCALFULLDATA> _ENG_WORKCALFULLDATA = ENG_WORKCALFULLDATA.Where(x => x.FALLHOURS > 0 && x.FCalUserId == Convert.ToInt32(order["FSczy_Id"])).ToList();
@@ -527,7 +599,7 @@
jsonRoot.Add("Creator", "");
jsonRoot.Add("NeedUpDateFields", new JArray());
jsonRoot.Add("NeedReturnFields", new JArray());
- jsonRoot.Add("IsDeleteEntry", "true");//
+ //jsonRoot.Add("IsDeleteEntry", "true");//
jsonRoot.Add("SubSystemId", "");
jsonRoot.Add("IsVerifyBaseDataField", "");
--
Gitblit v1.9.1