Ejemplo n.º 1
0
        public void AddInputActionS(Newtonsoft.Json.Linq.JToken Data, OleExec sfcdb)
        {
            //   OleExec sfcdb = null;
            string           InsertSql = "";
            T_R_Input_Action inputaction;
            string           ID              = Data["ID"].ToString();
            string           InputID         = Data["InputID"].ToString();
            string           StationActionID = Data["StationActionID"].ToString();
            int    SeqNo       = Convert.ToInt32(Data["SeqNo"]);
            string ConfigType  = Data["ConfigType"].ToString();
            string ConfigValue = Data["ConfigValue"].ToString();
            int    AddFlag     = Convert.ToInt32(Data["AddFlag"]);

            try
            {
                inputaction = new T_R_Input_Action(sfcdb, DBTYPE);
                DeleteInputAction(ID, sfcdb);
                Row_R_Input_Action row = (Row_R_Input_Action)inputaction.NewRow();
                row.ID                  = ID;
                row.INPUT_ID            = InputID;
                row.C_STATION_ACTION_ID = StationActionID;
                row.SEQ_NO              = SeqNo;
                row.CONFIG_TYPE         = ConfigType;
                row.CONFIG_VALUE        = ConfigValue;
                row.ADD_FLAG            = AddFlag;
                row.EDIT_EMP            = LoginUser.EMP_NO;
                row.EDIT_TIME           = GetDBDateTime();
                InsertSql               = row.GetInsertString(DBTYPE);
                sfcdb.ExecSQL(InsertSql);
            }
            catch (Exception e)
            {
                //this.DBPools["SFCDB"].Return(sfcdb);
                throw e;
            }
        }
Ejemplo n.º 2
0
        public void AddStationActionPara(Newtonsoft.Json.Linq.JToken Data, OleExec sfcdb)
        {
            //OleExec sfcdb = null;
            string InsertSql = "";
            T_R_Station_Action_Para input;
            string ID               = Data["ID"].ToString();
            string RInputActionID   = Data["R_INPUT_ACTION_ID"].ToString();
            string RStationActionID = Data["R_STATION_ACTION_ID"].ToString();
            double SeqNo            = Convert.ToDouble(Data["SEQ_NO"]);
            string SessionType      = Data["SESSION_TYPE"].ToString();
            string SessionValue     = Data["SESSION_KEY"].ToString();
            string StrValue         = Data["VALUE"].ToString();

            try
            {
                input = new T_R_Station_Action_Para(sfcdb, DBTYPE);
                DeleteStationActionPara(ID, sfcdb);
                Row_R_Station_Action_Para row = (Row_R_Station_Action_Para)input.NewRow();
                row.ID = ID;
                row.R_STATION_ACTION_ID = RStationActionID;
                row.R_INPUT_ACTION_ID   = RInputActionID;
                row.SEQ_NO       = SeqNo;
                row.SESSION_TYPE = SessionType;
                row.SESSION_KEY  = SessionValue;
                row.VALUE        = StrValue;
                row.EDIT_EMP     = LoginUser.EMP_NO;
                row.EDIT_TIME    = GetDBDateTime();
                InsertSql        = row.GetInsertString(DBTYPE);
                sfcdb.ExecSQL(InsertSql);
            }
            catch (Exception e)
            {
                //   this.DBPools["SFCDB"].Return(sfcdb);
                throw e;
            }
        }
