コード例 #1
0
ファイル: StartPackno.cs プロジェクト: maoyongjun/cloudMESTJ
        public void startPackno(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            //通过工单的数量和包规来生成箱号

            OleExec   Sfcdb     = this.DBPools["SFCDB"].Borrow();
            string    packType  = Data["packType"].ToString();
            string    wo        = Data["wo"].ToString();
            WorkOrder workorder = new WorkOrder();

            workorder.Init(wo, Sfcdb);

            T_C_PACKING t_C_PACKING = new T_C_PACKING(Sfcdb, DBTYPE);
            C_PACKING   c_PACKING   = t_C_PACKING.GetPackingBySkuAndType(workorder.SkuNO, packType, Sfcdb);
            double?     qty         = c_PACKING.MAX_QTY;

            int         packs       = (int)(workorder.WORKORDER_QTY / qty);
            string      ruleName    = c_PACKING.SN_RULE;
            T_R_PACKING t_r_packing = new T_R_PACKING(Sfcdb, DBTYPE);

            int remainQty = 0;

            if (packs * qty < workorder.WORKORDER_QTY)
            {
                remainQty = (int)(workorder.WORKORDER_QTY - packs * qty);
                packs     = packs + 1;
            }
            for (int i = 0; i < packs; i++)
            {
                string nextpackno = SNmaker.GetNextSN(ruleName, Sfcdb);
                System.Console.WriteLine(nextpackno);
                Row_R_PACKING row_r_packing = (Row_R_PACKING)t_r_packing.NewRow();

                row_r_packing.IP          = this.IP;
                row_r_packing.STATION     = "STARTPARTNO";
                row_r_packing.LINE        = "LINE0";
                row_r_packing.EDIT_EMP    = this.LoginUser.EMP_NO;
                row_r_packing.EDIT_TIME   = DateTime.Now;
                row_r_packing.CREATE_TIME = DateTime.Now;
                row_r_packing.CLOSED_FLAG = "0";
                row_r_packing.QTY         = 0;
                if (packs == i && remainQty > 0)
                {
                    row_r_packing.MAX_QTY = remainQty;
                }
                else
                {
                    row_r_packing.MAX_QTY = qty;
                }
                row_r_packing.SKUNO          = workorder.SkuNO;
                row_r_packing.PARENT_PACK_ID = "";
                row_r_packing.PACK_TYPE      = packType;
                row_r_packing.PACK_NO        = nextpackno;
                row_r_packing.ID             = t_r_packing.GetNewID(this.BU, Sfcdb);

                Sfcdb.ExecSQL(row_r_packing.GetInsertString(DBTYPE));
            }


            StationReturn.Status = StationReturnStatusValue.Pass;
        }
コード例 #2
0
ファイル: PackingBase.cs プロジェクト: maoyongjun/cloudMESTJ
        public static Row_R_PACKING GetNewPacking(C_PACKING config, string line, string Station, string IP, string BU, string User, OleExec DB)
        {
            T_R_PACKING   TRP = new T_R_PACKING(DB, DB_TYPE_ENUM.Oracle);
            Row_R_PACKING RRP = (Row_R_PACKING)TRP.NewRow();

            RRP.PACK_NO        = SNMaker.SNmaker.GetNextSN(config.SN_RULE, DB);
            RRP.PACK_TYPE      = config.PACK_TYPE;
            RRP.PARENT_PACK_ID = "";
            RRP.SKUNO          = config.SKUNO;
            RRP.MAX_QTY        = config.MAX_QTY;
            RRP.QTY            = 0;
            RRP.CLOSED_FLAG    = "0";
            RRP.LINE           = line;
            RRP.STATION        = Station;
            RRP.ID             = TRP.GetNewID(BU, DB);
            RRP.IP             = IP;
            DB.ExecSQL(RRP.GetInsertString(DB_TYPE_ENUM.Oracle));
            RRP.AcceptChange();
            return(RRP);
        }