Exemplo n.º 1
0
 public override void init()
 {
     try
     {
         BU    = ConfigGet("BU");
         Plant = ConfigGet("PLANT");
         DB    = ConfigGet("DB");
         SFCDB = new OleExec(DB, false);
         List <System.Net.IPAddress> temp = HWDNNSFCBase.HostInfo.IP.Where(ipv4 => ipv4.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork).ToList();
         ip            = temp[0].ToString();
         R_MRB_GT      = new T_R_MRB_GT(SFCDB, DB_TYPE_ENUM.Oracle);
         H_MRB_GT      = new T_H_MRB_GT(SFCDB, DB_TYPE_ENUM.Oracle);
         synLock       = new T_R_SYNC_LOCK(SFCDB, DB_TYPE_ENUM.Oracle);
         zcpp_nsg_0091 = new ZCPP_NSBG_0091(BU);
         Output.UI     = new AssyReturnBackFlush_UI(this);
     }
     catch (Exception ex)
     {
         throw new Exception("Init AssyReturnBackFlush fail," + ex.Message);
     }
 }
Exemplo n.º 2
0
 public void DoBackFlushGT(string clientip)
 {
     try
     {
         R_MRB_GT          = new T_R_MRB_GT(SFCDB, DB_TYPE_ENUM.Oracle);
         H_MRB_GT          = new T_H_MRB_GT(SFCDB, DB_TYPE_ENUM.Oracle);
         synLock           = new T_R_SYNC_LOCK(SFCDB, DB_TYPE_ENUM.Oracle);
         zrfc_sfc_nsg_0020 = new ZRFC_SFC_NSG_0020();
         zcpp_nsg_0091     = new ZCPP_NSBG_0091();
         IsRuning          = synLock.IsLock("HWD_MrbBackFlush", SFCDB, DB_TYPE_ENUM.Oracle, out lockIp);
         if (IsRuning)
         {
             throw new Exception("HWD MrbBackFlush interface is running on " + lockIp + ",Please try again later");
         }
         synLock.SYNC_Lock(BU, clientip, "HWD_MrbBackFlush", "HWD_MrbBackFlush", this.LoginUser.EMP_NO, SFCDB, DB_TYPE_ENUM.Oracle);
         DoMrbBackFlush();
         synLock.SYNC_UnLock(BU, clientip, "HWD_MrbBackFlush", "HWD_MrbBackFlush", this.LoginUser.EMP_NO, SFCDB, DB_TYPE_ENUM.Oracle);
     }
     catch (Exception ex)
     {
         synLock.SYNC_UnLock(BU, clientip, "HWD_MrbBackFlush", "HWD_MrbBackFlush", this.LoginUser.EMP_NO, SFCDB, DB_TYPE_ENUM.Oracle);
         throw new Exception("Start MrbBackFlush Fail" + ex.Message);
     }
 }