Ejemplo n.º 3
0
        public void AddStationAction(Newtonsoft.Json.Linq.JToken Data, OleExec sfcdb)
        {
            //OleExec sfcdb = null;
            string             InsertSql = "";
            T_R_Station_Action input;
            string             ID = Data["ID"].ToString();
            string             RStationInputID  = Data["R_STATION_INPUT_ID"].ToString();
            string             CStationActionID = Data["C_STATION_ACTION_ID"].ToString();
            double             SeqNo            = Convert.ToDouble(Data["SEQ_NO"]);
            string             ConfigType       = Data["CONFIG_TYPE"].ToString();
            string             ConfigValue      = Data["CONFIG_VALUE"].ToString();
            double             AddFlag          = Convert.ToDouble(Data["ADD_FLAG"]);

            try
            {
                input = new T_R_Station_Action(sfcdb, DBTYPE);
                DeleteStationAction(ID, sfcdb);
                Row_R_Station_Action row = (Row_R_Station_Action)input.NewRow();
                row.ID = ID;
                row.R_STATION_INPUT_ID  = RStationInputID;
                row.C_STATION_ACTION_ID = CStationActionID;
                row.SEQ_NO       = SeqNo;
                row.CONFIG_TYPE  = ConfigType;
                row.CONFIG_VALUE = ConfigValue;
                row.ADD_FLAG     = AddFlag;
                row.EDIT_EMP     = LoginUser.EMP_NO;
                row.EDIT_TIME    = GetDBDateTime();
                InsertSql        = row.GetInsertString(DBTYPE);
                sfcdb.ExecSQL(InsertSql);
            }
            catch (Exception e)
            {
                //  this.DBPools["SFCDB"].Return(sfcdb);
                throw e;
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// downlaod wo info into r_wo_header from sap
        /// </summary>
        protected void SaveWOHeader()
        {
            if (_downloadWO != "")
            {
                sql          = "";
                woIsExist    = false;
                rowWOHeader  = null;
                autoDownLoad = false;
                try
                {
                    rowWOHeader = dtWOHeader.Select("AUFNR='" + _downloadWO + "'");
                    if (rowWOHeader.Length == 0)
                    {
                        throw new Exception("wo " + _downloadWO + " can't exist on sap");
                    }
                    skuIsExist = C_SKU.CheckSku(rowWOHeader[0]["MATNR"].ToString(), SFCDB);
                    if (!skuIsExist)
                    {
                        throw new Exception(" sku " + rowWOHeader[0]["MATNR"].ToString() + " can't exist");
                    }
                    woIsExist = R_WO_HEADER.CheckWoHeadByWo(rowWOHeader[0]["AUFNR"].ToString(), autoDownLoad, SFCDB);
                    if (woIsExist)
                    {
                        return;
                    }
                    Row_R_WO_HEADER rowRWOHeader = (Row_R_WO_HEADER)R_WO_HEADER.NewRow();
                    rowRWOHeader.ID         = R_WO_HEADER.GetNewID(BU, SFCDB);
                    rowRWOHeader.AUFNR      = rowWOHeader[0]["AUFNR"].ToString();
                    rowRWOHeader.WERKS      = rowWOHeader[0]["WERKS"].ToString();
                    rowRWOHeader.AUART      = rowWOHeader[0]["AUART"].ToString();
                    rowRWOHeader.MATNR      = rowWOHeader[0]["MATNR"].ToString();
                    rowRWOHeader.REVLV      = rowWOHeader[0]["REVLV"].ToString();
                    rowRWOHeader.KDAUF      = rowWOHeader[0]["KDAUF"].ToString();
                    rowRWOHeader.GSTRS      = rowWOHeader[0]["GSTRS"].ToString();
                    rowRWOHeader.GAMNG      = rowWOHeader[0]["GAMNG"].ToString();
                    rowRWOHeader.KDMAT      = rowWOHeader[0]["KDMAT"].ToString();
                    rowRWOHeader.AEDAT      = rowWOHeader[0]["AEDAT"].ToString();
                    rowRWOHeader.AENAM      = rowWOHeader[0]["AENAM"].ToString();
                    rowRWOHeader.MATKL      = rowWOHeader[0]["MATKL"].ToString();
                    rowRWOHeader.MAKTX      = rowWOHeader[0]["MAKTX"].ToString();
                    rowRWOHeader.ERDAT      = rowWOHeader[0]["ERDAT"].ToString();
                    rowRWOHeader.GSUPS      = rowWOHeader[0]["GSUPS"].ToString();
                    rowRWOHeader.ERFZEIT    = rowWOHeader[0]["ERFZEIT"].ToString();
                    rowRWOHeader.GLTRS      = rowWOHeader[0]["GLTRS"].ToString();
                    rowRWOHeader.GLUPS      = rowWOHeader[0]["GLUPS"].ToString();
                    rowRWOHeader.LGORT      = rowWOHeader[0]["LGORT"].ToString();
                    rowRWOHeader.ABLAD      = rowWOHeader[0]["ABLAD"].ToString();
                    rowRWOHeader.ROHS_VALUE = rowWOHeader[0]["ROHS_VALUE"].ToString();
                    rowRWOHeader.FTRMI      = rowWOHeader[0]["FTRMI"].ToString();
                    rowRWOHeader.MVGR3      = rowWOHeader[0]["MVGR3"].ToString();
                    rowRWOHeader.WEMNG      = rowWOHeader[0]["WEMNG"].ToString();
                    rowRWOHeader.BISMT      = rowWOHeader[0]["BISMT"].ToString();
                    rowRWOHeader.CHARG      = rowWOHeader[0]["CHARG"].ToString();
                    rowRWOHeader.SAENR      = rowWOHeader[0]["SAENR"].ToString();
                    rowRWOHeader.AETXT      = rowWOHeader[0]["AETXT"].ToString();
                    rowRWOHeader.GLTRP      = rowWOHeader[0]["GLTRP"].ToString();
                    sql = rowRWOHeader.GetInsertString(DB_TYPE_ENUM.Oracle);
                    SFCDB.ExecSQL(sql);
                    rowWOItem = null;
                    rowWOItem = dtWOItem.Select("AUFNR='" + rowWOHeader[0]["AUFNR"].ToString() + "'");
                    SaveWOItem(rowWOItem);
                    SFCDB.CommitTrain();
                }
                catch (Exception ex)
                {
                    WriteLog.WriteIntoMESLog(SFCDB, BU, "MESInterface", "MESInterface.HWD.DownLoadWO", "SaveWOHeader", ip + ";" + _downloadWO + "; Download r_wo_header fail," + ex.Message.ToString(), sql, "interface");
                }
            }
            else
            {
                for (int i = 0; i < dtWOHeader.Rows.Count; i++)
                {
                    sql       = "";
                    woIsExist = false;
                    try
                    {
                        skuIsExist = C_SKU.CheckSku(dtWOHeader.Rows[i]["MATNR"].ToString(), SFCDB);
                        if (!skuIsExist)
                        {
                            throw new Exception(" sku " + dtWOHeader.Rows[i]["MATNR"].ToString() + " can't exist");
                        }
                        woIsExist = R_WO_HEADER.CheckWoHeadByWo(dtWOHeader.Rows[i]["AUFNR"].ToString(), autoDownLoad, SFCDB);
                        if (woIsExist)
                        {
                            continue;
                        }
                        Row_R_WO_HEADER rowRWOHeader = (Row_R_WO_HEADER)R_WO_HEADER.NewRow();
                        rowRWOHeader.ID         = R_WO_HEADER.GetNewID(BU, SFCDB);
                        rowRWOHeader.AUFNR      = dtWOHeader.Rows[i]["AUFNR"].ToString();
                        rowRWOHeader.WERKS      = dtWOHeader.Rows[i]["WERKS"].ToString();
                        rowRWOHeader.AUART      = dtWOHeader.Rows[i]["AUART"].ToString();
                        rowRWOHeader.MATNR      = dtWOHeader.Rows[i]["MATNR"].ToString();
                        rowRWOHeader.REVLV      = dtWOHeader.Rows[i]["REVLV"].ToString();
                        rowRWOHeader.KDAUF      = dtWOHeader.Rows[i]["KDAUF"].ToString();
                        rowRWOHeader.GSTRS      = dtWOHeader.Rows[i]["GSTRS"].ToString();
                        rowRWOHeader.GAMNG      = dtWOHeader.Rows[i]["GAMNG"].ToString();
                        rowRWOHeader.KDMAT      = dtWOHeader.Rows[i]["KDMAT"].ToString();
                        rowRWOHeader.AEDAT      = dtWOHeader.Rows[i]["AEDAT"].ToString();
                        rowRWOHeader.AENAM      = dtWOHeader.Rows[i]["AENAM"].ToString();
                        rowRWOHeader.MATKL      = dtWOHeader.Rows[i]["MATKL"].ToString();
                        rowRWOHeader.MAKTX      = dtWOHeader.Rows[i]["MAKTX"].ToString();
                        rowRWOHeader.ERDAT      = dtWOHeader.Rows[i]["ERDAT"].ToString();
                        rowRWOHeader.GSUPS      = dtWOHeader.Rows[i]["GSUPS"].ToString();
                        rowRWOHeader.ERFZEIT    = dtWOHeader.Rows[i]["ERFZEIT"].ToString();
                        rowRWOHeader.GLTRS      = dtWOHeader.Rows[i]["GLTRS"].ToString();
                        rowRWOHeader.GLUPS      = dtWOHeader.Rows[i]["GLUPS"].ToString();
                        rowRWOHeader.LGORT      = dtWOHeader.Rows[i]["LGORT"].ToString();
                        rowRWOHeader.ABLAD      = dtWOHeader.Rows[i]["ABLAD"].ToString();
                        rowRWOHeader.ROHS_VALUE = dtWOHeader.Rows[i]["ROHS_VALUE"].ToString();
                        rowRWOHeader.FTRMI      = dtWOHeader.Rows[i]["FTRMI"].ToString();
                        rowRWOHeader.MVGR3      = dtWOHeader.Rows[i]["MVGR3"].ToString();
                        rowRWOHeader.WEMNG      = dtWOHeader.Rows[i]["WEMNG"].ToString();
                        rowRWOHeader.BISMT      = dtWOHeader.Rows[i]["BISMT"].ToString();
                        rowRWOHeader.CHARG      = dtWOHeader.Rows[i]["CHARG"].ToString();
                        rowRWOHeader.SAENR      = dtWOHeader.Rows[i]["SAENR"].ToString();
                        rowRWOHeader.AETXT      = dtWOHeader.Rows[i]["AETXT"].ToString();
                        rowRWOHeader.GLTRP      = dtWOHeader.Rows[i]["GLTRP"].ToString();
                        sql = rowRWOHeader.GetInsertString(DB_TYPE_ENUM.Oracle);
                        SFCDB.ExecSQL(sql);
                        rowWOItem = null;
                        rowWOItem = dtWOItem.Select("AUFNR='" + dtWOHeader.Rows[i]["AUFNR"].ToString() + "'");
                        SaveWOItem(rowWOItem);

                        SFCDB.CommitTrain();
                    }
                    catch (Exception ex)
                    {
                        WriteLog.WriteIntoMESLog(SFCDB, BU, "MESInterface", "MESInterface.HWD.DownLoadWO", "SaveWOHeader", ip + ";" + dtWOHeader.Rows[i]["AUFNR"].ToString() + ";Download r_wo_header fail," + ex.Message.ToString(), sql, "interface");
                        continue;
                    }
                }
            }
        }
Ejemplo n.º 5
0
        public void SetFileDisableByName(string Name, string UseType, OleExec DB)
        {
            string strSql = $@"update R_FILE r set r.valid = 0 where r.name='{Name}' and r.usetype ='{UseType}' ";

            DB.ExecSQL(strSql);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Delete Expand Info by id
        /// </summary>
        /// <param name="db"></param>
        /// <param name="id"></param>
        /// <param name="seq_no"></param>
        /// <returns></returns>
        public string DeleteExpandInfo(OleExec db, string id)
        {
            string sql = $@"delete {this.TableName} where id='{id}'";

            return(db.ExecSQL(sql));
        }
Ejemplo n.º 7
0
        public string UpdateSNBySnId(string snId, string sn, string user, OleExec SFCDB)
        {
            string sql = $@" update r_sn_kp set sn='{sn}',edit_time=sysdate,edit_emp='{user}' where r_sn_id='{snId}' ";

            return(SFCDB.ExecSQL(sql));
        }
Ejemplo n.º 8
0
        public void InLotPassStation(string NewLotFlag, R_SN SNObj, string LotNo, string LotSatusID, string Station, string EmpNo, string AQL_TYPE, string Line, string BU, OleExec DB)
        {
            T_R_LOT_STATUS   Table_R_Lot_Status = new T_R_LOT_STATUS(DB, DBType);
            Row_R_LOT_STATUS Row_R_Lot_Status   = (Row_R_LOT_STATUS)NewRow();
            T_R_LOT_DETAIL   Table_R_Lot_Detail = new T_R_LOT_DETAIL(DB, DBType);
            Row_R_LOT_DETAIL Row_R_Lot_Detail   = (Row_R_LOT_DETAIL)Table_R_Lot_Detail.NewRow();

            T_C_AQLTYPE Table_C_AQLTYPE = new T_C_AQLTYPE(DB, DBType);

            try
            {
                string LotID = "";
                if (NewLotFlag == "1")
                {
                    //Modify by LLF 2018-03-19,生成ID,需根據Table生成
                    //LotID= GetNewID(BU, DB);
                    LotID = Table_R_Lot_Status.GetNewID(BU, DB);
                    Row_R_Lot_Status.ID              = LotID;
                    Row_R_Lot_Status.LOT_NO          = LotNo;
                    Row_R_Lot_Status.SKUNO           = SNObj.SKUNO;
                    Row_R_Lot_Status.AQL_TYPE        = AQL_TYPE;
                    Row_R_Lot_Status.LOT_QTY         = 1;
                    Row_R_Lot_Status.REJECT_QTY      = 0;
                    Row_R_Lot_Status.SAMPLE_QTY      = 1;
                    Row_R_Lot_Status.PASS_QTY        = 0;
                    Row_R_Lot_Status.FAIL_QTY        = 0;
                    Row_R_Lot_Status.CLOSED_FLAG     = "0";
                    Row_R_Lot_Status.LOT_STATUS_FLAG = "0";
                    Row_R_Lot_Status.LINE            = Line;
                    Row_R_Lot_Status.SAMPLE_STATION  = Station;
                    Row_R_Lot_Status.EDIT_EMP        = EmpNo;
                    Row_R_Lot_Status.EDIT_TIME       = GetDBDateTime(DB);
                    DB.ExecSQL(Row_R_Lot_Status.GetInsertString(DBType));
                }
                else
                {
                    LotID            = LotSatusID;
                    Row_R_Lot_Status = (Row_R_LOT_STATUS)Table_R_Lot_Status.GetObjByID(LotSatusID, DB);
                    int LotQty    = (int)Row_R_Lot_Status.LOT_QTY + 1;
                    int SampleQty = Table_C_AQLTYPE.GetSampleQty(AQL_TYPE, LotQty, DB);
                    Row_R_Lot_Status.SAMPLE_QTY = SampleQty;

                    Row_R_Lot_Status.LOT_QTY += 1;
                    DB.ExecSQL(Row_R_Lot_Status.GetUpdateString(DBType));
                }

                //Modify by LLF 2018-03-19,生成ID,需根據Table生成
                //Row_R_Lot_Detail.ID = GetNewID(BU, DB);
                Row_R_Lot_Detail.ID     = Table_R_Lot_Detail.GetNewID(BU, DB);
                Row_R_Lot_Detail.LOT_ID = LotID;
                //Row_R_Lot_Detail.LOT_ID = LotID;
                Row_R_Lot_Detail.SN            = SNObj.SN;
                Row_R_Lot_Detail.WORKORDERNO   = SNObj.WORKORDERNO;
                Row_R_Lot_Detail.CREATE_DATE   = GetDBDateTime(DB);
                Row_R_Lot_Detail.SAMPLING      = "0";
                Row_R_Lot_Detail.STATUS        = "0";
                Row_R_Lot_Detail.FAIL_CODE     = "";
                Row_R_Lot_Detail.FAIL_LOCATION = "";
                Row_R_Lot_Detail.DESCRIPTION   = "";
                Row_R_Lot_Detail.CARTON_NO     = "";
                Row_R_Lot_Detail.PALLET_NO     = "";
                Row_R_Lot_Detail.EDIT_EMP      = EmpNo;
                Row_R_Lot_Detail.EDIT_TIME     = GetDBDateTime(DB);
                DB.ExecSQL(Row_R_Lot_Detail.GetInsertString(DBType));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Deploy New Class Time Row
        /// </summary>
        /// <param name="requestValue"></param>
        /// <param name="Data"></param>
        /// <param name="StationReturn"></param>
        public void DeployNewClassTime(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            MESException exception = new MESException("");

            string[] msg = new string[1];
            if (string.IsNullOrEmpty(Data["WORK_SECTION"].ToString()))
            {
                //msg[0] = "Please Input Work Section";
                //throw exception.GetMESException("", "", msg);
                throw new Exception("Please Input Work Section");
            }
            if (string.IsNullOrEmpty(Data["START_TIME"].ToString()))
            {
                throw new Exception("Please Input Start Time");
            }
            if (string.IsNullOrEmpty(Data["END_TIME"].ToString()))
            {
                throw new Exception("Please Input End Time");
            }
            if (string.IsNullOrEmpty(Data["DAY_DISTINCT"].ToString()))
            {
                throw new Exception("Please Input Day Distinct");
            }
            string           strRet    = "";
            OleExec          sfcdb     = this.DBPools["SFCDB"].Borrow();
            T_C_CLASS_TIME   classTime = new T_C_CLASS_TIME(sfcdb, DB_TYPE_ENUM.Oracle);
            Row_C_CLASS_TIME r         = (Row_C_CLASS_TIME)classTime.NewRow();

            //r.ID = classTime.GetNewID(this.BU,sfcdb,DB_TYPE_ENUM.Oracle);
            r.ID           = classTime.GetNewID("HWD", sfcdb, DB_TYPE_ENUM.Oracle);
            r.SEQ_NO       = classTime.GetTotalRows(sfcdb) + 1;
            r.WORK_SECTION = Data["WORK_SECTION"].ToString().Trim();
            r.START_TIME   = Data["START_TIME"].ToString().Trim();
            r.END_TIME     = Data["END_TIME"].ToString().Trim();
            if (Data["DAY_DISTINCT"].ToString().Trim() == "Shift1")
            {
                r.WORK_CLASS   = ((int)WORK_CLASS.Shift1).ToString();
                r.DAY_DISTINCT = WORK_CLASS.Shift1.ToString();
            }
            else
            {
                r.WORK_CLASS   = ((int)WORK_CLASS.Shift2).ToString();
                r.DAY_DISTINCT = WORK_CLASS.Shift2.ToString();
            }
            r.EDIT_EMP  = this.LoginUser;
            r.EDIT_TIME = DateTime.Now;
            strRet      = sfcdb.ExecSQL(r.GetInsertString(DB_TYPE_ENUM.Oracle));
            try
            {
                int rows = int.Parse(strRet);
                sfcdb.CommitTrain();
                StationReturn.Status  = "PASS";
                StationReturn.Message = "OK,Deploy New Class Time OK!";
                StationReturn.data    = rows;
            }
            catch
            {
                sfcdb.RollbackTrain();
                StationReturn.Status  = "FAIL";
                StationReturn.Message = strRet;
                StationReturn.data    = "";
            }
            this.DBPools["SFCDB"].Return(sfcdb);
        }
Ejemplo n.º 10
0
        public void AddWorkClass(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            string         className = Data["CLASS_NAME"].ToString().Trim();
            string         startTime = Data["START_TIME"].ToString().Trim();
            string         endTime   = Data["END_TIME"].ToString().Trim();
            bool           isExist   = false;
            OleExec        oleDB     = null;
            T_C_WORK_CLASS workClass = null;

            if (string.IsNullOrEmpty(className))
            {
                StationReturn.Status      = StationReturnStatusValue.Fail;
                StationReturn.MessageCode = "MES00000006";
                StationReturn.MessagePara.Add("CLASS NAME");
                StationReturn.Data = "";
                return;
            }
            if (string.IsNullOrEmpty(startTime))
            {
                StationReturn.Status      = StationReturnStatusValue.Fail;
                StationReturn.MessageCode = "MES00000006";
                StationReturn.MessagePara.Add("START TIME");
                StationReturn.Data = "";
                return;
            }
            if (string.IsNullOrEmpty(endTime))
            {
                StationReturn.Status      = StationReturnStatusValue.Fail;
                StationReturn.MessageCode = "MES00000006";
                StationReturn.MessagePara.Add("END TIME");
                StationReturn.Data = "";
                return;
            }
            try
            {
                oleDB     = this.DBPools["SFCDB"].Borrow();
                workClass = new T_C_WORK_CLASS(oleDB, DBTYPE);
                if (workClass.WorkClassIsExistByName(className, oleDB))
                {
                    StationReturn.MessagePara.Add(className);
                    isExist = true;
                }
                if (workClass.TimeIsExist(startTime, oleDB))
                {
                    StationReturn.MessagePara.Add(startTime);
                    isExist = true;
                }
                if (workClass.TimeIsExist(endTime, oleDB))
                {
                    StationReturn.MessagePara.Add(endTime);
                    isExist = true;
                }
                if (isExist)
                {
                    StationReturn.Status      = StationReturnStatusValue.Fail;
                    StationReturn.MessageCode = "MES00000008";
                    StationReturn.Data        = "";
                }
                else
                {
                    Row_C_WORK_CLASS workClassRow = (Row_C_WORK_CLASS)workClass.NewRow();
                    workClassRow.ID          = workClass.GetNewID(this.BU, oleDB, DBTYPE);
                    workClassRow.NAME        = className;
                    workClassRow.START_TIME  = startTime;
                    workClassRow.END_TIME    = endTime;
                    oleDB.ThrowSqlExeception = true;
                    oleDB.ExecSQL(workClassRow.GetInsertString(DBTYPE));
                    StationReturn.Status      = StationReturnStatusValue.Pass;
                    StationReturn.MessageCode = "MES00000002";
                    StationReturn.Data        = "";
                }
                this.DBPools["SFCDB"].Return(oleDB);
            }
            catch (Exception exctption)
            {
                this.DBPools["SFCDB"].Return(oleDB);
                throw exctption;
            }
        }
Ejemplo n.º 11
0
        public string UpdatePackIDBySnID(string snID, string parnetPackID, string emp, OleExec sfcdb)
        {
            string sql = $@" update r_sn_packing set pack_id='{parnetPackID}',edit_emp='{emp}',edit_time=sysdate where sn_id='{snID}' ";

            return(sfcdb.ExecSQL(sql));
        }
Ejemplo n.º 12
0
        //void GetKeyPart(string PN, string seq)
        //{

        //}


        /// <summary>
        ///  寫入 r_sn_kp
        /// </summary>
        /// <param name="rowWo"></param>
        /// <param name="r_sn"></param>
        /// <param name="sfcdb"></param>
        /// <param name="Station"></param>
        /// <param name="sfcdbType"></param>
        /// <param name=""></param>
        public void InsertR_SN_KP(WorkOrder woObject, R_SN r_sn, OleExec sfcdb, BaseClass.MESStationBase Station, MESDataObject.DB_TYPE_ENUM sfcdbType)
        {
            T_C_KP_LIST             t_c_kp_list             = new T_C_KP_LIST(sfcdb, sfcdbType);
            T_C_KP_List_Item        t_c_kp_list_item        = new T_C_KP_List_Item(sfcdb, sfcdbType);
            T_C_KP_List_Item_Detail t_c_kp_list_item_detail = new T_C_KP_List_Item_Detail(sfcdb, sfcdbType);
            T_R_SN_KP   t_r_sn_kp   = new T_R_SN_KP(sfcdb, sfcdbType);
            T_C_SKU_MPN t_c_sku_mpn = new T_C_SKU_MPN(sfcdb, sfcdbType);
            T_C_KP_Rule c_kp_rule   = new T_C_KP_Rule(sfcdb, sfcdbType);
            Row_R_SN_KP rowSNKP;

            List <C_KP_List_Item>        kpItemList     = new List <C_KP_List_Item>();
            List <C_SKU_MPN>             skuMpnList     = new List <C_SKU_MPN>();
            List <C_KP_List_Item_Detail> itemDetailList = new List <C_KP_List_Item_Detail>();
            C_KP_Rule kpRule  = new C_KP_Rule();
            int       scanseq = 0;
            int       result;
            string    skuMpn = "";

            try
            {
                kpItemList = t_c_kp_list_item.GetItemObjectByListId(woObject.KP_LIST_ID, sfcdb);
                if (kpItemList == null || kpItemList.Count == 0)
                {
                    throw new MESDataObject.MESReturnMessage(MESDataObject.MESReturnMessage.GetMESReturnMessage("MES00000255", new string[] { woObject.SkuNO }));
                }

                foreach (C_KP_List_Item kpItem in kpItemList)
                {
                    itemDetailList = t_c_kp_list_item_detail.GetItemDetailObjectByItemId(kpItem.ID, sfcdb);
                    if (itemDetailList == null || itemDetailList.Count == 0)
                    {
                        throw new MESDataObject.MESReturnMessage(MESDataObject.MESReturnMessage.GetMESReturnMessage("MES00000255", new string[] { woObject.SkuNO }));
                    }

                    skuMpnList = t_c_sku_mpn.GetMpnBySkuAndPartno(sfcdb, woObject.SkuNO, kpItem.KP_PARTNO);
                    if (skuMpnList.Count != 0)
                    {
                        skuMpn = skuMpnList[0].MPN;
                    }

                    foreach (C_KP_List_Item_Detail itemDetail in itemDetailList)
                    {
                        scanseq = scanseq + 1;
                        kpRule  = c_kp_rule.GetKPRule(sfcdb, kpItem.KP_PARTNO, skuMpn, itemDetail.SCANTYPE);
                        if (kpRule == null)
                        {
                            throw new MESDataObject.MESReturnMessage(MESDataObject.MESReturnMessage.GetMESReturnMessage("MES00000256", new string[] { kpItem.KP_PARTNO, skuMpn, itemDetail.SCANTYPE }));
                        }
                        if (kpRule.REGEX == "")
                        {
                            throw new MESDataObject.MESReturnMessage(MESDataObject.MESReturnMessage.GetMESReturnMessage("MES00000256", new string[] { kpItem.KP_PARTNO, skuMpn, itemDetail.SCANTYPE }));
                        }
                        rowSNKP            = (Row_R_SN_KP)t_r_sn_kp.NewRow();
                        rowSNKP.ID         = t_r_sn_kp.GetNewID(Station.BU, sfcdb);
                        rowSNKP.R_SN_ID    = r_sn.ID;
                        rowSNKP.SN         = r_sn.SN;
                        rowSNKP.VALUE      = "";
                        rowSNKP.PARTNO     = kpItem.KP_PARTNO;
                        rowSNKP.KP_NAME    = kpItem.KP_NAME;
                        rowSNKP.MPN        = skuMpn;
                        rowSNKP.SCANTYPE   = itemDetail.SCANTYPE;
                        rowSNKP.ITEMSEQ    = kpItem.SEQ;
                        rowSNKP.SCANSEQ    = scanseq;
                        rowSNKP.DETAILSEQ  = itemDetail.SEQ;
                        rowSNKP.STATION    = kpItem.STATION;
                        rowSNKP.REGEX      = kpRule.REGEX;
                        rowSNKP.VALID_FLAG = 1;
                        rowSNKP.EXKEY1     = "";
                        rowSNKP.EXVALUE1   = "";
                        rowSNKP.EXKEY2     = "";
                        rowSNKP.EXVALUE2   = "";
                        rowSNKP.EDIT_EMP   = Station.LoginUser.EMP_NO;
                        rowSNKP.EDIT_TIME  = Station.GetDBDateTime();
                        result             = Convert.ToInt32(sfcdb.ExecSQL(rowSNKP.GetInsertString(sfcdbType)));
                        if (result <= 0)
                        {
                            throw new MESDataObject.MESReturnMessage(MESDataObject.MESReturnMessage.GetMESReturnMessage("MES00000083", new string[] { "R_SN_KP:" + r_sn.SN, "ADD" }));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 13
0
        public void CutWoBySNId(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JToken Data, MESStationReturn StationReturn)
        {
            OleExec sfcdb = null;

            try
            {
                string wo        = Data["WO"].ToString().ToUpper().Trim();
                string closeFlag = Data["CLOSEFLAG"].ToString().ToUpper().Trim();
                Newtonsoft.Json.Linq.JArray arrayId = (Newtonsoft.Json.Linq.JArray)Data["ID"];

                sfcdb = this.DBPools["SFCDB"].Borrow();
                sfcdb.ThrowSqlExeception = true;
                T_R_WO_BASE t_r_wo_base = new T_R_WO_BASE(sfcdb, DBTYPE);
                R_WO_BASE   r_wo_base   = t_r_wo_base.GetWoByWoNo(wo, sfcdb);
                if (r_wo_base == null)
                {
                    throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000164", new string[] { wo }));
                }

                T_R_SN   t_r_sn = new T_R_SN(sfcdb, DBTYPE);
                Row_R_SN rowSN;
                for (int i = 0; i < arrayId.Count; i++)
                {
                    rowSN             = (Row_R_SN)t_r_sn.GetObjByID(arrayId[i].ToString(), sfcdb);
                    rowSN.SN          = "CUT_" + rowSN.SN;
                    rowSN.WORKORDERNO = "CUT_" + rowSN.WORKORDERNO;
                    rowSN.SKUNO       = "CUT_" + rowSN.SKUNO;
                    rowSN.EDIT_EMP    = LoginUser.EMP_NO;
                    rowSN.EDIT_TIME   = GetDBDateTime();
                    sfcdb.ExecSQL(rowSN.GetUpdateString(DBTYPE));
                }

                Row_R_WO_BASE rowWoBase = (Row_R_WO_BASE)t_r_wo_base.GetObjByID(r_wo_base.ID, sfcdb);
                rowWoBase.WORKORDER_QTY = r_wo_base.WORKORDER_QTY - Convert.ToDouble(arrayId.Count);
                rowWoBase.INPUT_QTY     = r_wo_base.INPUT_QTY - Convert.ToDouble(arrayId.Count);
                rowWoBase.EDIT_EMP      = LoginUser.EMP_NO;
                rowWoBase.EDIT_TIME     = GetDBDateTime();
                if (closeFlag == "1")
                {
                    rowWoBase.CLOSED_FLAG = closeFlag;
                    rowWoBase.CLOSE_DATE  = GetDBDateTime();
                }
                sfcdb.ExecSQL(rowWoBase.GetUpdateString(DBTYPE));

                this.DBPools["SFCDB"].Return(sfcdb);
                StationReturn.Data        = r_wo_base;
                StationReturn.Status      = StationReturnStatusValue.Pass;
                StationReturn.MessageCode = "MES00000210";
                StationReturn.MessagePara.Add(wo);
                StationReturn.MessagePara.Add(arrayId.Count);
            }
            catch (Exception exception)
            {
                StationReturn.Status      = StationReturnStatusValue.Fail;
                StationReturn.MessageCode = "MES00000037";
                StationReturn.MessagePara.Add(exception.Message);
                StationReturn.Data = exception.Message;
                if (sfcdb != null)
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                }
            }
        }
Ejemplo n.º 14
0
        public void CutWoByNum(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JToken Data, MESStationReturn StationReturn)
        {
            string  wo        = Data["WO"].ToString().ToUpper().Trim();
            string  closeFlag = Data["CLOSEFLAG"].ToString().ToUpper().Trim();
            double  num       = 0;
            OleExec sfcdb     = null;

            try
            {
                sfcdb = this.DBPools["SFCDB"].Borrow();
                sfcdb.ThrowSqlExeception = true;
                T_R_WO_BASE t_r_wo_base = new T_R_WO_BASE(sfcdb, DBTYPE);
                R_WO_BASE   r_wo_base   = t_r_wo_base.GetWoByWoNo(wo, sfcdb);
                if (r_wo_base == null)
                {
                    throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000164", new string[] { wo }));
                }
                try
                {
                    num = Convert.ToDouble(Data["NUM"].ToString().ToUpper().Trim());
                }
                catch
                {
                    throw new Exception(MESReturnMessage.GetMESReturnMessage("MSGCODE20180731151259", new string[] { Data["NUM"].ToString().ToUpper().Trim() }));
                }
                if (num <= 0)
                {
                    throw new Exception(MESReturnMessage.GetMESReturnMessage("MSGCODE20180731151259", new string[] { Data["NUM"].ToString().ToUpper().Trim() }));
                }

                if (r_wo_base.WORKORDER_QTY - r_wo_base.INPUT_QTY < num)
                {
                    throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000208", new string[] { wo, num.ToString(), (r_wo_base.WORKORDER_QTY - r_wo_base.INPUT_QTY).ToString() }));
                }

                Row_R_WO_BASE rowWoBase = (Row_R_WO_BASE)t_r_wo_base.GetObjByID(r_wo_base.ID, sfcdb);
                rowWoBase.WORKORDER_QTY = r_wo_base.WORKORDER_QTY - Convert.ToDouble(num);
                if (closeFlag == "1")
                {
                    rowWoBase.CLOSED_FLAG = closeFlag;
                    rowWoBase.CLOSE_DATE  = GetDBDateTime();
                }
                rowWoBase.EDIT_EMP  = LoginUser.EMP_NO;
                rowWoBase.EDIT_TIME = GetDBDateTime();
                sfcdb.ExecSQL(rowWoBase.GetUpdateString(DBTYPE));

                this.DBPools["SFCDB"].Return(sfcdb);
                StationReturn.Data        = r_wo_base;
                StationReturn.Status      = StationReturnStatusValue.Pass;
                StationReturn.MessageCode = "MES00000210";
                StationReturn.MessagePara.Add(wo);
                StationReturn.MessagePara.Add(num);
            }
            catch (Exception exception)
            {
                StationReturn.Status      = StationReturnStatusValue.Fail;
                StationReturn.MessageCode = "MES00000037";
                StationReturn.MessagePara.Add(exception.Message);
                StationReturn.Data = exception.Message;
                if (sfcdb != null)
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                }
            }
        }
Ejemplo n.º 15
0
        public override void Start()
        {
            string    oldSql      = "";
            string    newSql      = "";
            string    runSql      = "";
            string    codeName    = "";
            string    codeValue   = "";
            string    description = "";
            string    route       = "";
            DataTable dtNew       = new DataTable();
            DataTable dtOld       = new DataTable();
            DataTable dtRoute     = new DataTable();

            try
            {
                newSFCDB = new OleExec("HWDMES", false);
                oldSFCDB = new OleExec("HWD_OLD_SFCDB", false);
                newSFCDB.ThrowSqlExeception = true;
                oldSFCDB.ThrowSqlExeception = true;

                if (updateDate != "")
                {
                    newSql = $@"select * from c_sku where to_date(to_char(edit_time,'yyyy/mm/dd'),'yyyy/mm/dd') =to_date('{updateDate}','yyyy/mm/dd')";
                }
                else
                {
                    newSql = "select * from c_sku where edit_time>sysdate-1";
                }
                dtNew = newSFCDB.ExecSelect(newSql).Tables[0];
                //WriteLog.WriteIntoMESLog(newSFCDB, "HWD", "MESInterface", "MESInterface.HWD.CopySkuTypeToOld", "CopySkuTypeToOld", ip + ";" + dtNew.Rows.Count + "; Copy sku type to old DB fail," , "", "interface");
                //newSFCDB.CommitTrain();
                foreach (DataRow row in dtNew.Rows)
                {
                    if (row["SKUNO"].ToString() != "")
                    {
                        try
                        {
                            runSql  = $@"select c.* from r_sku_route a,c_sku b,c_route c where a.sku_id=b.id and c.id=a.route_id and b.skuno='{row["SKUNO"].ToString()}'";
                            dtRoute = newSFCDB.ExecSelect(runSql).Tables[0];
                            if (dtRoute.Rows.Count == 0)
                            {
                                throw new Exception(row["SKUNO"].ToString() + " can't setting route!");
                            }
                            route = dtRoute.Rows[0]["ROUTE_NAME"].ToString();

                            oldSql = $@"select * from sfccodelike where skuno='{row["SKUNO"].ToString()}'";
                            dtOld  = oldSFCDB.ExecSelect(oldSql).Tables[0];
                            runSql = "";
                            if (dtOld.Rows.Count > 0)
                            {
                                if (row["SKU_TYPE"].ToString() != "" && dtOld.Rows[0]["CATEGORY"].ToString() != row["SKU_TYPE"].ToString())
                                {
                                    runSql = $@" update sfccodelike set category='{row["SKU_TYPE"].ToString()}' where skuno='{row["SKUNO"].ToString()}'";
                                }
                            }
                            else
                            {
                                if (row["SKU_NAME"].ToString() != "")
                                {
                                    codeName  = row["SKU_NAME"].ToString();
                                    codeValue = row["SKU_NAME"].ToString();
                                }
                                else
                                {
                                    codeName  = row["SKUNO"].ToString();
                                    codeValue = row["SKUNO"].ToString();
                                }

                                if (row["DESCRIPTION"].ToString() != "")
                                {
                                    description = row["DESCRIPTION"].ToString();
                                }
                                else
                                {
                                    description = row["SKUNO"].ToString();
                                }
                                if (row["VERSION"].ToString() == "")
                                {
                                    throw new Exception(row["SKUNO"].ToString() + " the version is null!");
                                }


                                if (row["SKU_TYPE"].ToString() != "")
                                {
                                    runSql = $@"insert into sfccodelike
                                (category,codename,codevalue,skuno,version,custpartno,sfcroute,createby,createdate,series,ctntype,pltype,description)
                                values
                                ('{row["SKU_TYPE"].ToString()}',
                                '{codeName}',
                                '{codeValue}',
                                '{row["SKUNO"].ToString()}',
                                '{row["VERSION"].ToString()}',
                                '{row["CUST_PARTNO"].ToString()}',
                                '{route}', 
                                '{row["EDIT_EMP"].ToString()}',
                                 sysdate,
                                'HWD','C','PL','{description}')";
                                }
                                else
                                {
                                    throw new Exception(row["SKUNO"].ToString() + " can't setting sku type!");
                                }
                            }
                            //WriteLog.WriteIntoMESLog(newSFCDB, "HWD", "MESInterface", "MESInterface.HWD.CopySkuTypeToOld", "CopySkuTypeToOld", ip + ";" + row["SKUNO"].ToString() + "; Copy sku type to old DB fail,", runSql, "interface");
                            //newSFCDB.CommitTrain();
                            if (runSql != "")
                            {
                                oldSFCDB.ExecSQL(runSql);
                                oldSFCDB.CommitTrain();
                            }
                        }
                        catch (Exception ex)
                        {
                            WriteLog.WriteIntoMESLog(newSFCDB, "HWD", "MESInterface", "MESInterface.HWD.CopySkuTypeToOld", "CopySkuTypeToOld", ip + ";" + row["SKUNO"].ToString() + ";" + ex.Message.ToString(), "", "interface");
                            newSFCDB.CommitTrain();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Start CopySkuTypeToOld Fail" + ex.Message);
                //WriteLog.WriteIntoMESLog(newSFCDB, "HWD", "MESInterface", "MESInterface.HWD.CopySkuTypeToOld", "CopySkuTypeToOld", ip + ";Copy sku type to old DB fail," + ex.Message.ToString(), "", "interface");
            }
        }
Ejemplo n.º 16
0
        private void WOToMRBBackFlush()
        {
            MRBGTList = new List <R_MRB_GT>();
            MRBTable  = new DataTable();

            sql      = $@" select * from r_mrb_gt where sap_flag = '0' and zcpp_flag = 0 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 = "";
                    zrfc_sfc_nsg_0020.SetValue("I_AUFNR", r_mrb_gt.WORKORDERNO);
                    zrfc_sfc_nsg_0020.SetValue("I_BUDAT", postDate);
                    zrfc_sfc_nsg_0020.SetValue("I_FLAG", r_mrb_gt.CONFIRMED_FLAG);
                    zrfc_sfc_nsg_0020.SetValue("I_LGORT_TO", r_mrb_gt.TO_STORAGE);
                    zrfc_sfc_nsg_0020.SetValue("I_LMNGA", r_mrb_gt.TOTAL_QTY.ToString());
                    zrfc_sfc_nsg_0020.SetValue("I_STATION", r_mrb_gt.SAP_STATION_CODE);

                    rowR_MRBGT = (Row_R_MRB_GT)R_MRB_GT.GetObjByID(r_mrb_gt.ID, SFCDB);
                    try
                    {
                        rowR_MRBGT.SAP_FLAG = "1";
                        zrfc_sfc_nsg_0020.CallRFC();
                    }
                    catch (Exception ex)
                    {
                        Interface.WriteIntoMESLog(SFCDB, BU, "MESInterface", "MESInterface.HWD.MrbBackFlush", "WOToMRBBackFlush", r_mrb_gt.WORKORDERNO + ";" + this.IP + ";" + ex.ToString(), "", this.LoginUser.EMP_NO);
                        rowR_MRBGT.SAP_FLAG = "2";
                    }
                    SFCDB.ExecSQL(rowR_MRBGT.GetUpdateString(DB_TYPE_ENUM.Oracle));

                    logMessage = " M:" + zrfc_sfc_nsg_0020.GetValue("O_MESSAGE")
                                 + " M1:" + zrfc_sfc_nsg_0020.GetValue("O_MESSAGE1")
                                 + " M2" + zrfc_sfc_nsg_0020.GetValue("O_MESSAGE2");
                    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));
                }
            }
        }
Ejemplo n.º 17
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;
            }
        }
Ejemplo n.º 18
0
        public void UpdateWorkClass(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            string           strID        = Data["CLASS_ID"].ToString().Trim();
            string           newClassName = Data["NEW_CLASS_NAME"].ToString().Trim();
            string           startTime    = Data["START_TIME"].ToString().Trim();
            string           endTime      = Data["END_TIME"].ToString().Trim();
            OleExec          oleDB        = null;
            T_C_WORK_CLASS   workClass    = null;
            Row_C_WORK_CLASS workClassRow = null;

            if (string.IsNullOrEmpty(strID))
            {
                StationReturn.Status      = StationReturnStatusValue.Fail;
                StationReturn.MessageCode = "MES00000006";
                StationReturn.MessagePara.Add("CLASS ID");
                StationReturn.Data = "";
                return;
            }
            if (string.IsNullOrEmpty(startTime))
            {
                StationReturn.Status      = StationReturnStatusValue.Fail;
                StationReturn.MessageCode = "MES00000006";
                StationReturn.MessagePara.Add("START TIME");
                StationReturn.Data = "";
                return;
            }
            if (string.IsNullOrEmpty(endTime))
            {
                StationReturn.Status      = StationReturnStatusValue.Fail;
                StationReturn.MessageCode = "MES00000006";
                StationReturn.MessagePara.Add("END TIME");
                StationReturn.Data = "";
                return;
            }
            try
            {
                oleDB        = this.DBPools["SFCDB"].Borrow();
                workClass    = new T_C_WORK_CLASS(oleDB, DBTYPE);
                workClassRow = (Row_C_WORK_CLASS)workClass.NewRow();
                if (!workClass.WorkClassIsExistByID(strID, oleDB))
                {
                    StationReturn.Status      = StationReturnStatusValue.Fail;
                    StationReturn.MessageCode = "MES00000007";
                    StationReturn.Data        = "";
                }
                else if (!string.IsNullOrEmpty(newClassName) && workClass.WorkClassIsExistByName(newClassName, oleDB))
                {
                    StationReturn.Status      = StationReturnStatusValue.Fail;
                    StationReturn.MessageCode = "MES00000008";
                    StationReturn.MessagePara.Add(newClassName);
                    StationReturn.Data = "";
                }
                else
                {
                    workClassRow = (Row_C_WORK_CLASS)workClass.GetObjByID(strID, oleDB, DBTYPE);
                    if (!string.IsNullOrEmpty(newClassName))
                    {
                        workClassRow.NAME = newClassName;
                    }
                    if (!string.IsNullOrEmpty(startTime))
                    {
                        workClassRow.START_TIME = startTime;
                    }
                    if (!string.IsNullOrEmpty(endTime))
                    {
                        workClassRow.END_TIME = endTime;
                    }
                    oleDB.ThrowSqlExeception = true;
                    oleDB.ExecSQL(workClassRow.GetUpdateString(DBTYPE));
                    StationReturn.Status      = StationReturnStatusValue.Pass;
                    StationReturn.MessageCode = "MES00000003";
                    StationReturn.Data        = "";
                }
                this.DBPools["SFCDB"].Return(oleDB);
            }
            catch (Exception exception)
            {
                this.DBPools["SFCDB"].Return(oleDB);
                throw exception;
            }
        }
Ejemplo n.º 19
0
        /// <summary>
        /// FQC Lot 過站
        /// </summary>
        /// <param name="SerialNo"></param>
        /// <param name="LotNo"></param>
        /// <param name="PassOrFail"></param>
        /// <param name="EmpNo"></param>
        /// <param name="Station"></param>
        /// <param name="Line"></param>
        /// <param name="BU"></param>
        /// <param name="DB"></param>
        /// <param name="FailInfos"></param>
        public void LotPassStation(string SerialNo, string LotNo, string PassOrFail, string EmpNo, string Station, string DeviceName, string Line, string BU, OleExec DB, params string[] FailInfos)
        {
            bool             PassedFlag  = true;
            string           sql         = string.Empty;
            DataTable        dt          = new DataTable();
            Row_R_LOT_STATUS StatusRow   = (Row_R_LOT_STATUS)NewRow();
            T_R_LOT_DETAIL   DetailTable = new T_R_LOT_DETAIL(DB, this.DBType);
            Row_R_LOT_DETAIL DetailRow   = (Row_R_LOT_DETAIL)DetailTable.NewRow();
            R_LOT_STATUS     Status      = null;
            R_LOT_DETAIL     Detail      = null;
            T_R_SN           SnTable     = new T_R_SN(DB, this.DBType);
            List <string>    LotsSN      = new List <string>();

            if (this.DBType == DB_TYPE_ENUM.Oracle)
            {
                PassedFlag = PassOrFail.ToUpper().Equals("PASS") ? true : false;
                //sql = $@"SELECT * FROM R_LOT_STATUS WHERE LOT_NO='{LotNo}' AND SAMPLE_STATION='{Station}' AND LINE='{Line}'"; //判斷有沒有 LOT
                sql = $@"SELECT * FROM R_LOT_STATUS WHERE LOT_NO='{LotNo}' AND SAMPLE_STATION='{Station}'"; //判斷有沒有 LOT
                dt  = DB.ExecSelect(sql).Tables[0];
                if (dt.Rows.Count > 0)
                {
                    StatusRow.loadData(dt.Rows[0]);
                    Status = StatusRow.GetDataObject();
                    sql    = $@"SELECT A.* FROM R_LOT_DETAIL A,R_SN B WHERE LOT_ID='{StatusRow.ID}' AND B.SN='{SerialNo}' AND A.SN=B.SN"; //判斷Lot中有沒有這個SN並且沒有被抽檢過
                    dt     = DB.ExecSelect(sql).Tables[0];
                    if (dt.Rows.Count > 0)
                    {
                        DetailRow.loadData(dt.Rows[0]);
                        Detail = DetailRow.GetDataObject();
                        if (Detail.SAMPLING.Equals("1"))
                        {
                            throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000093", new string[] { SerialNo }));
                        }
                    }
                    else
                    {
                        throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000094", new string[] { SerialNo, LotNo }));
                    }

                    if (Status.CLOSED_FLAG == "1") //Lot 關閉
                    {
                        if (PassedFlag)
                        {
                            //更新 R_LOT_DETAIL STATUS
                            Detail.STATUS   = "1"; //1 表示抽檢通過
                            Detail.SAMPLING = "1"; //1 表示被抽檢了
                            //更新 R_LOT_STATUS PASS_QTY
                            Status.PASS_QTY++;
                        }
                        else
                        {
                            //更新 R_LOT_DETAIL STATUS ,FAIL_CODE,FAIL_LOCATION,DESCRIPTION

                            Detail.STATUS   = "0";                          //0 表示抽檢失敗
                            Detail.SAMPLING = "1";                          //1 表示被抽檢了
                            if (FailInfos != null && FailInfos.Length == 3) //記錄失敗原因
                            {
                                Detail.FAIL_CODE     = FailInfos[0];
                                Detail.FAIL_LOCATION = FailInfos[1];
                                Detail.DESCRIPTION   = FailInfos[2];
                            }


                            //更新 R_LOT_STATUS FAIL_QTY
                            Status.FAIL_QTY++;
                        }
                        if (Status.FAIL_QTY >= Status.REJECT_QTY && Status.FAIL_QTY != 0)
                        {
                            //更新 R_LOT_STATUS 關閉,NG,
                            //Status.CLOSED_FLAG = "1";// 1 表示關閉Lot
                            Status.LOT_STATUS_FLAG = "2";// 2 表示整個 Lot 不良
                            //更新 R_LOT_DETAIL 鎖定LOT 中所有
                            Detail.EDIT_EMP  = EmpNo;
                            Detail.EDIT_TIME = GetDBDateTime(DB);
                            DetailRow.ConstructRow(Detail);
                            DB.ExecSQL(DetailRow.GetUpdateString(this.DBType));
                            //該批次鎖定--add by Eden 2018-05-04
                            sql = $@"update r_lot_detail set sampling='4' where lot_id='{Detail.LOT_ID}'";
                            DB.ExecSQL(sql);
                            //DetailTable.LockLotBySn(SerialNo, EmpNo, DB);
                        }
                        else
                        {
                            if (Status.PASS_QTY + Status.FAIL_QTY >= Status.SAMPLE_QTY)
                            {
                                //更新 R_LOT_STATUS 關閉,OK
                                //Status.CLOSED_FLAG = "1";
                                Status.LOT_STATUS_FLAG = "1"; // 1 表示整個 Lot 正常
                                //更新 R_LOT_DETAIL 鎖定FAIL 的,其他的正常過站
                                //sql = $@"SELECT * FROM R_LOT_DETAIL WHERE LOT_ID='{StatusRow.ID}' AND STATUS='0'";
                                sql = $@"SELECT * FROM R_LOT_DETAIL WHERE LOT_ID='{StatusRow.ID}' AND ((SAMPLING='1' AND STATUS='1') OR (SAMPLING='0'))";
                                dt  = DB.ExecSelect(sql).Tables[0];
                                if (dt.Rows.Count > 0)
                                {
                                    foreach (DataRow dr in dt.Rows)
                                    {
                                        LotsSN.Add(dr["SN"].ToString());
                                    }
                                    SnTable.LotsPassStation(LotsSN, Line, Station, DeviceName, BU, PassOrFail, EmpNo, DB); // 過站
                                }
                                //記錄通過數 ,UPH
                                foreach (string SN in LotsSN)
                                {
                                    SnTable.RecordYieldRate(Detail.WORKORDERNO, 1, SN, "PASS", Line, Station, EmpNo, BU, DB);
                                    SnTable.RecordUPH(Detail.WORKORDERNO, 1, SN, "PASS", Line, Station, EmpNo, BU, DB);
                                }
                            }

                            Detail.EDIT_EMP  = EmpNo;
                            Detail.EDIT_TIME = GetDBDateTime(DB);
                            DetailRow.ConstructRow(Detail);
                            DB.ExecSQL(DetailRow.GetUpdateString(this.DBType));
                        }

                        Status.EDIT_EMP  = EmpNo;
                        Status.EDIT_TIME = GetDBDateTime(DB);
                        StatusRow.ConstructRow(Status);
                        DB.ExecSQL(StatusRow.GetUpdateString(this.DBType));
                    }
                    else
                    {
                        throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000201", new string[] { LotNo }));
                    }
                }
                else
                {
                    throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000091", new string[] { LotNo }));
                }
            }
            else
            {
                string errMsg = MESReturnMessage.GetMESReturnMessage("MES00000019", new string[] { DBType.ToString() });
                throw new MESReturnMessage(errMsg);
            }
        }
Ejemplo n.º 20
0
        public List <C_INTERFACE> UpdateNextRunTime(string BU, string IP, string Program_Name, string Item_Name, string Emp_No, OleExec DB, DB_TYPE_ENUM DBType)
        {
            string Message     = "";
            string StrRunType  = "";
            string StrTimeList = "";
            string StrTime     = "";
            string StrNextTime = "";
            string StrDate     = "";

            string[]           ArryStrTime   = null;
            string             StrAddDay     = "";
            Int64              IntMinRuntime = 0;
            Int64              IntMaxRuntime = 0;
            List <C_INTERFACE> ListInterface = new List <C_INTERFACE>();

            try
            {
                Dictionary <string, string> Dic_Interface = new Dictionary <string, string>();
                //string StrSql = $@"SELECT * from C_INTERFACE where program_name='{Program_Name}' and Item_Name={Item_Name}";
                DataTable Dt = GetItemInfo(Program_Name, Item_Name, DB);

                string    StrSql_Update = "";
                DataTable DtTime        = null;

                if (Dt.Rows.Count >= 0)
                {
                    StrRunType  = Dt.Rows[0]["RUN_TYPE"].ToString();
                    StrTimeList = Dt.Rows[0]["RUN_TIME"].ToString();
                    DtTime      = GetCurrentDate(DB, StrTimeList);
                    StrTime     = DtTime.Rows[0]["CurrentTime"].ToString();
                    StrDate     = DtTime.Rows[0]["CurrentDate"].ToString();
                    if (StrRunType == "0")
                    {
                        if (Convert.ToDateTime(Dt.Rows[0]["NEXT_RUN_DATE"].ToString()) <= Convert.ToDateTime(StrDate))
                        {
                            StrSql_Update = $@"update C_INTERFACE set last_run_date=next_run_date,next_run_date=SYSDATE+to_number({ StrTimeList})/24 where program_name='{Program_Name}' and item_name='{Item_Name}' ";

                            DB.ExecSQL(StrSql_Update);
                        }
                    }
                    else
                    {
                        StrTimeList = Dt.Rows[0]["RUN_TIME"].ToString();
                        ArryStrTime = StrTimeList.Split(',');

                        if (ArryStrTime.Length > 0)
                        {
                            IntMinRuntime = Convert.ToInt64(ArryStrTime[0].ToString().Replace(":", "").ToString());
                            IntMaxRuntime = Convert.ToInt64(ArryStrTime[ArryStrTime.Length - 1].ToString().Replace(":", "").ToString());

                            if (Convert.ToInt64(StrTime.Replace(":", "").ToString()) <= IntMinRuntime)
                            {
                                StrNextTime = ArryStrTime[0].ToString();
                            }
                            else if (Convert.ToInt64(StrTime.Replace(":", "").ToString()) >= IntMaxRuntime)
                            {
                                StrAddDay   = "1";
                                StrNextTime = ArryStrTime[0].ToString();
                            }
                            else
                            {
                                for (int i = 1; i < ArryStrTime.Length; i++)
                                {
                                    if (Convert.ToInt64(StrTime.Replace(":", "").ToString()) <= Convert.ToInt64(ArryStrTime[i].ToString().Replace(":", "").ToString()))
                                    {
                                        StrNextTime = ArryStrTime[i].ToString();
                                    }
                                }
                            }
                            if (StrNextTime != "")
                            {
                                if (StrAddDay == "1")
                                {
                                    StrSql_Update = $@"update C_INTERFACE set last_run_date=next_run_date,next_run_date=TO_DATE(TO_CHAR(SYSDATE+1,'YYYY-MM-DD')||'{StrNextTime}','YYYY-MM-DD HH24:MI:SS') where program_name='{Program_Name}' and item_name='{Item_Name}' ";
                                }
                                else
                                {
                                    StrSql_Update = $@"update C_INTERFACE set last_run_date=next_run_date,next_run_date=TO_DATE(TO_CHAR(SYSDATE,'YYYY-MM-DD')||'{StrNextTime}','YYYY-MM-DD HH24:MI:SS') where program_name='{Program_Name}' and item_name='{Item_Name}' ";
                                }
                            }
                            DB.ExecSQL(StrSql_Update);
                        }
                    }
                }
                ListInterface = GetInterfaceStatus(BU, IP, Program_Name, Item_Name, Emp_No, DB, DBType);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            return(ListInterface);
        }
Ejemplo n.º 21
0
        public string EditWoText(string EditSql, OleExec DB, DB_TYPE_ENUM DBType)
        {
            string ReturnMsg = DB.ExecSQL(EditSql);

            return(ReturnMsg);
        }
Ejemplo n.º 22
0
        public static string GetNextSN(string RuleName, OleExec DB, string WO)
        {
            Row_C_SN_RULE root = null;
            List <Row_C_SN_RULE_DETAIL> detail = null;

            if (_Root.ContainsKey(RuleName))
            {
                root = _Root[RuleName];
            }
            else
            {
                T_C_SN_RULE TCSR = new T_C_SN_RULE(DB, MESDataObject.DB_TYPE_ENUM.Oracle);
                root = TCSR.GetDataByName(RuleName, DB);
                _Root.Add(RuleName, root);
            }

            if (_Detail.ContainsKey(RuleName))
            {
                detail = _Detail[RuleName];
            }
            else
            {
                T_C_SN_RULE_DETAIL TCSRD = new T_C_SN_RULE_DETAIL(DB, MESDataObject.DB_TYPE_ENUM.Oracle);
                detail = TCSRD.GetDataByRuleID(root.ID, DB);
                _Detail.Add(RuleName, detail);
            }
            string SN        = "";
            bool   ResetFlag = false;

            for (int i = 0; i < detail.Count; i++)
            {
                detail[i].LockMe(DB);
                if (detail[i].INPUTTYPE == "PREFIX")
                {
                    SN += detail[i].CURVALUE;
                }
                else if (detail[i].INPUTTYPE == "YYYY" || detail[i].INPUTTYPE == "MM" || detail[i].INPUTTYPE == "DD")
                {
                    string codeType = detail[i].CODETYPE;
                    List <Row_C_CODE_MAPPING> CodeMapping = null;
                    if (_CodeMapping.ContainsKey(codeType))
                    {
                        CodeMapping = _CodeMapping[codeType];
                    }
                    else
                    {
                        T_C_CODE_MAPPING TCCM = new T_C_CODE_MAPPING(DB, DB_TYPE_ENUM.Oracle);
                        CodeMapping = TCCM.GetDataByName(codeType, DB);
                        if (CodeMapping != null)
                        {
                            _CodeMapping.Add(codeType, CodeMapping);
                        }
                    }
                    string VALUE = null;
                    switch (detail[i].INPUTTYPE)
                    {
                    case "YYYY":
                        VALUE = DateTime.Now.Year.ToString();
                        break;

                    case "MM":
                        VALUE = DateTime.Now.Month.ToString();
                        break;

                    case "DD":
                        VALUE = DateTime.Now.Day.ToString();
                        break;
                    }


                    Row_C_CODE_MAPPING TAG = CodeMapping.Find(T => T.VALUE == VALUE);
                    if (detail[i].CURVALUE != TAG.CODEVALUE)
                    {
                        detail[i].CURVALUE = TAG.CODEVALUE;
                        if (detail[i].RESETSN_FLAG == 1)
                        {
                            ResetFlag = true;
                        }
                    }
                    SN += detail[i].CURVALUE;
                }
                else if (detail[i].INPUTTYPE == "WK")
                {
                    string wk        = detail[i].CODETYPE;
                    string sql       = $@"SELECT TO_CHAR(SYSDATE,'{wk}') FROM DUAL";
                    string currentWK = (string)DB.ExecSelectOneValue(sql);
                    SN += currentWK;
                }
                else if (detail[i].INPUTTYPE == "SQL")
                {
                    string sql = detail[i].CURVALUE;
                    sql = sql.Replace("{WO}", WO);
                    string value = (string)DB.ExecSelectOneValue(sql);
                    SN += value;
                }
                else if (detail[i].INPUTTYPE == "SN")
                {
                    if (ResetFlag)
                    {
                        detail[i].VALUE10 = detail[i].RESETVALUE;
                    }
                    string codeType = detail[i].CODETYPE;
                    List <Row_C_CODE_MAPPING> CodeMapping = null;
                    if (_CodeMapping.ContainsKey(codeType))
                    {
                        CodeMapping = _CodeMapping[codeType];
                    }
                    else
                    {
                        T_C_CODE_MAPPING TCCM = new T_C_CODE_MAPPING(DB, DB_TYPE_ENUM.Oracle);
                        CodeMapping = TCCM.GetDataByName(codeType, DB);
                        if (CodeMapping != null)
                        {
                            _CodeMapping.Add(codeType, CodeMapping);
                        }
                    }
                    int curValue = int.Parse(detail[i].VALUE10);
                    curValue++;
                    detail[i].VALUE10 = curValue.ToString();
                    int    T  = CodeMapping.Count;
                    string sn = "";

                    while (curValue / T != 0)
                    {
                        int R = curValue % T;
                        sn       = CodeMapping[R].CODEVALUE + sn;
                        curValue = curValue / T;
                    }
                    sn = CodeMapping[curValue].CODEVALUE + sn;
                    if (sn.Length < detail[i].CURVALUE.Length)
                    {
                        for (int k = 0; detail[i].CURVALUE.Length != sn.Length; k++)
                        {
                            sn = "0" + sn;
                        }
                    }
                    if (sn.Length > detail[i].CURVALUE.Length)
                    {
                        throw new Exception("生成的SN超過最大值!");
                    }

                    detail[i].CURVALUE = sn;
                    SN += detail[i].CURVALUE;
                }
                int T1 = 0;
                detail[i].EDIT_TIME = DateTime.Now;
                string ret = DB.ExecSQL(detail[i].GetUpdateString(DB_TYPE_ENUM.Oracle));
                if (!Int32.TryParse(ret, out T1))
                {
                    throw new Exception("更新序列值出錯!" + ret);
                }
            }
            int T2 = 0;

            root.CURVALUE = SN;
            string ret1 = DB.ExecSQL(root.GetUpdateString(DB_TYPE_ENUM.Oracle));

            if (!Int32.TryParse(ret1, out T2))
            {
                throw new Exception("更新序列值出錯!" + ret1);
            }
            return(SN);
        }
Ejemplo n.º 23
0
        /// <summary>
        /// 創建新用戶
        /// </summary>
        /// <param name="requestValue"></param>
        /// <param name="Data"></param>
        /// <param name="StationReturn"></param>
        public void RegisterNewUser(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            OleExec  sfcdb = null;
            T_c_user USER;

            try
            {
                sfcdb = this.DBPools["SFCDB"].Borrow();
                USER  = new T_c_user(sfcdb, DBTYPE);
                Row_c_user UserRow = (Row_c_user)USER.NewRow();
                UserRow.ID                   = USER.GetNewID(BU, sfcdb);
                UserRow.FACTORY              = Data["FACTORY"].ToString();
                UserRow.BU_NAME              = Data["BU_NAME"].ToString();
                UserRow.EMP_NO               = Data["EMP_NO"].ToString();
                UserRow.EMP_PASSWORD         = Data["EMP_PASSWORD"].ToString();
                UserRow.EMP_NAME             = Data["EMP_NAME"].ToString();
                UserRow.EMP_LEVEL            = "0";//Data["EMP_LEVEL"].ToString();///創建用戶默認全部為普通用戶 0表示普通用戶,1表示可編輯本部門角色權限的用戶,9表示後台管理,能操作權限相關的任何動作
                UserRow.DPT_NAME             = Data["DPT_NAME"].ToString();
                UserRow.POSITION_NAME        = Data["POSITION_NAME"].ToString();
                UserRow.MAIL_ADDRESS         = Data["MAIL_ADDRESS"].ToString().ToLower();
                UserRow.PHONE_NUMBER         = Data["PHONE_NUMBER"].ToString();
                UserRow.LOCATION             = Data["LOCATION"].ToString();
                UserRow.LOCK_FLAG            = "N";
                UserRow.AGENT_EMP_NO         = Data["AGENT_EMP_NO"].ToString();
                UserRow.CHANGE_PASSWORD_TIME = GetDBDateTime();
                UserRow.EMP_DESC             = Data["EMP_DESC"].ToString();
                UserRow.EDIT_TIME            = GetDBDateTime();
                UserRow.EDIT_EMP             = Data["EMP_NO"].ToString();
                UserRow.EMP_EN_NAME          = Data["EMP_EN_NAME"].ToString();

                if (Data["FACTORY"].ToString() == null)
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                    StationReturn.Status  = StationReturnStatusValue.Fail;
                    StationReturn.Message = "";
                    return;
                }

                if (Data["BU_NAME"].ToString() == null)
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                    StationReturn.Status  = StationReturnStatusValue.Fail;
                    StationReturn.Message = "廠別為空";
                    return;
                }

                if (Data["EMP_NO"].ToString() == null)
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                    StationReturn.Status  = StationReturnStatusValue.Fail;
                    StationReturn.Message = "工號為空";
                    return;
                }
                if (Data["DPT_NAME"].ToString() == null)
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                    StationReturn.Status  = StationReturnStatusValue.Fail;
                    StationReturn.Message = "所屬部門";
                    return;
                }

                if (Data["EMP_NAME"].ToString() == null)
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                    StationReturn.Status  = StationReturnStatusValue.Fail;
                    StationReturn.Message = "員工姓名為空";
                    return;
                }

                ///CHECK 用戶密碼
                string STRPWD = USER.CheckPWD(Data["EMP_PASSWORD"].ToString(), sfcdb);
                if (STRPWD != "Pass")
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                    StationReturn.Status  = StationReturnStatusValue.Fail;
                    StationReturn.Message = STRPWD;
                    return;
                }

                /// CHECK EMAIL地址
                string STRMAIL = USER.CheckMail(Data["MAIL_ADDRESS"].ToString().ToLower(), sfcdb);
                if (STRMAIL != "Pass")
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                    StationReturn.Status  = StationReturnStatusValue.Fail;
                    StationReturn.Message = STRMAIL;
                    return;
                }

                ///CHECK 電話號碼
                if (!USER.CheckPhone(Data["PHONE_NUMBER"].ToString(), sfcdb))
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                    StationReturn.Status  = StationReturnStatusValue.Fail;
                    StationReturn.Message = "电话号码填寫格式不正確";
                    return;
                }

                DataTable userstr = new DataTable();
                userstr = USER.SelectC_Userbyempno(UserRow.EMP_NO, sfcdb, this.DBTYPE);
                if (userstr.Rows.Count != 0)
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                    StationReturn.Status      = StationReturnStatusValue.Fail;
                    StationReturn.MessageCode = "MES00000012";
                    this.DBPools["SFCDB"].Return(sfcdb);
                }
                else
                {
                    string strRet = sfcdb.ExecSQL(UserRow.GetInsertString(this.DBTYPE));

                    if (strRet == "1")
                    {
                        StationReturn.Status      = StationReturnStatusValue.Pass;
                        StationReturn.MessageCode = "MES00000013";
                        this.DBPools["SFCDB"].Return(sfcdb);
                    }
                    else
                    {
                        StationReturn.Status      = StationReturnStatusValue.Fail;
                        StationReturn.MessageCode = "MES00000014";
                        this.DBPools["SFCDB"].Return(sfcdb);
                    }
                }
            }
            catch (Exception e)
            {
                this.DBPools["SFCDB"].Return(sfcdb);
                throw e;
            }
        }
