using System; using System.Collections.Generic; using System.Linq; using System.Text; using CY.IDAL; using System.Data.SqlClient; using System.Data; using CY.Model; using System.Transactions; namespace CY.SQLDAL { public class EC_MergerSingleDAL : IEC_MergerSingleDAL { private Database _dataBase = null; public EC_MergerSingleDAL() { _dataBase = new Database(); } public EC_MergerSingleDAL(Database database) { _dataBase = database; } /// /// 新增 /// /// /// public bool InserModel(Infrastructure.Domain.IAggregateRoot model) { Model.EC_MergerSingle trueModel = model as Model.EC_MergerSingle; if (trueModel == null) { return false; } IList sqlParms = new List() { new SqlParameter(){Direction=ParameterDirection.ReturnValue,SqlDbType = SqlDbType.Int}, new SqlParameter("@Member_id",trueModel.Member_id), new SqlParameter("@PO_OrderId",trueModel.PO_OrderId), new SqlParameter("@PO_OrderNum",trueModel.PO_OrderNum), new SqlParameter("@PMS_OrderNum",trueModel.PMS_OrderNum), new SqlParameter("@PMS_OrderPeople",trueModel.PMS_OrderPeople), new SqlParameter("@PMS_OrderTime",trueModel.PMS_OrderTime), new SqlParameter("@PMS_Emergency",trueModel.PMS_Emergency), new SqlParameter("@PMS_Printers",trueModel.PMS_Printers), new SqlParameter("@PMS_IsM",trueModel.PMS_IsM), new SqlParameter("@PMS_FactoryId",trueModel.PMS_FactoryId), new SqlParameter("@PMS_PaperName",trueModel.PMS_PaperName), new SqlParameter("@PMS_PaperSpecification",trueModel.PMS_PaperSpecification), new SqlParameter("@PMS_PaperCount",trueModel.PMS_PaperCount ?? 0), new SqlParameter("@PMS_PaperPositive",trueModel.PMS_PaperPositive ?? 0), new SqlParameter("@PMS_PaperConsume",trueModel.PMS_PaperConsume ?? 0), new SqlParameter("@PMS_Machine",trueModel.PMS_Machine), new SqlParameter("@PMS_Mode",trueModel.PMS_Mode), new SqlParameter("@PMS_IsRevisedEdition",trueModel.PMS_IsRevisedEdition), new SqlParameter("@PMS_IsColorSamples",trueModel.PMS_IsColorSamples), new SqlParameter("@PMS_CTP",trueModel.PMS_CTP), new SqlParameter("@PMS_Film",trueModel.PMS_Film), new SqlParameter("@PMS_PSBan",trueModel.PMS_PSBan), new SqlParameter("@PMS_ChromaticNumber",trueModel.PMS_ChromaticNumber), new SqlParameter("@PMS_CompletionTime",trueModel.PMS_CompletionTime), new SqlParameter("@PMS_TotalPrice",trueModel.PMS_TotalPrice ?? 0), new SqlParameter("@PMS_Collection",trueModel.PMS_Collection ?? 0), new SqlParameter("@PMS_AccountsReceivable",trueModel.PMS_AccountsReceivable ?? 0), new SqlParameter("@PMS_Remarks",trueModel.PMS_Remarks), new SqlParameter("@PMS_IsPrint",trueModel.PMS_IsPrint ?? 0), new SqlParameter("@PMS_CustomsName",trueModel.PMS_CustomsName), new SqlParameter("@PMS_Title",trueModel.PMS_Title), new SqlParameter("@LastUpdateTime",trueModel.LastUpdateTime), new SqlParameter("@Operator",trueModel.Operator) , new SqlParameter("@PMS_OldNum",trueModel.PMS_OldNum) , new SqlParameter("@PMS_OldId",trueModel.PMS_OldId) , new SqlParameter("@PMS_PaperSource",trueModel.PMS_PaperSource) , new SqlParameter("@PMS_PaperNameType",trueModel.PMS_PaperNameType ?? 0) , new SqlParameter("@PMS_PaperSpecType",trueModel.PMS_PaperSpecType ?? 0) , new SqlParameter("@PMS_PlateSource",trueModel.PMS_PlateSource ?? 0) , new SqlParameter("@PMS_CTPSpecType",trueModel.PMS_CTPSpecType ?? 0) , new SqlParameter("@PMS_FilmType",trueModel.PMS_FilmType ?? 0) , new SqlParameter("@PMS_CTPCount",trueModel.PMS_CTPCount ?? 0) , new SqlParameter("@PMS_PSCount",trueModel.PMS_PSCount ?? 0), new SqlParameter("@PMS_PaperNameTypeName",trueModel.PMS_PaperNameTypeName??""), new SqlParameter("@PMS_PaperSpecTypeName",trueModel.PMS_PaperSpecTypeName??""), new SqlParameter("@PMS_PlateSourceName",trueModel.PMS_PlateSourceName??""), new SqlParameter("@PMS_CTPSpecTypeName",trueModel.PMS_CTPSpecTypeName??""), new SqlParameter("@PMS_FilmTypeName",trueModel.PMS_FilmTypeName??"") }; try { _dataBase.Query("sp_EC_MergerSingle_Insert", CommandType.StoredProcedure, sqlParms.ToArray()); trueModel.Keyid = (int)sqlParms[0].Value; } catch (Exception ex) { throw ex; } return true; } /// /// 修改 /// /// /// public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model) { Model.EC_MergerSingle trueModel = model as Model.EC_MergerSingle; if (trueModel == null) { return false; } IList sqlParms = new List() { new SqlParameter("@Keyid",trueModel.Keyid), new SqlParameter("@Member_id",trueModel.Member_id), new SqlParameter("@PO_OrderId",trueModel.PO_OrderId), new SqlParameter("@PO_OrderNum",trueModel.PO_OrderNum), new SqlParameter("@PMS_OrderNum",trueModel.PMS_OrderNum), new SqlParameter("@PMS_OrderPeople",trueModel.PMS_OrderPeople), new SqlParameter("@PMS_OrderTime",trueModel.PMS_OrderTime), new SqlParameter("@PMS_Emergency",trueModel.PMS_Emergency), new SqlParameter("@PMS_Printers",trueModel.PMS_Printers), new SqlParameter("@PMS_IsM",trueModel.PMS_IsM), new SqlParameter("@PMS_FactoryId",trueModel.PMS_FactoryId), new SqlParameter("@PMS_PaperName",trueModel.PMS_PaperName), new SqlParameter("@PMS_PaperSpecification",trueModel.PMS_PaperSpecification), new SqlParameter("@PMS_PaperCount",trueModel.PMS_PaperCount), new SqlParameter("@PMS_PaperPositive",trueModel.PMS_PaperPositive), new SqlParameter("@PMS_PaperConsume",trueModel.PMS_PaperConsume), new SqlParameter("@PMS_Machine",trueModel.PMS_Machine), new SqlParameter("@PMS_Mode",trueModel.PMS_Mode), new SqlParameter("@PMS_IsRevisedEdition",trueModel.PMS_IsRevisedEdition), new SqlParameter("@PMS_IsColorSamples",trueModel.PMS_IsColorSamples), new SqlParameter("@PMS_CTP",trueModel.PMS_CTP), new SqlParameter("@PMS_Film",trueModel.PMS_Film), new SqlParameter("@PMS_PSBan",trueModel.PMS_PSBan), new SqlParameter("@PMS_ChromaticNumber",trueModel.PMS_ChromaticNumber), new SqlParameter("@PMS_CompletionTime",trueModel.PMS_CompletionTime), new SqlParameter("@PMS_TotalPrice",trueModel.PMS_TotalPrice), new SqlParameter("@PMS_Collection",trueModel.PMS_Collection), new SqlParameter("@PMS_AccountsReceivable",trueModel.PMS_AccountsReceivable), new SqlParameter("@PMS_Remarks",trueModel.PMS_Remarks), new SqlParameter("@PMS_IsPrint",trueModel.PMS_IsPrint), new SqlParameter("@PMS_CustomsName",trueModel.PMS_CustomsName), new SqlParameter("@PMS_Title",trueModel.PMS_Title), new SqlParameter("@LastUpdateTime",trueModel.LastUpdateTime), new SqlParameter("@Operator",trueModel.Operator) , new SqlParameter("@PMS_OldNum",trueModel.PMS_OldNum) , //new SqlParameter("@PMS_OldId",trueModel.PMS_OldId), new SqlParameter("@PMS_PaperSource",trueModel.PMS_PaperSource) , new SqlParameter("@PMS_PaperNameType",trueModel.PMS_PaperNameType) , new SqlParameter("@PMS_PaperSpecType",trueModel.PMS_PaperSpecType) , new SqlParameter("@PMS_PlateSource",trueModel.PMS_PlateSource) , new SqlParameter("@PMS_CTPSpecType",trueModel.PMS_CTPSpecType) , new SqlParameter("@PMS_FilmType",trueModel.PMS_FilmType) , new SqlParameter("@PMS_CTPCount",trueModel.PMS_CTPCount) , new SqlParameter("@PMS_PSCount",trueModel.PMS_PSCount), new SqlParameter("@PMS_PaperNameTypeName",trueModel.PMS_PaperNameTypeName??""), new SqlParameter("@PMS_PaperSpecTypeName",trueModel.PMS_PaperSpecTypeName??""), new SqlParameter("@PMS_PlateSourceName",trueModel.PMS_PlateSourceName??""), new SqlParameter("@PMS_CTPSpecTypeName",trueModel.PMS_CTPSpecTypeName??""), new SqlParameter("@PMS_FilmTypeName",trueModel.PMS_FilmTypeName??"") }; try { _dataBase.Query("sp_EC_MergerSingle_Update", CommandType.StoredProcedure, sqlParms.ToArray()); } catch (Exception ex) { throw ex; } return true; } /// /// 删除 /// /// /// public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model) { Model.EC_MergerSingle trueModel = model as Model.EC_MergerSingle; if (trueModel == null) { return false; } IList sqlParms = new List() { new SqlParameter("@Keyid",trueModel.Keyid) }; try { _dataBase.Query("sp_EC_MergerSingle_DeleteRow", CommandType.StoredProcedure, sqlParms.ToArray()); } catch (Exception ex) { throw ex; } return true; } /// /// 分页查询 /// /// /// /// public IEnumerable SelectModelPage(Infrastructure.Query.Query query, Infrastructure.Query.Pagination pagination) { throw new NotImplementedException(); } /// /// 单个查询 /// /// /// public IEnumerable SelectAllModel(Infrastructure.Query.Query query) { throw new NotImplementedException(); } /// /// 根据编号获得信息 /// /// /// public EC_MergerSingle GetModelByKeyid(int? Keyid) { if (Keyid == null) return null;//错误数据返会空 IList result = _dataBase.SelectModel("*", "EC_MergerSingle", string.Format(" Keyid='{0}'", Keyid)) as IList;//执行查询 return (null == result || result.Count == 0) ? null : result[0];//返回结果 } /// /// 根据订单编号获得信息 /// /// /// public EC_MergerSingle GetModelByOrderId(int? OrderId) { if (OrderId == null) return null;//错误数据返会空 IList result = _dataBase.SelectModel("*", "EC_MergerSingle", string.Format(" PO_OrderId='{0}'", OrderId)) as IList;//执行查询 return (null == result || result.Count == 0) ? null : result[0];//返回结果 } /// /// 根据编号获得子订单信息 /// /// /// public IEnumerable GetEC_MergerOrdersListByKeyid(int? Keyid) { try { if (Keyid == null) return null;//错误数据返会空 IList result = _dataBase.SelectModel("*", "EC_MergerOrders", string.Format(" MergerId='{0}'", Keyid)) as IList;//执行查询 return result;//返回结果 } catch (Exception ex) { throw ex; } } /// /// 根据会员编号获取最新合版施工单号 /// /// 会员编号 /// public string GetPMS_OrderNum(Guid Memberid) { if (Memberid == null) return null;//错误数据返会空 string NumberHead = DateTime.Now.ToString("yyyyMMdd"); string NumberFoot = "001"; try { IList result = _dataBase.SelectModel("*", "EC_MergerSingle", string.Format(" Member_Id='{0}' and PMS_OrderNum like '{1}%'", Memberid, NumberHead)) as IList;//执行查询 if (result != null && result.Count > 0) { NumberFoot = (int.Parse(result.Max(x => x.PMS_OrderNum).Substring(8, 3)) + 1).ToString("000"); } else NumberFoot = "001"; } catch (Exception ex) { NumberFoot = "001"; } return NumberHead + NumberFoot; } /// /// 新增合版施工单 /// /// /// /// /// /// /// /// /// /// public bool AddSpecialForums(List m_EC_OrderOperateList, EC_MergerSingle m_EC_MergerSingle, List m_EC_MergerOrdersList, bool IsOut, OA_OrderWorkListRelation m_OA_OrderWorkListRelation_new, EC_OrderBasic orderBasic, EC_AcceptWayByOrder acceptWayByOrder, EC_OrderPrintParameter orderPrintParameter, List m_OA_OutOfStorageList, string[] orderId) { try { bool result = true; EC_OrderBasicDAL dal_EC_OrderBasicDAL = new EC_OrderBasicDAL(_dataBase); EC_OrderExtendDAL dal_EC_OrderExtendDAL = new EC_OrderExtendDAL(_dataBase); OA_OrderWorkListRelationDAL dal_OA_OrderWorkListRelationDAL = new OA_OrderWorkListRelationDAL(_dataBase); EC_MergerOrdersDAL dal_EC_MergerOrdersDAL = new EC_MergerOrdersDAL(_dataBase); EC_OrderPrintParameterDAL _eC_OrderPrintParameterDAL = new EC_OrderPrintParameterDAL(_dataBase); Pay_TradingSingleDAL _pay_TradingSingleDAL = new Pay_TradingSingleDAL(_dataBase); EC_AcceptWayByOrderDAL _eC_AcceptWayByOrderDAL = new EC_AcceptWayByOrderDAL(_dataBase); EC_OrderOperateDAL _eC_OrderOperateDAL = new EC_OrderOperateDAL(_dataBase); EC_OrderExtend orderExtend = orderBasic.OrderExtend; Pay_TradingSingle tradingSingle = orderBasic.TradingSingle; int? NewOrderId = 0; using (TransactionScope t_TransactionScope = new TransactionScope()) { //如果是外协 if (IsOut) { if (result) { orderBasic.OutId = 0; result = dal_EC_OrderBasicDAL.InserModel(orderBasic); } else return false; if (result) { NewOrderId = acceptWayByOrder.TargetId = tradingSingle.OrderId = orderExtend.Keyid = orderBasic.Keyid;//获取返回的订单唯一编号 result = dal_EC_OrderExtendDAL.InserModel(orderExtend); } else return false; if (result) { result = _eC_AcceptWayByOrderDAL.InserModel(acceptWayByOrder); } else return false; if (result) { result = _pay_TradingSingleDAL.InserModel(tradingSingle); } else return false; if (result) { result = _eC_OrderOperateDAL.InserModel(new EC_OrderOperate() { OperateType = 1, Operator = orderBasic.Operator, OrderId = orderBasic.Keyid, Remark = string.Empty }); } else return false; if (result) { orderPrintParameter.OrderId = orderBasic.Keyid.Value; result = _eC_OrderPrintParameterDAL.InserModel(orderPrintParameter); } else return false; if (orderId != null && orderId.Length > 0) { foreach (var item in orderId) { EC_OrderBasic item_EC_OrderBasic = dal_EC_OrderBasicDAL.SelectModelById(int.Parse(item)); if (item_EC_OrderBasic != null) { item_EC_OrderBasic.OutId = -3; result = dal_EC_OrderBasicDAL.UpdateModel(item_EC_OrderBasic); if (!result) { return false; } else { //无操作 } } } } } if (result) { m_EC_MergerSingle.PO_OrderId = orderBasic.Keyid ?? 0; m_EC_MergerSingle.PO_OrderNum = orderBasic.SellerOrderId ?? ""; result = InserModel(m_EC_MergerSingle); if (result) { for (int i = 0; i < m_EC_OrderOperateList.Count; i++) { if (result) { result = dal_EC_OrderExtendDAL.UpSurplusPrintNum(m_EC_OrderOperateList[i].OrderId, m_EC_MergerOrdersList[i].PO_Count, m_EC_MergerSingle.Operator); if (result) { result = dal_EC_OrderBasicDAL.UpdateOrderStateUnit(m_EC_OrderOperateList[i]); if (result) { m_EC_MergerOrdersList[i].MergerId = m_EC_MergerSingle.Keyid; result = dal_EC_MergerOrdersDAL.InserModel(m_EC_MergerOrdersList[i]); } else { return false; } } else { return false; } } else { return false; } } } } else { return false; } if (IsOut) { if (result) { m_OA_OrderWorkListRelation_new.OrderId = orderBasic.Keyid; m_OA_OrderWorkListRelation_new.RelationTargetId = m_EC_MergerSingle.Keyid; result = dal_OA_OrderWorkListRelationDAL.InserModel(m_OA_OrderWorkListRelation_new); } else return false; } OA_OutOfStorageDAL dal_OA_OutOfStorageDAL = new OA_OutOfStorageDAL(); if (result) { foreach (var m_OA_OutOfStorage in m_OA_OutOfStorageList) { m_OA_OutOfStorage.Remark = string.Format("合版:" + m_EC_MergerSingle.PMS_OrderNum + ""); dal_OA_OutOfStorageDAL.InserModel(m_OA_OutOfStorage); } } if (result) { t_TransactionScope.Complete(); } else return false; } return result; } catch (Exception ex) { throw ex; } } /// /// 修改合版施工单 /// /// /// /// public bool UpdateSpecialForums(EC_MergerSingle m_EC_MergerSingle, List m_EC_MergerOrdersList) { try { bool result = false; EC_MergerOrdersDAL dal_EC_MergerOrdersDAL = new EC_MergerOrdersDAL(_dataBase); List m_EC_MergerOrdersList_Old = GetEC_MergerOrdersListByKeyid(m_EC_MergerSingle.Keyid) as List; using (TransactionScope t_TransactionScope = new TransactionScope()) { result = UpdateModel(m_EC_MergerSingle); if (result) { foreach (var m_EC_MergerOrders in m_EC_MergerOrdersList_Old) { if (result) { result = dal_EC_MergerOrdersDAL.DeleteModel(m_EC_MergerOrders); } else return false; } foreach (var m_EC_MergerOrders in m_EC_MergerOrdersList) { if (result) { m_EC_MergerOrders.MergerId = m_EC_MergerSingle.Keyid; result = dal_EC_MergerOrdersDAL.InserModel(m_EC_MergerOrders); } else return false; } if (result) { t_TransactionScope.Complete(); } } } return result; } catch (Exception ex) { throw ex; } } /// /// 分页查询 /// /// /// /// public IEnumerable SelectModelPage(Infrastructure.Query.Pagination pagination, Guid MemberId, string PrintName, string CustomName, string PSO_OrderNum, DateTime? beginTime, DateTime? endTime, string PMS_Printers, string PO_OrderNum, string PayStates, string PrintStates) { try { string Condition = " 1=1 "; if (MemberId != Guid.Empty) { Condition += " and Member_id = '" + MemberId + "'"; } if (beginTime.HasValue) { Condition += string.Format(" and CAST(PMS_OrderTime AS DATE) >='{0}'", beginTime); } if (endTime.HasValue) { Condition += string.Format(" and CAST(PMS_OrderTime AS DATE) <='{0}'", endTime); } if (!string.IsNullOrEmpty(CustomName)) { Condition += string.Format(" and PMS_CustomsName like '%{0}%'", CustomName); } if (!string.IsNullOrEmpty(PrintName)) { Condition += string.Format(" and PMS_Title like '%{0}%'", PrintName); } if (!string.IsNullOrEmpty(PSO_OrderNum)) { Condition += string.Format(" and PMS_OrderNum like '%{0}%'", PSO_OrderNum); } if (!string.IsNullOrEmpty(PMS_Printers)) { Condition += string.Format(" and PMS_Printers = '{0}'", PMS_Printers); } if (!string.IsNullOrEmpty(PO_OrderNum)) { Condition += string.Format(" and PO_OrderNum like '%{0}%'", PO_OrderNum); } if (!string.IsNullOrEmpty(PayStates)) { Condition += string.Format(" and PMS_IsPay = {0}", Convert.ToInt32(PayStates)); } if (!string.IsNullOrEmpty(PrintStates)) { Condition += string.Format(" and PMS_IsPrint = {0}", Convert.ToInt32(PrintStates)); } return _dataBase.SelectModelPage(pagination, " *", " EC_MergerSingle", " PMS_OrderNum DESC ", " PMS_OrderNum DESC ", Condition); } catch (Exception ex) { throw ex; } } /// /// 根据原订单号和类型获取订单和工单关系 /// /// /// /// public OA_OrderWorkListRelation GetOA_OrderWorkListRelationByOrderIdAndTypeId(int? OrderId, int? TypeId) { try { IList result = _dataBase.SelectModel(" * ", " OA_OrderWorkListRelation ", string.Format(" OrderId={0} and RelationTypeId={1} ", OrderId, TypeId)) as IList; return null == result || result.Count < 1 ? null : result[0]; } catch (Exception ex) { throw ex; } } } }