王 垚
2021-02-16 4edfc50d4e8d015081cb9ac473635d83c38c1127
src/BLL/Demo.BillView/PRD/ProductScheduleButtonClick.cs
@@ -529,9 +529,35 @@
            {
                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"]);//生产订单
@@ -544,7 +570,7 @@
                    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();
                    _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)