Ejemplo n.º 1
0
        public void CancelTask(string billNo)
        {
            using (PersistentManager pm = new PersistentManager())
            {
                TaskDao taskDao = new TaskDao();
                BillDao billDao = new BillDao();
                CellDao cellDao = new CellDao();

                try
                {
                    pm.BeginTransaction();

                    int count = taskDao.FindExecutingTask(billNo);
                    if (count != 0)
                        throw new Exception("����δִ�л�ִ���е���ҵ��");

                    if (cellDao.Update(billNo) > 0)
                    {
                        taskDao.Backup(billNo);
                        taskDao.Delete(billNo);
                        billDao.UpdateMasterState(billNo, "6");//����Ϊȡ��
                    }
                    else
                        throw new Exception("�õ���ȫ����ҵ�����");

                    pm.Commit();
                }
                catch (Exception e)
                {
                    pm.Rollback();
                    throw new Exception(e.Message);
                }

            }
        }
Ejemplo n.º 2
0
        public void DeleteFormula(string formulaCode)
        {
            using (PersistentManager pm = new PersistentManager())
            {
                FormulaDao formulaDao = new FormulaDao();
                ScheduleDao scheduleDao = new ScheduleDao();
                try
                {
                    pm.BeginTransaction();

                    if (scheduleDao.Find(formulaCode) == 0)
                    {
                        formulaDao.DeleteDetail(formulaCode);
                        formulaDao.DeleteMaster(formulaCode);
                    }
                    else
                        throw new Exception("��ǰ�䷽�����������ƻ��Ѱ�");

                    pm.Commit();
                }
                catch (Exception e)
                {
                    pm.Rollback();
                    throw new Exception(e.Message);
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// �������������������
        /// </summary>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <returns></returns>
        public bool GetInBill(string startDate, string endDate, string EmployeeCode,string wareCode,string billtype, out string errorInfo)
        {
            bool tag = false;
            Employee = EmployeeCode;
            errorInfo = string.Empty;
            using (PersistentManager pm = new PersistentManager())
            {
                DownInBillDao dao = new DownInBillDao();
                DataTable emply = dao.FindEmployee(EmployeeCode);
                DataTable inMasterBillNo = this.GetInBillNo();
                string billnolist = UtinString.StringMake(inMasterBillNo, "bill_no");
                billnolist = UtinString.StringMake(billnolist);
                billnolist = string.Format("ORDER_DATE >='{0}' AND ORDER_DATE <='{1}' AND ORDER_ID NOT IN({2})", startDate, endDate, billnolist);
                DataTable masterdt = this.InBillMaster(billnolist);

                string inDetailList = UtinString.StringMake(masterdt, "ORDER_ID");
                inDetailList = UtinString.StringMake(inDetailList);
                inDetailList = "ORDER_ID IN(" + inDetailList + ")";
                DataTable detaildt = this.InBillDetail(inDetailList);

                if (masterdt.Rows.Count > 0 && detaildt.Rows.Count > 0)
                {
                    DataSet masterds = this.InBillMaster(masterdt, emply.Rows[0]["employee_id"].ToString(), wareCode, billtype);

                    DataSet detailds = this.InBillDetail(detaildt);
                    this.Insert(masterds, detailds);
                    tag = true;
                }
                else
                    errorInfo = "û���µ���ⵥ���أ�";
            }
            return tag;
        }
Ejemplo n.º 4
0
        public void AddBill(DataRow masterRow, string userID, DataTable detailTable)
        {
            using (PersistentManager pm = new PersistentManager())
            {
                try
                {
                    pm.BeginTransaction();
                    string billNo = palletDao.FindNewBillNo(masterRow["BILLDATE"].ToString());

                    masterRow["BILLNO"] = billNo;
                    //���뵥������
                    palletDao.InsertMaster(masterRow, userID);

                    //���뵥����ϸ��
                    palletDao.InsertDetail(billNo, detailTable);

                    pm.Commit();
                }
                catch (Exception e)
                {
                    pm.Rollback();
                    throw new Exception(e.Message);
                }
            }
        }
Ejemplo n.º 5
0
        //选择时间下载分拣数据
        public bool GetSortingOrderDate(string startDate, string endDate,string sortingLine,string batch, out string errorInfo)
        {
            bool tag = false;
            errorInfo = string.Empty;
            using (PersistentManager dbpm = new PersistentManager())
            {
                DownSortingInfoDao dao = new DownSortingInfoDao();
                try
                {
                    string sort = string.Empty;
                    if (sortingLine != string.Empty || sortingLine != null)
                    {
                        sort = " AND SORTINGLINECODE='" + sortingLine + "' AND BATCHID='" + batch + "'";
                    }
                    //查询仓库7天内的订单号
                    DataTable orderdt = this.GetOrderId(startDate, endDate);
                    string orderlist = UtinString.MakeString(orderdt, "order_id");
                    string orderlistDate = "ORDERDATE >='" + startDate + "' AND ORDERDATE <='" + endDate + "'" + sort;
                    DataTable masterdt = this.GetSortingOrder(orderlistDate);
                    DataRow[] masterdr = masterdt.Select("ORDERID NOT IN(" + orderlist + ")");

                    string ordermasterlist = UtinString.MakeString(masterdr, "OrderID");
                    ordermasterlist = "OrderID IN (" + ordermasterlist + ")";
                    DataTable detaildt = this.GetSortingOrderDetail(ordermasterlist);
                    if (masterdr.Count() > 0 && detaildt.Rows.Count > 0)
                    {
                        DataSet masterds = this.SaveSortingOrder(masterdr);
                        DataSet detailds = this.SaveSortingOrderDetail(detaildt);
                        this.Insert(masterds, detailds);
                        //上报分拣订单
                        //upload.uploadSort(masterds, detailds);
                        if (sort != string.Empty)
                        {
                            try
                            {
                                DataTable diapLine = this.GetDispatchLine(ordermasterlist);
                                DataSet dispDs = this.SaveDispatch(diapLine, sortingLine);
                                this.Insert(dispDs);
                                tag = true;
                            }
                            catch (Exception e)
                            {
                                errorInfo = "调度出错,请手动进行线路调度,出错原因:" + e.Message;
                            }

                        }
                        else
                            errorInfo = "没有选择分拣线!下载完成后,请手动进行线路调度!";
                        //tag = true;
                    }
                    else
                        errorInfo = "没有可用的数据下载!";
                }
                catch (Exception e)
                {
                    errorInfo = "下载错误:" + e.Message;
                }
            }
            return tag;
        }
Ejemplo n.º 6
0
 internal void SaveCigarette(string cigaretteCode, string classSymbol,string cigaretteName)
 {
     using (PersistentManager pm = new PersistentManager())
     {
         cigaretteDao.Update(cigaretteCode,classSymbol, cigaretteName);
     }
 }
Ejemplo n.º 7
0
        public void AddBill3(DataRow masterRow, DataTable detailTable)
        {
            using (PersistentManager pm = new PersistentManager())
            {
                try
                {
                    BillDao billDao = new BillDao();
                    ProductStateDao stateDao = new ProductStateDao();

                    pm.BeginTransaction();

                    string billNo = billDao.FindNewBillNo("P", masterRow["BILLDATE"].ToString());

                    masterRow["BILLNO"] = billNo;
                    //���뵥������
                    billDao.InsertMaster(masterRow);

                    stateDao.Insert(billNo, detailTable);
                    pm.Commit();
                }
                catch (Exception e)
                {
                    pm.Rollback();
                    throw new Exception(e.Message);
                }
            }
        }
Ejemplo n.º 8
0
 public DataTable GetAll()
 {
     using (PersistentManager pm = new PersistentManager())
     {
         return cigaretteDao.Find();
     }
 }
Ejemplo n.º 9
0
 internal void DeleteCigarette(string cigaretteCode)
 {
     using (PersistentManager pm = new PersistentManager())
     {
         cigaretteDao.Delete(cigaretteCode);
     }
 }
Ejemplo n.º 10
0
 public void AddCigarette(string cigaretteCode,string classSymbol, string cigaretteName)
 {
     using (PersistentManager pm = new PersistentManager())
     {
         cigaretteDao.Insert(cigaretteCode,classSymbol, cigaretteName);
     }
 }
Ejemplo n.º 11
0
 public DataTable GetDetail(string billNo)
 {
     using (PersistentManager pm = new PersistentManager())
     {
         return palletDao.FindDetail(billNo);
     }
 }
Ejemplo n.º 12
0
 public DataTable GetMaster(string billType)
 {
     using (PersistentManager pm = new PersistentManager())
     {
         return palletDao.FindMaster(billType);
     }
 }
Ejemplo n.º 13
0
        public int AddMix(string billNo, DataRow newRow)
        {
            int result = 1;
            using (PersistentManager pm = new PersistentManager())
            {
                ProductStateDao psDao = new ProductStateDao();
                try
                {
                    pm.BeginTransaction();
                    result = psDao.UpdateMix(billNo, newRow["MIXID"].ToString(), Convert.ToDouble(newRow["QUANTITY"]));
                    if (result != 1)
                        throw new Exception("����������Ϊ1");

                    result = psDao.UpdateMixID(billNo, newRow["PRODUCTCODE"].ToString(), newRow["ITEMNO"].ToString(), newRow["MIXID"].ToString());
                    if (result != 1)
                        throw new Exception("����������Ϊ1");

                    pm.Commit();
                }
                catch
                {
                    pm.Rollback();
                }
            }
            return result;
        }
Ejemplo n.º 14
0
        public void CancelTaskIn(string billNo)
        {
            using (PersistentManager pm = new PersistentManager())
            {
                TaskDao taskDao = new TaskDao();
                BillDao billDao = new BillDao();
                CellDao cellDao = new CellDao();
                ScheduleDao scheduleDao = new ScheduleDao();
                ProductStateDao productStateDao = new ProductStateDao();

                try
                {
                    pm.BeginTransaction();

                    int count = taskDao.FindExecutingTask(billNo);
                    if (count != 0)
                        throw new Exception("����δִ�л�ִ���е���ҵ��");

                    taskDao.Backup(billNo);
                    taskDao.Delete(billNo);
                    billDao.UpdateMasterState(billNo, "6");//����Ϊȡ��
                    productStateDao.Delete(billNo);
                    //�������ⵥ���̰����������������ƻ�ISOUTΪ�����
                    scheduleDao.UpdateIsIn(billNo);

                    pm.Commit();
                }
                catch (Exception e)
                {
                    pm.Rollback();
                    throw new Exception(e.Message);
                }

            }
        }
Ejemplo n.º 15
0
 /// <summary>
 /// ɾ��7��֮ǰ����·����ּ��м��ͷּ��(����ϸ��)����ҵ���ȱ�
 /// </summary>
 public void DeleteTable()
 {
     using (PersistentManager dbPm = new PersistentManager())
     {
         DownRouteDao dao = new DownRouteDao();
         dao.DeleteTable();
     }
 }
Ejemplo n.º 16
0
 /// <summary>
 /// 返回堆垛机错误列表
 /// </summary>
 /// <returns></returns>
 public DataTable GetErrMessageList()
 {
     using (PersistentManager pm = new PersistentManager())
     {
         CraneErrMessageDao dao = new CraneErrMessageDao();
         return dao.GetErrMessageList();
     }
 }
Ejemplo n.º 17
0
 public DataTable GetDistStationCode()
 {
     using (PersistentManager dbPm = new PersistentManager())
        {
        DownDistCarBillDao dao = new DownDistCarBillDao();
        return dao.GetDistStationCode();
        }
 }
Ejemplo n.º 18
0
 public DataTable GetArea()
 {
     using (PersistentManager pm = new PersistentManager())
     {
         AreaDao areaDao = new AreaDao();
         return areaDao.Find();
     }
 }
Ejemplo n.º 19
0
 public void SaveShelf(DataRow row)
 {
     using (PersistentManager pm = new PersistentManager())
     {
         ShelfDao shelfDao = new ShelfDao();
         shelfDao.Update(row);
     }
 }
Ejemplo n.º 20
0
 public void AddArea(DataRow row)
 {
     using (PersistentManager pm = new PersistentManager())
     {
         AreaDao areaDao = new AreaDao();
         areaDao.Insert(row);
     }
 }
Ejemplo n.º 21
0
 public void Save(string cigaretteCode, string cigaretteName,string isAbnormity, string barcode)
 {
     using (PersistentManager pm = new PersistentManager())
     {
         CigaretteDao cigaretteDao = new CigaretteDao();
         cigaretteDao.UpdateEntity(cigaretteCode,cigaretteName,isAbnormity, barcode);
     }
 }
Ejemplo n.º 22
0
 public DataTable GetShelf()
 {
     using (PersistentManager pm = new PersistentManager())
     {
         ShelfDao shelfDao = new ShelfDao();
         return shelfDao.Find();
     }
 }
Ejemplo n.º 23
0
 /// <summary>
 /// ��ѯ4��֮�ڵķּ𶩵�
 /// </summary>
 /// <returns></returns>
 public DataTable GetOrderId(string orderDate)
 {
     using (PersistentManager dbpm = new PersistentManager())
        {
        DownSortingOrderDao dao = new DownSortingOrderDao();
        return dao.GetOrderId(orderDate);
        }
 }
Ejemplo n.º 24
0
 public DataSet GetGroupList(int pageIndex, int pageSize, string filter, string OrderByFields)
 {
     using (THOK.Util.PersistentManager pm = new THOK.Util.PersistentManager())
     {
         SysGroupDao GroupDao = new SysGroupDao();
         return(GroupDao.QueryGroup(strTableView, strPrimaryKey, strQueryFields, pageIndex, pageSize, OrderByFields, filter, strTableView));
     }
 }
Ejemplo n.º 25
0
 /// <summary>
 /// ��ȡ����Ļ����
 /// </summary>
 /// <param name="TaskNO"></param>
 /// <param name="BillNo"></param>
 /// <returns></returns>
 public string GetChannelFromTask(string TaskNO, string BillNo)
 {
     using (PersistentManager pm = new PersistentManager())
     {
         ChannelDao dao = new ChannelDao();
         return dao.GetChannelFromTask(TaskNO, BillNo);
     }
 }
Ejemplo n.º 26
0
 /// <summary>
 /// ��ȡ��λϵͳ���ֶ�
 /// </summary>
 /// <returns></returns>
 public DataTable GetUnitProduct()
 {
     using (PersistentManager pm = new PersistentManager())
     {
         DownUnitDao dao = new DownUnitDao();
         return dao.GetUnitProduct();
     }
 }
Ejemplo n.º 27
0
 /// <summary>
 /// ���ݾ��̲�ѯ��λ��Ϣ
 /// </summary>
 /// <param name="productCode"></param>
 /// <returns></returns>
 public DataTable FindProductCodeInfo(string productCode)
 {
     using (PersistentManager dbPm = new PersistentManager())
     {
         DownProductDao dao = new DownProductDao();
         return dao.FindProductCodeInfo(productCode);
     }
 }
 public DataTable GetFormatParameter()
 {
     using (PersistentManager pm = new PersistentManager())
     {
         SysSystemParameterDao parameterDao = new SysSystemParameterDao();
         return parameterDao.FindFormatParameter();
     }
 }
Ejemplo n.º 29
0
 /// <summary>
 /// 删除配车单
 /// </summary>
 public void Delete()
 {
     using (PersistentManager dbPm = new PersistentManager())
        {
        DownDistCarBillDao dao = new DownDistCarBillDao();
        dao.Delete();
        }
 }
Ejemplo n.º 30
0
 public void SaveArea(DataRow row)
 {
     using (PersistentManager pm = new PersistentManager())
     {
         AreaDao areaDao = new AreaDao();
         areaDao.Update(row);
     }
 }
Ejemplo n.º 31
0
 public void AddShelf(DataRow row)
 {
     using (PersistentManager pm = new PersistentManager())
     {
         ShelfDao shelfDao = new ShelfDao();
         shelfDao.Insert(row);
     }
 }
Ejemplo n.º 32
0
        /// <summary>
        /// 备货烟道优化2010-07-08
        /// </summary>
        /// <param name="orderDate"></param>
        /// <param name="batchNo"></param>
        public void GenStockChannelSchedule(string orderDate, int batchNo)
        {
            using (THOK.Util.PersistentManager pm = new THOK.Util.PersistentManager())
            {
                StockChannelDao schannelDao = new StockChannelDao();
                OrderDao        orderDao    = new OrderDao();
                OrderDao        detailDao   = new OrderDao();

                SysParameterDao             parameterDao = new SysParameterDao();
                Dictionary <string, string> parameter    = parameterDao.FindParameters();

                LineInfoDao lineDao1   = new LineInfoDao();
                DataTable   lineTable1 = lineDao1.GetAvailabeLine("3").Tables[0];
                bool        isUseWholePiecesSortLine = lineTable1.Rows.Count > 0;

                //每天分拣结束后备货烟道是否为空
                if (parameter["ClearStockChannel"] == "1")
                {
                    schannelDao.ClearCigarette();
                }

                //查询补货烟道表
                DataTable channelTable = schannelDao.FindChannel();
                //查询通道机卷烟数量信息表
                DataTable orderCTable = orderDao.FindCigaretteQuantityFromChannelUsed(orderDate, batchNo, "3");
                //查询立式机卷烟数量信息表(应加上混合烟道问题)
                DataTable orderTTable = orderDao.FindCigaretteQuantityFromChannelUsed(orderDate, batchNo, "2");
                //取所有订单品牌及总数量
                DataTable orderTable = detailDao.FindAllCigaretteQuantity(orderDate, batchNo, isUseWholePiecesSortLine).Tables[0];

                StockOptimize stockOptimize = new StockOptimize();

                bool      isUseSynchronizeOptimize = Convert.ToBoolean(parameter["IsUseSynchronizeOptimize"]);
                DataTable mixTable = stockOptimize.Optimize(isUseSynchronizeOptimize, channelTable, isUseSynchronizeOptimize ? orderCTable : orderTable, isUseSynchronizeOptimize ? orderTTable : orderTable, orderDate, batchNo);
                schannelDao.InsertMixChannel(mixTable);

                //取整件打码线所有订单品牌及总数量
                if (isUseWholePiecesSortLine)
                {
                    orderTable = detailDao.FindAllCigaretteQuantityForWholePiecesSortLine(orderDate, batchNo).Tables[0];
                    mixTable   = stockOptimize.Optimize(channelTable, orderTable, orderDate, batchNo);
                    schannelDao.InsertMixChannel(mixTable);
                }

                schannelDao.InsertStockChannelUsed(orderDate, batchNo, channelTable);

                if (OnSchedule != null)
                {
                    OnSchedule(this, new ScheduleEventArgs(6, "备货烟道优化", 1, 1));
                }
            }
        }
Ejemplo n.º 33
0
        /// <summary>
        /// 生产线优化  2008-12-11修改
        /// </summary>
        /// <param name="orderDate"></param>
        /// <param name="batchNo"></param>
        public void GenLineSchedule(string orderDate, int batchNo)
        {
            using (THOK.Util.PersistentManager pm = new THOK.Util.PersistentManager())
            {
                LineInfoDao                lineDao      = new LineInfoDao();
                OrderDao                   detailDao    = new OrderDao();
                LineScheduleDao            lineScDao    = new LineScheduleDao();
                THOK.Optimize.LineOptimize lineSchedule = new THOK.Optimize.LineOptimize();

                DataTable routeTable  = detailDao.FindRouteQuantity(orderDate, batchNo).Tables[0];
                DataTable lineTable   = lineDao.GetAvailabeLine("2").Tables[0];
                DataTable scLineTable = new DataTable();
                if (lineTable.Rows.Count > 0)
                {
                    scLineTable = lineSchedule.Optimize(routeTable, lineTable, orderDate, batchNo);
                    lineScDao.SaveLineSchedule(scLineTable);
                }
                else
                {
                    throw new Exception("没有可用的分拣线!");
                }


                routeTable = detailDao.FindRouteQuantity(orderDate, batchNo).Tables[0];
                lineTable  = lineDao.GetAvailabeLine("3").Tables[0];
                if (lineTable.Rows.Count > 0)
                {
                    scLineTable = lineSchedule.Optimize(routeTable, lineTable, orderDate, batchNo);
                    lineScDao.SaveLineSchedule(scLineTable);
                }

                if (OnSchedule != null)
                {
                    OnSchedule(this, new ScheduleEventArgs(2, "生产线优化", 1, 1));
                }
            }
        }
Ejemplo n.º 34
0
        /// <summary>
        /// 订单优化2010-07-07
        /// </summary>
        /// <param name="orderDate"></param>
        /// <param name="batchNo"></param>
        public void GenOrderSchedule(string orderDate, int batchNo)
        {
            using (THOK.Util.PersistentManager pm = new THOK.Util.PersistentManager())
            {
                OrderDao         orderDao         = new OrderDao();
                ChannelDao       channelDao       = new ChannelDao();
                OrderScheduleDao orderScheduleDao = new OrderScheduleDao();
                SupplyDao        supplyDao        = new SupplyDao();
                OrderOptimize    orderSchedule    = new OrderOptimize();

                SysParameterDao             parameterDao = new SysParameterDao();
                Dictionary <string, string> parameter    = parameterDao.FindParameters();

                LineScheduleDao lineDao   = new LineScheduleDao();
                DataTable       lineTable = lineDao.FindAllLine(orderDate, batchNo).Tables[0];

                foreach (DataRow lineRow in lineTable.Rows)
                {
                    string lineCode = lineRow["LINECODE"].ToString();

                    //查询订单主表
                    DataTable masterTable = orderDao.FindTmpMaster(orderDate, batchNo, lineCode);
                    //查询订单明细表
                    DataTable orderTable = orderDao.FindTmpDetail(orderDate, batchNo, lineCode);
                    //查询分拣烟道表
                    DataTable channelTable = channelDao.FindChannelSchedule(orderDate, batchNo, lineCode, Convert.ToInt32(parameter["RemainCount"])).Tables[0];

                    int sortNo       = 1;
                    int currentCount = 0;
                    int totalCount   = masterTable.Rows.Count;

                    foreach (DataRow masterRow in masterTable.Rows)
                    {
                        DataRow[] orderRows = null;

                        //查询当前订单明细
                        orderRows = orderTable.Select(string.Format("SORTNO = '{0}'", masterRow["SORTNO"]), "CHANNELGROUP, CHANNELCODE");
                        DataSet ds = orderSchedule.Optimize(masterRow, orderRows, channelTable, ref sortNo);

                        orderScheduleDao.SaveOrder(ds);
                        supplyDao.InsertSupply(ds.Tables["SUPPLY"], lineCode, orderDate, batchNo);

                        if (OnSchedule != null)
                        {
                            OnSchedule(this, new ScheduleEventArgs(5, "正在优化" + lineRow["LINECODE"].ToString() + "分拣线订单", ++currentCount, totalCount));
                        }
                    }

                    channelDao.Update(channelTable);
                }

                LineInfoDao lineDao1   = new LineInfoDao();
                DataTable   lineTable1 = lineDao1.GetAvailabeLine("3").Tables[0];

                foreach (DataRow lineRow in lineTable1.Rows)
                {
                    string lineCode = lineRow["LINECODE"].ToString();

                    //查询烟道信息表
                    DataTable channelTable = channelDao.FindChannelSchedule(orderDate, batchNo, lineCode, Convert.ToInt32(parameter["RemainCount"])).Tables[0];
                    //查询订单主表
                    DataTable masterTable = orderDao.FindOrderMaster(orderDate, batchNo, lineCode).Tables[0];
                    //查询订单明细表
                    DataTable orderTable = orderDao.FindOrderDetail(orderDate, batchNo, lineCode).Tables[0];

                    int sortNo       = 1;
                    int currentCount = 0;
                    int totalCount   = masterTable.Rows.Count;

                    foreach (DataRow masterRow in masterTable.Rows)
                    {
                        DataRow[] orderRows = null;
                        //查询当前订单明细
                        orderRows = orderTable.Select(string.Format("ORDERID = '{0}'", masterRow["ORDERID"]), "CIGARETTECODE");
                        DataSet ds = orderSchedule.OptimizeUseWholePiecesSortLine(masterRow, orderRows, channelTable, ref sortNo);
                        orderScheduleDao.SaveOrder(ds);

                        if (OnSchedule != null)
                        {
                            OnSchedule(this, new ScheduleEventArgs(5, "正在优化" + lineRow["LINECODE"].ToString() + "分拣线订单", ++currentCount, totalCount));
                        }
                    }

                    channelDao.UpdateQuantity(channelTable, false);
                }
            }
        }
Ejemplo n.º 35
0
        /// <summary>
        /// 订单拆分2010-07-05
        /// </summary>
        /// <param name="orderDate"></param>
        /// <param name="batchNo"></param>
        public void GenSplitOrder(string orderDate, int batchNo)
        {
            using (THOK.Util.PersistentManager pm = new THOK.Util.PersistentManager())
            {
                OrderDao         orderDao         = new OrderDao();
                ChannelDao       channelDao       = new ChannelDao();
                OrderScheduleDao orderScheduleDao = new OrderScheduleDao();
                LineScheduleDao  lineDao          = new LineScheduleDao();

                OrderSplitOptimize orderSchedule = new OrderSplitOptimize();

                THOK.AS.Dao.SysParameterDao parameterDao = new SysParameterDao();
                Dictionary <string, string> parameter    = parameterDao.FindParameters();

                //查询分拣线表
                DataTable lineTable = lineDao.FindAllLine(orderDate, batchNo).Tables[0];

                //清理临时表
                orderScheduleDao.ClearSplitOrder();

                LineInfoDao lineDao1   = new LineInfoDao();
                DataTable   lineTable1 = lineDao1.GetAvailabeLine("3").Tables[0];
                bool        isUseWholePiecesSortLine = lineTable1.Rows.Count > 0;

                foreach (DataRow lineRow in lineTable.Rows)
                {
                    string lineCode = lineRow["LINECODE"].ToString();

                    //查询烟道信息表
                    DataTable channelTable = channelDao.FindChannelSchedule(orderDate, batchNo, lineCode, Convert.ToInt32(parameter["RemainCount"])).Tables[0];
                    //查询订单主表
                    DataTable masterTable = orderDao.FindOrderMaster(orderDate, batchNo, lineCode).Tables[0];
                    //查询订单明细表
                    DataTable orderTable = orderDao.FindOrderDetail(orderDate, batchNo, lineCode).Tables[0];

                    DataTable       orderDetail     = null;
                    HashTableHandle hashTableHandle = new HashTableHandle(orderTable);

                    int sortNo       = 1;
                    int currentCount = 0;
                    int totalCount   = masterTable.Rows.Count;
                    orderSchedule.moveToMixChannelProducts.Clear();
                    orderSchedule.moveToMixTChannelProducts.Clear();

                    foreach (DataRow masterRow in masterTable.Rows)
                    {
                        DataRow[] orderRows = null;

                        orderDetail = hashTableHandle.Select("ORDERID", masterRow["ORDERID"]);
                        orderRows   = orderDetail.Select(string.Format("ORDERID = '{0}'", masterRow["ORDERID"]), "QUANTITY");

                        DataSet ds = orderSchedule.Optimize(masterRow, orderRows, channelTable, lineCode, ref sortNo, parameter, isUseWholePiecesSortLine);
                        orderScheduleDao.SaveSplitOrder(ds);

                        if (OnSchedule != null)
                        {
                            OnSchedule(this, new ScheduleEventArgs(4, "正在优化" + lineRow["LINECODE"].ToString() + "分拣线订单", ++currentCount, totalCount));
                        }
                    }

                    channelDao.UpdateQuantity(channelTable, Convert.ToBoolean(parameter["IsUseBalance"]));
                }
            }
        }
Ejemplo n.º 36
0
        /// <summary>
        /// 生产线烟道优化
        /// </summary>
        /// <param name="orderDate"></param>
        /// <param name="batchNo"></param>
        public void GenChannelSchedule(string orderDate, int batchNo)
        {
            using (THOK.Util.PersistentManager pm = new THOK.Util.PersistentManager())
            {
                ChannelDao      channelDao      = new ChannelDao();
                OrderDao        detailDao       = new OrderDao();
                LineDeviceDao   deviceDao       = new LineDeviceDao();
                ChannelOptimize channelSchedule = new ChannelOptimize();

                THOK.AS.Dao.SysParameterDao parameterDao = new SysParameterDao();
                Dictionary <string, string> parameter    = parameterDao.FindParameters();

                LineScheduleDao lineDao   = new LineScheduleDao();
                DataTable       lineTable = lineDao.FindAllLine(orderDate, batchNo).Tables[0];

                LineInfoDao lineDao1   = new LineInfoDao();
                DataTable   lineTable1 = lineDao1.GetAvailabeLine("3").Tables[0];
                bool        isUseWholePiecesSortLine = lineTable1.Rows.Count > 0;

                int currentCount = 0;
                int totalCount   = lineTable.Rows.Count;

                foreach (DataRow lineRow in lineTable.Rows)
                {
                    string lineCode = lineRow["LINECODE"].ToString();

                    //查询分拣线烟道表
                    DataTable channelTable = channelDao.FindAvailableChannel(lineCode).Tables[0];
                    //查询分拣线设备参数表
                    DataTable deviceTable = deviceDao.FindLineDevice(lineCode).Tables[0];

                    //通道机两条分拣线品牌必须一致,立式机两条分拣线则不需要一致
                    //取所有订单品牌及总数量
                    DataTable orderTable = detailDao.FindAllCigaretteQuantity(orderDate, batchNo, isUseWholePiecesSortLine).Tables[0];
                    //取每条线订单品牌及总数量
                    DataTable lineOrderTable = detailDao.FindLineCigaretteQuantity(orderDate, batchNo, lineCode, isUseWholePiecesSortLine).Tables[0];

                    bool isUseSynchronizeOptimize = Convert.ToBoolean(parameter["IsUseSynchronizeOptimize"]);

                    channelSchedule.Optimize(isUseSynchronizeOptimize ? orderTable : lineOrderTable, lineOrderTable, channelTable, deviceTable, parameter);

                    channelDao.SaveChannelSchedule(channelTable, orderDate, batchNo);

                    if (OnSchedule != null)
                    {
                        OnSchedule(this, new ScheduleEventArgs(3, "正在优化" + lineRow["LINECODE"].ToString() + "分拣线烟道", ++currentCount, totalCount));
                    }
                }

                currentCount = 0;
                totalCount   = lineTable1.Rows.Count;

                foreach (DataRow lineRow in lineTable1.Rows)
                {
                    string lineCode = lineRow["LINECODE"].ToString();

                    //查询分拣线烟道表
                    DataTable channelTable = channelDao.FindAvailableChannel(lineCode).Tables[0];
                    channelDao.SaveChannelSchedule(channelTable, orderDate, batchNo);

                    if (OnSchedule != null)
                    {
                        OnSchedule(this, new ScheduleEventArgs(3, "正在优化" + lineRow["LINECODE"].ToString() + "分拣线烟道", ++currentCount, totalCount));
                    }
                }
            }
        }
Ejemplo n.º 37
0
 public void SetPersistentManager(PersistentManager persistentManager)
 {
     this.persistentManager = persistentManager;
     this.fromPool          = false;
 }