You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
453 lines
18 KiB
453 lines
18 KiB
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<ICSProductEntity> GetList(Pagination pagination, string queryJson)
|
|
{
|
|
var expression = ExtLinq.True<ICSProductEntity>();
|
|
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<ICSProductEntity> GetList(string keyword = "", string keyword2 = "")
|
|
{
|
|
var expression = ExtLinq.True<ICSProductEntity>();
|
|
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<ICSProductEntity> GetListPS(Pagination pagination, string queryJson)
|
|
{
|
|
var expression = ExtLinq.True<ICSProductEntity>();
|
|
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<ICSProductEntity> ProductEntityList)
|
|
{
|
|
foreach (ICSProductEntity ProductEntity in ProductEntityList)
|
|
{
|
|
service.Update(ProductEntity);
|
|
}
|
|
}
|
|
}
|
|
}
|