| | |
| | | { |
| | | var deliveryNote = deliveryNoteWrapper.DeliveryNote; |
| | | var mesDeliveryNote = GetMesDeliveryNote(deliveryNote); |
| | | var mesDeliveryNoteDetails = |
| | | GetMesDeliveryNoticeDetails(deliveryNoteWrapper.DeliveryNoteDetails, mesDeliveryNote.DeliveryNo); |
| | | var mesDeliveryNoteDetails = GetMesDeliveryNoticeDetails(deliveryNoteWrapper.DeliveryNoteDetails, mesDeliveryNote.DeliveryNo); |
| | | |
| | | return UseTransaction(db => |
| | | { |
| | |
| | | /// <summary> |
| | | /// 更新送货单数据 |
| | | /// </summary> |
| | | private bool UpdateData(SqlSugarScope db, MesDeliveryNotice mesDeliveryNote, |
| | | List<MesDeliveryNoticeDetail> mesDeliveryNoteDetails) |
| | | private bool UpdateData(SqlSugarScope db, MesDeliveryNotice mesDeliveryNote, List<MesDeliveryNoticeDetail> mesDeliveryNoteDetails) |
| | | { |
| | | var detailIds = mesDeliveryNoteDetails.Select(s => s.Guid).ToArray(); |
| | | |
| | | // 删除主表数据 |
| | | var deleteMain = db.Deleteable<MesDeliveryNotice>() |
| | | .Where(a => a.DeliveryNo == mesDeliveryNote.DeliveryNo) |
| | | .ExecuteCommand() > 0; |
| | | var deleteMain = db.Deleteable<MesDeliveryNotice>().Where(a => a.DeliveryNo == mesDeliveryNote.DeliveryNo).ExecuteCommand() > 0; |
| | | |
| | | // 删除明细数据 |
| | | var deleteDetails = db.Deleteable<MesDeliveryNoticeDetail>() |
| | | .Where(s => detailIds.Contains(s.Guid)) |
| | | .ExecuteCommand() > 0; |
| | | var deleteDetails = db.Deleteable<MesDeliveryNoticeDetail>().Where(s => detailIds.Contains(s.Guid)).ExecuteCommand() > 0; |
| | | |
| | | if (deleteMain && deleteDetails) return true; |
| | | if (deleteMain && deleteDetails) |
| | | { |
| | | return true; |
| | | } |
| | | throw new NotImplementedException("送货单更新失败"); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 保存或更新送货单数据 |
| | | /// </summary> |
| | | private bool SaveOrUpdateData(SqlSugarScope db, MesDeliveryNotice mesDeliveryNote, |
| | | List<MesDeliveryNoticeDetail> mesDeliveryNoteDetails) |
| | | private bool SaveOrUpdateData(SqlSugarScope db, MesDeliveryNotice mesDeliveryNote, List<MesDeliveryNoticeDetail> mesDeliveryNoteDetails) |
| | | { |
| | | // 若存在则先删除主表数据 |
| | | if (!mesDeliveryNote.DeliveryNo.IsNullOrEmpty()) |
| | | { |
| | | db.Deleteable<MesDeliveryNotice>() |
| | | .Where(s => s.DeliveryNo == mesDeliveryNote.DeliveryNo) |
| | | .ExecuteCommand(); |
| | | db.Deleteable<MesDeliveryNotice>().Where(s => s.DeliveryNo == mesDeliveryNote.DeliveryNo).ExecuteCommand(); |
| | | } |
| | | |
| | | // 删除关联的明细数据 |
| | | if (mesDeliveryNoteDetails.Count > 0) |
| | | { |
| | | db.Deleteable<MesDeliveryNoticeDetail>() |
| | | .Where(s => s.DeliveryNo == mesDeliveryNote.DeliveryNo) |
| | | .ExecuteCommand(); |
| | | db.Deleteable<MesDeliveryNoticeDetail>().Where(s => s.DeliveryNo == mesDeliveryNote.DeliveryNo).ExecuteCommand(); |
| | | } |
| | | |
| | | // 插入主表数据 |
| | | var insertMain = db.Insertable(mesDeliveryNote) |
| | | .IgnoreColumns(true) |
| | | .ExecuteCommand() > 0; |
| | | var insertMain = db.Insertable(mesDeliveryNote).IgnoreColumns(true).ExecuteCommand() > 0; |
| | | |
| | | // 插入明细数据 |
| | | var insertDetails = db.Insertable(mesDeliveryNoteDetails) |
| | | .PageSize(1) |
| | | .IgnoreColumnsNull() |
| | | .ExecuteCommand() > 0; |
| | | var insertDetails = db.Insertable(mesDeliveryNoteDetails).PageSize(1).IgnoreColumnsNull().ExecuteCommand() > 0; |
| | | |
| | | if (insertMain && insertDetails) return true; |
| | | if (insertMain && insertDetails) |
| | | { |
| | | return true; |
| | | } |
| | | throw new NotImplementedException("送货单保存失败"); |
| | | } |
| | | |
| | |
| | | return deliveryNoteDetails.Select(detail => |
| | | { |
| | | // 查找已有明细记录 |
| | | var existingDetail = deliveryNoteDetailManager.GetSingle(it => |
| | | it.DeliveryNo == deliveryNo && it.LineNo == detail.LineNo); |
| | | var existingDetail = deliveryNoteDetailManager.GetSingle(it => it.DeliveryNo == deliveryNo && it.LineNo == detail.LineNo); |
| | | var mesDetail = existingDetail ?? new MesDeliveryNoticeDetail(); |
| | | |
| | | // 明细字段映射 |