Ejemplo n.º 24
0
        /// <summary>
        /// 記錄良率
        /// </summary>
        /// <param name="WorkOrder"></param>
        /// <param name="SerialNo"></param>
        /// <param name="Status"></param>
        /// <param name="Day"></param>
        /// <param name="Time"></param>
        /// <param name="Line"></param>
        /// <param name="Station"></param>
        /// <param name="EmpNo"></param>
        /// <param name="Bu"></param>
        /// <param name="DB"></param>
        /// <returns></returns>
        public string RecordTCQSYieldRate(R_TCQS_YIELD_RATE_DETAIL RTYRD, string SerialNo, string Bu, OleExec DB)
        {
            string    result = string.Empty;
            string    sql    = string.Empty;
            DataTable dt     = new DataTable();
            T_R_TCQS_YIELD_RATE_DETAIL   TRTYRD = null;
            Row_R_TCQS_YIELD_RATE_DETAIL RRTYRD = null;
            T_R_TMP_ATEDATA_T            TRTAT  = null;
            Row_R_TMP_ATEDATA_T          RRTAT  = null;
            T_R_SN_DETAIL   TRSD = null;
            Row_R_SN_DETAIL RRSD = null;

            if (this.DBType == DB_TYPE_ENUM.Oracle)
            {
                //更新R_TCQS_YIELD_RATE_DETAIL
                TRTYRD = new T_R_TCQS_YIELD_RATE_DETAIL(DB, this.DBType);
                RRTYRD = (Row_R_TCQS_YIELD_RATE_DETAIL)TRTYRD.NewRow();
                sql    = $@"Select * From R_TCQS_YIELD_RATE_DETAIL 
                       Where WORK_DATE='{RTYRD.WORK_DATE}' and Work_Time='{RTYRD.WORK_TIME}' and 
                             PRODUCTION_LINE='{RTYRD.PRODUCTION_LINE}' and CLASS_NAME='{RTYRD.CLASS_NAME}' and 
                             STATION_NAME='{RTYRD.STATION_NAME}' and 
                             DEVICE_NAME='{RTYRD.DEVICE_NAME}' and WORKORDERNO='{RTYRD.WORKORDERNO}' ";
                dt     = DB.ExecSelect(sql).Tables[0];
                //如果記錄已經存在
                if (dt.Rows.Count > 0)
                {
                    RRTYRD.loadData(dt.Rows[0]);
                    RRTYRD.TOTAL_FRESH_BUILD_QTY  += RTYRD.TOTAL_FRESH_BUILD_QTY;
                    RRTYRD.TOTAL_FRESH_PASS_QTY   += RTYRD.TOTAL_FRESH_PASS_QTY;
                    RRTYRD.TOTAL_FRESH_FAIL_QTY   += RTYRD.TOTAL_FRESH_FAIL_QTY;
                    RRTYRD.TOTAL_REWORK_BUILD_QTY += RTYRD.TOTAL_REWORK_BUILD_QTY;
                    RRTYRD.TOTAL_REWORK_PASS_QTY  += RTYRD.TOTAL_REWORK_PASS_QTY;
                    RRTYRD.TOTAL_REWORK_FAIL_QTY  += RTYRD.TOTAL_REWORK_FAIL_QTY;
                    RRTYRD.TCQS_FRESH_BUILD_QTY   += RTYRD.TCQS_FRESH_BUILD_QTY;
                    RRTYRD.TCQS_FRESH_PASS_QTY    += RTYRD.TCQS_FRESH_PASS_QTY;
                    RRTYRD.TCQS_FRESH_FAIL_QTY    += RTYRD.TCQS_FRESH_FAIL_QTY;
                    RRTYRD.TCQS_REWORK_BUILD_QTY  += RTYRD.TCQS_REWORK_BUILD_QTY;
                    RRTYRD.TCQS_REWORK_PASS_QTY   += RTYRD.TCQS_REWORK_PASS_QTY;
                    RRTYRD.TCQS_REWORK_FAIL_QTY   += RTYRD.TCQS_REWORK_FAIL_QTY;
                    RRTYRD.EDIT_EMP  = RTYRD.EDIT_EMP;
                    RRTYRD.EDIT_TIME = RTYRD.EDIT_TIME;
                    sql = RRTYRD.GetUpdateString(this.DBType);
                }
                else//記錄不存在,則Insert
                {
                    RRTYRD.ID                     = TRTYRD.GetNewID(Bu, DB);
                    RRTYRD.WORK_DATE              = RTYRD.WORK_DATE;
                    RRTYRD.WORK_TIME              = RTYRD.WORK_TIME;
                    RRTYRD.PRODUCTION_LINE        = RTYRD.PRODUCTION_LINE;
                    RRTYRD.CLASS_NAME             = RTYRD.CLASS_NAME;
                    RRTYRD.STATION_NAME           = RTYRD.STATION_NAME;
                    RRTYRD.DEVICE_NAME            = RTYRD.DEVICE_NAME;
                    RRTYRD.WORKORDERNO            = RTYRD.WORKORDERNO;
                    RRTYRD.SKUNO                  = RTYRD.SKUNO;
                    RRTYRD.SKU_NAME               = RTYRD.SKU_NAME;
                    RRTYRD.SKU_SERIES             = RTYRD.SKU_SERIES;
                    RRTYRD.TOTAL_FRESH_BUILD_QTY  = RTYRD.TOTAL_FRESH_BUILD_QTY;
                    RRTYRD.TOTAL_FRESH_PASS_QTY   = RTYRD.TOTAL_FRESH_PASS_QTY;
                    RRTYRD.TOTAL_FRESH_FAIL_QTY   = RTYRD.TOTAL_FRESH_FAIL_QTY;
                    RRTYRD.TOTAL_REWORK_BUILD_QTY = RTYRD.TOTAL_REWORK_BUILD_QTY;
                    RRTYRD.TOTAL_REWORK_PASS_QTY  = RTYRD.TOTAL_REWORK_PASS_QTY;
                    RRTYRD.TOTAL_REWORK_FAIL_QTY  = RTYRD.TOTAL_REWORK_FAIL_QTY;
                    RRTYRD.TCQS_FRESH_BUILD_QTY   = RTYRD.TCQS_FRESH_BUILD_QTY;
                    RRTYRD.TCQS_FRESH_PASS_QTY    = RTYRD.TCQS_FRESH_PASS_QTY;
                    RRTYRD.TCQS_FRESH_FAIL_QTY    = RTYRD.TCQS_FRESH_FAIL_QTY;
                    RRTYRD.TCQS_REWORK_BUILD_QTY  = RTYRD.TCQS_REWORK_BUILD_QTY;
                    RRTYRD.TCQS_REWORK_PASS_QTY   = RTYRD.TCQS_REWORK_PASS_QTY;
                    RRTYRD.TCQS_REWORK_FAIL_QTY   = RTYRD.TCQS_REWORK_FAIL_QTY;
                    RRTYRD.EDIT_EMP               = RTYRD.EDIT_EMP;
                    RRTYRD.EDIT_TIME              = RTYRD.EDIT_TIME;
                    sql = RRTYRD.GetInsertString(this.DBType);
                }
                try
                {
                    result = DB.ExecSQL(sql);
                    //如果數據更新成功,則返回數據更新的記錄數,如果為Begn...END返回為-1,可被 Int32.Parse 方法轉換成 int
                    if (Int32.Parse(result) < -1)
                    {
                        string errMsg = MESReturnMessage.GetMESReturnMessage("MES00000190", new string[] { "R_TCQS_YIELD_RATE_DETAIL" });
                        throw new MESReturnMessage(errMsg + ":" + result);
                    }
                }catch (Exception ee)//執行SQL異常
                {
                    string errMsg = MESReturnMessage.GetMESReturnMessage("MES00000190", new string[] { "R_TCQS_YIELD_RATE_DETAIL" });
                    throw new MESReturnMessage(errMsg + ":" + ee.Message);
                }
                //更新R_TMP_ATEDATA_T
                if (RTYRD.TOTAL_FRESH_BUILD_QTY + RTYRD.TOTAL_REWORK_BUILD_QTY > 0)//如果是過站處理,則刪除臨時表記錄
                {
                    sql = $@"Delete From R_TMP_ATEDATA_T Where SN='{SerialNo}' and Station_Name='{RTYRD.STATION_NAME}' ";
                }
                else
                {
                    TRTAT = new T_R_TMP_ATEDATA_T(DB, this.DBType);
                    RRTAT = (Row_R_TMP_ATEDATA_T)TRTAT.NewRow();
                    sql   = $@"SELECT * FROM r_tmp_atedata_t
                           WHERE Station_Name = '{RTYRD.STATION_NAME}' AND SN = '{SerialNo}' ";
                    dt    = DB.ExecSelect(sql).Tables[0];
                    //如果記錄已經存在,則Update
                    if (dt.Rows.Count > 0)
                    {
                        RRTAT.loadData(dt.Rows[0]);
                        RRTAT.DEVICE_NAME  = RTYRD.DEVICE_NAME;
                        RRTAT.PASS_COUNT   = RRTAT.PASS_COUNT + RTYRD.TCQS_FRESH_PASS_QTY + RTYRD.TCQS_REWORK_PASS_QTY;
                        RRTAT.RETEST_COUNT = RRTAT.RETEST_COUNT + RTYRD.TCQS_FRESH_FAIL_QTY + RTYRD.TCQS_REWORK_FAIL_QTY;
                        sql = RRTAT.GetUpdateString(this.DBType);
                    }
                    else //記錄不存在則Insert
                    {
                        RRTAT.ID              = TRTAT.GetNewID(Bu, DB);
                        RRTAT.WORKORDERNO     = RTYRD.WORKORDERNO;
                        RRTAT.SKUNO           = RTYRD.SKUNO;
                        RRTAT.SN              = SerialNo;
                        RRTAT.PRODUCTION_LINE = RTYRD.PRODUCTION_LINE;
                        RRTAT.SECTION_NAME    = "1";
                        RRTAT.STATION_NAME    = RTYRD.STATION_NAME;
                        RRTAT.DEVICE_NAME     = RTYRD.DEVICE_NAME;
                        RRTAT.PASS_COUNT      = RTYRD.TCQS_FRESH_PASS_QTY + RTYRD.TCQS_REWORK_PASS_QTY;
                        RRTAT.RETEST_COUNT    = RTYRD.TCQS_FRESH_FAIL_QTY + RTYRD.TCQS_REWORK_FAIL_QTY;
                        RRTAT.EDIT_EMP        = RTYRD.EDIT_EMP;
                        RRTAT.EDIT_TIME       = RTYRD.EDIT_TIME;
                        sql = RRTYRD.GetInsertString(this.DBType);
                    }
                }
                try
                {
                    result = DB.ExecSQL(sql);
                    //如果數據更新成功,則返回數據更新的記錄數,如果為Begn...END返回為-1,可被 Int32.Parse 方法轉換成 int
                    if (Int32.Parse(result) < -1)
                    {
                        string errMsg = MESReturnMessage.GetMESReturnMessage("MES00000190", new string[] { "R_TMP_ATEDATA_T" });
                        throw new MESReturnMessage(errMsg + ":" + result);
                    }
                }
                catch (Exception ee)//執行SQL異常
                {
                    string errMsg = MESReturnMessage.GetMESReturnMessage("MES00000190", new string[] { "R_TMP_ATEDATA_T" });
                    throw new MESReturnMessage(errMsg + ":" + ee.Message);
                }
                //更新R_SN_DETAIL
                TRSD              = new T_R_SN_DETAIL(DB, this.DBType);
                RRSD              = (Row_R_SN_DETAIL)TRSD.NewRow();
                RRSD.ID           = TRSD.GetNewID(Bu, DB);
                RRSD.SN           = SerialNo;
                RRSD.SKUNO        = RTYRD.SKUNO;
                RRSD.WORKORDERNO  = RTYRD.WORKORDERNO;
                RRSD.LINE         = RTYRD.PRODUCTION_LINE;
                RRSD.STATION_NAME = RTYRD.STATION_NAME;
                RRSD.DEVICE_NAME  = RTYRD.DEVICE_NAME;
                RRSD.CLASS_NAME   = RTYRD.CLASS_NAME;
                //如果以PASS過站,則Flag=1
                if (RTYRD.TOTAL_FRESH_PASS_QTY + RTYRD.TOTAL_REWORK_PASS_QTY > 0)
                {
                    RRSD.RESULT_FLAG = "1";
                }
                else if (RTYRD.TOTAL_FRESH_FAIL_QTY + RTYRD.TOTAL_REWORK_FAIL_QTY > 0) //如果以Fail進維修,則Flag=0
                {
                    RRSD.RESULT_FLAG = "0";
                }
                else if (RTYRD.TCQS_FRESH_PASS_QTY + RTYRD.TCQS_REWORK_PASS_QTY > 0)//如果PASS但不過站,則Flag=2
                {
                    RRSD.RESULT_FLAG = "2";
                }
                else//如果FAIL但不過站,則Flag=3
                {
                    RRSD.RESULT_FLAG = "3";
                }
                RRSD.EDIT_EMP  = RTYRD.EDIT_EMP;
                RRSD.EDIT_TIME = RTYRD.EDIT_TIME;
                sql            = RRSD.GetInsertString(this.DBType);
                try
                {
                    result = DB.ExecSQL(sql);
                    //如果數據更新成功,則返回數據更新的記錄數,如果為Begn...END返回為-1,可被 Int32.Parse 方法轉換成 int
                    if (Int32.Parse(result) < -1)
                    {
                        string errMsg = MESReturnMessage.GetMESReturnMessage("MES00000190", new string[] { "R_SN_DETAIL" });
                        throw new MESReturnMessage(errMsg + ":" + result);
                    }
                }
                catch (Exception ee)//執行SQL異常
                {
                    string errMsg = MESReturnMessage.GetMESReturnMessage("MES00000190", new string[] { "R_SN_DETAIL" });
                    throw new MESReturnMessage(errMsg + ":" + ee.Message);
                }
                return(result);
            }
            else
            {
                string errMsg = MESReturnMessage.GetMESReturnMessage("MES00000019", new string[] { DBType.ToString() });
                throw new MESReturnMessage(errMsg);
            }
        }
