| | |
| | | if (yzfid == 0) |
| | | break; |
| | | } |
| | | |
| | | |
| | | //选单数据 做新增 |
| | | JObject jsonRoot = new JObject(); |
| | | jsonRoot.Add("Creator", ""); |
| | |
| | | }, |
| | | (t) => { }); |
| | | } |
| | | |
| | | [Obsolete] |
| | | private void COMPLETEBOM() |
| | | { |
| | | // 显示一个进度显示界面:显示一个不停滚动的模拟进度 |
| | |
| | | { |
| | | processView.Close(); |
| | | this.View.SendDynamicFormAction(processView); |
| | | this.View.ShowMessage(resuult); |
| | | } |
| | | this.View.ShowMessage(resuult); |
| | | } |
| | | }, |
| | | (t) => { }); |
| | |
| | | DBServiceHelper.BulkInserts(this.Context, string.Empty, string.Empty, insertDT); |
| | | LogService.Write("批量插入到数据库用时:" + sw.Elapsed); |
| | | //执行完成后 更新日计划工单状态 |
| | | // DBServiceHelper.Execute(Context, @" |
| | | ///*dialect*/update Sc_WorkBillSortBillSub set FComplete = '未齐套' where FEntryID IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'未齐套') ='未齐套') and FID IN (" + fDayPlanFids + ") "); |
| | | // DBServiceHelper.Execute(Context, @" |
| | | ///*dialect*/update Sc_WorkBillSortBillSub set FComplete = '齐套' where FEntryID NOT IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'未齐套') ='未齐套') and FID IN (" + fDayPlanFids + ") "); |
| | | // DBServiceHelper.Execute(Context, @" |
| | | ///*dialect*/update Sc_WorkBillSortBillSub set FComplete = '未齐套' where FEntryID IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'未齐套') ='未齐套') and FID IN (" + fDayPlanFids + ") "); |
| | | // DBServiceHelper.Execute(Context, @" |
| | | ///*dialect*/update Sc_WorkBillSortBillSub set FComplete = '齐套' where FEntryID NOT IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'未齐套') ='未齐套') and FID IN (" + fDayPlanFids + ") "); |
| | | //释放齐套操作 避免多人同时进行齐套分析 |
| | | DBServiceHelper.Execute(Context, $"/*dialect*/ update T_PRD_QTFX set FSTATUS = 0 where FPRDORGID ={fPrdOrgId} and FSTATUS = 1 "); |
| | | sw.Stop();//结束计时 |
| | |
| | | //收料通知单 齐套分析 |
| | | public string CompleteSetAnalysisByDataTableBom() |
| | | { |
| | | LogHelper.Info("齐套分析sql模式开始准备数据:"); |
| | | string sql = ""; |
| | | try |
| | | { |
| | | LogService.Write("齐套 bom "); |
| | | Stopwatch sw = new Stopwatch(); |
| | | var fPrdOrgId = (this.Model.GetValue("FPRDOrgId") as DynamicObject)?["Id"].ToString(); |
| | | string fProWorkShopId = ""; |
| | |
| | | } |
| | | List<PRD_PPBOM> BomList = new List<PRD_PPBOM>(); |
| | | string procSql = $"exec proc_jit_qtfx {fPrdOrgId},{fProWorkShopId},{Context.UserId}"; |
| | | LogService.Write("齐套 bom sql:" + procSql); |
| | | DataSet _ds = DBServiceHelper.ExecuteDataSet(Context, procSql); |
| | | DataTable resulTable = _ds.Tables[0]; |
| | | if (resulTable.Rows[0][0].ToString().Contains("失败")) |
| | |
| | | Dictionary<string, decimal> occupyDic = new Dictionary<string, decimal>(); |
| | | LogService.Write($"齐套分析,数据准备阶段,用时" + sw.Elapsed + "总行数:" + BomList.Count); |
| | | //第一个循环 日计划工单明细 一天+一个工单 一个循环 |
| | | //第一个循环 日计划工单明细 一天+一个工单 一个循环 |
| | | foreach (var item in DatePlanList) |
| | | { |
| | | this.View.Session["ProcessRateValue"] = Convert.ToInt32((Convert.ToDecimal(75) / DatePlanList.Count) * i); |
| | |
| | | decimal FOccupyPickedCount = 0;//占用领料单数量 |
| | | //找到领用数量 |
| | | var _DayPlanPickedModel = DayPlanPickedModel.Where(c => c.FPRDMOENTYID == _item.FPRDMOENTYID && c.FMATERIALID == _item.FMATERIALID2).FirstOrDefault(); |
| | | if (_DayPlanPickedModel.FRemainPickedQty >= need) |
| | | if (_DayPlanPickedModel != null) |
| | | { |
| | | //领料数量满足了当前这个需求量 直接齐套 不需要去占用仓库 |
| | | completeAnalysisTempModel.Add(new Demo.Model.Model.CompleteAnalysisTempModel |
| | | if (_DayPlanPickedModel.FRemainPickedQty >= need) |
| | | { |
| | | FHMainICMOInterIDr = _item.FPRDMOMAINID, |
| | | FHMainICMOEntryID = _item.FPRDMOENTYID, |
| | | FHICMOInterID = _item.FID.ToString(), |
| | | FHICMOEntryID = _item.FEntryID.ToString(), |
| | | FHMaterID = _item.FMATERIALID2, |
| | | FErpClsID = _item.FErpClsID, |
| | | FHStockOrgID = _item.FStockOrgId, |
| | | FHPRDORGID = _item.FStockOrgId, |
| | | FPRDBillNo = _item.FMOBillNO, |
| | | FOwnerTypeId = "", |
| | | FUnitDosage = _item.dwyl,//单位用量 |
| | | FSumPlanCount = planNeed,//计划总数量 |
| | | FCompleteCount1 = planNeed, //齐套数量 |
| | | FLackCount = 0,//缺料数量 |
| | | FHStockQty = jskcQty2,//即时库存 |
| | | FHLeftQty = jskcQty,//可用数量 |
| | | FOccupyCount = occupyMaterial,//占用数量 |
| | | FOccupyPickedCount = planNeed,//占用领料数量 |
| | | FComPlete = "齐套", |
| | | FPlanDate = item.FHMASTERDATE, // 日计划日期 |
| | | FWorkShop = _item.FHWorkShopID //车间 |
| | | }); |
| | | //扣除剩余可用领料数量 |
| | | _DayPlanPickedModel.FRemainPickedQty -= need; |
| | | //循环下一个物料 |
| | | continue; |
| | | } |
| | | else |
| | | { |
| | | need -= _DayPlanPickedModel.FRemainPickedQty; //剩余需求数量 |
| | | FOccupyPickedCount = _DayPlanPickedModel.FRemainPickedQty; |
| | | _DayPlanPickedModel.FRemainPickedQty = 0; |
| | | //领料数量满足了当前这个需求量 直接齐套 不需要去占用仓库 |
| | | completeAnalysisTempModel.Add(new Demo.Model.Model.CompleteAnalysisTempModel |
| | | { |
| | | FHMainICMOInterIDr = _item.FPRDMOMAINID, |
| | | FHMainICMOEntryID = _item.FPRDMOENTYID, |
| | | FHICMOInterID = _item.FID.ToString(), |
| | | FHICMOEntryID = _item.FEntryID.ToString(), |
| | | FHMaterID = _item.FMATERIALID2, |
| | | FErpClsID = _item.FErpClsID, |
| | | FHStockOrgID = _item.FStockOrgId, |
| | | FHPRDORGID = _item.FStockOrgId, |
| | | FPRDBillNo = _item.FMOBillNO, |
| | | FOwnerTypeId = "", |
| | | FUnitDosage = _item.dwyl,//单位用量 |
| | | FSumPlanCount = planNeed,//计划总数量 |
| | | FCompleteCount1 = planNeed, //齐套数量 |
| | | FLackCount = 0,//缺料数量 |
| | | FHStockQty = jskcQty2,//即时库存 |
| | | FHLeftQty = jskcQty,//可用数量 |
| | | FOccupyCount = occupyMaterial,//占用数量 |
| | | FOccupyPickedCount = planNeed,//占用领料数量 |
| | | FComPlete = "齐套", |
| | | FPlanDate = item.FHMASTERDATE, // 日计划日期 |
| | | FWorkShop = _item.FHWorkShopID //车间 |
| | | }); |
| | | //扣除剩余可用领料数量 |
| | | _DayPlanPickedModel.FRemainPickedQty -= need; |
| | | //循环下一个物料 |
| | | continue; |
| | | } |
| | | else |
| | | { |
| | | need -= _DayPlanPickedModel.FRemainPickedQty; //剩余需求数量 |
| | | FOccupyPickedCount = _DayPlanPickedModel.FRemainPickedQty; |
| | | _DayPlanPickedModel.FRemainPickedQty = 0; |
| | | } |
| | | } |
| | | if (_pRD_WorkHouseCompar.Count > 0) |
| | | { |
| | |
| | | FPlanDate = item.FHMASTERDATE, // 日计划日期 |
| | | FStock = Inventory.FSTOCKID,//仓库 |
| | | FWorkShop = _item.FHWorkShopID, //车间 |
| | | FBILLNO = Inventory.FBILLNO, |
| | | FLot = Inventory.FLot |
| | | }); |
| | | //扣减总库存数量 |
| | |
| | | } |
| | | } |
| | | } |
| | | //没有车间仓库数据 既没有可用库存 为未齐套 |
| | | //没有车间仓库数据 即没有可用库存 为未齐套 |
| | | else |
| | | { |
| | | if (occupyDic.ContainsKey(_item.FHWorkShopID + _item.FMATERIALID2)) |
| | |
| | | DBServiceHelper.Execute(Context, deletesql); |
| | | DBServiceHelper.BulkInserts(this.Context, string.Empty, string.Empty, insertDT); |
| | | LogService.Write("批量插入到数据库用时:" + sw.Elapsed); |
| | | //执行完成后 更新日计划工单状态 |
| | | // DBServiceHelper.Execute(Context, @" |
| | | ///*dialect*/update Sc_WorkBillSortBillSub set FComplete = '未齐套' where FEntryID IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'未齐套') ='未齐套') and FID IN (" + fDayPlanFids + ") "); |
| | | // DBServiceHelper.Execute(Context, @" |
| | | ///*dialect*/update Sc_WorkBillSortBillSub set FComplete = '齐套' where FEntryID NOT IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'未齐套') ='未齐套') and FID IN (" + fDayPlanFids + ") "); |
| | | //释放齐套操作 避免多人同时进行齐套分析 |
| | | //释放齐套操作 避免多人同时进行齐套分析 |
| | | DBServiceHelper.Execute(Context, $"/*dialect*/ update T_PRD_QTFX set FSTATUS = 0 where FPRDORGID ={fPrdOrgId} and FSTATUS = 1 "); |
| | | sw.Stop();//结束计时 |
| | | LogService.Write("齐套分析运行总时长:" + sw.Elapsed); |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogService.Write("操作失败:" + ex.Message.ToString()); |
| | | DBServiceHelper.Execute(Context, $"/*dialect*/ update T_PRD_QTFX set FSTATUS = 0 where FUSERID ={Context.UserId} and FSTATUS = 1 "); |
| | | LogService.Write("操作失败:" + ex.Message.ToString() + ex.StackTrace); |
| | | return "操作失败," + ex.Message.ToString(); |
| | | |
| | | } |
| | |
| | | this.Model.SetValue("FOrderType", Convert.ToString(dt.Rows[i]["FOrderType"]), i);//订单类型 |
| | | this.Model.SetValue("FStatus", Convert.ToString(dt.Rows[i]["FStatus"]), i);//订单状态 |
| | | //this.Model.SetValue("F_bsv_Text", Convert.ToString(dt.Rows[i]["F_DY"]) + Convert.ToString(dt.Rows[i]["F_GL"]) + Convert.ToString(dt.Rows[i]["F_DB"]), i);//电压/功率/底板 |
| | | this.Model.SetValue("FCompleteSetCount", "", i);//总齐套数量 |
| | | this.Model.SetValue("FPriority", Convert.ToString(dt.Rows[i]["FPriority"]), i);//优先级 |
| | | this.Model.SetValue("FProOrderCount", dt.Rows[i]["FHOrderNeedQty"].ToString(), i);//生产订单数量 |
| | | this.Model.SetValue("FNoStockInQty", dt.Rows[i]["FNoStockInQty"].ToString(), i);//未入库数量 |
| | |
| | | this.Model.SetValue("FMOFBILLTYPE", Convert.ToString(dt.Rows[i]["FMOFBILLTYPE"]), i);//生产订单单据类型 |
| | | this.Model.SetValue("FOrderType", Convert.ToString(dt.Rows[i]["FOrderType"]), i);//订单类型 |
| | | this.Model.SetValue("FStatus", Convert.ToString(dt.Rows[i]["FStatus"]), i);//订单状态 |
| | | this.Model.SetValue("FCompleteSetCount", "", i);//总齐套数量 |
| | | this.Model.SetValue("FPriority", Convert.ToString(dt.Rows[i]["FPriority"]), i);//优先级 |
| | | this.Model.SetValue("FProOrderCount", dt.Rows[i]["FHOrderNeedQty"].ToString(), i);//生产订单数量 |
| | | this.Model.SetValue("FNoStockInQty", dt.Rows[i]["FNoStockInQty"].ToString(), i);//未入库数量 |
| | |
| | | this.View.Model.SetValue("FDeliveryDate", Convert.ToString(item["FDeliveryDate"]), Convert.ToInt32(item["SEQ"]));//交货日期 |
| | | this.View.Model.SetValue("FKpQty", Convert.ToString(item["FKpQty"]), Convert.ToInt32(item["SEQ"]));//可排数量 |
| | | this.View.Model.SetValue("FResourcesId", Convert.ToString(item["FResourcesId_Id"]), Convert.ToInt32(item["SEQ"]));//生产资源 |
| | | this.View.Model.SetValue("FT0", Convert.ToString(item["FT0"]), Convert.ToInt32(item["SEQ"])); |
| | | } |
| | | } |
| | | else |