/// <summary> /// 新增驳船分发规则 /// </summary> /// <param name="row"></param> public void InsertBarge(string companyCode, string shipCode, string voyageIn, string voyageOut, decimal berthplanno) { if (string.IsNullOrEmpty(companyCode)) { throw new Exception("请输入外理公司代码"); } if (string.IsNullOrEmpty(shipCode)) { throw new Exception("请输入船名代码"); } if (string.IsNullOrEmpty(voyageIn)) { throw new Exception("请输入进口航次"); } if (string.IsNullOrEmpty(voyageOut)) { throw new Exception("请输入出口航次"); } DataSet1.T_OCRX_BARGERow row = new DataSet1.T_OCRX_BARGEDataTable().NewT_OCRX_BARGERow(); row.COMPANYCODE = companyCode; row.SHIP_CODE = shipCode; row.IN_VOYAGE_CODE = voyageIn; row.OUT_VOYAGE_CODE = voyageOut; row.BERTHPLANNO = berthplanno; row.CREATEDBY = Config.UserId; DAL.cctdbDAL.InsertBarge(row); }
/// <summary> /// 修改驳船分发规则 /// </summary> /// <param name="row"></param> public void UpdateBarge(string companyCode, string shipAgent, string shipOwner) { if (string.IsNullOrEmpty(companyCode)) { throw new Exception("请输入外理公司代码"); } if (string.IsNullOrEmpty(shipAgent)) { throw new Exception("请输入船代"); } if (string.IsNullOrEmpty(shipOwner)) { throw new Exception("请输入船东"); } //较验船东 bool isValid = ValidateBLL.CheckEnglishComma(shipOwner, 1, 10); if (!isValid) { throw new Exception("船东不合法。多个船东请用英文逗号隔开"); } CheckOwners(shipOwner, shipAgent, companyCode); DataSet1.T_OCRX_BARGERow row = new DataSet1.T_OCRX_BARGEDataTable().NewT_OCRX_BARGERow(); row.COMPANYCODE = companyCode; row.SHIPOWNER = shipOwner; row.SHIPAGENT = shipAgent; row.UPDATEDBY = Config.UserId; DAL.cctdbDAL.UpdateBarge(row); }
/// <summary> /// 查找驳船外理 /// </summary> /// <param name="shipAgent"></param> /// <param name="shipOwner"></param> /// <param name="barges"></param> /// <returns></returns> private string GetCompanyCode(string shipAgent, string shipOwner, DataSet1.T_OCRX_BARGEDataTable barges) { string companyCode = string.Empty; //船代必须匹配,船东匹配上优先 foreach (DataSet1.T_OCRX_BARGERow row in barges) { if (row.SHIPAGENT == shipAgent) { if (row.SHIPOWNER == "ALL") { companyCode = row.COMPANYCODE; } else { row.SHIPOWNER = string.Format(",{0},", row.SHIPOWNER); string shipOwner1 = string.Format(",{0},", shipOwner); if (row.SHIPOWNER.Contains(shipOwner1)) { companyCode = row.COMPANYCODE; break; } } } } return(companyCode); }
/// <summary> /// 删除驳船分发规则 /// </summary> /// <param name="row"></param> public void DeleteBarge(string companyCode, string shipCode, string voyageIn, string voyageOut, decimal berthplanno) { DataSet1.T_OCRX_BARGERow row = new DataSet1.T_OCRX_BARGEDataTable().NewT_OCRX_BARGERow(); row.COMPANYCODE = companyCode; row.BERTHPLANNO = berthplanno; row.UPDATEDBY = Config.UserId; DAL.cctdbDAL.DeleteBarge(row); }
/// <summary> /// 校验船东是否有重复 /// </summary> /// <param name="shipOwner"></param> /// <param name="shipAgent"></param> /// <returns></returns> private void CheckOwners(string shipOwner, string shipAgent, string companyCode) { //校验船东是否有重复 string[] newLines = SplitLines(shipOwner); bool isDuplicated = false; DataSet1.T_OCRX_BARGEDataTable dt = DAL.cctdbDAL.SelectBargeByAgent(shipAgent); foreach (DataSet1.T_OCRX_BARGERow r1 in dt) { if (r1.COMPANYCODE != companyCode) { string[] lines = SplitLines(r1.SHIPOWNER); foreach (string l1 in lines) { foreach (string l2 in newLines) { if (l2.Equals(l1)) { isDuplicated = true; break; } } if (isDuplicated) { break; } } if (isDuplicated) { break; } } } if (isDuplicated) { throw new Exception("该船代下船东重复定义。"); } }
/// <summary> /// 获取该公司在该船的分发船东 /// </summary> /// <param name="vslaliase"></param> /// <param name="CompanyCode"></param> /// <param name="disc"></param> /// <returns></returns> public static List <string> SelectCompanyVesselOwner(string vslaliase, string CompanyCode, bool disc) { if (vslaliase.StartsWith("8")) { DataSet1.T_OCRX_BARGEDataTable barge = SelectBargeByVelaliase(vslaliase); if (barge.Count > 0) { if (barge[0].COMPANYCODE == CompanyCode) { List <string> line = new List <string> { "ALL" }; return(line); } return(null); } else { return(null); } } DataTable vslService = SelectService(vslaliase); string service = string.Empty; if (vslService.Rows.Count > 0) { service = disc ? vslService.Rows[0]["INVESSELLINECODE"].ToString() : vslService.Rows[0]["OUTVESSELLINECODE"].ToString(); } else { return(null); } DataSet1.T_OCRX_VESSELDataTable serviceRule = SelectVesselByService(service); DataSet1.T_OCRX_VESSELDataTable companyRule = SelectVesselByCompany(service, CompanyCode); List <string> VesselOwners = SelectVesselOwners(vslaliase); HashSet <string> others = new HashSet <string>(); HashSet <string> company = new HashSet <string>(); HashSet <string> vessel = new HashSet <string>(VesselOwners); foreach (DataSet1.T_OCRX_VESSELRow dr in serviceRule) { if (dr.COMPANYCODE != CompanyCode) { string[] owners = dr.LINECODE.Split(','); foreach (string s in owners) { others.Add(s); } } } foreach (DataSet1.T_OCRX_VESSELRow dr in companyRule) { string[] owners = dr.LINECODE.Split(','); foreach (string s in owners) { company.Add(s); } } company.ExceptWith(others); vessel.IntersectWith(company); return(vessel.ToList <string>()); }
public void DeleteBarge([FromBody] DataSet1.T_OCRX_BARGEDataTable row) { webDAL.DeleteBarge(row[0]); //return Json<DataSet1.T_OCRX_CODataTable>(result); }