Ejemplo n.º 25
0
        /// <summary>
        /// Delete Expand Info by id and seq_no
        /// <param name="db"></param>
        /// <param name="id"></param>
        /// <param name="seq_no"></param>
        /// <returns></returns>
        public string DeleteExpandInfo(OleExec db, string id, int seq_no)
        {
            string sql = $@"delete {this.TableName} where id='{id}' and seq_no={seq_no}";

            return(db.ExecSQL(sql));
        }
Ejemplo n.º 26
0
        public void DoJobStockGT(JObject requestValue, JObject Data, MESStationReturn StationReturn)
        {
            OleExec SFCDB = DBPools["SFCDB"].Borrow();

            try
            {
                ZRFC_SFC_NSG_0020 zrfc_sfc_nsg_0020 = new ZRFC_SFC_NSG_0020(this.BU);
                string            lockIp            = "";
                string            postDate;
                string            o_flag     = "";
                string            o_flag1    = "";
                string            o_flag2    = "";
                string            o_message  = "";
                string            o_message1 = "";
                string            o_message2 = "";
                bool           IsRuning      = false;
                Row_R_STOCK_GT rowStockGT;
                DataTable      table = new DataTable();
                SFCDB.ThrowSqlExeception = true;
                T_R_SYNC_LOCK t_r_sync_lock = new T_R_SYNC_LOCK(SFCDB, DB_TYPE_ENUM.Oracle);
                T_R_STOCK_GT  t_r_stock_gt  = new T_R_STOCK_GT(SFCDB, DB_TYPE_ENUM.Oracle);
                T_R_STOCK     t_r_stock     = new T_R_STOCK(SFCDB, DB_TYPE_ENUM.Oracle);

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

                IsRuning = t_r_sync_lock.IsLock("JOBSTOCKGT", SFCDB, DB_TYPE_ENUM.Oracle, out lockIp);
                if (IsRuning)
                {
                    //throw new Exception("JOBSTOCKGT interface is running on " + lockIp + ",Please try again later");
                    throw new Exception(MESReturnMessage.GetMESReturnMessage("MSGCODE20180803152222", new string[] { lockIp }));
                }
                t_r_sync_lock.SYNC_Lock(BU, this.IP, "JOBSTOCKGT", "JOBSTOCKGT", this.LoginUser.EMP_NO, SFCDB, DB_TYPE_ENUM.Oracle);

                List <R_STOCK_GT> GTList = t_r_stock_gt.GetNotGTListByConfirmedFlag("0", SFCDB);

                postDate = Interface.GetPostDate(SFCDB);

                if (GTList != null && GTList.Count > 0)
                {
                    foreach (R_STOCK_GT r_stock_gt in GTList)
                    {
                        rowStockGT = null;
                        zrfc_sfc_nsg_0020.SetValue("I_AUFNR", r_stock_gt.WORKORDERNO);
                        zrfc_sfc_nsg_0020.SetValue("I_BUDAT", postDate);
                        zrfc_sfc_nsg_0020.SetValue("I_FLAG", r_stock_gt.CONFIRMED_FLAG);
                        zrfc_sfc_nsg_0020.SetValue("I_LGORT_TO", r_stock_gt.TO_STORAGE);
                        zrfc_sfc_nsg_0020.SetValue("I_LMNGA", r_stock_gt.TOTAL_QTY.ToString());
                        zrfc_sfc_nsg_0020.SetValue("I_STATION", r_stock_gt.SAP_STATION_CODE);
                        try
                        {
                            // zrfc_sfc_nsg_0020 中包含三個動作101,521,轉倉,flag,flag1,flag2 一次對應這三個動作
                            // flag,flag1,flag2 這幾個flag 0表示OK,1表示false
                            zrfc_sfc_nsg_0020.CallRFC();
                            o_flag     = zrfc_sfc_nsg_0020.GetValue("O_FLAG");
                            o_flag1    = zrfc_sfc_nsg_0020.GetValue("O_FLAG1");
                            o_flag2    = zrfc_sfc_nsg_0020.GetValue("O_FLAG2");
                            o_message  = zrfc_sfc_nsg_0020.GetValue("O_MESSAGE");
                            o_message1 = zrfc_sfc_nsg_0020.GetValue("O_MESSAGE1");
                            o_message2 = zrfc_sfc_nsg_0020.GetValue("O_MESSAGE2");

                            rowStockGT                = (Row_R_STOCK_GT)t_r_stock_gt.GetObjByID(r_stock_gt.ID, SFCDB);
                            rowStockGT.SAP_MESSAGE    = "101:" + o_message + ";521:" + o_message1 + ";311" + o_message2;
                            rowStockGT.BACKFLUSH_TIME = GetDBDateTime();
                            if (zrfc_sfc_nsg_0020.GetValue("O_FLAG") == "0")
                            {
                                rowStockGT.SAP_FLAG = "1";
                                t_r_stock.UpdateSapFlagByGTID(rowStockGT.ID, rowStockGT.SAP_FLAG, SFCDB);
                            }
                            else
                            {
                                rowStockGT.SAP_FLAG = "2";
                            }
                            SFCDB.ExecSQL(rowStockGT.GetUpdateString(DB_TYPE_ENUM.Oracle));
                        }
                        catch (Exception ex)
                        {
                            Interface.WriteIntoMESLog(SFCDB, BU, "MESStation", "MESStation.Interface.JobStockGT", "DoJobStockGT", r_stock_gt.WORKORDERNO + ";" + this.IP + ";" + ex.ToString(), "", this.LoginUser.EMP_NO);
                            r_stock_gt.SAP_FLAG = "2";
                        }
                    }
                }
                t_r_sync_lock.SYNC_UnLock(BU, this.IP, "JOBSTOCKGT", "JOBSTOCKGT", this.LoginUser.EMP_NO, SFCDB, DB_TYPE_ENUM.Oracle);
                if (SFCDB != null)
                {
                    DBPools["SFCDB"].Return(SFCDB);
                }
                StationReturn.Status = StationReturnStatusValue.Pass;
            }
            catch (Exception exception)
            {
                if (SFCDB != null)
                {
                    DBPools["SFCDB"].Return(SFCDB);
                }
                StationReturn.Status = StationReturnStatusValue.Fail;
                throw exception;
            }
        }
