记录检测功能增加,毛坯扣除添加不扣逻辑
This commit is contained in:
parent
c12d428650
commit
0526dcb908
@ -228,5 +228,18 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
var result = ExportExcelMini(list, "wm_one_time_inventory", "一次合格品仓库数据");
|
var result = ExportExcelMini(list, "wm_one_time_inventory", "一次合格品仓库数据");
|
||||||
return ExportExcel(result.Item2, result.Item1);
|
return ExportExcel(result.Item2, result.Item1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 一次合格品仓库数据导出
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="parm"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet("ErrorCheck")]
|
||||||
|
[AllowAnonymous]
|
||||||
|
public IActionResult ErrorCheck()
|
||||||
|
{
|
||||||
|
var list = _WmOneTimeInventoryService.CheckErrorTable();
|
||||||
|
return SUCCESS(list);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -70,6 +70,15 @@ namespace ZR.Model.MES.wms.Dto
|
|||||||
public List<WmOneTimeInventoryDto> Result { get; set; }
|
public List<WmOneTimeInventoryDto> Result { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class ErrorCheckTableDto
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string Partnumber { get; set; }
|
||||||
|
public string Description { get; set; }
|
||||||
|
public string ErrorMessage { get; set; }
|
||||||
|
public DateTime CheckTime { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
// 一次合格(产成品)导出
|
// 一次合格(产成品)导出
|
||||||
[SugarTable("wm_one_time_record", "一次合格表")]
|
[SugarTable("wm_one_time_record", "一次合格表")]
|
||||||
public class WmOneTimeInventoryExportDto
|
public class WmOneTimeInventoryExportDto
|
||||||
|
|||||||
@ -59,5 +59,13 @@ namespace ZR.Service.mes.wms.IService
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public (string, object, object) ImportExcel(List<WmOneTimeInventoryExportDto> excel);
|
public (string, object, object) ImportExcel(List<WmOneTimeInventoryExportDto> excel);
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 检查一次合格品记录,抛光记录错误原因
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public List<ErrorCheckTableDto> CheckErrorTable();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -326,11 +326,21 @@ namespace ZR.Service.mes.wms
|
|||||||
.Queryable<ProWorkorder_v2>()
|
.Queryable<ProWorkorder_v2>()
|
||||||
.Where(it => it.ClientWorkorder == workOrderId)
|
.Where(it => it.ClientWorkorder == workOrderId)
|
||||||
.First();
|
.First();
|
||||||
|
|
||||||
|
|
||||||
if (workOrderInfo == null)
|
if (workOrderInfo == null)
|
||||||
{
|
{
|
||||||
Context.Ado.RollbackTran();
|
Context.Ado.RollbackTran();
|
||||||
throw new Exception("工单记录不存在!" + workOrderId);
|
throw new Exception("工单记录不存在!" + workOrderId);
|
||||||
}
|
}
|
||||||
|
//TODO 20250325 remark1 存在不扣,则不扣除
|
||||||
|
if (workOrderInfo.Remark1.Contains("不扣"))
|
||||||
|
{
|
||||||
|
Context.Ado.CommitTran();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (workOrderInfo.Remark1.Contains("返工"))
|
if (workOrderInfo.Remark1.Contains("返工"))
|
||||||
{
|
{
|
||||||
type = 2;
|
type = 2;
|
||||||
|
|||||||
@ -231,126 +231,122 @@ namespace ZR.Service.mes.wms
|
|||||||
return response;*/
|
return response;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查询一次合格品仓库列表
|
||||||
/// <summary>
|
/// </summary>
|
||||||
/// 查询一次合格品仓库列表
|
/// <param name="parm"></param>
|
||||||
/// </summary>
|
/// <returns></returns>
|
||||||
/// <param name="parm"></param>
|
public WmOneTimeInventoryTableDto GetListNew(WmOneTimeInventoryQueryDto parm)
|
||||||
/// <returns></returns>
|
{
|
||||||
public WmOneTimeInventoryTableDto GetListNew(WmOneTimeInventoryQueryDto parm)
|
var list = Context
|
||||||
{
|
.Queryable<WmMaterial>()
|
||||||
var list = Context
|
.LeftJoin<WmOneTimeInventory>((m, p) => m.Partnumber == p.Partnumber)
|
||||||
.Queryable<WmMaterial>()
|
.Distinct()
|
||||||
.LeftJoin<WmOneTimeInventory>((m, p) => m.Partnumber == p.Partnumber)
|
.WhereIF(
|
||||||
.Distinct()
|
!string.IsNullOrEmpty(parm.Description),
|
||||||
.WhereIF(
|
(m, p) => m.Description.Contains(parm.Description)
|
||||||
!string.IsNullOrEmpty(parm.Description),
|
)
|
||||||
(m, p) => m.Description.Contains(parm.Description)
|
.WhereIF(
|
||||||
)
|
!string.IsNullOrEmpty(parm.Partnumber),
|
||||||
.WhereIF(
|
(m, p) => m.Partnumber.Contains(parm.Partnumber)
|
||||||
!string.IsNullOrEmpty(parm.Partnumber),
|
)
|
||||||
(m, p) => m.Partnumber.Contains(parm.Partnumber)
|
.Where((m, p) => m.Status == 1)
|
||||||
)
|
.Where((m, p) => m.Type == 1)
|
||||||
.Where((m, p) => m.Status == 1)
|
// .WhereIF(string.IsNullOrEmpty(parm.Partnumber), (m, p) => p.Status == 1)
|
||||||
.Where((m, p) => m.Type == 1)
|
.OrderBy((m, p) => m.Description)
|
||||||
// .WhereIF(string.IsNullOrEmpty(parm.Partnumber), (m, p) => p.Status == 1)
|
.Select(
|
||||||
.OrderBy((m, p) => m.Description)
|
(m, p) =>
|
||||||
.Select(
|
new WmOneTimeInventoryDto
|
||||||
(m, p) =>
|
{
|
||||||
new WmOneTimeInventoryDto
|
RealQuantity = 0,
|
||||||
{
|
Partnumber = m.Partnumber,
|
||||||
RealQuantity = 0,
|
Color = m.Color,
|
||||||
Partnumber = m.Partnumber,
|
Specification = m.Specification,
|
||||||
Color = m.Color,
|
Description = m.Description,
|
||||||
Specification = m.Specification,
|
Id = p.Id ?? m.Id,
|
||||||
Description = m.Description,
|
BlankNum = p.BlankNum,
|
||||||
Id = p.Id ?? m.Id,
|
Quantity = p.Quantity ?? 0,
|
||||||
BlankNum = p.BlankNum,
|
MaxNum = p.MaxNum,
|
||||||
Quantity = p.Quantity ?? 0,
|
MinNum = p.MinNum,
|
||||||
MaxNum = p.MaxNum,
|
WarnNum = p.WarnNum,
|
||||||
MinNum = p.MinNum,
|
Type = p.Type ?? 1,
|
||||||
WarnNum = p.WarnNum,
|
Status = p.Status,
|
||||||
Type = p.Type ?? 1,
|
Remark = p.Remark,
|
||||||
Status = p.Status,
|
CreatedBy = p.CreatedBy,
|
||||||
Remark = p.Remark,
|
CreatedTime = p.CreatedTime,
|
||||||
CreatedBy = p.CreatedBy,
|
UpdatedBy = p.UpdatedBy,
|
||||||
CreatedTime = p.CreatedTime,
|
UpdatedTime = p.UpdatedTime,
|
||||||
UpdatedBy = p.UpdatedBy,
|
}
|
||||||
UpdatedTime = p.UpdatedTime,
|
)
|
||||||
}
|
.ToList();
|
||||||
)
|
//TODO 取出库存表 WmOneTimeInventory 最小CreatedTime时间
|
||||||
.ToList();
|
DateTime minDateTime =
|
||||||
//TODO 取出库存表 WmOneTimeInventory 最小CreatedTime时间
|
Context
|
||||||
DateTime minDateTime =
|
.Queryable<WmOneTimeInventory>()
|
||||||
Context
|
.OrderBy(it => it.CreatedTime)
|
||||||
.Queryable<WmOneTimeInventory>()
|
.Select(it => it.CreatedTime)
|
||||||
.OrderBy(it => it.CreatedTime)
|
.First() ?? DateTime.Now;
|
||||||
.Select(it => it.CreatedTime)
|
//TODO 根据时间范围取出所有记录数据
|
||||||
.First() ?? DateTime.Now;
|
List<WmOneTimeRecord> wmOneTimeRecords = Context
|
||||||
//TODO 根据时间范围取出所有记录数据
|
.Queryable<WmOneTimeRecord>()
|
||||||
List<WmOneTimeRecord> wmOneTimeRecords = Context
|
//.Where(it => it.Code == "自动")
|
||||||
.Queryable<WmOneTimeRecord>()
|
.Where(it => it.ActionTime >= minDateTime)
|
||||||
//.Where(it => it.Code == "自动")
|
.ToList();
|
||||||
.Where(it => it.ActionTime >= minDateTime)
|
|
||||||
.ToList();
|
|
||||||
foreach (WmOneTimeInventoryDto item in list)
|
foreach (WmOneTimeInventoryDto item in list)
|
||||||
{
|
{
|
||||||
int? runum = wmOneTimeRecords
|
int? runum = wmOneTimeRecords
|
||||||
.Where(o =>
|
.Where(o =>
|
||||||
o.ActionTime >= item.CreatedTime
|
o.ActionTime >= item.CreatedTime
|
||||||
&& o.Partnumber == item.Partnumber
|
&& o.Partnumber == item.Partnumber
|
||||||
&& o.ChangeType == 1
|
&& o.ChangeType == 1
|
||||||
)
|
)
|
||||||
.Select(o => o.ChangeQuantity)
|
.Select(o => o.ChangeQuantity)
|
||||||
.Sum();
|
.Sum();
|
||||||
int? chunum = wmOneTimeRecords
|
int? chunum = wmOneTimeRecords
|
||||||
.Where(o =>
|
.Where(o =>
|
||||||
o.ActionTime >= item.CreatedTime
|
o.ActionTime >= item.CreatedTime
|
||||||
&& o.Partnumber == item.Partnumber
|
&& o.Partnumber == item.Partnumber
|
||||||
&& o.ChangeType == 2
|
&& o.ChangeType == 2
|
||||||
)
|
)
|
||||||
.Select(o => o.ChangeQuantity)
|
.Select(o => o.ChangeQuantity)
|
||||||
.Sum();
|
.Sum();
|
||||||
item.RealQuantity = item.Quantity.Value + (runum.Value - chunum.Value);
|
item.RealQuantity = item.Quantity.Value + (runum.Value - chunum.Value);
|
||||||
}
|
}
|
||||||
list = list.Where(it => it.RealQuantity != 0 || it.Quantity != 0)
|
list = list.Where(it => it.RealQuantity != 0 || it.Quantity != 0)
|
||||||
.Where(it => !string.IsNullOrEmpty(it.Partnumber))
|
.Where(it => !string.IsNullOrEmpty(it.Partnumber))
|
||||||
.DistinctBy(it => it.Partnumber)
|
.DistinctBy(it => it.Partnumber)
|
||||||
.OrderBy(it => it.RealQuantity)
|
.OrderBy(it => it.RealQuantity)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
int total = list.Count;
|
int total = list.Count;
|
||||||
// 仓库总盘点零件数
|
// 仓库总盘点零件数
|
||||||
int StocktakingTotal =
|
int StocktakingTotal =
|
||||||
Context.Queryable<WmOneTimeInventory>().Sum(it => it.Quantity) ?? 0;
|
Context.Queryable<WmOneTimeInventory>().Sum(it => it.Quantity) ?? 0;
|
||||||
// 仓库当前查询盘点零件数
|
// 仓库当前查询盘点零件数
|
||||||
int QuantitySum = list.Sum(it => it.Quantity) ?? 0;
|
int QuantitySum = list.Sum(it => it.Quantity) ?? 0;
|
||||||
// 仓库当前查询实际零件数
|
// 仓库当前查询实际零件数
|
||||||
int RealQuantitySum = list.Sum(it => it.RealQuantity);
|
int RealQuantitySum = list.Sum(it => it.RealQuantity);
|
||||||
WmOneTimeInventoryTableDto response =
|
WmOneTimeInventoryTableDto response =
|
||||||
new()
|
new()
|
||||||
{
|
{
|
||||||
Total = total,
|
Total = total,
|
||||||
StocktakingTotal = StocktakingTotal,
|
StocktakingTotal = StocktakingTotal,
|
||||||
QuantitySum = QuantitySum,
|
QuantitySum = QuantitySum,
|
||||||
RealQuantitySum = RealQuantitySum,
|
RealQuantitySum = RealQuantitySum,
|
||||||
MinStocktakingTime = minDateTime,
|
MinStocktakingTime = minDateTime,
|
||||||
Result = list.Skip((parm.PageNum - 1) * parm.PageSize)
|
Result = list.Skip((parm.PageNum - 1) * parm.PageSize)
|
||||||
.Take(parm.PageSize)
|
.Take(parm.PageSize)
|
||||||
.ToList(),
|
.ToList(),
|
||||||
};
|
};
|
||||||
return response;
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
}
|
/// 获取详情
|
||||||
|
/// </summary>
|
||||||
/// <summary>
|
/// <param name="Id"></param>
|
||||||
/// 获取详情
|
/// <returns></returns>
|
||||||
/// </summary>
|
public WmOneTimeInventory GetInfo(string Id)
|
||||||
/// <param name="Id"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public WmOneTimeInventory GetInfo(string Id)
|
|
||||||
{
|
{
|
||||||
var response = Queryable().Where(x => x.Id == Id).First();
|
var response = Queryable().Where(x => x.Id == Id).First();
|
||||||
|
|
||||||
@ -764,11 +760,14 @@ namespace ZR.Service.mes.wms
|
|||||||
.First() ?? new DateTime(2024, 11, 16, 12, 0, 0);
|
.First() ?? new DateTime(2024, 11, 16, 12, 0, 0);
|
||||||
// DateTime
|
// DateTime
|
||||||
CommonFQCService commonFQCService = new();
|
CommonFQCService commonFQCService = new();
|
||||||
// 获取报表数据
|
// 获取报表数据
|
||||||
// 一次合格计算后库存 = 盘点库存 + 产线合格 + 抛光合格 - gp12投入 - 后道直接出库
|
// 一次合格计算后库存 = 盘点库存 + 产线合格 + 抛光合格 - gp12投入 - 后道直接出库
|
||||||
//return commonFQCService.GetBatchOneTimePartRealStock(partnumbers, checkTime.Value);
|
//return commonFQCService.GetBatchOneTimePartRealStock(partnumbers, checkTime.Value);
|
||||||
return commonFQCService.GetBatchOneTimePartRealStockNew(partnumbers, checkTime.Value);
|
return commonFQCService.GetBatchOneTimePartRealStockNew(
|
||||||
}
|
partnumbers,
|
||||||
|
checkTime.Value
|
||||||
|
);
|
||||||
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
throw;
|
throw;
|
||||||
@ -832,5 +831,141 @@ namespace ZR.Service.mes.wms
|
|||||||
|
|
||||||
return (msg, x.ErrorList, x.IgnoreList);
|
return (msg, x.ErrorList, x.IgnoreList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<ErrorCheckTableDto> CheckErrorTable()
|
||||||
|
{
|
||||||
|
List<ErrorCheckTableDto> errorCheckTableDtos = new List<ErrorCheckTableDto>();
|
||||||
|
|
||||||
|
// 盘点数据的零件号与物料内零件号不匹配异常进行检查
|
||||||
|
// 获取物料列表并将零件号提取到 HashSet 中以进行快速查找
|
||||||
|
HashSet<string> materialPartnumbers =
|
||||||
|
new(GetWmMaterialList("").Select(m => m.Partnumber));
|
||||||
|
List<WmOneTimeInventory> oneTimeInventoryList = Context
|
||||||
|
.Queryable<WmOneTimeInventory>()
|
||||||
|
.ToList();
|
||||||
|
List<WmPolishInventory> polishInventoryList = Context
|
||||||
|
.Queryable<WmPolishInventory>()
|
||||||
|
.ToList();
|
||||||
|
foreach (var inventoryItem in oneTimeInventoryList)
|
||||||
|
{
|
||||||
|
if (!materialPartnumbers.Contains(inventoryItem.Partnumber))
|
||||||
|
{
|
||||||
|
errorCheckTableDtos.Add(
|
||||||
|
new ErrorCheckTableDto
|
||||||
|
{
|
||||||
|
Name = "零件号不存在",
|
||||||
|
Partnumber = inventoryItem.Partnumber,
|
||||||
|
Description = "该零件号在物料列表中不存在。",
|
||||||
|
ErrorMessage = "检测到【一次合格盘点记录】中的零件号不匹配。",
|
||||||
|
CheckTime = DateTime.Now
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach (var inventoryItem in polishInventoryList)
|
||||||
|
{
|
||||||
|
if (!materialPartnumbers.Contains(inventoryItem.Partnumber))
|
||||||
|
{
|
||||||
|
errorCheckTableDtos.Add(
|
||||||
|
new ErrorCheckTableDto
|
||||||
|
{
|
||||||
|
Name = "零件号不存在",
|
||||||
|
Partnumber = inventoryItem.Partnumber,
|
||||||
|
Description = "该零件号在物料列表中不存在。",
|
||||||
|
ErrorMessage = "检测到【抛光品盘点记录】中的零件号不匹配。",
|
||||||
|
CheckTime = DateTime.Now
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DateTime minOneTimeStocktakingTime =
|
||||||
|
oneTimeInventoryList.Min(x => x.CreatedTime) ?? DateTime.Now;
|
||||||
|
DateTime minPolishStocktakingTime =
|
||||||
|
polishInventoryList.Min(x => x.CreatedTime) ?? DateTime.Now;
|
||||||
|
|
||||||
|
List<WmOneTimeRecord> oneTimeRecordList = Context
|
||||||
|
.Queryable<WmOneTimeRecord>()
|
||||||
|
.Where(it => it.ActionTime >= minOneTimeStocktakingTime)
|
||||||
|
.ToList();
|
||||||
|
List<WmPolishRecord> polishRecordList = Context
|
||||||
|
.Queryable<WmPolishRecord>()
|
||||||
|
.Where(it => it.ActionTime >= minPolishStocktakingTime)
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
foreach (var recordItem in oneTimeRecordList)
|
||||||
|
{
|
||||||
|
if (!materialPartnumbers.Contains(recordItem.Partnumber))
|
||||||
|
{
|
||||||
|
errorCheckTableDtos.Add(
|
||||||
|
new ErrorCheckTableDto
|
||||||
|
{
|
||||||
|
Name = "零件号不存在",
|
||||||
|
Partnumber = recordItem.Partnumber,
|
||||||
|
Description = "该零件号在物料列表中不存在。",
|
||||||
|
ErrorMessage = "检测到【一次合格品报表】中的零件号不匹配。记录时间:" + recordItem.ActionTime,
|
||||||
|
CheckTime = DateTime.Now
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var recordItem in polishRecordList)
|
||||||
|
{
|
||||||
|
if (!materialPartnumbers.Contains(recordItem.Partnumber))
|
||||||
|
{
|
||||||
|
errorCheckTableDtos.Add(
|
||||||
|
new ErrorCheckTableDto
|
||||||
|
{
|
||||||
|
Name = "零件号不存在",
|
||||||
|
Partnumber = recordItem.Partnumber,
|
||||||
|
Description = "该零件号在物料列表中不存在。",
|
||||||
|
ErrorMessage = "检测到【抛光品报表】中的零件号不匹配。记录时间:" + recordItem.ActionTime,
|
||||||
|
CheckTime = DateTime.Now
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO 判断oneTimeRecordList中是否存在oneTimeInventoryList没有的零件号
|
||||||
|
// 提取 oneTimeInventoryList 中的所有零件号
|
||||||
|
HashSet<string> oneTimeInventoryPartnumbers = new HashSet<string>(oneTimeInventoryList.Select(i => i.Partnumber));
|
||||||
|
foreach (var recordItem in oneTimeRecordList)
|
||||||
|
{
|
||||||
|
if (!oneTimeInventoryPartnumbers.Contains(recordItem.Partnumber))
|
||||||
|
{
|
||||||
|
errorCheckTableDtos.Add(
|
||||||
|
new ErrorCheckTableDto
|
||||||
|
{
|
||||||
|
Name = "该零件号记录丢失",
|
||||||
|
Partnumber = recordItem.Partnumber,
|
||||||
|
Description = "该零件号与盘点数据不匹配。请确认情况,是否未盘点到!",
|
||||||
|
ErrorMessage = $"检测到【一次合格品记录】中的零件号在盘点清单中不存在。记录时间: {recordItem.ActionTime}",
|
||||||
|
CheckTime = DateTime.Now
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//TODO 判断polishRecordList中是否存在polishInventoryList没有的零件号
|
||||||
|
HashSet<string> polishInventoryPartnumbers = new HashSet<string>(polishInventoryList.Select(i => i.Partnumber));
|
||||||
|
foreach (var recordItem in polishRecordList)
|
||||||
|
{
|
||||||
|
if (!polishInventoryPartnumbers.Contains(recordItem.Partnumber))
|
||||||
|
{
|
||||||
|
errorCheckTableDtos.Add(
|
||||||
|
new ErrorCheckTableDto
|
||||||
|
{
|
||||||
|
Name = "该零件号记录丢失",
|
||||||
|
Partnumber = recordItem.Partnumber,
|
||||||
|
Description = "该零件号与盘点数据不匹配。请确认情况,是否未盘点到!",
|
||||||
|
ErrorMessage = $"检测到【抛光品记录】中的零件号在盘点清单中不存在。记录时间: {recordItem.ActionTime}",
|
||||||
|
CheckTime = DateTime.Now
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return errorCheckTableDtos;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -116,6 +116,7 @@ namespace ZR.Tasks.TaskScheduler
|
|||||||
.And(it => it.Year == year)
|
.And(it => it.Year == year)
|
||||||
.And(it => it.Week == week)
|
.And(it => it.Week == week)
|
||||||
.And(it => it.Date == date)
|
.And(it => it.Date == date)
|
||||||
|
.And(it => !it.Remark1.Contains("不扣"))
|
||||||
.And(it => it.Remark2.Contains("调试"))
|
.And(it => it.Remark2.Contains("调试"))
|
||||||
// .And(it => it.Remark3 == "是")
|
// .And(it => it.Remark3 == "是")
|
||||||
.ToExpression();
|
.ToExpression();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user