using NFine.Code; using NFine.Data.Extensions; using NFine.Domain.Entity.ProductManage; using NFine.Domain.IRepository.ProductManage; using NFine.Repository.ProductManage; using System; using System.Collections.Generic; using System.Data; using System.Linq; namespace NFine.Application.ProductManage { public class MaintainApp { private IICSProductRepository service = new MaintainRepository(); public List GetList(Pagination pagination, string queryJson) { var expression = ExtLinq.True(); var queryParam = queryJson.ToJObject(); if (!queryParam["keyword"].IsEmpty()) { string keyword = queryParam["keyword"].ToString(); expression = expression.And(t => t.ProductSN.Contains(keyword)); } if (!queryParam["warehouse"].IsEmpty()) { string warehouse = queryParam["warehouse"].ToString(); switch (warehouse) { case "0": break; case "10": case "12": case "18": expression = expression.And(t => t.WhCode == warehouse); break; default: break; } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleFullName == "客户") { expression = expression.And(t => t.WhCode == "10"); } //return service.IQueryable(expression).OrderBy(t => t.ProductSN).ToList(); return service.FindList(expression, pagination).OrderBy(t => t.Weight).ToList(); } public List GetList(string keyword = "", string keyword2 = "") { var expression = ExtLinq.True(); if (!string.IsNullOrEmpty(keyword) && !string.IsNullOrEmpty(keyword2)) { expression = expression.And(t => t.ProductSN.Contains(keyword)); expression = expression.And(t => t.ProductSN.Contains(keyword2)); } return service.IQueryable(expression).OrderBy(t => t.ProductSN).ToList(); } public DataTable GetList2(string invIDs) { DataTable dt = new DataTable(); string sql = @"SELECT F_Id,ProductSN,Measurement,Other AS Sort,Location,Price, CAST(InvQty AS INT) AS Qty,Weight AS FinishedWeight,GrossWeight AS RoughWeight, Shape,CertificateNo,Color,Clarity,Polish FROM ICSProduct WHERE F_Id IN ({0})"; sql = string.Format(sql, invIDs); dt = SqlHelper.GetDataTableBySql(sql); if (dt == null || dt.Rows.Count <= 0) throw new Exception("No exportable data."); return dt; } public DataTable GetList2All() { DataTable dt = new DataTable(); string sql = @"SELECT F_Id,ProductSN,Measurement,Other AS Sort,Location,Price, CAST(InvQty AS INT) AS Qty,Weight AS FinishedWeight,GrossWeight AS RoughWeight, Shape,CertificateNo,Color,Clarity,Polish,(case when WHCode ='12' then '评估仓' when WHCode ='10' then '成品仓' else '' end ) as WHCode FROM ICSProduct"; dt = SqlHelper.GetDataTableBySql(sql); if (dt == null || dt.Rows.Count <= 0) throw new Exception("No exportable data."); return dt; } public List GetListPS(Pagination pagination, string queryJson) { var expression = ExtLinq.True(); var queryParam = queryJson.ToJObject(); if (!queryParam["weight"].IsEmpty()) { string weight = queryParam["weight"].ToString(); decimal start = 0; decimal end = 0; switch (weight) { case "0": break; case "1": start = decimal.Parse("0.5"); end = decimal.Parse("0.5"); //expression = expression.And(t => t.Weight >= start && t.Weight <= end); expression = expression.And(t => t.Weight <= end); break; case "2": start = decimal.Parse("0.5"); end = decimal.Parse("0.69"); expression = expression.And(t => t.Weight >= start && t.Weight <= end); break; case "3": start = decimal.Parse("07"); end = decimal.Parse("089"); expression = expression.And(t => t.Weight >= start && t.Weight <= end); break; case "4": start = decimal.Parse("0.9"); end = decimal.Parse("0.99"); expression = expression.And(t => t.Weight >= start && t.Weight <= end); break; case "5": start = decimal.Parse("1.0"); end = decimal.Parse("1.49"); expression = expression.And(t => t.Weight >= start && t.Weight <= end); break; case "6": start = decimal.Parse("1.5"); end = decimal.Parse("1.99"); expression = expression.And(t => t.Weight >= start && t.Weight <= end); break; case "7": start = decimal.Parse("2.0"); end = decimal.Parse("2.99"); expression = expression.And(t => t.Weight >= start && t.Weight <= end); break; case "8": start = decimal.Parse("3.0"); end = decimal.Parse("3.99"); expression = expression.And(t => t.Weight >= start && t.Weight <= end); break; case "9": start = decimal.Parse("4.0"); end = decimal.Parse("4.99"); expression = expression.And(t => t.Weight >= start && t.Weight <= end); break; case "10": start = decimal.Parse("5.0"); end = decimal.Parse("5.99"); expression = expression.And(t => t.Weight >= start && t.Weight <= end); break; default: break; } } if (!queryParam["shape"].IsEmpty()) { string shape = queryParam["shape"].ToString(); switch (shape) { case "0": break; case "1": expression = expression.And(t => t.Shape == "Round"); break; case "2": expression = expression.And(t => t.Shape == "Pear"); break; case "3": expression = expression.And(t => t.Shape == "Oval"); break; case "4": expression = expression.And(t => t.Shape == "Heart"); break; case "5": expression = expression.And(t => t.Shape == "Emerald"); break; case "6": expression = expression.And(t => t.Shape == "Radiant"); break; case "7": expression = expression.And(t => t.Shape == "Asscher"); break; case "8": expression = expression.And(t => t.Shape == "Princess"); break; case "9": expression = expression.And(t => t.Shape == "Cushion"); break; default: break; } } if (!queryParam["color"].IsEmpty()) { string color = queryParam["color"].ToString(); switch (color) { case "0": break; case "1": expression = expression.And(t => t.Color.Contains("D")); break; case "2": expression = expression.And(t => t.Color.Contains("E")); break; case "3": expression = expression.And(t => t.Color.Contains("F")); break; case "4": expression = expression.And(t => t.Color.Contains("G")); break; case "5": expression = expression.And(t => t.Color.Contains("H")); break; case "6": expression = expression.And(t => t.Color.Contains("I")); break; case "7": expression = expression.And(t => t.Color.Contains("J")); break; case "8": expression = expression.And(t => t.Color.Contains("K")); break; case "9": expression = expression.And(t => t.Color.Contains("L")); break; case "10": expression = expression.And(t => t.Color.Contains("M")); break; case "11": expression = expression.And(t => t.Color.Contains("N")); break; default: break; } } if (!queryParam["clarity"].IsEmpty()) { string clarity = queryParam["clarity"].ToString(); switch (clarity) { case "0": break; case "1": expression = expression.And(t => t.Clarity == "IF"); break; case "2": expression = expression.And(t => t.Clarity == "VVS1"); break; case "3": expression = expression.And(t => t.Clarity == "VVS2"); break; case "4": expression = expression.And(t => t.Clarity == "VS1"); break; case "5": expression = expression.And(t => t.Clarity == "VS2"); break; case "6": expression = expression.And(t => t.Clarity == "SI1"); break; case "7": expression = expression.And(t => t.Clarity == "SI2"); break; case "8": expression = expression.And(t => t.Clarity == "SI3"); break; case "9": expression = expression.And(t => t.Clarity == "I1"); break; case "10": expression = expression.And(t => t.Clarity == "I2"); break; case "11": expression = expression.And(t => t.Clarity == "I3"); break; default: break; } } //if (!queryParam["lab"].IsEmpty()) //{ // string lab = queryParam["lab"].ToString(); // switch (lab) // { // case "0": // break; // case "1": // expression = expression.And(t => t.Lab == "FL"); // break; // case "2": // expression = expression.And(t => t.Shape == "IF"); // break; // default: // break; // } // //expression = expression.And(t => t.F_Date >= startTime && t.F_Date <= endTime); //} if (!queryParam["polish"].IsEmpty()) { string polish = queryParam["polish"].ToString(); switch (polish) { case "0": break; case "1": expression = expression.And(t => t.Polish == "EX"); break; case "2": expression = expression.And(t => t.Polish == "VG"); break; case "3": expression = expression.And(t => t.Polish == "G"); break; case "4": expression = expression.And(t => t.Polish == "F"); break; case "5": expression = expression.And(t => t.Polish == "P"); break; case "6": expression = expression.And(t => t.Polish == "N/A"); break; default: break; } } if (!queryParam["symmerty"].IsEmpty()) { string symmerty = queryParam["symmerty"].ToString(); switch (symmerty) { case "0": break; case "1": expression = expression.And(t => t.Symmetry == "EX"); break; case "2": expression = expression.And(t => t.Symmetry == "VG"); break; case "3": expression = expression.And(t => t.Symmetry == "G"); break; case "4": expression = expression.And(t => t.Symmetry == "F"); break; case "5": expression = expression.And(t => t.Symmetry == "P"); break; case "6": expression = expression.And(t => t.Symmetry == "N/A"); break; default: break; } } if (!queryParam["cut"].IsEmpty()) { string cut = queryParam["cut"].ToString(); switch (cut) { case "0": break; case "1": expression = expression.And(t => t.Cut == "EX"); break; case "2": expression = expression.And(t => t.Cut == "VG"); break; case "3": expression = expression.And(t => t.Cut == "G"); break; case "4": expression = expression.And(t => t.Cut == "F"); break; case "5": expression = expression.And(t => t.Cut == "P"); break; case "6": expression = expression.And(t => t.Cut == "N/A"); break; default: break; } } if (!queryParam["location"].IsEmpty()) { string location = queryParam["location"].ToString(); switch (location) { case "0": break; case "1": expression = expression.And(t => t.Location == "ShangHai Warehouse"); break; case "2": expression = expression.And(t => t.Location == "HongKong Warehouse"); break; case "3": expression = expression.And(t => t.Location == "U.S.A Warehouse"); break; default: break; } } if (!queryParam["sort"].IsEmpty()) { string sort = queryParam["sort"].ToString(); switch (sort) { case "0": break; case "1": expression = expression.And(t => t.Other == "Rough"); break; case "2": expression = expression.And(t => t.Other == "Polished"); break; default: break; } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleFullName == "客户") { expression = expression.And(t => t.WhCode == "10"); } expression = expression.And(t => t.IsLock == false); return service.FindList(expression, pagination).OrderBy(t => t.Weight).ToList(); } public ICSProductEntity GetForm(string keyValue) { return service.FindEntity(keyValue); } public void DeleteForm(string keyValue) { service.Delete(t => t.F_Id == keyValue); } public void SubmitForm(ICSProductEntity productEntity, string keyValue) { if (!string.IsNullOrEmpty(keyValue)) { productEntity.Modify(keyValue); service.Update(productEntity); } else { productEntity.Create(); service.Insert(productEntity); } } public void PrsSell(List ProductEntityList) { foreach (ICSProductEntity ProductEntity in ProductEntityList) { service.Update(ProductEntity); } } } }