src/BLL/Demo.BillView/Demo.BillView.csproj | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/BLL/Demo.BillView/PRD/PODemandPlanListLoad.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/BLL/Demo.BillView/PRD/Pro_ScDayImport.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/BLL/Demo.BillView/Demo.BillView.csproj
@@ -175,6 +175,7 @@ <Reference Include="PresentationFramework" /> <Reference Include="System" /> <Reference Include="System.Core" /> <Reference Include="System.Drawing" /> <Reference Include="System.Web" /> <Reference Include="System.Xml.Linq" /> <Reference Include="System.Data.DataSetExtensions" /> @@ -193,6 +194,7 @@ </Reference> </ItemGroup> <ItemGroup> <Compile Include="PRD\PODemandPlanListLoad.cs" /> <Compile Include="PRD\ProCompleteAnalysisMateriel.cs" /> <Compile Include="PRD\ProCompleteAnalysisDetails.cs" /> <Compile Include="PRD\Pro_ScDayImport.cs" /> src/BLL/Demo.BillView/PRD/PODemandPlanListLoad.cs
New file @@ -0,0 +1,56 @@ using Kingdee.BOS.Core.List.PlugIn; using Kingdee.BOS.Core.Metadata; using System.Drawing; using System; using Kingdee.BOS; using System.ComponentModel; using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel; using Kingdee.BOS.Util; namespace Demo.BillView.PRD { [Description("列表插件设置颜色")] [HotUpdate] public class PODemandPlanListLoad : AbstractListPlugIn { public override void OnFormatRowConditions(Kingdee.BOS.Core.List.PlugIn.Args.ListFormatConditionArgs args) { base.OnFormatRowConditions(args); //1.人员产能不足 红色 //2.模具设备影响 //3.原料备货延期 橙色 //4.产品质量问题 //5.设计变更因素影响 黄色 //6.快递物流原因 //7.不可抗力因素 蓝色 FormatCondition fc = new FormatCondition(); fc.ApplayRow = true; if (args.DataRow["FLateReason"].ToString() == "人员产能不足" || args.DataRow["FLateReason"].ToString() == "模具设备影响") { fc.BackColor = ColorTranslator.ToHtml(System.Drawing.Color.Red);// 红色; } else if (args.DataRow["FLateReason"].ToString() == "原料备货延期" || args.DataRow["FLateReason"].ToString() == "产品质量问题") { fc.BackColor = ColorTranslator.ToHtml(System.Drawing.Color.Orange);// 橙色; } else if (args.DataRow["FLateReason"].ToString() == "设计变更因素影响" || args.DataRow["FLateReason"].ToString() == "快递物流原因") { fc.BackColor = ColorTranslator.ToHtml(System.Drawing.Color.Yellow);// 黄色; } else if (args.DataRow["FLateReason"].ToString() == "不可抗力因素") { fc.BackColor = ColorTranslator.ToHtml(System.Drawing.Color.LightBlue);// 蓝色; } args.FormatConditions.Add(fc); } } } src/BLL/Demo.BillView/PRD/Pro_ScDayImport.cs
@@ -115,6 +115,27 @@ for (int i = 0; i < dt.Rows.Count; i++) { //根据生产订单号和物料查询是否存在明细 string sql = string.Format(@"/*dialect*/ SELECT T1.FBILLNO,T2.* FROM T_PRD_MO T1 LEFT JOIN T_PRD_MOENTRY T2 ON T1.FID = T2.FID JOIN T_BD_MATERIAL T3 ON T2.FMATERIALID = T3.FMATERIALID WHERE T1.FBILLNO = '{0}' AND T3.FNUMBER = '{1}'", dt.Rows[i][1].ToString(), dt.Rows[i][5].ToString()); DataTable _dt = new DataTable(); _dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; string FLOT = "";//FLOT 批次 string FQTY = "";//FQTY 生产订单数量 string FBILLNO = "";//FBILLNO 原单号 if (_dt.Rows.Count > 0) { FLOT = _dt.Rows[0]["FLOT"].ToString(); FQTY = _dt.Rows[0]["FQTY"].ToString(); FBILLNO = _dt.Rows[0]["FBILLNO"].ToString(); } //DynamicObject row = new DynamicObject(entity.DynamicObjectType); this.Model.CreateNewEntryRow("FEntity"); this.Model.SetValue("FSEQ", i + 1, i); @@ -130,14 +151,17 @@ this.Model.SetValue("FUnit", dt.Rows[i][8].ToString(), i); this.Model.SetValue("FBatch", dt.Rows[i][9].ToString(), i); this.Model.SetValue("FSalOrderCount", dt.Rows[i][10].ToString(), i); this.Model.SetValue("FProOrderCount", dt.Rows[i][11].ToString(), i); this.Model.SetValue("FCompleteSetCount", dt.Rows[i][12].ToString(), i); this.Model.SetValue("FDeliveryDate", GetDateTime(Convert.ToInt32(dt.Rows[i][13].ToString())), i); this.Model.SetValue("FDeliveryDate", ToDateTimeValue(dt.Rows[i][13].ToString()), i); this.Model.SetValue("FOrderLevel", dt.Rows[i][14].ToString(), i); this.Model.SetValue("FOrderQuantity", FQTY, i); for (int j = 0; j <= 60; j++) { this.Model.SetValue("FT" + "" + j + "", dt.Rows[i][15 + j].ToString(), i); } //调用数量值更新 this.View.InvokeFieldUpdateService("FT0", i); } } @@ -202,6 +226,17 @@ return; } foreach (DynamicObject current in entityDataObjoct) { if (Convert.ToInt32(current["FNoScheduled"]) < 0) _result += "序号:" + Convert.ToString(current["SEQ"]) + ",日计划总数量超出生产订单数量"; } if (_result != "") { this.View.ShowErrMessage(_result); return; } foreach (DynamicObject current in entityDataObjoct) { @@ -222,6 +257,7 @@ string FLOT = "";//FLOT 批次 string FQTY = "";//FQTY 生产订单数量 string FBILLNO = "";//FBILLNO 原单号 if (dt.Rows.Count > 0) { FID = dt.Rows[0]["FID"].ToString(); @@ -253,6 +289,12 @@ jsonModel.Add("FPrdBillNo", FBILLNO); ;//源单编号 jsonModel.Add("FPRDMOMAINID", FID); ;//源单主内码 jsonModel.Add("FPRDMOENTYID", FENTRYID); ;//源单子内码 jsonModel.Add("FOrderQuantity", current["FOrderQuantity"].ToString()); ;//生产订单数量 jsonModel.Add("FDayPlanQuantity", current["FDayPlanQuantity"].ToString()); ;//日计划数量 jsonModel.Add("FNoScheduled", current["FNoScheduled"].ToString()); ;//未排数量 JObject jsonFHMaterID = new JObject(); @@ -365,6 +407,53 @@ /// <summary> /// 数字转换时间格式 /// </summary> /// <param name="timeStr">数字,如:42095.7069444444/0.650694444444444</param> /// <returns>日期/时间格式</returns> private string ToDateTimeValue(string strNumber) { if (!string.IsNullOrWhiteSpace(strNumber)) { Decimal tempValue; //先检查 是不是数字; if (Decimal.TryParse(strNumber, out tempValue)) { //天数,取整 int day = Convert.ToInt32(Math.Truncate(tempValue)); //这里也不知道为什么. 如果是小于32,则减1,否则减2 //日期从1900-01-01开始累加 // day = day < 32 ? day - 1 : day - 2; DateTime dt = new DateTime(1900, 1, 1).AddDays(day < 32 ? (day - 1) : (day - 2)); //小时:减掉天数,这个数字转换小时:(* 24) Decimal hourTemp = (tempValue - day) * 24;//获取小时数 //取整.小时数 int hour = Convert.ToInt32(Math.Truncate(hourTemp)); //分钟:减掉小时,( * 60) //这里舍入,否则取值会有1分钟误差. Decimal minuteTemp = Math.Round((hourTemp - hour) * 60, 2);//获取分钟数 int minute = Convert.ToInt32(Math.Truncate(minuteTemp)); //秒:减掉分钟,( * 60) //这里舍入,否则取值会有1秒误差. Decimal secondTemp = Math.Round((minuteTemp - minute) * 60, 2);//获取秒数 int second = Convert.ToInt32(Math.Truncate(secondTemp)); //时间格式:00:00:00 string resultTimes = string.Format("{0}:{1}:{2}", (hour < 10 ? ("0" + hour) : hour.ToString()), (minute < 10 ? ("0" + minute) : minute.ToString()), (second < 10 ? ("0" + second) : second.ToString())); if (day > 0) return string.Format("{0} {1}", dt.ToString("yyyy-MM-dd"), resultTimes); else return resultTimes; } } return string.Empty; } } src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
@@ -299,8 +299,11 @@ //单据体信息转换为列表集合 DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity); DateTime date = DateTime.Now; foreach (DynamicObject current in entityDataObjoct) { DateTime FBzDate = Convert.ToDateTime(Convert.ToDateTime(current["FBzDate"])); DateTime end = Convert.ToDateTime(Convert.ToDateTime(current["FBzDate"]).AddDays(60).ToShortDateString());//最大日期 for (int i = 0; i <= 60; i++) @@ -385,10 +388,26 @@ public void COMPLETEMAIN() { //获取当前即时库存 按照物料+货主+库存 展现 DataSet ds = DBServiceHelper.ExecuteDataSet(Context, @" /*dialect*/ select DISTINCT FBASEQTY,FMATERIALID,FStockOrgId,FOwnerId from T_STK_Inventory order by FBASEQTY"); DataSet ds = DBServiceHelper.ExecuteDataSet(Context, @" /*dialect*/ select DISTINCT (a.FBASEQTY- ISNULL(FHUseQty,0)) as FBASEQTY,a.FMATERIALID,a.FStockOrgId,a.FOwnerId from T_STK_Inventory a left join ( select FHMaterID,FHUseQty,FHStockOrgID,FOwnerId from JIT_MOMaterReadysBill where FIdentificat = 2 ) b on a.FMATERIALID=b.FHMaterID and a.FStockOrgId=b.FHStockOrgID and a.FOwnerId = b.FOwnerId order by FBASEQTY"); ListInventory = ds.ToModelList<PRD_Inventory>(); ds = DBServiceHelper.ExecuteDataSet(Context, @" /*dialect*/ select sum(FBASEQTY)FBASEQTY,FMATERIALID,FStockOrgId from T_STK_Inventory group by FMATERIALID, FStockOrgId "); ds = DBServiceHelper.ExecuteDataSet(Context, @" /*dialect*/ select sum(FBASEQTY)FBASEQTY,FMATERIALID,FStockOrgId from ( select DISTINCT (a.FBASEQTY- ISNULL(FHUseQty,0)) as FBASEQTY,a.FMATERIALID,a.FStockOrgId,a.FOwnerId from T_STK_Inventory a left join ( select FHMaterID,FHUseQty,FHStockOrgID,FOwnerId from JIT_MOMaterReadysBill where FIdentificat = 2 ) b on a.FMATERIALID=b.FHMaterID and a.FStockOrgId=b.FHStockOrgID and a.FOwnerId = b.FOwnerId ) TT group by FMATERIALID, FStockOrgId "); ListInventoryByStockOrgId = ds.ToModelList<PRD_Inventory>(); //获取单据体信息 @@ -414,7 +433,7 @@ this.View.Model.SetValue("FCompleteSetCount", Sum, m); this.View.UpdateView("FCompleteSetCount"); //保存齐套数 DBServiceHelper.Execute(Context, "/*dialect*/ update Sc_WorkBillSortBillMain set FCompleteCount='" + Sum + "',FPlanCount='" + SumPlan + "' where FID=" + current["FDayPlanWorkID"].ToString()); DBServiceHelper.Execute(Context, "/*dialect*/ update Sc_WorkBillSortBillMain set FCompleteCount='" + Sum + "',FDayPlanQuantity='" + SumPlan + "' where FID=" + current["FDayPlanWorkID"].ToString()); for (int i = 0; i <= 60; i++) { this.View.GetFieldEditor("FT" + i.ToString(), m).Enabled = false; //单据体行锁定字段 @@ -745,6 +764,9 @@ this.Model.SetValue("FProductWorkShopId", dt.Rows[i]["FHWorkShopID"].ToString(), i);//生产车间 this.Model.SetValue("FCompleteSetCount", dt.Rows[i]["FCompleteCount"].ToString(), i);//齐套数量 this.Model.SetValue("FOrderQuantity", dt.Rows[i]["FOrderQuantity"].ToString(), i);//生产订单数量 this.Model.SetValue("FDayPlanQuantity", dt.Rows[i]["FDayPlanQuantity"].ToString(), i);//日计划数量 this.Model.SetValue("FNoScheduled", dt.Rows[i]["FNoScheduled"].ToString(), i);//未排数量 sql = @"/*dialect*/SELECT * FROM Sc_WorkBillSortBillSub WHERE DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0 and FID=" + dt.Rows[i]["FID"].ToString(); @@ -1429,3 +1451,5 @@ } } }