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; }
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); }