Exemplo n.º 3
0
        /// <summary>
        /// MRB 組裝退料拋賬
        /// </summary>
        /// <param name="requestValue"></param>
        /// <param name="Data"></param>
        /// <param name="StationReturn"></param>
        public void DoAssyToMrbBackFlush(JObject requestValue, JObject Data, MESStationReturn StationReturn)
        {
            try
            {
                SFCDB         = DBPools["SFCDB"].Borrow();
                R_MRB_GT      = new T_R_MRB_GT(SFCDB, DB_TYPE_ENUM.Oracle);
                H_MRB_GT      = new T_H_MRB_GT(SFCDB, DB_TYPE_ENUM.Oracle);
                synLock       = new T_R_SYNC_LOCK(SFCDB, DB_TYPE_ENUM.Oracle);
                zcpp_nsg_0091 = new ZCPP_NSBG_0091();
                MRBGTList     = new List <R_MRB_GT>();
                MRBTable      = new DataTable();

                if (Interface.IsMonthly(SFCDB, DB_TYPE_ENUM.Oracle))
                {
                    //月結不給拋賬
                    throw new Exception("This time is monthly,can't BackFlush");
                }

                IsRuning = synLock.IsLock("HWD_AssyToMrbBackFlush", SFCDB, DB_TYPE_ENUM.Oracle, out lockIp);
                if (IsRuning)
                {
                    throw new Exception("HWD AssyToMrbBackFlush interface is running on " + lockIp + ",Please try again later");
                }
                synLock.SYNC_Lock(BU, this.IP, "HWD_AssyToMrbBackFlush", "HWD_AssyToMrbBackFlush", this.LoginUser.EMP_NO, SFCDB, DB_TYPE_ENUM.Oracle);

                sql      = $@" select * from r_mrb_gt where sap_flag = 0 and zcpp_flag = 1 and sap_station_code is not null ";
                MRBTable = SFCDB.RunSelect(sql).Tables[0];
                if (MRBTable != null && MRBTable.Rows.Count > 0)
                {
                    foreach (DataRow row in MRBTable.Rows)
                    {
                        rowR_MRBGT = (Row_R_MRB_GT)R_MRB_GT.NewRow();
                        rowR_MRBGT.loadData(row);
                        MRBGTList.Add(rowR_MRBGT.GetDataObject());
                    }
                }
                postDate = Interface.GetPostDate(SFCDB);
                if (MRBGTList != null && MRBGTList.Count > 0)
                {
                    foreach (R_MRB_GT r_mrb_gt in MRBGTList)
                    {
                        rowR_MRBGT = null;
                        rowH_MRBGT = null;
                        logMessage = "";
                        zcpp_nsg_0091.SetValue("I_WERKS", "WDN1");
                        zcpp_nsg_0091.SetValue("I_MATNR", r_mrb_gt.SKUNO);
                        zcpp_nsg_0091.SetValue("I_LMNGA", r_mrb_gt.TOTAL_QTY.ToString());
                        zcpp_nsg_0091.SetValue("I_LGORT", r_mrb_gt.TO_STORAGE);
                        zcpp_nsg_0091.SetValue("I_AUFNR", r_mrb_gt.FROM_STORAGE);
                        zcpp_nsg_0091.SetValue("I_BUDAT", postDate);
                        rowR_MRBGT = (Row_R_MRB_GT)R_MRB_GT.GetObjByID(r_mrb_gt.ID, SFCDB);
                        try
                        {
                            zcpp_nsg_0091.CallRFC();
                            if (zcpp_nsg_0091.GetValue("O_MESSAGE").IndexOf("Material not exsit,pls check!") >= 0)
                            {
                                rowR_MRBGT.SAP_FLAG = "2";
                            }
                            else
                            {
                                rowR_MRBGT.SAP_FLAG = "1";
                            }
                        }
                        catch (Exception ex)
                        {
                            Interface.WriteIntoMESLog(SFCDB, BU, "MESStation", "MESStation.Interface.MrbBackFlush", "AssyToMrbBackFlush", r_mrb_gt.WORKORDERNO + ";" + this.IP + ";" + ex.ToString(), "", this.LoginUser.EMP_NO);
                            rowR_MRBGT.SAP_FLAG = "1";
                        }
                        SFCDB.ExecSQL(rowR_MRBGT.GetUpdateString(DB_TYPE_ENUM.Oracle));

                        logMessage                  = "M:" + zcpp_nsg_0091.GetValue("O_MESSAGE");
                        rowH_MRBGT                  = (Row_H_MRB_GT)H_MRB_GT.NewRow();
                        rowH_MRBGT.ID               = H_MRB_GT.GetNewID(BU, SFCDB);
                        rowH_MRBGT.WORKORDERNO      = r_mrb_gt.WORKORDERNO;
                        rowH_MRBGT.SAP_STATION_CODE = r_mrb_gt.SAP_STATION_CODE;
                        rowH_MRBGT.FROM_STORAGE     = r_mrb_gt.FROM_STORAGE;
                        rowH_MRBGT.TO_STORAGE       = r_mrb_gt.TO_STORAGE;
                        rowH_MRBGT.TOTAL_QTY        = r_mrb_gt.TOTAL_QTY;
                        rowH_MRBGT.CONFIRMED_FLAG   = r_mrb_gt.CONFIRMED_FLAG;
                        rowH_MRBGT.ZCPP_FLAG        = r_mrb_gt.ZCPP_FLAG;
                        rowH_MRBGT.SAP_FLAG         = r_mrb_gt.SAP_FLAG;
                        rowH_MRBGT.SKUNO            = r_mrb_gt.SKUNO;
                        rowH_MRBGT.SAP_MESSAGE      = logMessage;
                        rowH_MRBGT.EDIT_EMP         = this.LoginUser.EMP_NO;
                        rowH_MRBGT.EDIT_TIME        = Interface.GetDBDateTime(SFCDB, DB_TYPE_ENUM.Oracle);
                        SFCDB.ExecSQL(rowH_MRBGT.GetInsertString(DB_TYPE_ENUM.Oracle));
                    }
                }
                synLock.SYNC_UnLock(BU, this.IP, "HWD_AssyToMrbBackFlush", "HWD_AssyToMrbBackFlush", this.LoginUser.EMP_NO, SFCDB, DB_TYPE_ENUM.Oracle);
                if (SFCDB != null)
                {
                    DBPools["SFCDB"].Return(SFCDB);
                }
                StationReturn.Status = StationReturnStatusValue.Pass;
            }
            catch (Exception exception)
            {
                StationReturn.Status = StationReturnStatusValue.Fail;
                throw exception;
            }
        }