Ejemplo n.º 27
0
        public void ReMoveFromDB(OleExec sfcdb)
        {
            string strSql = $@"delete from C_KP_List_Item_Detail where ID = '{value.ID}'";

            sfcdb.ExecSQL(strSql);
        }
Ejemplo n.º 28
0
        /// <summary>
        /// Excel導入多語言數據
        /// </summary>
        /// <param name="requestValue"></param>
        /// <param name="Data"></param>
        /// <param name="StationReturn"></param>
        public void ExcelImport(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            OleExec               sfcdb = null;
            T_C_LANGUAGE_PAGE     language;
            string                InsertSql    = "";
            string                repeat       = "";
            string                Fail         = "";
            string                IsNull       = "";
            string                Messaeg      = "";
            string                LabelName    = "";
            string                ChineseTW    = "";
            string                Chinese      = "";
            string                English      = "";
            string                PageName     = "";
            List <C_LanguagePage> LanguagePage = JsonConvert.DeserializeObject <List <C_LanguagePage> >(Data["jsond"].ToString());

            sfcdb = this.DBPools["SFCDB"].Borrow();
            for (int i = 0; i < LanguagePage.Count; i++)
            {
                try {
                    PageName  = LanguagePage[i].PageName.ToString().Trim();
                    LabelName = LanguagePage[i].labelName.ToString().Trim();
                    ChineseTW = LanguagePage[i].ChineseTW.ToString().Trim();
                    Chinese   = LanguagePage[i].Chinese.ToString().Trim();
                    English   = LanguagePage[i].English.ToString().Trim();
                }
                catch (Exception e) {
                    IsNull = IsNull + LabelName + ",";
                }

                try
                {
                    language = new T_C_LANGUAGE_PAGE(sfcdb, DBTYPE);
                    if (language.CheckDataExist(PageName, LabelName, sfcdb))
                    {
                        Row_C_LANGUAGE_PAGE row = (Row_C_LANGUAGE_PAGE)language.NewRow();
                        row.ID          = language.GetNewID(BU, sfcdb);
                        row.PAGE_NAME   = PageName;
                        row.LABEL_NAME  = LabelName;
                        row.CHINESE     = Chinese;
                        row.CHINESE_TW  = ChineseTW;
                        row.ENGLISH     = English;
                        row.EDIT_EMP    = LoginUser.EMP_NO;
                        row.SYSTEM_NAME = SystemName;
                        row.EDIT_TIME   = GetDBDateTime();
                        InsertSql       = row.GetInsertString(DBTYPE);
                        sfcdb.ExecSQL(InsertSql);
                        //StationReturn.Status = StationReturnStatusValue.Pass;
                        //StationReturn.MessageCode = "MES00000002";


                        //    StationReturn.MessagePara.Add("46545645674");
                    }
                    else
                    {
                        repeat = repeat + LabelName + ",";
                        //StationReturn.Status = StationReturnStatusValue.Fail;
                        //StationReturn.MessageCode = "MES00000005";
                    }
                }
                catch (Exception e)
                {
                    Fail = Fail + LabelName + ",";
                    //this.DBPools["SFCDB"].Return(sfcdb);
                    //throw e;
                }
            }
            if (repeat != "")
            {
                Messaeg = Messaeg + "標籤名" + repeat + "已存在  ";
            }
            if (Fail != "")
            {
                Messaeg = Messaeg + "標籤名" + Fail + "導入失敗  ";
            }
            if (IsNull != "")
            {
                Messaeg = Messaeg + "標籤名" + Fail + "數據為空  ";
            }
            if (Messaeg == "")
            {
                StationReturn.Status      = StationReturnStatusValue.Pass;
                StationReturn.MessageCode = "MES00000002";
            }
            else
            {
                StationReturn.Status  = StationReturnStatusValue.Fail;
                StationReturn.Message = Messaeg;
            }
            this.DBPools["SFCDB"].Return(sfcdb);
        }
