/// <summary> /// 保存非标准箱从质检区入库信息 /// </summary> /// <param name="strPalletNo">托盘条码号</param> /// <param name="strNextWareNo">目的库区编码</param> /// <param name="strNextWareLocatorNo">目的库位编码</param> /// <returns></returns> public bool SaveNoStandBoxInStockInfo(string strPalletNo, string strNextWareNo, string strNextWareLocatorNo) { bool ret = false; SqlTransaction trans = null; SCommBB commBB = new SCommBB(this.connection); BTallyBillBB tallyBillBB = new BTallyBillBB(this.connection); BArrangeBillBoxBB arrangeBillBoxBB = new BArrangeBillBoxBB(this.connection); BForkliftTaskBB forkliftTaskBB = new BForkliftTaskBB(this.connection); try { if (this.transaction == null) { trans = this.connection.BeginTransaction("TransSave"); this.tallyBillDetailBB.Transaction = trans; commBB.Transaction = trans; tallyBillBB.Transaction = trans; arrangeBillBoxBB.Transaction = trans; forkliftTaskBB.Transaction = trans; } else { this.tallyBillDetailBB.Transaction = this.transaction; commBB.Transaction = this.transaction; tallyBillBB.Transaction = this.transaction; arrangeBillBoxBB.Transaction = this.transaction; forkliftTaskBB.Transaction = this.transaction; } int mainId = 0; StringBuilder strSql = new StringBuilder(); DataTable dtArrangeBillBox = new DataTable(); BTallyBillData tallyBillModel = new BTallyBillData(); BTallyBillDetailData tallyBillDetailModel = new BTallyBillDetailData(); BForkliftTaskData forkliftTaskModel = new BForkliftTaskData(); //保存理货信息 tallyBillModel = new BTallyBillData(); tallyBillModel.palletNo = strPalletNo;//托盘条码号 tallyBillModel.isInStock = false;//是否入库 tallyBillModel.isrtDt = System.DateTime.Now.ToString();//添加时间 tallyBillModel.isrtEmpId = this.empId;//添加人 tallyBillModel.instantState = "02";//理货完成 mainId = tallyBillBB.AddRecord(tallyBillModel);//称重理货单ID赋值 dtArrangeBillBox = arrangeBillBoxBB.GetList("palletNo='" + strPalletNo + "' and isnull(wareNo,'')<>''").Tables[0]; foreach (DataRow row in dtArrangeBillBox.Rows) { //保存称重理货明细数据 tallyBillDetailModel = new BTallyBillDetailData(); tallyBillDetailModel.mainId = mainId.ToString();//称重理货单ID tallyBillDetailModel.region = "0";//区域ID tallyBillDetailModel.oldPalletNo = strPalletNo;//原托盘号 tallyBillDetailModel.boxNo = row["boxNo"].ToString();//箱号 tallyBillDetailModel.isrtDt = System.DateTime.Now.ToString();//添加时间 tallyBillDetailModel.isrtEmpId = this.empId;//添加人 tallyBillDetailBB.AddRecord(tallyBillDetailModel); } //生成叉车任务 if (dtArrangeBillBox.Rows.Count > 0) { forkliftTaskModel = new BForkliftTaskData(); forkliftTaskModel.taskType = "11";//任务类型为:从质检区到正式区 forkliftTaskModel.palletNo = strPalletNo;//托盘号 forkliftTaskModel.preWareNo = dtArrangeBillBox.Rows[0]["wareNo"].ToString();//源库区 forkliftTaskModel.preLocatorNo = dtArrangeBillBox.Rows[0]["wareLocatorNo"].ToString();//源库位 forkliftTaskModel.nextWareNo = strNextWareNo;//目的库区 forkliftTaskModel.nextLocatorNo = strNextWareLocatorNo;//目的库位 forkliftTaskModel.effectDt = System.DateTime.Now.ToString();//生效时间 forkliftTaskModel.isDeal = false;//是否处理 forkliftTaskBB.AddRecord(forkliftTaskModel); //更新目的库区占用状态 if (strNextWareLocatorNo != "") { //更改库位的使用状态 commBB.ExecuteSql("update dbo.LWareLocator set isUsing=1 where wareLocatorNo='" + strNextWareLocatorNo + "'"); } } if (this.transaction == null) trans.Commit(); ret = true; } catch (Exception ex) { if (this.transaction == null) trans.Rollback("TransSave"); throw ex; } finally { commBB.Dispose(); tallyBillBB.Dispose(); arrangeBillBoxBB.Dispose(); forkliftTaskBB.Dispose(); } return ret; }