| | |
| | | |
| | | |
| | | using MES.Service.DB; |
| | | using MES.Service.Dto.webApi; |
| | | using MES.Service.Dto.webApi.FbsDb; |
| | | using MES.Service.Modes; |
| | | using MES.Service.Modes.FBSDB; |
| | | using MES.Service.service.BasicData; |
| | | using SqlSugar; |
| | | |
| | | namespace MES.Service.service.FBSDB; |
| | | |
| | | internal class FbsDbManager |
| | | public class FbsDbManager:Repository<MesInvItemMoves> |
| | | { |
| | | private readonly FbsDbBManager _dbBManager = new(); |
| | | |
| | | public bool SaveList(List<ErpDb> dbs) |
| | | { |
| | | var result = dbs.Select(Save).ToList(); |
| | | return result.All(b => b); |
| | | } |
| | | |
| | | public bool Save(ErpDb dbs) |
| | | { |
| | | var dba = dbs.erpDbcka; |
| | | var mesDbA = FbaDbA(dba); |
| | | var mesDbB = FbsDbB(dbs.erpDbckB,dba.FBillNo); |
| | | return UseTransaction(db => |
| | | { |
| | | switch (dba.Type) |
| | | { |
| | | case "3": |
| | | return DeleteData(db, mesDbA, mesDbB) ? 1 : 0; |
| | | case "1": |
| | | case "2": |
| | | case "4": |
| | | case "5": |
| | | return SaveOrUpdateData(db, mesDbA, mesDbB) ? 1 : 0; |
| | | default: |
| | | throw new NotImplementedException($"type没有{dba.Type}这个类型"); |
| | | } |
| | | }) > 0; |
| | | } |
| | | |
| | | // 插入或更新数据的方法 |
| | | private bool SaveOrUpdateData(SqlSugarScope db, MesInvItemMoves fbsdba, List<MesInvItemMoveItems> fbsdbb) |
| | | { |
| | | if (fbsdba.Id != null) |
| | | { |
| | | base.DeleteById(fbsdba.Id); |
| | | } |
| | | |
| | | if (fbsdbb.Count > 0) |
| | | { |
| | | db.Deleteable<MesInvItemMoveItems>().Where(s => s.ItemMoveId == fbsdba.Erpid).ExecuteCommand(); |
| | | } |
| | | var orUpdate = base.Insert(fbsdba); |
| | | var baOrUpdate = _dbBManager.InsertRange(fbsdbb); |
| | | if (orUpdate && baOrUpdate) |
| | | { |
| | | return true; |
| | | } |
| | | throw new NotImplementedException("插入或更新失败"); |
| | | } |
| | | |
| | | private bool DeleteData(SqlSugarScope db, MesInvItemMoves mesDbA, List<MesInvItemMoveItems> mesDbB) |
| | | { |
| | | var decimals = mesDbB.Select(s => s.Id).ToArray(); |
| | | var update = base.DeleteById(mesDbA.Id); |
| | | var insertOrUpdate = db.Deleteable<MesInvItemMoveItems>().In(decimals).ExecuteCommand() > 0; |
| | | |
| | | if (update && insertOrUpdate) |
| | | { |
| | | return true; |
| | | } |
| | | throw new NotImplementedException("删除失败"); |
| | | } |
| | | |
| | | private MesInvItemMoves FbaDbA(FbsDbA dto) |
| | | { |
| | | |
| | | var entity = new MesInvItemMoves |
| | | { |
| | | Erpid = Convert.ToDecimal(dto.Erpid), |
| | | BillNo = dto.FBillNo, |
| | | CreateBy = dto.FCreateBy, |
| | | CreateDate = dto.FDate != null ? DateTime.ParseExact(dto.FDate, "yyyy-MM-dd HH:mm:ss", null) : null, |
| | | Status = 1, |
| | | Remark = dto.FRemarks, |
| | | BillTypeId = 300, |
| | | TransactionNo = 302, |
| | | SapStatus = 0, |
| | | Factory = "1000", |
| | | Company = "1000", |
| | | Ts =0, |
| | | DbStatus="未调拨", |
| | | FBillTypeId=dto.FBillTypeID, |
| | | FDocumentStatus=dto.FDocumentStatus, |
| | | FTransferDirect=dto.FTransferDirect, |
| | | FTransType=dto.FTRANSTYPE, |
| | | FBusinessType=dto.FBusinessType, |
| | | FOwnerTypeIdHead=dto.FOwnerTypeIdHead, |
| | | FOwnerTypeInIdHead=dto.FOwnerTypeInIdHead, |
| | | FAppOrgId=Convert.ToDecimal(dto.FAPPORGID) |
| | | |
| | | }; |
| | | |
| | | var single = base.GetSingle(it => it.Erpid == entity.Erpid); |
| | | if (single != null) |
| | | { |
| | | entity.Id = single.Id; |
| | | } |
| | | |
| | | return entity; |
| | | } |
| | | |
| | | private List<MesInvItemMoveItems> FbsDbB(List<FbsDbB> dtoList,string billno) |
| | | { |
| | | var dbList = new List<MesInvItemMoveItems>(); |
| | | |
| | | foreach (var dto in dtoList) |
| | | { |
| | | var entitys = new MesInvItemMoveItems |
| | | { |
| | | ErpId = Convert.ToDecimal(dto.erpid), |
| | | ItemMoveId = Convert.ToDecimal(dto.eid), |
| | | ItemId =Convert.ToDecimal(dto.FMATERIALID), |
| | | ItemUnit = Convert.ToDecimal(dto.FUNITID), |
| | | SqNum = Convert.ToDecimal(dto.FQty), |
| | | Remark = dto.FNote, |
| | | BillNo = billno, |
| | | MoveIn = 0, |
| | | MoveOut = 0, |
| | | CreateDate = DateTime.Now, |
| | | IsTb = 0, |
| | | FOwnerTypeId = dto.FOwnerTypeId, |
| | | FOwnerId = dto.FOwnerId, |
| | | FStockId = dto.FStockId, |
| | | FOwnerTypeInId = dto.FOwnerTypeInId, |
| | | FOwnerInId = dto.FOwnerInId, |
| | | FStockInId = dto.FStockInId, |
| | | FStockOrgId = Convert.ToDecimal(dto.FStockOrgId), |
| | | FStockOrgInId = Convert.ToDecimal(dto.FStockOrgInId), |
| | | FLot=dto.FLot, |
| | | FMtono=dto.FMtoNo |
| | | }; |
| | | |
| | | var entity = Db.Queryable<MesInvItemMoveItems>().Where(s => s.ErpId == entitys.ErpId).Single(); |
| | | if (entity != null) |
| | | { |
| | | entitys.Id = entity.Id; |
| | | } |
| | | |
| | | dbList.Add(entitys); |
| | | } |
| | | |
| | | return dbList; |
| | | } |
| | | } |