Ejemplo n.º 29
0
        public void ModifyWORange(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            T_R_WO_REGION rWo   = null;
            OleExec       sfcdb = null;

            try
            {
                sfcdb = this.DBPools["SFCDB"].Borrow();
                rWo   = new T_R_WO_REGION(sfcdb, DB_TYPE_ENUM.Oracle);
                Row_R_WO_REGION r         = (Row_R_WO_REGION)rWo.NewRow();
                T_R_WO_BASE     StWoBase  = new T_R_WO_BASE(sfcdb, DB_TYPE_ENUM.Oracle);
                T_C_SKU         t_c_sku   = new T_C_SKU(sfcdb, DB_TYPE_ENUM.Oracle);
                Row_R_WO_BASE   RowWoBase = null;
                RowWoBase = StWoBase.GetWo((Data["WORKORDERNO"].ToString()).Trim(), sfcdb);

                string minSN    = (Data["MIN_SN"].ToString()).Trim();
                string maxSN    = (Data["MAX_SN"].ToString()).Trim();
                string checkOut = "";
                if (!rWo.InputIsStringOrNum(minSN, out checkOut))
                {
                    StationReturn.MessageCode = "MES00000258";
                    StationReturn.Status      = StationReturnStatusValue.Fail;
                    StationReturn.Data        = "";
                    return;
                }
                if (!rWo.InputIsStringOrNum(maxSN, out checkOut))
                {
                    StationReturn.MessageCode = "MES00000258";
                    StationReturn.Status      = StationReturnStatusValue.Fail;
                    StationReturn.Data        = "";
                    return;
                }
                C_SKU objectSku = t_c_sku.GetSku(RowWoBase.SKUNO, sfcdb, DB_TYPE_ENUM.Oracle).GetDataObject();
                if (!rWo.InputIsMatchSkuRule(minSN, objectSku))
                {
                    StationReturn.MessageCode = "MES00000259";
                    StationReturn.Status      = StationReturnStatusValue.Fail;
                    StationReturn.Data        = "";
                    return;
                }
                if (!rWo.InputIsMatchSkuRule(maxSN, objectSku))
                {
                    StationReturn.MessageCode = "MES00000259";
                    StationReturn.Status      = StationReturnStatusValue.Fail;
                    StationReturn.Data        = "";
                    return;
                }

                r             = (Row_R_WO_REGION)rWo.GetObjByID(Data["ID"].ToString(), sfcdb, DB_TYPE_ENUM.Oracle);
                r.ID          = (Data["ID"].ToString()).Trim();
                r.WORKORDERNO = (Data["WORKORDERNO"].ToString()).Trim();
                r.SKUNO       = RowWoBase.SKUNO;
                r.QTY         = RowWoBase.WORKORDER_QTY;
                //r.SKUNO = (Data["SKUNO"].ToString()).Trim();
                //r.QTY = int.Parse(Data["QTY"].ToString());
                r.MIN_SN    = minSN;
                r.MAX_SN    = maxSN;
                r.EDIT_EMP  = LoginUser.EMP_NO;
                r.EDIT_TIME = GetDBDateTime();
                string strRet = sfcdb.ExecSQL(r.GetUpdateString(DB_TYPE_ENUM.Oracle));
                if (Convert.ToInt32(strRet) > 0)
                {
                    StationReturn.MessageCode = "MES00000003";
                    StationReturn.Status      = StationReturnStatusValue.Pass;
                    StationReturn.Data        = "";
                }
                else
                {
                    StationReturn.MessageCode = "MES00000036";
                    StationReturn.Status      = StationReturnStatusValue.Fail;
                    StationReturn.Data        = "";
                }
                this.DBPools["SFCDB"].Return(sfcdb);
            }
            catch (Exception e)
            {
                this.DBPools["SFCDB"].Return(sfcdb);
                throw e;
            }
        }
