|
@@ -16,17 +16,20 @@ public class SeOrderService : IDynamicApiController, ITransient
|
|
|
private readonly SqlSugarRepository<SeOrder> _seOrderRep;
|
|
private readonly SqlSugarRepository<SeOrder> _seOrderRep;
|
|
|
private readonly SqlSugarRepository<SeOrderEntry> _seOrderEntryRep;
|
|
private readonly SqlSugarRepository<SeOrderEntry> _seOrderEntryRep;
|
|
|
private readonly SqlSugarRepository<SeOrderChange> _seOrderChangeRep;
|
|
private readonly SqlSugarRepository<SeOrderChange> _seOrderChangeRep;
|
|
|
|
|
+ private readonly UserManager _userManager;
|
|
|
|
|
|
|
|
public SeOrderService(
|
|
public SeOrderService(
|
|
|
ISqlSugarClient db,
|
|
ISqlSugarClient db,
|
|
|
SqlSugarRepository<SeOrder> seOrderRep,
|
|
SqlSugarRepository<SeOrder> seOrderRep,
|
|
|
SqlSugarRepository<SeOrderEntry> seOrderEntryRep,
|
|
SqlSugarRepository<SeOrderEntry> seOrderEntryRep,
|
|
|
- SqlSugarRepository<SeOrderChange> seOrderChangeRep)
|
|
|
|
|
|
|
+ SqlSugarRepository<SeOrderChange> seOrderChangeRep,
|
|
|
|
|
+ UserManager userManager)
|
|
|
{
|
|
{
|
|
|
_db = db;
|
|
_db = db;
|
|
|
_seOrderRep = seOrderRep;
|
|
_seOrderRep = seOrderRep;
|
|
|
_seOrderEntryRep = seOrderEntryRep;
|
|
_seOrderEntryRep = seOrderEntryRep;
|
|
|
_seOrderChangeRep = seOrderChangeRep;
|
|
_seOrderChangeRep = seOrderChangeRep;
|
|
|
|
|
+ _userManager = userManager;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// ══════════════════════════════════════════════════════════════
|
|
// ══════════════════════════════════════════════════════════════
|
|
@@ -241,7 +244,7 @@ public class SeOrderService : IDynamicApiController, ITransient
|
|
|
entity.IsDeleted = 0;
|
|
entity.IsDeleted = 0;
|
|
|
entity.CreateTime = DateTime.Now;
|
|
entity.CreateTime = DateTime.Now;
|
|
|
await _seOrderRep.InsertAsync(entity);
|
|
await _seOrderRep.InsertAsync(entity);
|
|
|
- await SaveEntriesAsync(entity.Id, input.Entries);
|
|
|
|
|
|
|
+ await SaveEntriesAsync(entity.Id, input.BillNo, input.Entries);
|
|
|
return new { id = entity.Id, message = "新增成功" };
|
|
return new { id = entity.Id, message = "新增成功" };
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
@@ -254,7 +257,7 @@ public class SeOrderService : IDynamicApiController, ITransient
|
|
|
entity.UpdateTime = DateTime.Now;
|
|
entity.UpdateTime = DateTime.Now;
|
|
|
await _seOrderRep.UpdateAsync(entity);
|
|
await _seOrderRep.UpdateAsync(entity);
|
|
|
|
|
|
|
|
- await SaveEntriesAsync(input.Id.Value, input.Entries);
|
|
|
|
|
|
|
+ await SaveEntriesAsync(input.Id.Value, input.BillNo, input.Entries);
|
|
|
return new { id = input.Id, message = "编辑成功" };
|
|
return new { id = input.Id, message = "编辑成功" };
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -262,10 +265,10 @@ public class SeOrderService : IDynamicApiController, ITransient
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
/// 明细三路合并:
|
|
/// 明细三路合并:
|
|
|
/// ① DB有且入参有(按 Id 匹配)→ 更新
|
|
/// ① DB有且入参有(按 Id 匹配)→ 更新
|
|
|
- /// ② DB无但入参有 → 新增
|
|
|
|
|
|
|
+ /// ② DB无但入参有 → 新增(补填 bill_no / progress=0 / create_by)
|
|
|
/// ③ DB有但入参无 → 删除
|
|
/// ③ DB有但入参无 → 删除
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
- private async Task SaveEntriesAsync(long orderId, List<SeOrderEntryInput> entries)
|
|
|
|
|
|
|
+ private async Task SaveEntriesAsync(long orderId, string billNo, List<SeOrderEntryInput> entries)
|
|
|
{
|
|
{
|
|
|
// 取 DB 现有明细,以 Id 为 key 建索引
|
|
// 取 DB 现有明细,以 Id 为 key 建索引
|
|
|
var dbEntries = await _seOrderEntryRep.GetListAsync(u => u.SeOrderId == orderId && u.IsDeleted == 0);
|
|
var dbEntries = await _seOrderEntryRep.GetListAsync(u => u.SeOrderId == orderId && u.IsDeleted == 0);
|
|
@@ -293,7 +296,10 @@ public class SeOrderService : IDynamicApiController, ITransient
|
|
|
var entry = e.Adapt<SeOrderEntry>();
|
|
var entry = e.Adapt<SeOrderEntry>();
|
|
|
entry.Id = YitIdHelper.NextId();
|
|
entry.Id = YitIdHelper.NextId();
|
|
|
entry.SeOrderId = orderId;
|
|
entry.SeOrderId = orderId;
|
|
|
|
|
+ entry.BillNo = billNo;
|
|
|
entry.EntrySeq = seq;
|
|
entry.EntrySeq = seq;
|
|
|
|
|
+ entry.Progress ??= 0;
|
|
|
|
|
+ entry.CreateBy = _userManager.Account;
|
|
|
entry.IsDeleted = 0;
|
|
entry.IsDeleted = 0;
|
|
|
entry.CreateTime = DateTime.Now;
|
|
entry.CreateTime = DateTime.Now;
|
|
|
await _seOrderEntryRep.InsertAsync(entry);
|
|
await _seOrderEntryRep.InsertAsync(entry);
|