/// <summary> /// 构造函数 /// </summary> /// <param name="connection">数据连接</param> public BForkliftTaskBC(SqlConnection connection) { this.connection = connection; this.forkliftTaskBB = new BForkliftTaskBB(this.connection); this.errorDiaryBB = new SErrorDiaryBB(this.connection); this.operatDiaryBB = new SOperatDiaryBB(this.connection); }
/// <summary> /// 构造函数 /// </summary> public BForkliftTaskBC() { this.selfConn = true; this.connection = new SqlConnection(HS.Config.SqlDataObject.GetSqlConnectionString); this.connection.Open(); this.forkliftTaskBB = new BForkliftTaskBB(this.connection); this.errorDiaryBB = new SErrorDiaryBB(this.connection); this.operatDiaryBB = new SOperatDiaryBB(this.connection); }
/// <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; }
//***************************************************************************** //do it later do it later do it later //***************************************************************************** /// <summary> /// 保存排托收货单信息 /// </summary> /// <param name="strArrangeBillNo">排托单号</param> /// <param name="strArriveBillNo">到货单号</param> /// <param name="strFinanceBillNos">采购订单编号组合</param> /// <param name="strPalletIndex">托盘序号</param> /// <param name="strPalletNo">托盘号</param> /// <param name="isrtEmpId">添加人</param> /// <param name="updtEmpId">修改人</param> /// <param name="strInstantState">状态:01 收货单,02 收货已完成</param> /// <returns></returns> public bool SaveRecord(string strArrangeBillNo, string strArriveBillNo,string strFinanceBillNos, string strPalletIndex, string strPalletNo, int isrtEmpId, int updtEmpId, string strInstantState) { bool ret = false; SqlTransaction trans = null; SCommBB commBB = new SCommBB(this.connection); BForkliftTaskBB forkliftTaskBB = new BForkliftTaskBB(this.connection); BArrangeBillBoxBB arrangeBillBoxBB = new BArrangeBillBoxBB(this.connection); try { if (this.transaction == null) { trans = this.connection.BeginTransaction("TransSave"); this.arrangeBillFactBB.Transaction = trans; commBB.Transaction = trans; forkliftTaskBB.Transaction = trans; arrangeBillBoxBB.Transaction = trans; } else { this.arrangeBillFactBB.Transaction = this.transaction; commBB.Transaction = this.transaction; forkliftTaskBB.Transaction = this.transaction; arrangeBillBoxBB.Transaction = this.transaction; } DataSet ds = new DataSet(); BArrangeBillFactData arrangeBillFactModel = new BArrangeBillFactData(); #region 维护排托收货单信息 foreach (string strFinanceBillNo in strFinanceBillNos.Split(',')) { //维护排托收货单信息 ds = arrangeBillFactBB.GetList("arrangeBillNo='" + strArrangeBillNo + "' and palletIndex='" + strPalletIndex + "' and financeBillNo='" + strFinanceBillNo + "'");//添加物料编号 if (ds.Tables[0].Rows.Count == 0) { arrangeBillFactModel = new BArrangeBillFactData(); arrangeBillFactModel.arrangeBillNo = strArrangeBillNo;//排托单号 arrangeBillFactModel.arriveBillNo = strArriveBillNo;//到货单号 arrangeBillFactModel.financeBillNo = strFinanceBillNo;//采购订单号 arrangeBillFactModel.palletIndex = strPalletIndex;//托盘序号 arrangeBillFactModel.palletNo = strPalletNo;//托盘条码号 arrangeBillFactModel.isTally = false;//是否已理货 arrangeBillFactModel.isrtEmpId = isrtEmpId;//添加人 arrangeBillFactModel.isrtDt = System.DateTime.Now.ToString();//添加时间 arrangeBillFactModel.instantState = strInstantState;//状态 arrangeBillFactBB.AddRecord(arrangeBillFactModel); } else { arrangeBillFactModel = arrangeBillFactBB.GetModel(Convert.ToInt32(ds.Tables[0].Rows[0]["id"])); if (strPalletNo != "")//如果托盘号不为空,更改托盘号 { arrangeBillFactModel.palletNo = strPalletNo;//托盘条码号 } else { strPalletNo = ds.Tables[0].Rows[0]["palletNo"].ToString();//获取托盘条码 } arrangeBillFactModel.updtDt = System.DateTime.Now.ToString();//修改时间 arrangeBillFactModel.updtEmpId = updtEmpId;//修改人 arrangeBillFactModel.instantState = strInstantState;//状态 arrangeBillFactBB.ModifyRecord(arrangeBillFactModel); } } #endregion 维护排托收货单信息 #region 更改状态 //更改状态 if (strInstantState == "01")//排托中 { //更改排托单明细状态为“02 排托中” commBB.ExecuteSql("update dbo.BArrangeBillDetail set instantState='02' where arriveBillNo='" + strArriveBillNo + "' and palletIndex='" + strPalletIndex + "'"); //更改排托单状态为“03 排托中” commBB.ExecuteSql("update dbo.BArrangeBill set instantState='03' where arriveBillNo='" + strArriveBillNo + "'"); //更改到货单状态为“04 排托中” commBB.ExecuteSql("update dbo.BArriveBill set instantState='04' where billNo='" + strArriveBillNo + "'"); } else if (strInstantState == "02")//排托已完成 { #region 更改单据状态 //更改排托单明细状态为“03 排托已完成” commBB.ExecuteSql("update dbo.BArrangeBillDetail set instantState='03' where arriveBillNo='" + strArriveBillNo + "' and palletIndex='" + strPalletIndex + "'"); //如果排托单明细全部排托已完成,更改排托单状态为“排托已完成” commBB.ExecuteSql("update dbo.BArrangeBill set instantState='04' where arriveBillNo='" + strArriveBillNo + "' and not exists (select 1 from dbo.BArrangeBillDetail where dbo.BArrangeBill.arriveBillNo=dbo.BArrangeBillDetail.arriveBillNo and isnull(dbo.BArrangeBillDetail.instantState,'')<>'03')"); //如果排托单明细全部排托已完成,更改到货单状态为“排托已完成” commBB.ExecuteSql(@"update dbo.BArriveBill set instantState='05' where billNo='" + strArriveBillNo + "' and not exists (select 1 from dbo.BArrangeBillDetail where dbo.BArriveBill.billNo=dbo.BArrangeBillDetail.arriveBillNo and isnull(dbo.BArrangeBillDetail.instantState,'')<>'03')"); #endregion 更改单据状态 #region 生成叉车任务 //首先判断当前托盘存在未执行的叉车任务 DataTable dtForkliftTask = new DataTable(); dtForkliftTask = forkliftTaskBB.GetList("palletNo='" + strPalletNo + "' and isDeal=0").Tables[0]; if (dtForkliftTask.Rows.Count == 0) { BForkliftTaskData forkliftTaskModel = new BForkliftTaskData(); DataSet dsArrangeBillBox = new DataSet(); dsArrangeBillBox = arrangeBillBoxBB.GetVList("arriveBillNo='" + strArriveBillNo + "' and palletNo='" + strPalletNo + "' and isnull(wareNo,'')<>''"); if (dsArrangeBillBox.Tables[0].Rows.Count > 0) { forkliftTaskModel = new BForkliftTaskData(); forkliftTaskModel.taskType = "01";//任务类型为:从排托区到质检区 forkliftTaskModel.palletNo = strPalletNo;//托盘号 forkliftTaskModel.preWareNo = dsArrangeBillBox.Tables[0].Rows[0]["wareNo"].ToString();//源库区 forkliftTaskModel.preLocatorNo = dsArrangeBillBox.Tables[0].Rows[0]["wareLocatorNo"].ToString();//源库位 forkliftTaskModel.effectDt = System.DateTime.Now.ToString();//生效时间 forkliftTaskModel.isDeal = false;//是否处理 forkliftTaskModel.isrtDt = System.DateTime.Now.ToString();//添加时间 forkliftTaskModel.isrtEmpId = isrtEmpId;//添加人 forkliftTaskBB.AddRecord(forkliftTaskModel); } } #endregion 生成叉车任务 } #endregion 更改状态 if (this.transaction == null) trans.Commit(); ret = true; } catch (Exception ex) { if (this.transaction == null) trans.Rollback("TransSave"); throw ex; } finally { commBB.Dispose(); forkliftTaskBB.Dispose(); arrangeBillBoxBB.Dispose(); } return ret; }
/// <summary> /// 保存非标准箱入质检区信息 /// </summary> /// <param name="strPalletNo">托盘号</param> /// <returns></returns> public bool SaveNoStandBoxInCheckInfo(string strPalletNo) { bool ret = false; SqlTransaction trans = null; SCommBB commBB = new SCommBB(this.connection); BForkliftTaskBB forkliftTaskBB = new BForkliftTaskBB(this.connection); BArrangeBillBoxBB arrangeBillBoxBB = new BArrangeBillBoxBB(this.connection); BArrangeBillFactDetailBB arrangeBillFactDetailBB = new BArrangeBillFactDetailBB(this.connection); try { if (this.transaction == null) { trans = this.connection.BeginTransaction("TransSave"); this.arrangeBillFactBB.Transaction = trans; commBB.Transaction = trans; forkliftTaskBB.Transaction = trans; arrangeBillBoxBB.Transaction = trans; arrangeBillFactDetailBB.Transaction = trans; } else { this.arrangeBillFactBB.Transaction = this.transaction; commBB.Transaction = this.transaction; forkliftTaskBB.Transaction = this.transaction; arrangeBillBoxBB.Transaction = this.transaction; arrangeBillFactDetailBB.Transaction = this.transaction; } DataTable dtArrangeBillBox = new DataTable(); string strArriveBillNo = "", strFinanceBillNo = ""; BArrangeBillFactData arrangeBillFactModel = new BArrangeBillFactData(); BArrangeBillFactDetailData arrangeBillFactDetailModel = new BArrangeBillFactDetailData(); BArrangeBillBoxData arrangeBillBoxModel = new BArrangeBillBoxData(); int mainId = 0; //获取到货箱信息 dtArrangeBillBox = arrangeBillBoxBB.GetList("palletNo='" + strPalletNo + "' and isnull(wareNo,'')<>''").Tables[0]; if (dtArrangeBillBox.Rows.Count > 0) { strArriveBillNo = dtArrangeBillBox.Rows[0]["arriveBillNo"].ToString();//到货单号 strFinanceBillNo = dtArrangeBillBox.Rows[0]["financeBillNo"].ToString();//采购单号 } #region 维护排托收货单信息 //维护排托收货单信息 arrangeBillFactModel.arrangeBillNo = "PT" + strArriveBillNo;//排托单号 arrangeBillFactModel.arriveBillNo = strArriveBillNo;//到货单号 arrangeBillFactModel.financeBillNo = strFinanceBillNo;//采购订单号 arrangeBillFactModel.palletIndex = "0";//托盘序号 arrangeBillFactModel.palletNo = strPalletNo;//托盘条码号 arrangeBillFactModel.isTally = false;//是否已理货 arrangeBillFactModel.isrtEmpId = this.empId;//添加人 arrangeBillFactModel.isrtDt = System.DateTime.Now.ToString();//添加时间 arrangeBillFactModel.instantState = "02";//状态 mainId = arrangeBillFactBB.AddRecord(arrangeBillFactModel); #endregion 维护排托收货单信息 #region 维护排托箱信息 foreach (DataRow row in dtArrangeBillBox.Rows) { //保存排托收货单明细信息 arrangeBillFactDetailModel = new BArrangeBillFactDetailData(); arrangeBillFactDetailModel.mainId = mainId.ToString();//排托收货单ID arrangeBillFactDetailModel.boxNo = row["boxNo"].ToString();//箱号 arrangeBillFactDetailModel.region = "0";//区域 arrangeBillFactDetailModel.isrtEmpId = this.empId; arrangeBillFactDetailModel.isrtDt = System.DateTime.Now.ToString(); arrangeBillFactDetailBB.AddRecord(arrangeBillFactDetailModel); //更改到货箱排托标志 commBB.ExecuteSql("update dbo.BArrangeBillBox set isBoxArrange=1 where boxNo='" + row["boxNo"].ToString() + "'"); } #endregion 维护排托箱信息 #region 生成叉车任务 BForkliftTaskData forkliftTaskModel = new BForkliftTaskData(); if (dtArrangeBillBox.Rows.Count > 0) { forkliftTaskModel = new BForkliftTaskData(); forkliftTaskModel.taskType = "10";//任务类型为:从收货区到质检区 forkliftTaskModel.palletNo = strPalletNo;//托盘号 forkliftTaskModel.preWareNo = dtArrangeBillBox.Rows[0]["wareNo"].ToString();//源库区 forkliftTaskModel.preLocatorNo = dtArrangeBillBox.Rows[0]["wareLocatorNo"].ToString();//源库位 forkliftTaskModel.effectDt = System.DateTime.Now.ToString();//生效时间 forkliftTaskModel.isDeal = false;//是否处理 forkliftTaskBB.AddRecord(forkliftTaskModel); } #endregion 生成叉车任务 if (this.transaction == null) trans.Commit(); ret = true; } catch (Exception ex) { if (this.transaction == null) trans.Rollback("TransSave"); throw ex; } finally { commBB.Dispose(); forkliftTaskBB.Dispose(); arrangeBillBoxBB.Dispose(); arrangeBillFactDetailBB.Dispose(); } return ret; }