From dfbc0389d6b9b2bd8e92e976248b9992a03979f4 Mon Sep 17 00:00:00 2001
From: 王 垚 <1402714037@qq.com>
Date: 星期三, 08 九月 2021 13:23:26 +0800
Subject: [PATCH] 提料生成送货单 下推数量 =提料计划数量 - 已生成送货单数量
---
src/BLL/Demo.BillView/PRD/ProductScheduleButtonClick.cs | 546 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 523 insertions(+), 23 deletions(-)
diff --git a/src/BLL/Demo.BillView/PRD/ProductScheduleButtonClick.cs b/src/BLL/Demo.BillView/PRD/ProductScheduleButtonClick.cs
index 1b0d679..1ad007e 100644
--- a/src/BLL/Demo.BillView/PRD/ProductScheduleButtonClick.cs
+++ b/src/BLL/Demo.BillView/PRD/ProductScheduleButtonClick.cs
@@ -1,5 +1,4 @@
-锘縰sing Kingdee.BOS.Core.DynamicForm;
-using Kingdee.BOS.Core.DynamicForm.PlugIn;
+锘縰sing Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;
using System;
@@ -8,7 +7,6 @@
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Metadata.EntityElement;
-using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using ZD.Cloud.Logger;
using Demo.Model.Model;
using System.Collections.Generic;
@@ -16,6 +14,8 @@
using System.Linq;
using Newtonsoft.Json.Linq;
using ZD.Cloud.WebApi;
+using Kingdee.BOS.Core.DynamicForm;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
namespace Demo.BillView
{
@@ -23,14 +23,212 @@
[HotUpdate]
public class ProductScheduleButtonClick : AbstractDynamicFormPlugIn
{
+ /// <summary>
+ /// 瀹氫箟宸ヤ綔鏃ュ巻鐝粍List<Model>
+ /// </summary>
public List<ENG_WORKCALFULLDATA> ENG_WORKCALFULLDATA = new List<ENG_WORKCALFULLDATA>();
+ /// <summary>
+ /// 寰呮帓浠诲姟鍙屽嚮琛� 灏嗚鍗曢綈濂楄祴鍊�
+ /// </summary>
+ /// <param name="e"></param>
+ public override void EntityRowDoubleClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EntityRowClickEventArgs e)
+ {
+ base.EntityRowClick(e);
+ isSearched = false;
+ DynamicFormShowParameter formPa = new DynamicFormShowParameter();
+ if (!e.Key.ToString().Contains("FDPRWENTITY"))
+ return;
+ var model = this.View.Model;
+ var fid = model.GetValue("FID", e.Row).ToString();
+ while (this.Model.GetEntryRowCount("FQtfxEntity") > 0)
+ {
+ this.Model.DeleteEntryRow("FQtfxEntity", 0);
+ }
+ string sql = $"/*dialect*/select * from view_JIT_MOMaterReadysBill where FHICMOInterID='{fid}' order by FPlanDate, FHStockQty desc ,FHMaterID ";
+ DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
+ if (dt.Rows.Count > 0)
+ {
+ for (int i = 0; i < dt.Rows.Count; i++)
+ {
+ this.Model.CreateNewEntryRow("FQtfxEntity");
+ this.Model.SetValue("FSEQ", i + 1, i);//搴忓彿
+ this.Model.SetValue("FMateralDetailId", dt.Rows[i]["FHMATERID"], i);
+ this.Model.SetValue("FPlanIssueCount", dt.Rows[i]["FSumPlanCount"], i);//璁″垝鍙戞枡鏁伴噺
+ this.Model.SetValue("FCompleteCount", dt.Rows[i]["FCompleteCount1"], i);//榻愬鏁伴噺
+ this.Model.SetValue("FLackCount", dt.Rows[i]["FLackCount"], i);//缂烘枡鏁伴噺
+ this.Model.SetValue("FPassableCount", dt.Rows[i]["FHLeftQty"].ToString(), i);//鍙敤鏁伴噺
+ this.Model.SetValue("FMateralCount", dt.Rows[i]["FHStockQty"].ToString(), i);//鐗╂枡鏁伴噺
+ this.Model.SetValue("FOccupyCount", dt.Rows[i]["FOccupyCount"].ToString(), i);//鍗犵敤鏁伴噺
+ this.Model.SetValue("FCompleteDetailStatus", dt.Rows[i]["FComPlete"].ToString(), i);//鏄惁榻愬
+ this.Model.SetValue("FIsHavePur", dt.Rows[i]["FIsHavePur"].ToString(), i);//鏄惁鏈夐噰璐鍗�
+ this.Model.SetValue("FHMainICMOInterIDr", dt.Rows[i]["FHMainICMOInterIDr"].ToString(), i);//鐢熶骇璁㈠崟鍐呯爜
+ this.Model.SetValue("FPRDBillNo", dt.Rows[i]["FPRDBillNo"].ToString(), i);//鐢熶骇璁㈠崟鍐呯爜
+ this.Model.SetValue("FPlanDate", dt.Rows[i]["FPlanDate"].ToString(), i);//鏃ヨ鍒掓棩鏈�
+ this.Model.SetValue("FOrgId", dt.Rows[i]["FHStockOrgID"], i);//搴撳瓨缁勭粐
+ this.Model.SetValue("FOwnerTypeId", dt.Rows[i]["FOwnerTypeId"], i);//璐т富绫诲瀷
+ this.Model.SetValue("FOwnerId", dt.Rows[i]["FOwnerId"], i);//璐т富
+ this.Model.SetValue("FErpClsID", dt.Rows[i]["FErpClsID"], i);//鐗╂枡灞炴��
+ }
+ ChangeColor();
+ }
+ isSearched = true;
+ }
+ /// <summary>
+ /// 涓嶉綈濂椾俊鎭覆鏌撳簳鑹�
+ /// </summary>
+ private void ChangeColor()
+ {
+ Entity entity = this.View.BillBusinessInfo.GetEntity("FQtfxEntity");
+ //鍗曟嵁浣撲俊鎭浆鎹负鍒楄〃闆嗗悎
+ DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity);
+ EntryGrid grid = this.View.GetControl<EntryGrid>("FQtfxEntity");
+ int _i = 0;
+ foreach (DynamicObject current in entityDataObjoct)
+ {
+ if (Convert.ToString(current["FCompleteDetailStatus"]) == "鏈綈濂�")
+ {
+ // grid.SetRowBackcolor("#FF0000", _i);
+ grid.SetRowBackcolor("#71FF98CB", _i);
+ }
+ _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>
+ /// 鍊兼洿鏂颁簨浠�
+ /// </summary>
+ /// <param name="e"></param>
+ public override void DataChanged(DataChangedEventArgs e)
+ {
+ try
+ {
+ if (!isSearched) return;
+ base.DataChanged(e);
+ var columns = new List<string>() { "", "" };
+ for (int i = 0; i < 100; i++)
+ {
+ 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);//鏃ヨ鍒掓�绘暟
+ 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>
+ /// 椤甸潰鍒濆鍖� 娓叉煋鐣岄潰 灏員0-T60鏇存敼涓烘棩鏈熸樉绀�
+ /// </summary>
+ /// <param name="e"></param>
+ public override void OnInitialize(InitializeEventArgs e)
+ {
+ base.OnInitialize(e);
+ DateTime DateNow = DateTime.Now;
+ for (int m = 0; m <= 60; m++)
+ {
+ this.View.GetControl("FT" + "" + m + "").ControlAppearance.TextColor = "#FFFF00";
+ this.View.GetControl("FT" + "" + m + "").Text = DateNow.AddDays(m).ToShortDateString();
+ }
+ this.View.SendDynamicFormAction(View);
+ }
+ /// <summary>
+ /// 鍒濆鍔犺浇浜嬩欢
+ /// </summary>
+ /// <param name="e"></param>
+ public override void OnLoad(EventArgs e)
+ {
+ base.OnLoad(e);
+ SearchList();
+ }
/// <summary>
/// 椤甸潰鎸夐挳鐐瑰嚮浜嬩欢
/// </summary>
/// <param name="e"></param>
public override void ButtonClick(ButtonClickEventArgs e)
{
- base.OnLoad(e);
+ base.ButtonClick(e);
try
{
//閫夋嫨
@@ -38,28 +236,56 @@
{
ShowFDprwEntity();
}
- //鐢熶骇璁㈠崟 鏌ヨ
+ //寰呮帓浠诲姟 鏌ヨ
+ if (e.Key.ToUpper().Equals("FSEARCHBUTTON"))
+ {
+ string FDepartId = (this.Model.GetValue("FDpDepartment") as DynamicObject)?["Id"].ToString();
+ string FDate = Convert.ToString(this.Model.GetValue("FNewPzDate"));
+ isSearched = false;
+ DprwSearcrList(FDepartId, FDate);
+ isSearched = true;
+ }
+ //鐢熶骇璁㈠崟 鏌ヨ
if (e.Key.ToUpper().Equals("FSEARCHBUTTONSC"))
{
- this.View.ShowErrMessage("鐢熶骇璁㈠崟鍢垮樋!");
+ string FMaterialId = (this.Model.GetValue("FMATERIALIDCX") as DynamicObject)?["Id"].ToString();
+ string FProOrderNo = Convert.ToString(this.Model.GetValue("FOrderNoCX"));
+ isSearched = false;
+ ScddSearchList(FMaterialId, FProOrderNo);
+ isSearched = true;
}
}
catch (Exception ex)
{
LogHelper.Error("鐢熶骇鎺掔▼鍗曞姩鎬佽〃鍗�-Button鎸夐挳鐐瑰嚮浜嬩欢 鎶涘嚭寮傚父锛�" + ex.Message.ToString());
this.View.ShowErrMessage(ex.Message.ToString());
-
}
}
+ /// <summary>
+ /// 椤甸潰鎸夐挳宸ュ叿鏍忎簨浠�
+ /// </summary>
+ /// <param name="e"></param>
public override void BarItemClick(BarItemClickEventArgs e)
{
- base.OnLoad(e);
+ base.BarItemClick(e);
try
{
//鎺掔▼
if (e.BarItemKey.ToUpper().Equals("TBPC"))
{
ProductSchedul();
+ }
+ //淇濆瓨
+ if (e.BarItemKey.ToUpper().Equals("TBSAVE"))
+ {
+ ZdpcSave();
+ }
+ //鍒锋柊
+ if (e.BarItemKey.ToUpper().Equals("TBREFASH"))
+ {
+ isSearched = false;
+ SearchList();
+ isSearched = true;
}
}
catch (Exception ex)
@@ -68,7 +294,170 @@
this.View.ShowErrMessage(ex.Message.ToString());
}
}
+ /// <summary>
+ /// 绐椾綋椤甸潰鍔犺浇 鍙� 鏌ヨ
+ /// </summary>
+ public void SearchList()
+ {
+ isSearched = false;
+ DprwSearcrList("", "");
+ ScddSearchList("", "");
+ isSearched = true;
+ }
+ /// <summary>
+ /// 鐣岄潰涓婃柟鈥滃緟鎺掍换鍔♀�濈殑椤电
+ /// </summary>
+ /// <param name="FDepartId"></param>
+ /// <param name="FDate"></param>
+ public void DprwSearcrList(string FDepartId, string FDate)
+ {
+ try
+ {
+ string sqlWhere = " where 1=1 ";
+ if (!string.IsNullOrEmpty(FDepartId))
+ sqlWhere += $" and FHMATERID ={FDepartId}";
+ if (!string.IsNullOrEmpty(FDate))
+ sqlWhere += $" and dadediff(d,FDate,) =0 ";
+ //寰呮帓浠诲姟 鍒濆鍖栧姞杞� where FNoScheduled > 0 鏈帓浜ф暟閲忓ぇ浜�0
+ string sql = @"select * ,isnull((select SUM(isnull(FHQTY,0)) from SC_WORKBILLSORTBILLSub t2 where t2.FID = t1.FID and DATEDIFF(D,FHMASTERDATE,GETDATE())>0),0)FQTYLS from Sc_WorkBillSortBillMain t1";
+ DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0];
+ if (dt.Rows.Count > 0)
+ {
+ while (this.Model.GetEntryRowCount("FDprwEntity") > 0)
+ {
+ this.Model.DeleteEntryRow("FDprwEntity", 0);
+ }
+ for (int i = 0; i < dt.Rows.Count; i++)
+ {
+ this.Model.CreateNewEntryRow("FDprwEntity");
+ this.Model.SetValue("FSczy", dt.Rows[i]["FHSourceID"], i);//鐢熶骇璧勬簮
+ this.Model.SetValue("FProOrderNo", dt.Rows[i]["FSCOrderNo"], i);//鐢熶骇璁㈠崟鍙�
+ this.Model.SetValue("FSRCBILLENTRYSEQ", dt.Rows[i]["FSRCBILLENTRYSEQ"], i);//鐢熶骇璁㈠崟鏄庣粏琛屽彿
+ this.Model.SetValue("FMATERIALID", dt.Rows[i]["FHMaterID"], i);//鐗╂枡浠g爜
+ this.Model.SetValue("FSCOrderCount", dt.Rows[i]["FOrderQuantity"], i);//鐢熶骇璁㈠崟鏁�
+ //this.Model.SetValue("FFinishConut", dt.Rows[i]["FNOTE"], i);//瀹屽伐鏁� 锛堟病鏈夊搴斿瓧娈碉級
+ this.Model.SetValue("FStoredCount", dt.Rows[i]["FHInstockQty"], i);//宸插叆搴撴暟
+ this.Model.SetValue("FPriority", dt.Rows[i]["FHYX"], i);//浼樺厛绾�
+ this.Model.SetValue("FCapacity", dt.Rows[i]["FHWorkQty"], i);//浜ц兘
+ this.Model.SetValue("FPlanBeginDate", dt.Rows[i]["FHPlanBeginDate"], i);//璁″垝寮�濮嬫棩鏈�
+ this.Model.SetValue("FPlanEndDate", dt.Rows[i]["FHPlanEndDate"], i);//璁″垝瀹屽伐鏃ユ湡
+ this.Model.SetValue("FSalOrderCount", dt.Rows[i]["FHOrderQty"], i);//閿�鍞鍗曟暟閲�
+ //this.Model.SetValue("FCustormer", dt.Rows[i]["FNOTE"], i);//瀹㈡埛 锛堟病鏈夊搴斿瓧娈碉級
+ this.Model.SetValue("FSalOrderNo", dt.Rows[i]["FHSeOrderBillNo"], i);//閿�鍞鍗曞彿
+ //this.Model.SetValue("FSalDeliveryDate", dt.Rows[i]["FNOTE"], i);//閿�鍞鍗曚氦璐ф湡 锛堟病鏈夊搴斿瓧娈碉級
+ //this.Model.SetValue("FOrderRemake", dt.Rows[i]["FNOTE"], i);//璁㈠崟澶囨敞 锛堟病鏈夊搴斿瓧娈碉級
+ this.Model.SetValue("FID", dt.Rows[i]["FID"], i);//鏃ヨ鍒掑伐鍗旾D
+ }
+ }
+ //鑷姩鎺掔▼ 鍒濆鍖栧姞杞� where FNoScheduled > 0 鏈帓浜ф暟閲忓ぇ浜�0
+ if (dt.Rows.Count > 0)
+ {
+ while (this.Model.GetEntryRowCount("FZdpcEntity") > 0)
+ {
+ this.Model.DeleteEntryRow("FZdpcEntity", 0);
+ }
+ DateTime DateNow = DateTime.Now;//鑾峰彇褰撳墠鏃ユ湡
+ for (int i = 0; i < dt.Rows.Count; i++)
+ {
+ this.Model.CreateNewEntryRow("FZdpcEntity");
+ this.Model.SetValue("FSczyZD", dt.Rows[i]["FHSourceID"], i);//鐢熶骇璧勬簮
+ this.Model.SetValue("FProOrderNoZD", dt.Rows[i]["FSCOrderNo"], i);//鐢熶骇璁㈠崟鍙�
+ this.Model.SetValue("FSRCBILLENTRYSEQZD", dt.Rows[i]["FSRCBILLENTRYSEQ"], i);//鐢熶骇璁㈠崟鏄庣粏琛屽彿
+ this.Model.SetValue("FMATERIALIDZD", dt.Rows[i]["FHMaterID"], i);//鐗╂枡浠g爜
+ this.Model.SetValue("FSCOrderCountZD", dt.Rows[i]["FOrderQuantity"], i);//鐢熶骇璁㈠崟鏁�
+ //this.Model.SetValue("FFinishConutZD", dt.Rows[i]["FNOTE"], i);//瀹屽伐鏁� 锛堟病鏈夊搴斿瓧娈碉級
+ this.Model.SetValue("FQTYLS", dt.Rows[i]["FQTYLS"].ToString(), i);//鍘嗗彶閬楃暀
+ this.Model.SetValue("FNoScheduledCount", Convert.ToDecimal(dt.Rows[i]["FOrderQuantity"]) - Convert.ToDecimal(dt.Rows[i]["FDayPlanQuantity"]), i);//寰呮帓鏁�
+ this.Model.SetValue("FSumQty", Convert.ToDecimal(dt.Rows[i]["FDAYPLANQUANTITY"]) - Convert.ToDecimal(dt.Rows[i]["FQTYLS"]), i);//
+ this.Model.SetValue("FPriorityZD", dt.Rows[i]["FHYX"], i);//浼樺厛绾�
+ this.Model.SetValue("FCapacityZD", dt.Rows[i]["FHWorkQty"], i);//浜ц兘
+ this.Model.SetValue("FIDZD", dt.Rows[i]["FID"], i);//鏃ヨ鍒掑伐鍗旾D
+ sql = @"/*dialect*/SELECT * FROM Sc_WorkBillSortBillSub WHERE DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0 and FID=" + dt.Rows[i]["FID"].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;
+ this.Model.SetValue("FT" + getDay.Days.ToString(), dr["FHQTY"].ToString(), i);//鏃ヨ鍒掑伐鍗旻ID
+ if (dr["FHLockedSub"].ToString() == "1")
+ this.View.GetFieldEditor("FT" + getDay.Days.ToString(), i).Enabled = false; //鍗曟嵁浣撹閿佸畾瀛楁
+ }
+ }
+ //for (int m = 0; m <= 60; m++)
+ //{
+ // this.View.GetControl("FT" + "" + m + "").Text = DateNow.AddDays(m).ToShortDateString();
+ //}
+ ChangeColorZDPC();
+
+ }
+ }
+ catch (Exception ex)
+ {
+ LogHelper.Error("鐢熶骇鎺掔▼鍗曞姩鎬佽〃鍗�-椤甸潰灞曠ず 寰呮帓浠诲姟鎶涘嚭寮傚父锛�" + ex.Message.ToString());
+ this.View.ShowErrMessage("閿欒锛�" + ex.Message.ToString());
+ }
+ }
+ /// <summary>
+ /// 鐣岄潰涓嬫柟鈥滅敓浜ц鍗曗�濈殑椤电
+ /// </summary>
+ /// <param name="FMaterialId">鐗╂枡</param>
+ /// <param name="FProOrderNo">鐢熶骇璁㈠崟鍙�</param>
+ public void ScddSearchList(string FMaterialId, string FProOrderNo)
+ {
+ try
+ {
+ string sqlWhere = " and 1=1 ";
+ if (!string.IsNullOrEmpty(FMaterialId))
+ sqlWhere += $" and b.FMATERIALID ='{FMaterialId}'";
+ if (!string.IsNullOrEmpty(FProOrderNo))
+ sqlWhere += $" and a.FBILLNO like '%{FProOrderNo}%' ";
+
+ //鐣岄潰涓嬫柟鈥滅敓浜ц鍗曗�濈殑椤电锛屽姞杞芥湭鎺掔▼宸插鏍哥殑鐢熶骇璁㈠崟 (娴嬭瘯鏈姞鏉′欢 鏇存敼鍚庡幓闄よ鏍囪)
+ string sql = @"
+SELECT A.FBILLNO,B.FSEQ,B.FMATERIALID,B.FQTY,B.FPlanStartDate,b.FPlanFinishDate,b.FSaleOrderNo,c.FCustId,d.FQTY as FQTYXSDD ,d.FNOTE,d.FPLANDELIVERYDATE,e.FSCOrderNo
+FROM T_PRD_MO a
+LEFT JOIN T_PRD_MOENTRY b on a.FID = B.FID
+left join T_SAL_ORDER c on b.FSaleOrderNo =c.FBILLNO
+left join T_SAL_ORDERENTRY d on c.FID = d.FID and b.FMATERIALID = d.FMATERIALID
+left join Sc_WorkBillSortBillMain e on b.FMATERIALID = e.FHMaterID and b.FSEQ = e.FSRCBILLENTRYSEQ and a.FBILLNO = e.FSCOrderNo
+where ISNULL(e.FSCOrderNo,'')=''";
+ sql += sqlWhere;
+ DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0];
+ if (dt.Rows.Count > 0)
+ {
+ //this.Model.DeleteEntryData("FScddEntity");
+ while (this.Model.GetEntryRowCount("FScddEntity") > 0)
+ {
+ this.Model.DeleteEntryRow("FScddEntity", 0);
+ }
+ for (int i = 0; i < dt.Rows.Count; i++)
+ {
+ this.Model.CreateNewEntryRow("FScddEntity");
+ this.Model.SetValue("FSEQ", i + 1, i);//搴忓彿
+ this.Model.SetValue("FProOrderNoSC", dt.Rows[i]["FBILLNO"], i);//鐢熶骇璁㈠崟鍙�
+ this.Model.SetValue("FSRCBILLENTRYSEQSC", dt.Rows[i]["FSEQ"], i);//鐢熶骇璁㈠崟鏄庣粏鍙�
+ this.Model.SetValue("FSCOrderCountSC", dt.Rows[i]["FQTY"], i);//鐢熶骇璁㈠崟鏁�
+ this.Model.SetValue("FPlanBeginDateSC", dt.Rows[i]["FPlanStartDate"], i);//璁″垝寮�宸ユ棩鏈�
+ this.Model.SetValue("FPlanEndDateSC", dt.Rows[i]["FPlanFinishDate"], i);//璁″垝瀹屽伐鏃ユ湡
+ this.Model.SetValue("FSalOrderNoSC", dt.Rows[i]["FSaleOrderNo"], i);//閿�鍞鍗曞彿
+ this.Model.SetValue("FMATERIALIDSC", dt.Rows[i]["FMATERIALID"], i);//鐗╂枡
+ this.Model.SetValue("FCustormerSC", dt.Rows[i]["FCustId"], i);//瀹㈡埛
+ this.Model.SetValue("FSalOrderCountSC", dt.Rows[i]["FQTYXSDD"], i);//閿�鍞鍗曟暟閲�
+ this.Model.SetValue("FSalDeliveryDateSC", dt.Rows[i]["FPLANDELIVERYDATE"], i);//閿�鍞鍗曚氦璐ф湡
+ this.Model.SetValue("FOrderRemakeSC", dt.Rows[i]["FNOTE"], i);//璁㈠崟澶囨敞
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ LogHelper.Error("鐢熶骇鎺掔▼鍗曞姩鎬佽〃鍗�-椤甸潰灞曠ず 鐢熶骇璁㈠崟鎶涘嚭寮傚父锛�" + ex.Message.ToString());
+ this.View.ShowErrMessage("閿欒锛�" + ex.Message.ToString());
+ }
+ }
/// <summary>
/// 鐢熶骇璁㈠崟鏁版嵁鎺ㄥ埌寰呮帓浠诲姟鏍�
/// </summary>
@@ -109,23 +498,29 @@
i++;
}
}
-
/// <summary>
/// 浜ц兘璁$畻
/// </summary>
public void Jscn()
{
//鏌ヨ鍑洪噸澶嶇敓浜х嚎瀵瑰簲鐨勫伐浣滄棩鍘嗕俊鎭�
- string _sql = @"
-select FCalUserId,FCalUserType,FShiftId,FIsWorkTime,FDay,FDateStyle,c.FALLHOURS,b.FENTRYID from T_ENG_WORKCAL a
+ string _sql = @"/*dialect*/
+select FCalUserId,FCalUserType,FShiftId,FIsWorkTime,FDay,FDateStyle,c.FALLHOURS ,c.FALLHOURS FALLHOURSCONST,b.FENTRYID from T_ENG_WORKCAL a
left join T_ENG_WORKCALFULLDATA b on a.FID=b.FID
left join T_ENG_SHIFT c on b.FShiftId =c.FID
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>();
- var list = new List<object>();
Entity entity = this.View.BillBusinessInfo.GetEntity("FDprwEntity");
//鍗曟嵁浣撲俊鎭浆鎹负鍒楄〃闆嗗悎
DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity);
@@ -134,14 +529,48 @@
{
var orders = group.OrderBy(x => Convert.ToDateTime(x["FPlanEndDate"]));//璁″垝瀹屽伐鏃ユ湡鎺掑簭
var seq = 1;
+ string fMaterialID = ""; //璁板綍寰幆鏃剁殑浜у搧 鐢ㄤ簬浜у搧鎹㈢嚎鏃跺垽鏂紙鍚屼竴涓骇绾挎椂鐨勮绠楋級
foreach (var order in orders)
{
+ List<ENG_WORKCALFULLDATA> _ENG_WORKCALFULLDATA = ENG_WORKCALFULLDATA.Where(x => x.FALLHOURS > 0 && x.FCalUserId == Convert.ToInt32(order["FSczy_Id"])).ToList();
+ //浜у搧鍙戠敓鍙樺够鏃舵墸闄ょ浉搴旂殑鎹㈢嚎鏃堕棿
+ if (fMaterialID == "")
+ {
+ fMaterialID = order["FMATERIALID_Id"].ToString();
+ }
+ decimal FChangeLine = Convert.ToDecimal(order["FChangeLine"]);//鎹㈢嚎鏃堕棿
+ if (fMaterialID != order["FMATERIALID_Id"].ToString())
+ {
+ foreach (var item in _ENG_WORKCALFULLDATA)
+ {
+ if (FChangeLine < item.FALLHOURS)
+ {
+ //鏀瑰彉list涓煇涓厓绱犲��
+ var model = ENG_WORKCALFULLDATA.Where(c => c.FENTRYID == item.FENTRYID).FirstOrDefault();
+ //model.FALLHOURS -= Math.Ceiling(fqty / FCapacity);
+ model.FALLHOURS -= FChangeLine; // 鐢熶骇鏁� / 灏忔椂浜ц兘 = 娑堣�楃殑灏忔椂 锛堟暟鍊肩被鍨嬩负decimal锛�
+ }
+ else
+ {
+ var model = ENG_WORKCALFULLDATA.Where(c => c.FENTRYID == item.FENTRYID).FirstOrDefault();
+ model.FALLHOURS = 0;
+ }
+ }
+ fMaterialID = order["FMATERIALID_Id"].ToString();
+ }
//璁$畻浜ц兘
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();
+ decimal dayFCapacity = 0;//褰撴棩鍓╀綑浜ч噺 = 灏忔椂浜ц兘 * 鏃ュ墿浣欏伐浣滄椂闀�
+ _ENG_WORKCALFULLDATA = ENG_WORKCALFULLDATA.Where(x => x.FALLHOURS > 0 && x.FCalUserId == Convert.ToInt32(order["FSczy_Id"])).ToList();
foreach (var item in _ENG_WORKCALFULLDATA)
{
if (FSCOrderCount == 0)
@@ -153,13 +582,13 @@
FDay = item.FDay,
FQTY = fqty
}); ;
- //褰撴棩浜ч噺澶т簬鍓╀綑鐢熶骇璁㈠崟鏁伴噺鏃� 鎸夊皬鏃朵骇閲忓幓璁$畻闇�瑕佹椂闂� list<>鍘绘墸闄ょ浉搴旂殑宸ユ椂
+ //褰撴棩鍓╀綑浜ч噺澶т簬鍓╀綑鐢熶骇璁㈠崟鏁伴噺鏃� 鎸夊皬鏃朵骇閲忓幓璁$畻闇�瑕佹椂闂� list<>鍘绘墸闄ょ浉搴旂殑宸ユ椂
if (dayFCapacity > FSCOrderCount)
{
//鏀瑰彉list涓煇涓厓绱犲��
var model = ENG_WORKCALFULLDATA.Where(c => c.FENTRYID == item.FENTRYID).FirstOrDefault();
- model.FALLHOURS -= Math.Ceiling(fqty / FCapacity);
-
+ //model.FALLHOURS -= Math.Ceiling(fqty / FCapacity);
+ model.FALLHOURS -= fqty / FCapacity; // 鐢熶骇鏁� / 灏忔椂浜ц兘 = 娑堣�楃殑灏忔椂 锛堟暟鍊肩被鍨嬩负decimal锛�
}
else
{
@@ -168,9 +597,6 @@
}
FSCOrderCount = FSCOrderCount - fqty;
}
-
- //continue;
-
//鏍规嵁鐢熶骇璁㈠崟鍙峰拰鐗╂枡鏌ヨ鏄惁瀛樺湪鏄庣粏 +鐢熶骇璁㈠崟鏄庣粏琛屽彿
string sql = string.Format(@"
/*dialect*/
@@ -199,12 +625,14 @@
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", "");
JObject jsonModel = new JObject();
jsonModel.Add("FPreparatDate", DateTime.Now.ToString());//缂栧埗鏃ユ湡
+ jsonModel.Add("FHPlanBeginDate", Convert.ToString(order["FPlanBeginDate"]));//璁″垝寮�濮嬫棩鏈�
+ jsonModel.Add("FHPlanEndDate", Convert.ToString(order["FPlanEndDate"]));//璁″垝瀹屽伐鏃ユ湡
jsonModel.Add("FSRCBILLENTRYSEQ", Convert.ToString(order["FSRCBILLENTRYSEQ"]));//鐢熶骇璁㈠崟鏄庣粏琛屽彿
jsonModel.Add("FSCOrderNo", Convert.ToString(order["FProOrderNo"])); //鐢熶骇璁㈠崟鍙稦SCOrderNo
jsonModel.Add("FHSeOrderBillNo", Convert.ToString(order["FSalOrderNo"]));//閿�鍞鍗曞彿
@@ -221,7 +649,7 @@
jsonModel.Add("FHMaterID", new JObject() { ["Fnumber"] = Convert.ToString(((order["FMATERIALID"]) as DynamicObject)?["Number"].ToString()) });//鐗╂枡
jsonModel.Add("FHSourceID", new JObject() { ["Fnumber"] = Convert.ToString(((order["FSczy"]) as DynamicObject)?["Number"].ToString()) });//鐢熶骇璧勬簮
jsonModel.Add("FHWorkQty", Convert.ToString(order["FCapacity"])); ;//浜ц兘
- jsonModel.Add("FHYX", Convert.ToString(order["FPriority"])); ;//浼樺厛绾�
+ jsonModel.Add("FHYX", seq++); ;//浼樺厛绾�
if (Convert.ToInt32(order["FID"]) > 0)
jsonModel.Add("FID", Convert.ToString(order["FID"])); ;//鏃ヨ鍒掑伐鍗旾D
JArray Entry = new JArray();
@@ -291,6 +719,78 @@
LogHelper.Error("鐢熶骇鎺掔▼鍗曞姩鎬佽〃鍗� 鎺掔▼鎸夐挳鐐瑰嚮鍔熻兘" + ex.Message.ToString());
}
}
+ /// <summary>
+ /// 鑷姩鎺掔▼淇濆瓨鍔熻兘
+ /// </summary>
+ public void ZdpcSave()
+ {
+ List<string> sqlList = new List<string>();
+ string sql;
+ //鑾峰彇鍗曟嵁浣撲俊鎭�
+ Entity entity = this.View.BillBusinessInfo.GetEntity("FZdpcEntity");
+ //鍗曟嵁浣撲俊鎭浆鎹负鍒楄〃闆嗗悎
+ DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity);
+ DateTime date = Convert.ToDateTime(DateTime.Now.ToString("d"));
+ string _result = "";
+ foreach (DynamicObject current in entityDataObjoct)
+ {
+ if (Convert.ToInt32(current["FNoScheduledCount"]) < 0)
+ _result += "搴忓彿锛�" + Convert.ToString(current["SEQ"]) + ",鏃ヨ鍒掓�绘暟閲忚秴鍑虹敓浜ц鍗曟暟閲�";
+ }
+ if (_result != "")
+ {
+ this.View.ShowErrMessage(_result);
+ return;
+ }
+ //var groups = entityDataObjoct.GroupBy(x => new {x});//鐢熶骇璧勬簮鍒嗙粍锛堣绠椾紭鍏堢骇锛�
+ //var groups = entityDataObjoct.GroupBy(x => x["FSczy_Id"]);//鐢熶骇璧勬簮鍒嗙粍锛堣绠椾紭鍏堢骇锛�
+ foreach (DynamicObject current in entityDataObjoct)
+ {
+ JObject jsonRoot = new JObject();
+ jsonRoot.Add("Creator", "");
+ jsonRoot.Add("NeedUpDateFields", new JArray());
+ jsonRoot.Add("NeedReturnFields", new JArray());
+ jsonRoot.Add("IsDeleteEntry", "false");
+ jsonRoot.Add("SubSystemId", "");
+ jsonRoot.Add("IsVerifyBaseDataField", "");
+ JObject jsonModel = new JObject();
+ jsonModel.Add("FID", Convert.ToString(current["FIDZD"]));
+ //jsonModel.Add("FOrderQuantity", Convert.ToString(current["FOrderQuantity"]));
+ //jsonModel.Add("FDayPlanQuantity", Convert.ToString(current["FDayPlanQuantity"]));
+ //jsonModel.Add("FNoScheduled", Convert.ToString(current["FNoScheduled"]));
+ sql = $" /*dialect*/ select FEntryID, FHMASTERDATE from SC_WORKBILLSORTBILLSub where FID={Convert.ToString(current["FIDZD"])} ";
+ List<DayPlanModel> dayPlanModel = new List<DayPlanModel>();
+ dayPlanModel = DBServiceHelper.ExecuteDataSet(Context, sql).ToModelList<DayPlanModel>();
+ JArray Entry = new JArray();
+ for (int i = 0; i <= 60; i++)
+ {
+ if (Convert.ToString(current["FT" + "" + i + ""]) == "" || Convert.ToString(current["FT" + "" + i + ""]) == "0")
+ continue;
+ JObject jsonFPOOrderEntry = new JObject();
+ jsonFPOOrderEntry.Add("FHMasterDate", date.AddDays(i).ToShortDateString()); ;//涓绘棩鏈�
+ jsonFPOOrderEntry.Add("FHQty ", Convert.ToString(current["FT" + "" + i + ""])); ;//鏃ヨ鍒掓暟閲�
+ List<DayPlanModel> _dayPlanModel = dayPlanModel.Where(x => x.FHMASTERDATE == date.AddDays(i)).ToList();
+ if (_dayPlanModel.Count > 0)
+ {
+ jsonFPOOrderEntry.Add("FEntryID", _dayPlanModel.FirstOrDefault().FEntryID); ;//搴忓彿
+ }
+ Entry.Add(jsonFPOOrderEntry);
+ }
+ jsonModel.Add("FEntity", Entry);
+ jsonRoot.Add("Model", jsonModel);
+ CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/");
+ var result = cloudClient.Save("Paez_Sc_WorkBillAutoSortBill", jsonRoot.ToString());
+ JObject saveObj = JObject.Parse(result);
+ string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
+ if (saveIsSuc != "TRUE")
+ {
+ LogHelper.Error("鐢熶骇璁″垝骞冲彴淇濆瓨澶辫触:" + jsonRoot.ToString());
+ this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString());
+ }
+ }
+
+ this.View.ShowMessage("鎿嶄綔鎴愬姛");
+ }
}
}
--
Gitblit v1.9.1