|
|
@@ -582,6 +582,7 @@ namespace Business.SyncDataManagement
|
|
|
{
|
|
|
var ic_bomList = _mysql_ic_bom.GetListAsync(a => a.tenant_id == 1000 && a.factory_id == 1001).Result;
|
|
|
var ic_itemList = _mysql_ic_item.GetListAsync(a => a.tenant_id == 1000 && a.factory_id == 1001).Result;
|
|
|
+ var ic_bomchildList = _mysql_ic_bom_child.GetListAsync(a => a.tenant_id == 1000 && a.factory_id == 1001 && (a.bom_number == "1.SD1.D.0056-F" || a.bom_number == "1.ZC1.D.0001" || a.bom_number == "1.BW1.D.0030")).Result;
|
|
|
List<ProductStructureMaster> wmsBomList = _productStructureMaster.Select(a => a.Domain == "1001" && (a.ParentItem == "1.SD1.D.0056-F" || a.ParentItem == "1.ZC1.D.0001" || a.ParentItem == "1.BW1.D.0030") && a.IsActive);
|
|
|
List<ic_bom> ItemsAdd = new List<ic_bom>();
|
|
|
List<ic_bom_child> childItemsAdd = new List<ic_bom_child>();
|
|
|
@@ -590,50 +591,92 @@ namespace Business.SyncDataManagement
|
|
|
var ItemMasterDS = wmsBomList.Select(a => a.ParentItem).Distinct().ToList();
|
|
|
foreach (var c in ItemMasterDS)
|
|
|
{
|
|
|
- var item = ic_itemList.Find(a => a.number == c);
|
|
|
+ var icbom = ic_bomList.Find(x => x.item_number == c && x.tenant_id == 1000 && x.factory_id == 1001);
|
|
|
var ItemList = wmsBomList.Where(a => a.ParentItem == c);
|
|
|
- long domain = Convert.ToInt64(ItemList.First().Domain);
|
|
|
- long factory_id = domain % 1000;
|
|
|
- long tenant_id = domain - factory_id;
|
|
|
- var bom = new ic_bom(help.NextId())
|
|
|
+ var item = ic_itemList.Find(a => a.number == c);
|
|
|
+ if (item == null)
|
|
|
{
|
|
|
- bom_number = c,
|
|
|
- icitem_id = item == null ? help.NextId() : item.Id,
|
|
|
- item_name = item == null ? "" : item.name,
|
|
|
- item_number = c,
|
|
|
- version = ItemList.First().Refs,
|
|
|
- factory_id = 1001,
|
|
|
- tenant_id = 1000,
|
|
|
- IsDeleted = false,
|
|
|
- use_status = 1
|
|
|
- };
|
|
|
- ItemsAdd.Add(bom);
|
|
|
-
|
|
|
- foreach (var child in ItemList)
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (icbom == null)
|
|
|
{
|
|
|
- var itemchild = ic_itemList.Find(a => a.number == child.ComponentItem);
|
|
|
- var bomchild = new ic_bom_child(help.NextId())
|
|
|
+ long domain = Convert.ToInt64(ItemList.First().Domain);
|
|
|
+ long factory_id = domain % 1000;
|
|
|
+ long tenant_id = domain - factory_id;
|
|
|
+ var bom = new ic_bom(help.NextId())
|
|
|
{
|
|
|
- bom_id = bom.Id,
|
|
|
- bom_number = bom.bom_number,
|
|
|
- icitem_id = itemchild == null ? long.MinValue : itemchild.Id,
|
|
|
- item_number = child.ComponentItem,
|
|
|
- item_name = itemchild == null ? "" : item.name,
|
|
|
- unit = child.UM,
|
|
|
- qty = child.Qty,
|
|
|
- entryid = child.SequenceNum,
|
|
|
- erp_cls = itemchild == null ? 2 : itemchild.erp_cls,
|
|
|
- begin_day = child.StartEff,
|
|
|
- end_day = child.EndEff,
|
|
|
- child_num = child.SequenceNum,
|
|
|
- version = child.Refs,
|
|
|
+ bom_number = c,
|
|
|
+ icitem_id = item.Id,
|
|
|
+ item_name = item.name,
|
|
|
+ item_number = c,
|
|
|
+ version = ItemList.First().Refs,
|
|
|
factory_id = 1001,
|
|
|
tenant_id = 1000,
|
|
|
IsDeleted = false,
|
|
|
use_status = 1
|
|
|
};
|
|
|
- childItemsAdd.Add(bomchild);
|
|
|
+ ItemsAdd.Add(bom);
|
|
|
+ foreach (var child in ItemList)
|
|
|
+ {
|
|
|
+ var itemchild = ic_itemList.Find(a => a.number == child.ComponentItem);
|
|
|
+ if (itemchild == null) { continue; }
|
|
|
+ var bomchild = new ic_bom_child(help.NextId())
|
|
|
+ {
|
|
|
+ bom_id = bom.Id,
|
|
|
+ bom_number = bom.bom_number,
|
|
|
+ icitem_id = itemchild == null ? long.MinValue : itemchild.Id,
|
|
|
+ item_number = child.ComponentItem,
|
|
|
+ item_name = itemchild == null ? "" : itemchild.name,
|
|
|
+ unit = child.UM,
|
|
|
+ qty = child.Qty,
|
|
|
+ entryid = child.SequenceNum,
|
|
|
+ erp_cls = itemchild == null ? 2 : itemchild.erp_cls,
|
|
|
+ begin_day = child.StartEff,
|
|
|
+ end_day = child.EndEff,
|
|
|
+ child_num = child.SequenceNum,
|
|
|
+ version = child.Refs,
|
|
|
+ factory_id = 1001,
|
|
|
+ tenant_id = 1000,
|
|
|
+ IsDeleted = false,
|
|
|
+ use_status = 1
|
|
|
+ };
|
|
|
+ childItemsAdd.Add(bomchild);
|
|
|
+ }
|
|
|
}
|
|
|
+ else {
|
|
|
+ foreach (var child in ItemList)
|
|
|
+ {
|
|
|
+ var itemchild = ic_itemList.Find(a => a.number == child.ComponentItem);
|
|
|
+ if (itemchild == null) { continue; }
|
|
|
+ var icbomchild = ic_bomchildList.Find(s => s.bom_number == c && s.item_number == child.ComponentItem);
|
|
|
+ if (icbomchild == null)
|
|
|
+ {
|
|
|
+ var bomchild = new ic_bom_child(help.NextId())
|
|
|
+ {
|
|
|
+ bom_id = icbom.Id,
|
|
|
+ bom_number = icbom.bom_number,
|
|
|
+ icitem_id = itemchild == null ? long.MinValue : itemchild.Id,
|
|
|
+ item_number = child.ComponentItem,
|
|
|
+ item_name = itemchild == null ? "" : itemchild.name,
|
|
|
+ unit = child.UM,
|
|
|
+ qty = child.Qty,
|
|
|
+ entryid = child.SequenceNum,
|
|
|
+ erp_cls = itemchild == null ? 2 : itemchild.erp_cls,
|
|
|
+ begin_day = child.StartEff,
|
|
|
+ end_day = child.EndEff,
|
|
|
+ child_num = child.SequenceNum,
|
|
|
+ version = child.Refs,
|
|
|
+ factory_id = 1001,
|
|
|
+ tenant_id = 1000,
|
|
|
+ IsDeleted = false,
|
|
|
+ use_status = 1
|
|
|
+ };
|
|
|
+ childItemsAdd.Add(bomchild);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
_businessDbContext.BulkInsert(ItemsAdd);
|
|
|
_businessDbContext.BulkInsert(childItemsAdd);
|