| | |
| | | { |
| | | try |
| | | { |
| | | int day = Convert.ToInt32(this.Model.GetValue("FLockDays")); |
| | | List<string> sqlList = new List<string>(); |
| | | //更新日计划明细锁定标记 |
| | | string sql = $"/*dialect*/update t1 set t1.FHLockedSub=1 from Sc_WorkBillSortBillSub t1 join Sc_WorkBillSortBillMain t2 on t1.FID = t2.FID where FHMASTERDATE between DATEADD(day,-1,getdate()) and DATEADD(day,{day - 1},getdate())"; |
| | | sqlList.Add(sql); |
| | | //生成提料计划和要料计划 |
| | | sql = string.Format(@"/*dialect*/ |
| | | INSERT INTO Z_SC_TLPLANZXJH (COLUMN1) VALUES ('0') |
| | | INSERT INTO SC_TLPLANZXJH(FID,FCREATEDATE) SELECT Id,GETDATE() FROM Z_SC_TLPLANZXJH |
| | | DELETE FROM Z_SC_TLPLANZXJH |
| | | "); |
| | | sqlList.Add(sql); |
| | | DBServiceHelper.ExecuteBatch(Context, sqlList); |
| | | #region 按天锁定 |
| | | // int day = Convert.ToInt32(this.Model.GetValue("FLockDays")); |
| | | // List<string> sqlList = new List<string>(); |
| | | // //更新日计划明细锁定标记 |
| | | // string sql = $"/*dialect*/update t1 set t1.FHLockedSub=1 from Sc_WorkBillSortBillSub t1 join Sc_WorkBillSortBillMain t2 on t1.FID = t2.FID where FHMASTERDATE between DATEADD(day,-1,getdate()) and DATEADD(day,{day - 1},getdate())"; |
| | | // sqlList.Add(sql); |
| | | // //生成提料计划和要料计划 |
| | | // sql = string.Format(@"/*dialect*/ |
| | | //INSERT INTO Z_SC_TLPLANZXJH (COLUMN1) VALUES ('0') |
| | | //INSERT INTO SC_TLPLANZXJH(FID,FCREATEDATE) SELECT Id,GETDATE() FROM Z_SC_TLPLANZXJH |
| | | //DELETE FROM Z_SC_TLPLANZXJH |
| | | //"); |
| | | // sqlList.Add(sql); |
| | | // DBServiceHelper.ExecuteBatch(Context, sqlList); |
| | | // this.View.ShowMessage("操作成功"); |
| | | #endregion |
| | | #region 选单锁定 |
| | | //单据体信息转换为列表集合 |
| | | Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity"); |
| | | DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity); |
| | | DynamicObjectCollection filterResult = entityDataObjoct.Clone(); |
| | | filterResult.Clear(); |
| | | entityDataObjoct.Where(x => Convert.ToBoolean(x["FFOCUS"]) && Convert.ToInt32(x["FDayPlanWorkID"]) > 0).ToList().ForEach(x => filterResult.Add(x)); |
| | | string FDayPlanWorkID = ""; |
| | | if (filterResult.Count() == 0) |
| | | { |
| | | this.View.ShowMessage("请勾选需要锁定的日计划"); |
| | | } |
| | | else |
| | | { |
| | | foreach (var filter in filterResult) |
| | | { |
| | | FDayPlanWorkID += filter["FDayPlanWorkID"].ToString() + ","; |
| | | } |
| | | FDayPlanWorkID = FDayPlanWorkID.TrimEnd(','); |
| | | string sql = $"/*dialect*/update t1 set t1.FHLockedSub=1 from Sc_WorkBillSortBillSub t1 where t1.FID in ({FDayPlanWorkID})"; |
| | | DBServiceHelper.Execute(Context, sql); |
| | | } |
| | | this.View.ShowMessage("操作成功"); |
| | | #endregion |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | /// </summary> |
| | | public void RelieveLock() |
| | | { |
| | | int day = Convert.ToInt32(this.Model.GetValue("FLockDays")); |
| | | //获取单据体信息 |
| | | Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity"); |
| | | #region 日期锁定 |
| | | //int day = Convert.ToInt32(this.Model.GetValue("FLockDays")); |
| | | ////获取单据体信息 |
| | | //Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity"); |
| | | ////单据体信息转换为列表集合 |
| | | //DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity); |
| | | //List<string> sqlList = new List<string>(); |
| | | //string sql = $"/*dialect*/update t1 set t1.FHLockedSub=0 from Sc_WorkBillSortBillSub t1 join Sc_WorkBillSortBillMain t2 on t1.FID = t2.FID where FHMASTERDATE between DATEADD(day,-1,getdate()) and DATEADD(day,{day - 1},getdate())"; |
| | | //DBServiceHelper.Execute(Context, sql); |
| | | //SearchList(); |
| | | #endregion |
| | | |
| | | #region 选单锁定 |
| | | //单据体信息转换为列表集合 |
| | | Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity"); |
| | | DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity); |
| | | List<string> sqlList = new List<string>(); |
| | | string sql = $"/*dialect*/update t1 set t1.FHLockedSub=0 from Sc_WorkBillSortBillSub t1 join Sc_WorkBillSortBillMain t2 on t1.FID = t2.FID where FHMASTERDATE between DATEADD(day,-1,getdate()) and DATEADD(day,{day - 1},getdate())"; |
| | | DBServiceHelper.Execute(Context, sql); |
| | | //foreach (var item in entityDataObjoct) |
| | | //{ |
| | | // sql = $"/*dialect*/update t1 set t1.FHLockedSub=0 from Sc_WorkBillSortBillSub t1 join Sc_WorkBillSortBillMain t2 on t1.FID = t2.FID where FHMASTERDATE between DATEADD(day,-1,getdate()) and DATEADD(day,{day - 1},getdate()) and t1.FID = { Convert.ToString(item["FDayPlanWorkID"])} "; |
| | | // sqlList.Add(sql); |
| | | //} |
| | | SearchList(); |
| | | DynamicObjectCollection filterResult = entityDataObjoct.Clone(); |
| | | filterResult.Clear(); |
| | | entityDataObjoct.Where(x => Convert.ToBoolean(x["FFOCUS"]) && Convert.ToInt32(x["FDayPlanWorkID"]) > 0).ToList().ForEach(x => filterResult.Add(x)); |
| | | string FDayPlanWorkID = ""; |
| | | if (filterResult.Count() == 0) |
| | | { |
| | | this.View.ShowMessage("请勾选需要解锁的日计划"); |
| | | } |
| | | else |
| | | { |
| | | foreach (var filter in filterResult) |
| | | { |
| | | FDayPlanWorkID += filter["FDayPlanWorkID"].ToString() + ","; |
| | | } |
| | | FDayPlanWorkID = FDayPlanWorkID.TrimEnd(','); |
| | | string sql = $"/*dialect*/update t1 set t1.FHLockedSub=0 from Sc_WorkBillSortBillSub t1 where t1.FID in ({FDayPlanWorkID})"; |
| | | DBServiceHelper.Execute(Context, sql); |
| | | } |
| | | #endregion |
| | | this.View.ShowMessage("操作成功"); |
| | | |
| | | } |
| | |
| | | /*dialect*/ |
| | | SELECT FID FROM SC_WORKBILLSORTBILLMAIN A |
| | | WHERE FSCORDERNO = '{0}' AND FSRCBILLENTRYSEQ ='{1}' AND FHSOURCEID='{2}'" |
| | | , Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FSRCBILLENTRYSEQ"]), Convert.ToString(current["FResourcesId_Id"])); |
| | | , Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FSRCBILLENTRYSEQ"]), Convert.ToString(current["FResourcesId_Id"])); |
| | | int _FDayPlanWorkID = DBServiceHelper.ExecuteScalar<int>(Context, _sql, 0); |
| | | if (_FDayPlanWorkID > 0) |
| | | { |
| | |
| | | var resuult = ""; |
| | | try |
| | | { |
| | | // 需要捕获错误,以确保处理结束时,关闭进度滚动界面 |
| | | // 引入功能实际处理函数 |
| | | resuult = this.CompleteSetAnalysisByDataTable(); |
| | | // 需要捕获错误,以确保处理结束时,关闭进度滚动界面 |
| | | // 引入功能实际处理函数 |
| | | resuult = this.CompleteSetAnalysisByDataTable(); |
| | | } |
| | | finally |
| | | { |
| | | // 确保标记进度已经到达100% |
| | | this.View.Session["ProcessRateValue"] = 100; |
| | | // 引入完毕,关闭进度显示页面 |
| | | var processView = this.View.GetView(processForm.PageId); |
| | | // 确保标记进度已经到达100% |
| | | this.View.Session["ProcessRateValue"] = 100; |
| | | // 引入完毕,关闭进度显示页面 |
| | | var processView = this.View.GetView(processForm.PageId); |
| | | if (processView != null) |
| | | { |
| | | processView.Close(); |
| | |
| | | var resuult = ""; |
| | | try |
| | | { |
| | | // 需要捕获错误,以确保处理结束时,关闭进度滚动界面 |
| | | // 引入功能实际处理函数 |
| | | resuult = this.CompleteSetAnalysisByDataTableBom(); |
| | | // 需要捕获错误,以确保处理结束时,关闭进度滚动界面 |
| | | // 引入功能实际处理函数 |
| | | resuult = this.CompleteSetAnalysisByDataTableBom(); |
| | | } |
| | | finally |
| | | { |
| | | // 确保标记进度已经到达100% |
| | | this.View.Session["ProcessRateValue"] = 100; |
| | | // 引入完毕,关闭进度显示页面 |
| | | var processView = this.View.GetView(processForm.PageId); |
| | | // 确保标记进度已经到达100% |
| | | this.View.Session["ProcessRateValue"] = 100; |
| | | // 引入完毕,关闭进度显示页面 |
| | | var processView = this.View.GetView(processForm.PageId); |
| | | if (processView != null) |
| | | { |
| | | processView.Close(); |
| | |
| | | "); |
| | | List<PRD_WorkHouseCompar> pRD_WorkHouseCompar = ds.ToModelList<PRD_WorkHouseCompar>(); |
| | | int i = 1;//用于进度条的加载 |
| | | //日计划+生产订单子表编码ID |
| | | //日计划+生产订单子表编码ID |
| | | var DatePlanList = BomList.GroupBy(p => new { p.FHMASTERDATE, p.FPRDMOENTYID }).Select(x => new PRD_PPBOM { FHMASTERDATE = x.Key.FHMASTERDATE, FPRDMOENTYID = x.Key.FPRDMOENTYID }).ToList(); |
| | | //取应发数量 FMustQty 不要取值需求数量FNeedQty 领料数据 |
| | | string LLsql = string.Format(@" |
| | |
| | | var _pRD_WorkHouseCompar = pRD_WorkHouseCompar.Where(c => /*c.FORGID == _item.FStockOrgId &&*/ c.FWORKSHOPID == _item.FHWorkShopID).ToList(); |
| | | decimal jskcQty = 0;//用于计算 |
| | | decimal jskcQty2 = 0;//用于计算当时那个计算节点的即时库存 |
| | | //计算当前这几个仓库总的库存量 |
| | | //计算当前这几个仓库总的库存量 |
| | | if (_pRD_WorkHouseCompar.Count > 0) |
| | | { |
| | | foreach (var _WorkHouse in _pRD_WorkHouseCompar) |
| | |
| | | decimal planNeed = _item.PlanCount; //不参与计算 用于记录 |
| | | decimal need = _item.PlanCount;//参与计算 |
| | | decimal FOccupyPickedCount = 0;//占用领料单数量 |
| | | //找到领用数量 |
| | | //找到领用数量 |
| | | var _DayPlanPickedModel = DayPlanPickedModel.Where(c => c.FPRDMOENTYID == _item.FPRDMOENTYID && c.FMATERIALID == _item.FMATERIALID2).FirstOrDefault(); |
| | | if (_DayPlanPickedModel.FRemainPickedQty >= need) |
| | | { |
| | |
| | | jdtmmm++; |
| | | } |
| | | insertDT.EndLoadData(); // 灌入数据结束 |
| | | //插入之前执行下清空语句(测试是否能够防止重复生成) |
| | | //插入之前执行下清空语句(测试是否能够防止重复生成) |
| | | string deletesql = $"delete from JIT_MOMaterReadysBill where FHICMOINTERID in ({fDayPlanFids}) "; |
| | | DBServiceHelper.Execute(Context, deletesql); |
| | | DBServiceHelper.BulkInserts(this.Context, string.Empty, string.Empty, insertDT); // 批量插入到数据库 |
| | |
| | | } |
| | | insertDT.EndLoadData(); // 灌入数据结束 |
| | | DBServiceHelper.BulkInserts(this.Context, string.Empty, string.Empty, insertDT);// 批量插入到数据库 |
| | | //DBServiceHelper.ExecuteBatch(Context, sqlList); |
| | | //执行完成后 更新日计划工单状态 |
| | | //DBServiceHelper.ExecuteBatch(Context, sqlList); |
| | | //执行完成后 更新日计划工单状态 |
| | | DBServiceHelper.Execute(Context, @" |
| | | /*dialect*/update Sc_WorkBillSortBillSub set FCompletebom = '未齐套' where FEntryID IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBomBill where isnull(FCOMPLETE,'未齐套') ='未齐套') |
| | | "); |
| | |
| | | t7 on t4.F_DB = t7.FENTRYID |
| | | where t1.FDOCUMENTSTATUS not in ('E') and ta.FSTATUS in (1,2,3,4) |
| | | " + sqlwhere + " " + |
| | | " order by FHSourceID,t1.FPRIORITY"; |
| | | " order by FHSourceID,t1.FPRIORITY"; |
| | | // sql = @"/*dialect*/ |
| | | // select t2.FUnitId, |
| | | // t1.*,ta.FSTATUS,tq.FNoStockInQty,isnull((select SUM(isnull(FNotProductNum,0)) from SC_WORKBILLSORTBILLSub t2 where t2.FID = t1.FID and DATEDIFF(D,FHMASTERDATE,GETDATE())>0),0)FNotProductNum ,isnull((select SUM(isnull(FHQTY,0)) from SC_WORKBILLSORTBILLSub t2 where t2.FID = t1.FID and DATEDIFF(D,FHMASTERDATE,GETDATE())>0),0)FQTYLS |
| | |
| | | t7 on t4.F_DB = t7.FENTRYID |
| | | where t1.FDOCUMENTSTATUS not in ('E') and ta.FSTATUS in (1,2,3,4) |
| | | " + sqlwhere + " " + |
| | | " order by FHSourceID,t1.FPRIORITY"; |
| | | " order by FHSourceID,t1.FPRIORITY"; |
| | | |
| | | // sql = @"/*dialect*/ |
| | | // select |
| | |
| | | t7 on t4.F_DB = t7.FENTRYID |
| | | where t1.FDOCUMENTSTATUS not in ('E') and ta.FSTATUS in (1,2,3,4) |
| | | " + sqlwhere + " " + |
| | | " order by FHSourceID,t1.FPRIORITY"; |
| | | " order by FHSourceID,t1.FPRIORITY"; |
| | | DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | | DateTime DateNow = DateTime.Now;//获取当前日期 |
| | | this.Model.DeleteEntryData("FEntity"); |
| | |
| | | var resuult = ""; |
| | | try |
| | | { |
| | | // 需要捕获错误,以确保处理结束时,关闭进度滚动界面 |
| | | // 引入功能实际处理函数 |
| | | resuult = this.ExtractionTL(); |
| | | // 需要捕获错误,以确保处理结束时,关闭进度滚动界面 |
| | | // 引入功能实际处理函数 |
| | | resuult = this.ExtractionTL(); |
| | | } |
| | | finally |
| | | { |
| | | // 确保标记进度已经到达100% |
| | | this.View.Session["ProcessRateValue"] = 100; |
| | | // 引入完毕,关闭进度显示页面 |
| | | var processView = this.View.GetView(processForm.PageId); |
| | | // 确保标记进度已经到达100% |
| | | this.View.Session["ProcessRateValue"] = 100; |
| | | // 引入完毕,关闭进度显示页面 |
| | | var processView = this.View.GetView(processForm.PageId); |
| | | if (processView != null) |
| | | { |
| | | processView.Close(); |
| | |
| | | LogService.Write($"提料计划重算 车间:{fProWorkShopId},组织:{fPrdOrgId}"); |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start();//开始计时 |
| | | //提料计划预处理 清理提料计划单数据 更新采购订单提料计划数量 并且查询出需要进行运算的数据 |
| | | //提料计划预处理 清理提料计划单数据 更新采购订单提料计划数量 并且查询出需要进行运算的数据 |
| | | string sql = string.Format($"/*dialect*/exec PROC_JIT_TLPLANYCL '{fProWorkShopId}','{fPrdOrgId}'"); |
| | | List<DayPlanPpbom> DayPlanPpbom = DBServiceHelper.ExecuteDataSet(Context, sql).ToModelList<DayPlanPpbom>(); |
| | | if (DayPlanPpbom.Count == 0) |
| | |
| | | var resuult = ""; |
| | | try |
| | | { |
| | | // 需要捕获错误,以确保处理结束时,关闭进度滚动界面 |
| | | // 引入功能实际处理函数 |
| | | resuult = this.ExtractionYL(); |
| | | // 需要捕获错误,以确保处理结束时,关闭进度滚动界面 |
| | | // 引入功能实际处理函数 |
| | | resuult = this.ExtractionYL(); |
| | | } |
| | | finally |
| | | { |
| | | // 确保标记进度已经到达100% |
| | | this.View.Session["ProcessRateValue"] = 100; |
| | | // 引入完毕,关闭进度显示页面 |
| | | var processView = this.View.GetView(processForm.PageId); |
| | | // 确保标记进度已经到达100% |
| | | this.View.Session["ProcessRateValue"] = 100; |
| | | // 引入完毕,关闭进度显示页面 |
| | | var processView = this.View.GetView(processForm.PageId); |
| | | if (processView != null) |
| | | { |
| | | processView.Close(); |
| | |
| | | if (returnData is ListSelectedRowCollection) |
| | | { |
| | | ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection; |
| | | //LogHelper.Info("生产计划平台选单 行数" + listSelectedRowCollection.Count().ToString()); |
| | | if (listSelectedRowCollection != null) |
| | | //LogHelper.Info("生产计划平台选单 行数" + listSelectedRowCollection.Count().ToString()); |
| | | if (listSelectedRowCollection != null) |
| | | { |
| | | var ret = ""; |
| | | foreach (var listSelectedRow in listSelectedRowCollection) |
| | | { |
| | | //if (entityDataObjoct.Where(x => x["FSRCBILLENTRYSEQ"].ToString() == listSelectedRow.DataRow["t1_FSeq"].ToString() && x["FSCOrderNo"].ToString() == listSelectedRow.DataRow["FBillNo"].ToString()).Count() > 0) |
| | | //{ |
| | | // //LogHelper.Info("生产计划平台选单:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选"); |
| | | // ret += "生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选" + "\n"; |
| | | // continue; |
| | | //} |
| | | //string sql = $"select FID from Sc_WorkBillSortBillMain where FDOCUMENTSTATUS NOT IN ('E') and FPRDMOENTYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}"; |
| | | //int day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | //if (day > 0) |
| | | //{ |
| | | // ret += "生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已存在日计划\n"; |
| | | // continue; |
| | | //} |
| | | ////今天以前的数据是显示不出来的 |
| | | //sql = $"select DATEDIFF(d,getdate(),FPlanStartDate)days from T_PRD_MOENTRY where FENTRYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}"; |
| | | //day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | //if (day < 0) |
| | | //{ |
| | | // ret += "计划开工日期在今天之前,生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + "\n"; |
| | | // continue; |
| | | //if (entityDataObjoct.Where(x => x["FSRCBILLENTRYSEQ"].ToString() == listSelectedRow.DataRow["t1_FSeq"].ToString() && x["FSCOrderNo"].ToString() == listSelectedRow.DataRow["FBillNo"].ToString()).Count() > 0) |
| | | //{ |
| | | // //LogHelper.Info("生产计划平台选单:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选"); |
| | | // ret += "生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选" + "\n"; |
| | | // continue; |
| | | //} |
| | | //string sql = $"select FID from Sc_WorkBillSortBillMain where FDOCUMENTSTATUS NOT IN ('E') and FPRDMOENTYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}"; |
| | | //int day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | //if (day > 0) |
| | | //{ |
| | | // ret += "生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已存在日计划\n"; |
| | | // continue; |
| | | //} |
| | | ////今天以前的数据是显示不出来的 |
| | | //sql = $"select DATEDIFF(d,getdate(),FPlanStartDate)days from T_PRD_MOENTRY where FENTRYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}"; |
| | | //day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | //if (day < 0) |
| | | //{ |
| | | // ret += "计划开工日期在今天之前,生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + "\n"; |
| | | // continue; |
| | | |
| | | string sql = @"SELECT T2.FBILLNO,T2.FPRDORGID,T1.FSEQ,T1.FMATERIALID,TA.FSTATUS,T1.FUNITID,T1.FQTY,T1.FWORKSHOPID,T1.FPLANSTARTDATE,T1.FXQD |
| | | string sql = @"SELECT T2.FBILLNO,T2.FPRDORGID,T1.FSEQ,T1.FMATERIALID,TA.FSTATUS,T1.FUNITID,T1.FQTY,T1.FWORKSHOPID,T1.FPLANSTARTDATE,T1.FXQD |
| | | ,T1.FSALEORDERNO,T3.FPLANDELIVERYDATE,T3.FQTY AS FSALEORDERQTY,TQ.FNoStockInQty FROM T_PRD_MOENTRY T1 |
| | | JOIN T_PRD_MOENTRY_A TA ON T1.FENTRYID =TA.FENTRYID |
| | | JOIN T_PRD_MOENTRY_Q TQ on t1.FENTRYID = TQ.FENTRYID |
| | |
| | | this.View.Model.SetValue("FNoStockInQty", dt.Rows[0]["FNoStockInQty"].ToString(), Fseq);//未入库数量 |
| | | this.View.Model.SetValue("FDeliveryDate", dt.Rows[0]["FPLANDELIVERYDATE"]?.ToString(), Fseq);//交货日期 |
| | | //this.View.Model.SetValue("FT" + day.ToString(), dt.Rows[0]["FQTY"]?.ToString(), Fseq); |
| | | Fseq++; |
| | | Fseq++; |
| | | } |
| | | else |
| | | { |
| | |
| | | if (returnData is ListSelectedRowCollection) |
| | | { |
| | | ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection; |
| | | //LogHelper.Info("生产计划平台选单 行数" + listSelectedRowCollection.Count().ToString()); |
| | | if (listSelectedRowCollection != null) |
| | | //LogHelper.Info("生产计划平台选单 行数" + listSelectedRowCollection.Count().ToString()); |
| | | if (listSelectedRowCollection != null) |
| | | { |
| | | var ret = ""; |
| | | foreach (var listSelectedRow in listSelectedRowCollection) |
| | | { |
| | | //if (entityDataObjoct.Where(x => x["FSRCBILLENTRYSEQ"].ToString() == listSelectedRow.DataRow["t1_FSeq"].ToString() && x["FSCOrderNo"].ToString() == listSelectedRow.DataRow["FBillNo"].ToString()).Count() > 0) |
| | | //{ |
| | | // //LogHelper.Info("生产计划平台选单:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选"); |
| | | // ret += "委外订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选" + "\n"; |
| | | // continue; |
| | | //} |
| | | //string sql = $"select FID from Sc_WorkBillSortBillMain where FDOCUMENTSTATUS NOT IN ('E') and FPRDMOENTYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}"; |
| | | //int day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | //if (day > 0) |
| | | //{ |
| | | // //LogHelper.Info("生产计划平台选单:日期太靠后," + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString()); |
| | | // ret += "委外订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已存在日计划\n"; |
| | | // continue; |
| | | //} |
| | | ////今天以前的数据是显示不出来的 |
| | | //sql = $"select DATEDIFF(d,getdate(),FPlanStartDate)days from T_SUB_REQORDERENTRY where FENTRYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}"; |
| | | //day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | //if (day < 0) |
| | | //{ |
| | | // //LogHelper.Info("生产计划平台选单:日期太靠后," + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString()); |
| | | // ret += "计划开工日期在今天之前,委外订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + "\n"; |
| | | // continue; |
| | | //} |
| | | this.Model.CreateNewEntryRow("FEntity"); |
| | | //if (entityDataObjoct.Where(x => x["FSRCBILLENTRYSEQ"].ToString() == listSelectedRow.DataRow["t1_FSeq"].ToString() && x["FSCOrderNo"].ToString() == listSelectedRow.DataRow["FBillNo"].ToString()).Count() > 0) |
| | | //{ |
| | | // //LogHelper.Info("生产计划平台选单:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选"); |
| | | // ret += "委外订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选" + "\n"; |
| | | // continue; |
| | | //} |
| | | //string sql = $"select FID from Sc_WorkBillSortBillMain where FDOCUMENTSTATUS NOT IN ('E') and FPRDMOENTYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}"; |
| | | //int day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | //if (day > 0) |
| | | //{ |
| | | // //LogHelper.Info("生产计划平台选单:日期太靠后," + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString()); |
| | | // ret += "委外订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已存在日计划\n"; |
| | | // continue; |
| | | //} |
| | | ////今天以前的数据是显示不出来的 |
| | | //sql = $"select DATEDIFF(d,getdate(),FPlanStartDate)days from T_SUB_REQORDERENTRY where FENTRYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}"; |
| | | //day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | //if (day < 0) |
| | | //{ |
| | | // //LogHelper.Info("生产计划平台选单:日期太靠后," + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString()); |
| | | // ret += "计划开工日期在今天之前,委外订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + "\n"; |
| | | // continue; |
| | | //} |
| | | this.Model.CreateNewEntryRow("FEntity"); |
| | | this.View.Model.SetItemValueByNumber("FORGID", "100", Fseq); |
| | | this.View.Model.SetValue("FOrderType", "委外订单", Fseq); |
| | | this.View.Model.SetValue("FSCOrderNo", listSelectedRow.DataRow["FBillNo"].ToString(), Fseq); |
| | |
| | | this.View.Model.SetValue("FOrderQuantity", listSelectedRow.DataRow["FQty"].ToString(), Fseq); |
| | | this.View.Model.SetValue("FProductWorkShopId", 0, Fseq); |
| | | this.View.Model.SetValue("FOrderLevel", "3", Fseq); |
| | | //this.View.Model.SetValue("FBzDate", DateTime.Now.AddDays(day).ToShortDateString(), Fseq);//预计开工日期 |
| | | //this.View.Model.SetValue("FT" + day.ToString(), listSelectedRow.DataRow["FQty"].ToString(), Fseq); |
| | | Fseq++; |
| | | //this.View.Model.SetValue("FBzDate", DateTime.Now.AddDays(day).ToShortDateString(), Fseq);//预计开工日期 |
| | | //this.View.Model.SetValue("FT" + day.ToString(), listSelectedRow.DataRow["FQty"].ToString(), Fseq); |
| | | Fseq++; |
| | | } |
| | | if (ret != "") |
| | | { |
| | |
| | | if (returnData is ListSelectedRowCollection) |
| | | { |
| | | ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection; |
| | | //LogHelper.Info("生产计划平台选单 行数" + listSelectedRowCollection.Count().ToString()); |
| | | if (listSelectedRowCollection != null) |
| | | //LogHelper.Info("生产计划平台选单 行数" + listSelectedRowCollection.Count().ToString()); |
| | | if (listSelectedRowCollection != null) |
| | | { |
| | | var ret = ""; |
| | | foreach (var listSelectedRow in listSelectedRowCollection) |
| | | { |
| | | //if (entityDataObjoct.Where(x => x["FSRCBILLENTRYSEQ"].ToString() == listSelectedRow.DataRow["t1_FSeq"].ToString() && x["FSCOrderNo"].ToString() == listSelectedRow.DataRow["FBillNo"].ToString()).Count() > 0) |
| | | //{ |
| | | // //LogHelper.Info("生产计划平台选单:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选"); |
| | | // ret += "生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选" + "\n"; |
| | | // continue; |
| | | //} |
| | | //string sql = $"select FID from Sc_WorkBillSortBillMain where FDOCUMENTSTATUS NOT IN ('E') and FPRDMOENTYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}"; |
| | | //int day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | //if (day > 0) |
| | | //{ |
| | | // ret += "生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已存在日计划\n"; |
| | | // continue; |
| | | //} |
| | | ////今天以前的数据是显示不出来的 |
| | | //sql = $"select DATEDIFF(d,getdate(),FPlanStartDate)days from T_PRD_MOENTRY where FENTRYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}"; |
| | | //day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | //if (day < 0) |
| | | //{ |
| | | // ret += "计划开工日期在今天之前,生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + "\n"; |
| | | // continue; |
| | | //} |
| | | string sql = @"SELECT T2.FBILLNO,T2.FPRDORGID,T1.FSEQ,T1.FMATERIALID,TA.FSTATUS,T1.FUNITID,T1.FQTY,T1.FWORKSHOPID,T1.FPLANSTARTDATE |
| | | //if (entityDataObjoct.Where(x => x["FSRCBILLENTRYSEQ"].ToString() == listSelectedRow.DataRow["t1_FSeq"].ToString() && x["FSCOrderNo"].ToString() == listSelectedRow.DataRow["FBillNo"].ToString()).Count() > 0) |
| | | //{ |
| | | // //LogHelper.Info("生产计划平台选单:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选"); |
| | | // ret += "生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选" + "\n"; |
| | | // continue; |
| | | //} |
| | | //string sql = $"select FID from Sc_WorkBillSortBillMain where FDOCUMENTSTATUS NOT IN ('E') and FPRDMOENTYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}"; |
| | | //int day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | //if (day > 0) |
| | | //{ |
| | | // ret += "生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已存在日计划\n"; |
| | | // continue; |
| | | //} |
| | | ////今天以前的数据是显示不出来的 |
| | | //sql = $"select DATEDIFF(d,getdate(),FPlanStartDate)days from T_PRD_MOENTRY where FENTRYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}"; |
| | | //day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | //if (day < 0) |
| | | //{ |
| | | // ret += "计划开工日期在今天之前,生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + "\n"; |
| | | // continue; |
| | | //} |
| | | string sql = @"SELECT T2.FBILLNO,T2.FPRDORGID,T1.FSEQ,T1.FMATERIALID,TA.FSTATUS,T1.FUNITID,T1.FQTY,T1.FWORKSHOPID,T1.FPLANSTARTDATE |
| | | ,T1.FSALEORDERNO,T3.FPLANDELIVERYDATE,T3.FQTY AS FSALEORDERQTY,TQ.FNoStockInQty FROM T_PRD_MOENTRY T1 |
| | | JOIN T_PRD_MOENTRY_A TA ON T1.FENTRYID =TA.FENTRYID |
| | | JOIN T_PRD_MOENTRY_Q TQ on t1.FENTRYID = TQ.FENTRYID |
| | |
| | | this.View.Model.SetValue("FNoStockInQty", dt.Rows[0]["FNoStockInQty"].ToString(), Fseq);//未入库数量 |
| | | this.View.Model.SetValue("FDeliveryDate", dt.Rows[0]["FPLANDELIVERYDATE"]?.ToString(), Fseq);//交货日期 |
| | | //this.View.Model.SetValue("FT" + day.ToString(), dt.Rows[0]["FQTY"]?.ToString(), Fseq); |
| | | Fseq++; |
| | | Fseq++; |
| | | } |
| | | else |
| | | { |
| | |
| | | var resuult = ""; |
| | | try |
| | | { |
| | | // 需要捕获错误,以确保处理结束时,关闭进度滚动界面 |
| | | // 引入功能实际处理函数 |
| | | resuult = this.btnReFarsh(); |
| | | // 需要捕获错误,以确保处理结束时,关闭进度滚动界面 |
| | | // 引入功能实际处理函数 |
| | | resuult = this.btnReFarsh(); |
| | | } |
| | | finally |
| | | { |
| | | // 确保标记进度已经到达100% |
| | | this.View.Session["ProcessRateValue"] = 100; |
| | | // 引入完毕,关闭进度显示页面 |
| | | var processView = this.View.GetView(processForm.PageId); |
| | | // 确保标记进度已经到达100% |
| | | this.View.Session["ProcessRateValue"] = 100; |
| | | // 引入完毕,关闭进度显示页面 |
| | | var processView = this.View.GetView(processForm.PageId); |
| | | if (processView != null) |
| | | { |
| | | processView.Close(); |
| | |
| | | var _pRD_WorkHouseCompar = pRD_WorkHouseCompar.Where(c => /*c.FORGID == _item.FStockOrgId &&*/ c.FWORKSHOPID == _item.FHWorkShopID).ToList(); |
| | | decimal jskcQty = 0;//用于计算 |
| | | decimal jskcQty2 = 0;//用于计算当时那个计算节点的即时库存 |
| | | //计算当前这几个仓库总的库存量 |
| | | //计算当前这几个仓库总的库存量 |
| | | if (_pRD_WorkHouseCompar.Count > 0) |
| | | { |
| | | foreach (var _WorkHouse in _pRD_WorkHouseCompar) |
| | |
| | | decimal planNeed = _item.PlanCount; //不参与计算 用于记录 |
| | | decimal need = _item.PlanCount;//参与计算 |
| | | decimal FOccupyPickedCount = 0;//占用领料单数量 |
| | | //找到领用数量 |
| | | //找到领用数量 |
| | | var _DayPlanPickedModel = DayPlanPickedModel.Where(c => c.FPRDMOENTYID == _item.FPRDMOENTYID && c.FMATERIALID == _item.FMATERIALID2).FirstOrDefault(); |
| | | if (_DayPlanPickedModel.FRemainPickedQty >= need) |
| | | { |
| | |
| | | jdtmmm++; |
| | | } |
| | | insertDT.EndLoadData(); // 灌入数据结束 |
| | | //插入之前执行下清空语句(测试是否能够防止重复生成) |
| | | //插入之前执行下清空语句(测试是否能够防止重复生成) |
| | | string deletesql = $"delete from JIT_MOMaterReadysBill where FHICMOINTERID in ({fDayPlanFids}) "; |
| | | LogService.Write("刷新按钮 齐套分析批量插入到数据库用时:" + sw.Elapsed); // 批量插入到数据库 |
| | | DBServiceHelper.BulkInserts(this.Context, string.Empty, string.Empty, insertDT); |
| | |
| | | } |
| | | int fLockDays = Convert.ToInt32(this.Model.GetValue("FLockDays"));//引入天数 |
| | | string sql = $"/*dialect*/ exec proc_jit_zdpc {fPrdOrgId},{fProWorkShopId},{fLockDays}"; |
| | | LogService.Write("自动排产sql:"+sql); |
| | | LogService.Write("自动排产sql:" + sql); |
| | | DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql); |
| | | if (ds.Tables[0].Rows[0][0].ToString().Contains("失败_生产订单没有维护生产资源")) |
| | | { |
| | |
| | | } |
| | | } |
| | | DataTable dt = ds.Tables[0];//生产订单信息结果集 |
| | | if (dt == null || dt.Rows.Count == 0) |
| | | { |
| | | errMessege += $"操作失败,未匹配到需要排产的生产订单\r\n"; |
| | | this.View.ShowErrMessage("操作失败,没有维护产能\r\n" + errMessege); |
| | | return; |
| | | } |
| | | List<string> fsczyidList = dt.AsEnumerable().Select(r => r["FSCZYID"].ToString()).Distinct().ToList();//生产资源集合 |
| | | foreach (var item in fsczyidList)//循环生产资源 |
| | | { |
| | | DataRow[] drs = dt.Select("FSCZYID =" + item);//筛选出当前生产资源生产订单数据 |
| | | string _sql = string.Format(@" |
| | | /*dialect*/ |
| | | select FCalUserId,FCalUserType,FShiftId,FIsWorkTime,FDay,FDateStyle,c.FALLHOURS ,c.FALLHOURS FALLHOURSCONST,b.FENTRYID from T_ENG_WORKCAL a |
| | | select FCalUserId,FCalUserType,FShiftId,FIsWorkTime,FDay,FDateStyle,(c.FALLHOURS-isnull(tt.FHOURS,0)) as FALLHOURS,(c.FALLHOURS-isnull(tt.FHOURS,0)) 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 --班制表 |
| | | left join |
| | | ( |
| | | select sum(FHOURS)FHOURS ,FGZRLENTRYID from Sc_WorkBillSortBillSub |
| | | where FGZRLENTRYID >0 and FHLockedSub = 1 |
| | | group by FGZRLENTRYID |
| | | ) tt on b.FENTRYID = tt.FGZRLENTRYID |
| | | where FCalUserType ='ENG_RepetitiveProductLine' |
| | | and FDateStyle = 1 --是否工作日 |
| | | and FIsWorkTime = 1 --是否生产 |
| | | and DATEDIFF(D,getdate(),FDAY)>=0 |
| | | and c.FALLHOURS >0 |
| | | and (c.FALLHOURS-isnull(tt.FHOURS,0)) >0 |
| | | and FCalUserId = {0}", item); |
| | | LogService.Write("产能sql:" + _sql); |
| | | var engWorkcalfulldataList = DBServiceHelper.ExecuteDataSet(Context, _sql).ToModelList<ENG_WORKCALFULLDATA>();//所有可以用于排产的日期 |
| | |
| | | { |
| | | this.View.ShowMessage(errMessege); |
| | | } |
| | | else { |
| | | else |
| | | { |
| | | this.View.ShowMessage("操作成功"); |
| | | } |
| | | } |