执行代码清理,修复warning

This commit is contained in:
2023-11-06 19:59:12 +08:00
parent c6b8dfc861
commit 1dbb17f103
118 changed files with 5046 additions and 4111 deletions

View File

@@ -108,12 +108,12 @@ namespace Tnb.ProductionMgr
private async Task<dynamic> GetList(VisualDevModelListQueryInput input)
{
var db = _repository.AsSugarClient();
Dictionary<string, string> queryJson = !string.IsNullOrEmpty(input.queryJson) ? Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(input.queryJson) : new Dictionary<string, string>();
ISqlSugarClient db = _repository.AsSugarClient();
Dictionary<string, string>? queryJson = !string.IsNullOrEmpty(input.queryJson) ? Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(input.queryJson) : new Dictionary<string, string>();
string moCode = queryJson.ContainsKey("mo_code") ? queryJson["mo_code"].ToString() : "";
string moStatus = queryJson.ContainsKey("mo_status") ? queryJson["mo_status"].ToString() : "";
string combineMoCode = queryJson.ContainsKey("combine_mo_code") ? queryJson["combine_mo_code"].ToString() : "";
var result = await db.Queryable<PrdMo>()
SqlSugarPagedList<PrdMoListOuput> result = await db.Queryable<PrdMo>()
.LeftJoin<BasMaterial>((a, b) => a.material_id == b.id)
.LeftJoin<DictionaryTypeEntity>((a, b, c) => c.EnCode == DictConst.MeasurementUnit)
.LeftJoin<DictionaryDataEntity>((a, b, c, d) => c.Id == d.DictionaryTypeId && a.unit_id == d.Id)
@@ -175,10 +175,10 @@ namespace Tnb.ProductionMgr
/// <param name="icmoCode"></param>
/// <returns></returns>
[HttpGet("{icmoCode}")]
public async Task<dynamic> GetReportRecord(string icmoCode)
public dynamic GetReportRecord(string icmoCode)
{
var db = _repository.AsSugarClient();
var output = new PrdMoTaskDefectOutput();
_ = _repository.AsSugarClient();
PrdMoTaskDefectOutput output = new();
//output.mo_task_code = icmoCode;
//var scrap = (await db.Queryable<PrdScrapped>().FirstAsync(it => it.icmo_code == icmoCode));
//output.items = new List<CategoryItem>();
@@ -215,16 +215,16 @@ namespace Tnb.ProductionMgr
throw new ArgumentException($"{nameof(input.Behavior)},not be null or empty");
}
var db = _repository.AsSugarClient();
ISqlSugarClient db = _repository.AsSugarClient();
//获取同组工单的Id一起下发
var combineMoCodes = await db.Queryable<PrdMo>().Where(it => input.WorkOrderIds.Contains(it.id)).Select(it => it.combine_mo_code).ToListAsync();
List<string?> combineMoCodes = await db.Queryable<PrdMo>().Where(it => input.WorkOrderIds.Contains(it.id)).Select(it => it.combine_mo_code).ToListAsync();
if (combineMoCodes?.Count > 0)
{
var moIds = await db.Queryable<PrdMo>().Where(it => combineMoCodes.Contains(it.combine_mo_code) && !input.WorkOrderIds.Contains(it.id)).Select(it => it.id).ToListAsync();
List<string> moIds = await db.Queryable<PrdMo>().Where(it => combineMoCodes.Contains(it.combine_mo_code) && !input.WorkOrderIds.Contains(it.id)).Select(it => it.id).ToListAsync();
input.WorkOrderIds = input.WorkOrderIds.Concat(moIds).ToList();
}
string getMoStatus(MoBehavior behavior)
static string getMoStatus(MoBehavior behavior)
{
string status = "";
switch (behavior)
@@ -238,13 +238,13 @@ namespace Tnb.ProductionMgr
}
return status!;
}
var behavior = input.Behavior.ToEnum<MoBehavior>();
var status = getMoStatus(behavior);
var row = await db.Updateable<PrdMo>()
MoBehavior behavior = input.Behavior.ToEnum<MoBehavior>();
string status = getMoStatus(behavior);
int row = await db.Updateable<PrdMo>()
.SetColumns(it => new PrdMo { mo_status = status })
.Where(it => input.WorkOrderIds.Contains(it.id))
.ExecuteCommandAsync();
return (row > 0);
return row > 0;
}
// /// <summary>
// /// 关联同组工单
@@ -312,20 +312,20 @@ namespace Tnb.ProductionMgr
.Select((a, b, c) => new
{
planDate = a.plan_start_date,
mold_code = c.mold_code,
c.mold_code,
}).ToListAsync();
var planDateAll = true;
var moldIdAll = true;
bool planDateAll = true;
bool moldIdAll = true;
if (list?.Count > 0)
{
var planDate = list.FirstOrDefault()?.planDate;
var moldCode = list.FirstOrDefault()?.mold_code;
DateTime? planDate = list.FirstOrDefault()?.planDate;
string? moldCode = list.FirstOrDefault()?.mold_code;
planDateAll = list.All(x => x.planDate == planDate);
moldIdAll = moldCode != null && list.All(x => x.mold_code == moldCode);
if (planDateAll && moldIdAll)
{
var groupId = SnowflakeIdHelper.NextId();
string groupId = SnowflakeIdHelper.NextId();
multi.executeRes = await _repository.AsSugarClient().Updateable<PrdMo>()
.SetColumns(c => new PrdMo { combine_mo_code = groupId })
.Where(it => input.WorkOrderIds.Contains(it.id))
@@ -369,7 +369,7 @@ namespace Tnb.ProductionMgr
[HttpPost]
public async Task<dynamic> GetPrdMoStatistics(PrdMoStatisticsInput input)
{
var result = await _db.Queryable<PrdMo>()
SqlSugarPagedList<PrdMoStatisticsOutput> result = await _db.Queryable<PrdMo>()
.LeftJoin<DictionaryDataEntity>((a, b) => a.mo_status == b.Id)
.LeftJoin<BasMaterial>((a, b, c) => a.material_id == c.id)
.WhereIF(!string.IsNullOrEmpty(input.mo_status), (a, b) => b.EnCode == input.mo_status)
@@ -420,9 +420,9 @@ namespace Tnb.ProductionMgr
[HttpPost]
public async Task<dynamic> PrdMoFromOneList(PrdMoFromQueryInput input)
{
List<string> ids = new List<string>();
List<string> ids1 = new List<string>();
List<string> ids2 = new List<string>();
List<string> ids = new();
List<string> ids1 = new();
List<string> ids2 = new();
if (!string.IsNullOrEmpty(input.mo_task_code))
{
ids1 = await _db.Queryable<PrdMoTask>().Where(x => x.mo_task_code.Contains(x.mo_task_code)).Select(x => x.mo_id).ToListAsync();
@@ -441,7 +441,7 @@ namespace Tnb.ProductionMgr
ids = ids1.Intersect(ids2).ToList();
}
var result = await _db.Queryable<PrdMo>()
SqlSugarPagedList<PrdMoFromOneListOutput> result = await _db.Queryable<PrdMo>()
.LeftJoin<BasMaterial>((a, b) => a.material_id == b.id)
.WhereIF(!string.IsNullOrEmpty(input.mo_code), (a, b) => a.mo_code.Contains(input.mo_code))
.WhereIF(ids != null && ids.Count > 0, (a, b) => ids.Contains(a.id))
@@ -464,7 +464,6 @@ namespace Tnb.ProductionMgr
/// <summary>
/// 工单追溯二级列表
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<dynamic> PrdMoFromTwoList(PrdMoFromTwoQueryInput prdMoFromTwoQueryInput)
@@ -472,16 +471,15 @@ namespace Tnb.ProductionMgr
string mo_id = prdMoFromTwoQueryInput.mo_id ?? "";
string mo_task_code = prdMoFromTwoQueryInput.mo_task_code ?? "";
string barcode = prdMoFromTwoQueryInput.barcode ?? "";
List<string> ids = new List<string>();
List<string> ids = new();
if (!string.IsNullOrEmpty(barcode))
{
ids = await _db.Queryable<PrdReport>().Where(x => x.barcode.Contains(barcode)).Select(x => x.mo_task_id).ToListAsync();
}
PrdMo prdMo = await _repository.GetSingleAsync(x => x.id == mo_id);
if (prdMo.mo_type is DictConst.PrdMoTypeZS or DictConst.PrdMoTypeJC)
{
return await _db.Queryable<PrdMoTask>()
return prdMo.mo_type is DictConst.PrdMoTypeZS or DictConst.PrdMoTypeJC
? await _db.Queryable<PrdMoTask>()
.LeftJoin<BasMaterial>((a, b) => a.material_id == b.id)
.LeftJoin<OrganizeRelationEntity>((a, b, c) => a.eqp_id == c.ObjectId && c.ObjectType == "Eqp")
.LeftJoin<OrganizeEntity>((a, b, c, d) => c.OrganizeId == d.Id)
@@ -504,11 +502,8 @@ namespace Tnb.ProductionMgr
workshop_name = e.FullName,
station_name = d.FullName,
equip_code = f.code
}).ToListAsync();
}
else
{
return await _db.Queryable<PrdMoTask>()
}).ToListAsync()
: (dynamic)await _db.Queryable<PrdMoTask>()
.LeftJoin<BasMaterial>((a, b) => a.material_id == b.id)
.LeftJoin<OrganizeEntity>((a, b, c) => a.workline_id == c.Id)
.LeftJoin<BasMbom>((a, b, c, d) => a.bom_id == d.id)
@@ -529,14 +524,12 @@ namespace Tnb.ProductionMgr
workline_name = c.FullName,
mbom_version = d.version
}).ToListAsync();
}
}
/// <summary>
/// 工单追溯三级级列表
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<dynamic> PrdMoFromThreeList(PrdMoFromThreeQueryInput prdMoFromThreeQueryInput)
@@ -544,7 +537,7 @@ namespace Tnb.ProductionMgr
string mo_task_id = prdMoFromThreeQueryInput.mo_task_id ?? "";
string mo_task_code = prdMoFromThreeQueryInput.mo_task_code ?? "";
string barcode = prdMoFromThreeQueryInput.barcode ?? "";
List<string> ids = new List<string>();
List<string> ids = new();
if (!string.IsNullOrEmpty(barcode))
{
ids = await _db.Queryable<PrdReport>().Where(x => x.barcode.Contains(barcode)).Select(x => x.mo_task_id).ToListAsync();
@@ -574,7 +567,7 @@ namespace Tnb.ProductionMgr
}).Mapper(x =>
{
List<string> orgId1 = orgs.Where(y => y.OrganizeIdTree.Contains(x.workline_id)).Select(y => y.Id).ToList();
string station_id = orgIds.Intersect(orgId1)?.FirstOrDefault();
string? station_id = orgIds.Intersect(orgId1)?.FirstOrDefault();
if (!string.IsNullOrEmpty(station_id))
{
x.station_name = orgs.FirstOrDefault(y => y.Id == station_id)?.FullName;
@@ -586,14 +579,13 @@ namespace Tnb.ProductionMgr
/// <summary>
/// 工单追溯人列表
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<dynamic> PrdMoFromManList(PrdMoFromTabQueryInput prdMoFromTabQueryInput)
{
string mo_task_id = prdMoFromTabQueryInput.mo_task_id ?? "";
string barcode = prdMoFromTabQueryInput.barcode ?? "";
List<string> ids = new List<string>();
List<string> ids = new();
if (!string.IsNullOrEmpty(barcode))
{
ids = await _db.Queryable<PrdReport>().Where(x => x.barcode.Contains(barcode)).Select(x => x.mo_task_id).ToListAsync();
@@ -621,14 +613,13 @@ namespace Tnb.ProductionMgr
/// <summary>
/// 工单追溯机列表
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<dynamic> PrdMoFromEquipList(PrdMoFromTabQueryInput prdMoFromTabQueryInput)
{
string mo_task_id = prdMoFromTabQueryInput.mo_task_id ?? "";
string barcode = prdMoFromTabQueryInput.barcode ?? "";
List<string> ids = new List<string>();
List<string> ids = new();
if (!string.IsNullOrEmpty(barcode))
{
ids = await _db.Queryable<PrdReport>().Where(x => x.barcode.Contains(barcode)).Select(x => x.mo_task_id).ToListAsync();
@@ -649,14 +640,13 @@ namespace Tnb.ProductionMgr
/// <summary>
/// 工单追溯料列表
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<dynamic> PrdMoFromMaterialList(PrdMoFromTabQueryInput prdMoFromTabQueryInput)
{
string mo_task_id = prdMoFromTabQueryInput.mo_task_id ?? "";
string barcode = prdMoFromTabQueryInput.barcode ?? "";
List<string> ids = new List<string>();
List<string> ids = new();
if (!string.IsNullOrEmpty(barcode))
{
ids = await _db.Queryable<PrdReport>().Where(x => x.barcode.Contains(barcode)).Select(x => x.mo_task_id).ToListAsync();
@@ -671,9 +661,8 @@ namespace Tnb.ProductionMgr
*/
if (string.IsNullOrEmpty(barcode))
{
if (prdMoTask.schedule_type == 1)
{
return await _db.Queryable<BasEbomH>()
return prdMoTask.schedule_type == 1
? await _db.Queryable<BasEbomH>()
.LeftJoin<BasEbomD>((a, b) => a.id == b.ebom_id)
.LeftJoin<BasMaterial>((a, b, c) => b.material_id == c.id)
.Where((a, b, c) => a.id == prdMoTask.ebom_id)
@@ -681,11 +670,8 @@ namespace Tnb.ProductionMgr
{
material_code = c.code,
material_name = c.name,
}).ToListAsync();
}
else
{
return await _db.Queryable<BasMbomInput>()
}).ToListAsync()
: (dynamic)await _db.Queryable<BasMbomInput>()
.LeftJoin<BasMaterial>((a, b) => a.material_id == b.id)
.Where((a, b) => a.mbom_id == prdMoTask.bom_id)
.Select((a, b) => new PrdMoFromMaterialListOutput()
@@ -693,20 +679,19 @@ namespace Tnb.ProductionMgr
material_code = b.code,
material_name = b.name,
}).ToListAsync();
}
}
else
{
PrdReport prdReport = await _db.Queryable<PrdReport>().Where(x => x.barcode == barcode).FirstAsync();
List<PrdReport> prdReports = await _db.Queryable<PrdReport>().Where(x => x.create_time <= prdReport.create_time && x.barcode != barcode && x.mo_task_id == mo_task_id).ToListAsync();
int? beforeReportNum = prdReports.Sum(x => x.reported_qty);
List<string> prdFeedingIds = new List<string>();
List<string> prdFeedingIds = new();
if (prdMoTask.schedule_type == 1)
{
BasEbomH basEbomH = await _db.Queryable<BasEbomH>().SingleAsync(x => x.id == prdMoTask.ebom_id);
List<BasEbomD> basEbomDs = await _db.Queryable<BasEbomD>().Where(x => x.ebom_id == prdMoTask.ebom_id).ToListAsync();
foreach (var item in basEbomDs)
foreach (BasEbomD item in basEbomDs)
{
decimal? num1 = beforeReportNum / basEbomH.quantity * item.quantity;
List<PrdFeedingD> prdFeedingDs = await _db.Queryable<PrdFeedingD>()
@@ -716,7 +701,7 @@ namespace Tnb.ProductionMgr
.Select((a, b) => a).ToListAsync();
decimal sum1 = 0;
decimal sum2 = 0;
foreach (var prdFeedingD in prdFeedingDs)
foreach (PrdFeedingD prdFeedingD in prdFeedingDs)
{
if (sum1 <= num1)
{
@@ -760,11 +745,15 @@ namespace Tnb.ProductionMgr
List<BasMbomInput> basMbomInputs = await _db.Queryable<BasMbomInput>().Where(x => x.mbom_process_id == prdMoTask.mbom_process_id).ToListAsync();
BasMbom basMbom = await _db.Queryable<BasMbom>().SingleAsync(x => x.id == prdMoTask.bom_id);
BasMbomProcess basMbomProcess = await _db.Queryable<BasMbomProcess>().SingleAsync(x => x.id == prdMoTask.mbom_process_id);
List<string> lastPrdReportIds = new List<string>();
foreach (var item in basMbomInputs)
List<string> lastPrdReportIds = new();
foreach (BasMbomInput item in basMbomInputs)
{
BasMbomOutput basMbomOutput = await _db.Queryable<BasMbomOutput>().Where(x => x.mbom_process_id == basMbomProcess.id && x.material_id == prdMoTask.material_id).FirstAsync();
if (basMbomOutput == null) break;
if (basMbomOutput == null)
{
break;
}
decimal? num1 = beforeReportNum / Convert.ToDecimal(basMbomOutput.num) * item.num;
List<PrdFeedingD> prdFeedingDs = await _db.Queryable<PrdFeedingD>()
.LeftJoin<PrdFeedingH>((a, b) => a.feeding_id == b.id)
@@ -774,22 +763,28 @@ namespace Tnb.ProductionMgr
if (prdFeedingDs == null || prdFeedingDs.Count <= 0)
{
if (string.IsNullOrEmpty(basMbomProcess.last_process_no)) continue;
if (string.IsNullOrEmpty(basMbomProcess.last_process_no))
{
continue;
}
List<BasMbomProcess> lastBasMbomProcesses = await _db.Queryable<BasMbomProcess>().Where(x => x.no == basMbomProcess.last_process_no && x.mbom_id == prdMoTask.bom_id).ToListAsync();
foreach (var lastBasMbomProcess in lastBasMbomProcesses)
foreach (BasMbomProcess lastBasMbomProcess in lastBasMbomProcesses)
{
List<PrdReport> lastPrdReports = await _db.Queryable<PrdReport>()
.Where(x => x.mbom_process_id == lastBasMbomProcess.id && x.material_id == item.material_id)
.OrderBy(x => x.create_time)
.ToListAsync();
if (lastPrdReports == null || lastPrdReports.Count <= 0) continue;
if (lastPrdReports == null || lastPrdReports.Count <= 0)
{
continue;
}
PrdMoTask lastPrdMoTask = await _db.Queryable<PrdMoTask>().FirstAsync(x => x.mo_id == prdMo.id && x.mbom_process_id == lastBasMbomProcess.id);
decimal sum1 = 0;
decimal sum2 = 0;
foreach (var lastPrdReport in lastPrdReports)
foreach (PrdReport lastPrdReport in lastPrdReports)
{
if (sum1 <= num1)
{
@@ -817,7 +812,7 @@ namespace Tnb.ProductionMgr
{
decimal sum1 = 0;
decimal sum2 = 0;
foreach (var prdFeedingD in prdFeedingDs)
foreach (PrdFeedingD prdFeedingD in prdFeedingDs)
{
if (sum1 <= num1)
{
@@ -839,7 +834,7 @@ namespace Tnb.ProductionMgr
}
}
var queryable1 = _db.Queryable<PrdFeedingD>()
ISugarQueryable<PrdMoFromMaterialListOutput> queryable1 = _db.Queryable<PrdFeedingD>()
.LeftJoin<BasMaterial>((a, b) => a.material_id == b.id)
.LeftJoin<PrdMaterialReceiptD>((a, b, c) => a.material_receipt_detail_id == c.id)
.LeftJoin<BasSupplier>((a, b, c, d) => c.supplier_id == d.id)
@@ -859,7 +854,7 @@ namespace Tnb.ProductionMgr
if (lastPrdReportIds != null && lastPrdReportIds.Count > 0)
{
var queryable2 = _db.Queryable<PrdReport>()
ISugarQueryable<PrdMoFromMaterialListOutput> queryable2 = _db.Queryable<PrdReport>()
.LeftJoin<BasMaterial>((a, b) => a.material_id == b.id)
.Where((a, b) => lastPrdReportIds.Contains(a.id))
.Select((a, b) => new PrdMoFromMaterialListOutput()
@@ -889,25 +884,24 @@ namespace Tnb.ProductionMgr
/// <summary>
/// 物料反向追溯物料信息
/// </summary>
/// <param name="dic"></param>
/// <returns></returns>
[HttpPost]
public async Task<dynamic> PrdMoReverseFromMaterialInfo(PrdMoReverseFromQueryInput prdMoReverseFromQueryInput)
{
string barcode = prdMoReverseFromQueryInput.barcode ?? "";
string domain = (App.HttpContext.Request.IsHttps ? "https://" : "http://") + App.HttpContext.Request.Host;
Dictionary<string, object> header = new Dictionary<string, object>()
Dictionary<string, object> header = new()
{
["Authorization"] = App.HttpContext.Request.Headers["Authorization"]
};
Dictionary<string, object> postData = new Dictionary<string, object>()
Dictionary<string, object> postData = new()
{
["org_id"] = _userManager.GetUserInfo().Result.organizeId,
["barcode"] = new List<string>() { barcode },
["currentPage"] = 1,
["pageSize"] = int.MaxValue,
};
var sendResult = HttpUtils.RequestPost(domain + WebApiConst.MES_FETCH_IN_OUT_STOCK_INFO_BY_BAR_CODE, JsonConvert.SerializeObject(postData), header);
string sendResult = HttpUtils.RequestPost(domain + WebApiConst.MES_FETCH_IN_OUT_STOCK_INFO_BY_BAR_CODE, JsonConvert.SerializeObject(postData), header);
Log.Information(sendResult);
AuthResponse authResponse = JsonConvert.DeserializeObject<AuthResponse>(sendResult);
@@ -946,7 +940,6 @@ namespace Tnb.ProductionMgr
/// <summary>
/// 物料反向追溯投料信息
/// </summary>
/// <param name="dic"></param>
/// <returns></returns>
[HttpPost]
public async Task<dynamic> PrdMoReverseFromFeedingInfo(PrdMoReverseFromQueryInput prdMoReverseFromQueryInput)
@@ -958,7 +951,7 @@ namespace Tnb.ProductionMgr
.Where(a => a.barcode == barcode)
.Select((a, b, c) => c.mo_task_id).ToListAsync();
var result = await _db.Queryable<PrdMoTask>()
List<PrdMoReverseFromFeedingOutput> result = await _db.Queryable<PrdMoTask>()
.LeftJoin<PrdMo>((a, b) => a.mo_id == b.id)
.LeftJoin<BasMaterial>((a, b, c) => a.material_id == c.id)
.Where((a, b, c) => ids.Contains(a.id))
@@ -998,14 +991,17 @@ namespace Tnb.ProductionMgr
/// <summary>
/// 物料反向追溯产出信息
/// </summary>
/// <param name="dic"></param>
/// <returns></returns>
[HttpPost]
public async Task<dynamic> PrdMoReverseFromOutInfo(PrdMoReverseFromOutInfoQueryInput prdMoReverseFromOutInfoQueryInput)
{
string feeding_detail_id = prdMoReverseFromOutInfoQueryInput.feeding_detail_id ?? "";
PrdFeedingD prdFeedingD = await _db.Queryable<PrdFeedingD>().FirstAsync(x => x.id == feeding_detail_id);
if (prdFeedingD.use_num <= 0) return Array.Empty<string>();
if (prdFeedingD.use_num <= 0)
{
return Array.Empty<string>();
}
PrdFeedingH prdFeedingH = await _db.Queryable<PrdFeedingH>().FirstAsync(x => x.id == prdFeedingD.feeding_id);
PrdMoTask prdMoTask = await _db.Queryable<PrdMoTask>().FirstAsync(x => x.id == prdFeedingH.mo_task_id);
List<PrdFeedingD> prdFeedingDs = await _db.Queryable<PrdFeedingD>()
@@ -1013,7 +1009,7 @@ namespace Tnb.ProductionMgr
.Where((a, b) => a.material_id == prdFeedingD.material_id && b.mo_task_id == prdFeedingH.mo_task_id && b.create_time <= prdFeedingH.create_time && a.id != prdFeedingD.id)
.Select((a, b) => a).ToListAsync();
decimal beforeIn = prdFeedingDs.Sum(x => x.num);
List<string> reportIds = new List<string>();
List<string> reportIds = new();
if (prdMoTask.schedule_type == 1)
{
BasEbomH basEbomH = await _db.Queryable<BasEbomH>().SingleAsync(x => x.id == prdMoTask.ebom_id);
@@ -1026,9 +1022,9 @@ namespace Tnb.ProductionMgr
{
bool flag = true;
decimal residueNeed = 0;
foreach (var prdReport in prdReports)
foreach (PrdReport prdReport in prdReports)
{
var needNum = (prdReport.reported_qty ?? 0) / basEbomH.quantity * basEbomD.quantity;
decimal needNum = (prdReport.reported_qty ?? 0) / basEbomH.quantity * basEbomD.quantity;
if (beforeIn - needNum >= 0)
{
beforeIn -= needNum;
@@ -1088,7 +1084,7 @@ namespace Tnb.ProductionMgr
if (prdReports != null && prdReports.Count > 0)
{
List<string> mbomProcesssIds = new List<string>() { prdMoTask.mbom_process_id };
List<string> mbomProcesssIds = new() { prdMoTask.mbom_process_id };
BasMbomProcess startMbomProcess = await _db.Queryable<BasMbomProcess>().Where(x => x.id == prdMoTask.mbom_process_id).FirstAsync();
List<BasMbomProcess> allMbomProcesses = await _db.Queryable<BasMbomProcess>().Where(x => x.mbom_id == prdMoTask.bom_id).ToListAsync();
string startNo = startMbomProcess.next_process_no;
@@ -1128,7 +1124,7 @@ namespace Tnb.ProductionMgr
.Select((a, b) => b).ToListAsync();
decimal? needNum = 1;//一个最终物料需要本任务单投入物料的数量
string tempMaterialId = outputList.FirstOrDefault(x => x.mbom_process_id == mbomProcesssIds[mbomProcesssIds.Count - 1])?.material_id;
string? tempMaterialId = outputList.FirstOrDefault(x => x.mbom_process_id == mbomProcesssIds[^1])?.material_id;
for (int i = mbomProcesssIds.Count - 1; i > 0; i--)
{
@@ -1150,7 +1146,7 @@ namespace Tnb.ProductionMgr
bool flag = true;
decimal residueNeed = 0;
foreach (var prdReport in prdReports)
foreach (PrdReport prdReport in prdReports)
{
decimal needNumTotal = prdReport.reported_qty * needNum ?? 0;
if (beforeIn - needNumTotal >= 0)
@@ -1202,18 +1198,18 @@ namespace Tnb.ProductionMgr
List<string> barCodes = await _db.Queryable<PrdReport>().Where(x => reportIds.Contains(x.id)).Select(x => x.barcode).ToListAsync();
string domain = (App.HttpContext.Request.IsHttps ? "https://" : "http://") + App.HttpContext.Request.Host;
Dictionary<string, object> header = new Dictionary<string, object>()
Dictionary<string, object> header = new()
{
["Authorization"] = App.HttpContext.Request.Headers["Authorization"]
};
Dictionary<string, object> postData = new Dictionary<string, object>()
Dictionary<string, object> postData = new()
{
["org_id"] = _userManager.GetUserInfo().Result.organizeId,
["barcode"] = barCodes,
["currentPage"] = 1,
["pageSize"] = int.MaxValue,
};
var sendResult = HttpUtils.RequestPost(domain + WebApiConst.MES_FETCH_IN_OUT_STOCK_INFO_BY_BAR_CODE, JsonConvert.SerializeObject(postData), header);
string sendResult = HttpUtils.RequestPost(domain + WebApiConst.MES_FETCH_IN_OUT_STOCK_INFO_BY_BAR_CODE, JsonConvert.SerializeObject(postData), header);
Log.Information(sendResult);
AuthResponse authResponse = JsonConvert.DeserializeObject<AuthResponse>(sendResult);
@@ -1227,7 +1223,7 @@ namespace Tnb.ProductionMgr
PageResult<PrdMoReverseFromOutput> output = JsonConvert.DeserializeObject<PageResult<PrdMoReverseFromOutput>>(authResponse.data.ToString(), new Tnb.Common.Utils.DateTimeJsonConverter());
if (output.list != null && output.list.Count > 0)
{
foreach (var item in output.list)
foreach (PrdMoReverseFromOutput item in output.list)
{
item.material_name = basMaterial.name;
}