Ejemplo n.º 30
0
        public void UpdateCustomer(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            string         strbu             = BU;
            string         id                = Data["CUSTOMER_ID"].ToString().Trim();
            string         new_customer_name = Data["NEW_CUSTOMER_NAME"].ToString().Trim();
            string         description       = Data["DESCRIPTION"].ToString().Trim();
            OleExec        oleDB             = null;
            T_C_CUSTOMER   customer          = null;
            Row_C_CUSTOMER customerRow       = null;

            if (string.IsNullOrEmpty(id))
            {
                StationReturn.Status      = StationReturnStatusValue.Fail;
                StationReturn.MessageCode = "MES00000006";
                StationReturn.MessagePara.Add("CUSTOMER ID");
                StationReturn.Data = "";
                return;
            }
            if (string.IsNullOrEmpty(description))
            {
                StationReturn.Status      = StationReturnStatusValue.Fail;
                StationReturn.MessageCode = "MES00000006";
                StationReturn.MessagePara.Add("DESCRIPTION");
                StationReturn.Data = "";
                return;
            }
            try
            {
                oleDB       = this.DBPools["SFCDB"].Borrow();
                customer    = new T_C_CUSTOMER(oleDB, DBTYPE);
                customerRow = (Row_C_CUSTOMER)customer.NewRow();
                if (!customer.CustomerIsExist(oleDB, id))
                {
                    StationReturn.Status      = StationReturnStatusValue.Fail;
                    StationReturn.MessageCode = "MES00000007";
                    StationReturn.Data        = "";
                }
                else if (!string.IsNullOrEmpty(new_customer_name) && customer.CustomerIsExist(oleDB, strbu, new_customer_name))
                {
                    StationReturn.Status      = StationReturnStatusValue.Fail;
                    StationReturn.MessageCode = "MES00000008";
                    StationReturn.MessagePara.Add(new_customer_name);
                    StationReturn.Data = "";
                }
                else
                {
                    customerRow = (Row_C_CUSTOMER)customer.GetObjByID(id, oleDB, DBTYPE);
                    if (!string.IsNullOrEmpty(new_customer_name))
                    {
                        customerRow.CUSTOMER_NAME = new_customer_name;
                    }
                    if (!string.IsNullOrEmpty(description))
                    {
                        customerRow.DESCRIPTION = description;
                    }
                    oleDB.ThrowSqlExeception = true;
                    oleDB.ExecSQL(customerRow.GetUpdateString(DBTYPE));
                    StationReturn.Status      = StationReturnStatusValue.Pass;
                    StationReturn.MessageCode = "MES00000003";
                    StationReturn.Data        = "";
                }
                this.DBPools["SFCDB"].Return(oleDB);
            }
            catch (Exception exception)
            {
                this.DBPools["SFCDB"].Return(oleDB);
                throw exception;
            }
        }