using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using WMS.DBUtility; using WMS.IData.ICK; using WMS.IData;using Oracle.ManagedDataAccess.Client; using WMS.Model.CK; namespace WMS.SqlServerData.CKData { public class PickingWaveData : IPickingWave { /// /// 获取捡货单 /// /// 捡货单 public DataTable GetPickingWaveDT(PickingWaveModel model) { StringBuilder strSql = new StringBuilder(); strSql.AppendLine("select "); strSql.AppendLine(" a.PICKINGID, --拣货单号 "); strSql.AppendLine(" a.OPERATOR_MAN, --拣货人(班组) "); strSql.AppendLine(" a.STORAGE_ID, --仓库编号 "); strSql.AppendLine(" a.AREA_ID, --库区编号 "); strSql.AppendLine(" a.CREATE_PERSON, --创建人 "); strSql.AppendLine(" a.CREATE_DATE, --创建时间 "); strSql.AppendLine(" a.REMARK, --备注 "); strSql.AppendLine(" b.storage_name, --仓库 "); strSql.AppendLine(" c.storage_area_name area_name,--库区 "); strSql.AppendLine(" a.PRINT_COUNT, --打印次数 "); strSql.AppendLine(" d.name CREATE_PERSON_name, --创建人 "); strSql.AppendLine(" e.name OPERATOR_MAN_name , --拣货人 "); strSql.AppendLine(" a.status , --拣货人 "); strSql.AppendLine(" (case a.status when '0' then '未派发' when '1' then '已派发'when '4' then '执行中' end )statusname --拣货人 "); strSql.AppendLine("FROM "); strSql.AppendLine(" T_CK_PICKINGWAVE a left join t_base_storageinfo b "); strSql.AppendLine(" on a.storage_id = b.storage_id "); strSql.AppendLine(" left join t_base_storage_area c "); strSql.AppendLine(" on a.area_id = c.storage_area_id "); strSql.AppendLine(" left join t_base_userinfo d "); strSql.AppendLine(" on a.create_person = d.user_id "); strSql.AppendLine(" left join t_base_userinfo e "); strSql.AppendLine(" on a.OPERATOR_MAN = e.user_id "); strSql.AppendLine("where 1 = 1"); if (!string.IsNullOrEmpty(model.PICKINGID)) { strSql.AppendLine(" and a.PICKINGID = '" + model.PICKINGID + "' "); } if (!string.IsNullOrEmpty(model.OPERATOR_MAN)) { strSql.AppendLine(" and a.OPERATOR_MAN = '" + model.OPERATOR_MAN + "' "); } if (!string.IsNullOrEmpty(model.STORAGE_ID)) { strSql.AppendLine(" and a.STORAGE_ID = '" + model.STORAGE_ID + "' "); } if (!string.IsNullOrEmpty(model.AREA_ID)) { strSql.AppendLine(" and a.AREA_ID = '" + model.AREA_ID + "' "); } if (!string.IsNullOrEmpty(model.CREATE_PERSON)) { strSql.AppendLine(" and a.CREATE_PERSON = '" + model.CREATE_PERSON + "' "); } if (model.CREATE_DATE.Year.ToString() != "1900") { strSql.AppendLine(" and convert(varchar(100),a.CREATE_DATE,23) = '" + model.CREATE_DATE.ToShortDateString() + "'"); } strSql.AppendLine(" order by a.PICKINGID desc,a.status"); return SystemDataObject.Instance.GetDataTable(strSql.ToString()); } /// /// 批量获取捡货单 /// /// 捡货单集合 public DataTable GetPickingWaveListDT(List list) { StringBuilder strSql = new StringBuilder(); strSql.AppendLine("select "); strSql.AppendLine(" a.PICKINGID, --拣货单号 "); strSql.AppendLine(" a.OPERATOR_MAN, --拣货人(班组) "); strSql.AppendLine(" a.STORAGE_ID, --仓库编号 "); strSql.AppendLine(" a.AREA_ID, --库区编号 "); strSql.AppendLine(" a.CREATE_PERSON, --创建人 "); strSql.AppendLine(" a.CREATE_DATE, --创建时间 "); strSql.AppendLine(" a.REMARK, --备注 "); strSql.AppendLine(" b.storage_name, --仓库 "); strSql.AppendLine(" c.storage_area_name area_name,--库区 "); strSql.AppendLine(" a.PRINT_COUNT, --打印次数 "); strSql.AppendLine(" d.name CREATE_PERSON_name, --创建人 "); strSql.AppendLine(" e.name OPERATOR_MAN_name , --拣货人 "); strSql.AppendLine(" a.status , --拣货人 "); strSql.AppendLine(" (case a.status when '0' then '未派发' when '1' then '已派发' when '4' then '执行中' end )statusname --拣货人 "); strSql.AppendLine("FROM "); strSql.AppendLine(" T_CK_PICKINGWAVE a left join t_base_storageinfo b "); strSql.AppendLine(" on a.storage_id = b.storage_id "); strSql.AppendLine(" left join t_base_storage_area c "); strSql.AppendLine(" on a.area_id = c.storage_area_id "); strSql.AppendLine(" left join t_base_userinfo d "); strSql.AppendLine(" on a.create_person = d.user_id "); strSql.AppendLine(" left join t_base_userinfo e "); strSql.AppendLine(" on a.OPERATOR_MAN = e.user_id "); strSql.AppendLine("where 1 = 0 "); foreach (var model in list) { strSql.AppendLine(" or a.PICKINGID = '" + model.PICKINGID + "' "); } strSql.AppendLine(" order by a.PICKINGID desc,a.status"); return SystemDataObject.Instance.GetDataTable(strSql.ToString()); } /// /// 插入捡货单信息 /// /// 捡货单Model /// 捡货单编号 public string InsertPickingWave(PickingWaveModel model) { //string str = "select to_char(getdate(),'yyyyMMdd')||SEQ_OUT_PICKINGWAVE.nextval from dual "; //DataSet ds = SystemDataObject.Instance.GetDataSet( str); //model.PICKINGID = "JH" + ds.Tables[0].Rows[0][0].ToString(); StringBuilder strSql = new StringBuilder(); strSql.AppendLine("insert into T_CK_PICKINGWAVE("); strSql.AppendLine("PICKINGID,OPERATOR_MAN,STORAGE_ID,AREA_ID,CREATE_PERSON,CREATE_DATE,REMARK,PRINT_COUNT,STATUS)"); strSql.AppendLine(" values ("); strSql.AppendLine(":PICKINGID,:OPERATOR_MAN,:STORAGE_ID,:AREA_ID,:CREATE_PERSON,getdate(),:REMARK,0,'0')"); OracleParameter[] parameters = { new OracleParameter(":PICKINGID",OracleDbType.Varchar2), new OracleParameter(":OPERATOR_MAN",OracleDbType.Varchar2), new OracleParameter(":STORAGE_ID",OracleDbType.Varchar2), new OracleParameter(":AREA_ID",OracleDbType.Varchar2), new OracleParameter(":CREATE_PERSON",OracleDbType.Varchar2), //new OracleParameter(":CREATE_DATE", OracleDbType.Date), new OracleParameter(":REMARK",OracleDbType.Varchar2)}; parameters[0].Value = model.PICKINGID; parameters[1].Value = model.OPERATOR_MAN; parameters[2].Value = model.STORAGE_ID; parameters[3].Value = model.AREA_ID; parameters[4].Value = model.CREATE_PERSON; //parameters[5].Value = model.CREATE_DATE; parameters[5].Value = model.REMARK; SystemDataObject.Instance.ExecuteSql(strSql.ToString(), parameters); return model.PICKINGID; } /// /// 修改捡货单信息 /// /// 捡货单Model public void UpdatePickingWave(string pickingid,string status) { string sqlStr =@"update T_CK_PICKINGWAVE t set STATUS = '"+status+"'where t.PICKINGID ='"+pickingid+"'"; SystemDataObject.Instance.ExecuteSql(sqlStr); } /// /// 修改捡货单信息 /// /// 捡货单Model public void UpdatePickingWave(PickingWaveModel model) { StringBuilder strSql = new StringBuilder(); strSql.AppendLine("update T_CK_PICKINGWAVE set "); strSql.AppendLine("PICKINGID=:PICKINGID,"); strSql.AppendLine("OPERATOR_MAN=:OPERATOR_MAN,"); strSql.AppendLine("STORAGE_ID=:STORAGE_ID,"); strSql.AppendLine("AREA_ID=:AREA_ID,"); strSql.AppendLine("CREATE_PERSON=:CREATE_PERSON,"); strSql.AppendLine("CREATE_DATE=:CREATE_DATE,"); strSql.AppendLine("PRINT_COUNT=:PRINT_COUNT,"); strSql.AppendLine("REMARK=:REMARK"); strSql.AppendLine(" where PICKINGID=:PICKINGID "); OracleParameter[] parameters = { new OracleParameter(":PICKINGID",OracleDbType.Varchar2), new OracleParameter(":OPERATOR_MAN",OracleDbType.Varchar2), new OracleParameter(":STORAGE_ID",OracleDbType.Varchar2), new OracleParameter(":AREA_ID",OracleDbType.Varchar2), new OracleParameter(":CREATE_PERSON",OracleDbType.Varchar2), new OracleParameter(":CREATE_DATE", OracleDbType.Date), new OracleParameter(":PRINT_COUNT", OracleDbType.Decimal), new OracleParameter(":REMARK",OracleDbType.Varchar2)}; parameters[0].Value = model.PICKINGID; parameters[1].Value = model.OPERATOR_MAN; parameters[2].Value = model.STORAGE_ID; parameters[3].Value = model.AREA_ID; parameters[4].Value = model.CREATE_PERSON; parameters[5].Value = model.CREATE_DATE; parameters[6].Value = model.PRINT_COUNT; parameters[7].Value = model.REMARK; SystemDataObject.Instance.ExecuteSql(strSql.ToString(), parameters); } /// /// 删除一个捡货单 /// /// 捡货单ID public void DeletePickingWave(string pickingID) { StringBuilder strSql = new StringBuilder(); strSql.AppendLine("delete from T_CK_PICKINGWAVE "); strSql.AppendLine(" where PICKINGID=:PICKINGID "); OracleParameter[] parameters = { new OracleParameter(":PICKINGID",OracleDbType.Varchar2) }; parameters[0].Value = pickingID; SystemDataObject.Instance.ExecuteSql(strSql.ToString(), parameters); } /// /// 向备份表中添加一个捡货单 /// /// 捡货单ID public void InsertPickingWaveBack(string pickingID) { string strSql = "insert into T_CK_PickingWave_BACK select * from T_CK_PickingWave where PICKINGID=:PICKINGID"; OracleParameter[] parameters = { new OracleParameter(":PICKINGID",OracleDbType.Varchar2)}; parameters[0].Value = pickingID; SystemDataObject.Instance.ExecuteSql(strSql.ToString(), parameters); } } }