|
|
@@ -33,28 +33,6 @@ using Volo.Abp.DependencyInjection;
|
|
|
using Volo.Abp.Domain.Repositories;
|
|
|
using Volo.Abp.MultiTenancy;
|
|
|
using Volo.Abp.Uow;
|
|
|
-<<<<<<< HEAD
|
|
|
-using Spire.Pdf.Exporting.XPS.Schema;
|
|
|
-using Business.PriorityManagement;
|
|
|
-using Newtonsoft.Json.Linq;
|
|
|
-using Business.Dto;
|
|
|
-using NetTopologySuite.Simplify;
|
|
|
-using System.Transactions;
|
|
|
-using Spire.Pdf.General.Render.Decode.Jpeg2000.j2k.codestream;
|
|
|
-using Volo.Abp.ObjectMapping;
|
|
|
-using SixLabors.ImageSharp;
|
|
|
-using static System.Formats.Asn1.AsnWriter;
|
|
|
-using System.Collections;
|
|
|
-using static Spire.Pdf.General.Render.Decode.Jpeg2000.j2k.codestream.HeaderInfo;
|
|
|
-using Spire.Pdf.General.Render.Decode.Jpeg2000.j2k.wavelet.synthesis;
|
|
|
-using Volo.Abp.TenantManagement;
|
|
|
-using System.IO;
|
|
|
-using System.Runtime.Serialization.Formatters.Binary;
|
|
|
-using System.Drawing.Drawing2D;
|
|
|
-using Spire.Pdf.Lists;
|
|
|
-using System.Globalization;
|
|
|
-=======
|
|
|
->>>>>>> 77f337b0a4bd0a0ff4f2e65d6a9dfd2ee3c0997c
|
|
|
|
|
|
namespace Business.ResourceExamineManagement
|
|
|
{
|
|
|
@@ -532,8 +510,6 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
-
|
|
|
-
|
|
|
/// <summary>
|
|
|
/// 资源检查
|
|
|
/// </summary>
|
|
|
@@ -547,14 +523,8 @@ namespace Business.ResourceExamineManagement
|
|
|
{
|
|
|
throw new NotImplementedException("请输入正确的订单号!");
|
|
|
}
|
|
|
- Array alist = ids.Split(',');
|
|
|
-
|
|
|
ResourceCheckInputDto input = new ResourceCheckInputDto();
|
|
|
- input.sorderId = new List<long>();
|
|
|
- foreach (string longid in alist)
|
|
|
- {
|
|
|
- input.sorderId.Add(long.Parse(longid));
|
|
|
- }
|
|
|
+ input.sorderId = AnalysisIdList(ids);
|
|
|
//资源检查结果
|
|
|
PschedDto rtn = new PschedDto();
|
|
|
List<crm_seorder> sorders = new List<crm_seorder>();
|
|
|
@@ -1261,14 +1231,14 @@ namespace Business.ResourceExamineManagement
|
|
|
DateTime starttime = toTime.AddDays(1);
|
|
|
DateTime endtime = toTime.AddDays(8);
|
|
|
List<srm_pr_main> prlist = _mysql_srm_pr_main.GetListAsync(s => s.pr_rarrive_date >= starttime && s.pr_rarrive_date <= endtime && (s.state == 1 || s.state == 3)).Result;
|
|
|
- List<srm_purchase> purchaselist = _mysql_srm_purchase.GetListAsync(s => prlist.Select(c => c.icitem_id).Contains(s.icitem_id) && prlist.Select(c => c.pr_purchaseid).Contains(s.supplier_id)).Result;
|
|
|
-
|
|
|
+
|
|
|
if (prlist.Any())
|
|
|
{
|
|
|
- var pr_mainlist = ObjectMapper.Map<List<mo_srm_pr_main>, List<srm_pr_main>>(prlist);
|
|
|
+ List<srm_supplier> itemsupplierList = new List<srm_supplier>();
|
|
|
+ List<srm_purchase> purchaselist = _mysql_srm_purchase.GetListAsync(s => prlist.Select(c => c.icitem_id).Contains(s.icitem_id) && prlist.Select(c => c.pr_purchaseid).Contains(s.supplier_id)).Result;
|
|
|
+ List<ic_item> ic_Items = _mysql_ic_item.GetListAsync(s => prlist.Select(c => c.icitem_id).Contains(s.Id)).Result;
|
|
|
PoActionListDto poaction = new PoActionListDto();
|
|
|
-
|
|
|
- //AutoCreatePOFromPR(prlist, bangid, icitemlist, itemsupplierList, poaction);
|
|
|
+ AutoCreatePOFromPR(prlist, ic_Items, itemsupplierList, poaction);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1803,18 +1773,18 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
return isSameWeek;
|
|
|
}
|
|
|
- private void AutoCreatePOFromPR(List<mo_srm_pr_main> list, long bangid, List<mo_ic_item> icitemlist, List<mo_srm_supplier> itemsupplierList, PoActionListDto poaction)
|
|
|
+ private void AutoCreatePOFromPR(List<srm_pr_main> list , List<ic_item> icitemlist, List<srm_supplier> itemsupplierList, PoActionListDto poaction)
|
|
|
{
|
|
|
var zcPr = list.Where(a => a.pr_billno.StartsWith("PR")).ToList();
|
|
|
if (zcPr.Any())
|
|
|
{
|
|
|
- AutoCreatePOFromPRByType(zcPr, bangid, icitemlist, itemsupplierList, poaction,1);
|
|
|
+ AutoCreatePOFromPRByType(zcPr, icitemlist, itemsupplierList, poaction,1);
|
|
|
}
|
|
|
|
|
|
var wwPr = list.Where(a => a.pr_billno.StartsWith("WWPR")).ToList();
|
|
|
if (wwPr.Any())
|
|
|
{
|
|
|
- AutoCreatePOFromPRByType(wwPr, bangid, icitemlist, itemsupplierList, poaction,2);
|
|
|
+ AutoCreatePOFromPRByType(wwPr, icitemlist, itemsupplierList, poaction,2);
|
|
|
}
|
|
|
}
|
|
|
/// <summary>
|
|
|
@@ -1826,10 +1796,15 @@ namespace Business.ResourceExamineManagement
|
|
|
/// <param name="itemsupplierList"></param>
|
|
|
/// <param name="poaction"></param>
|
|
|
/// <param name="poType">1正常PO,2是委外</param>
|
|
|
- private void AutoCreatePOFromPRByType(List<mo_srm_pr_main> list, long bangid, List<mo_ic_item> itemList, List<mo_srm_supplier> itemsupplierList, PoActionListDto poaction,int poType)
|
|
|
+ private void AutoCreatePOFromPRByType(List<srm_pr_main> list, List<ic_item> itemList, List<srm_supplier> itemsupplierList, PoActionListDto poaction,int poType)
|
|
|
{
|
|
|
- List<mo_srm_po_main> polist = new List<mo_srm_po_main>();
|
|
|
- List<mo_srm_po_list> podetaillist = new List<mo_srm_po_list>();
|
|
|
+ List<srm_po_main> polist = new List<srm_po_main>();
|
|
|
+ List<srm_po_list> podetaillist = new List<srm_po_list>();
|
|
|
+ //合并条件:目前传入的数据是一周的数据,暂时不考虑多周数据合并。
|
|
|
+ //标准类 1.销售订单产生 2.计划工单产生
|
|
|
+ //物料属性 VMI类 费用类
|
|
|
+
|
|
|
+
|
|
|
//var itemList = _ic_item.Find(a => a.tenant_id == input.tenantId && a.factory_id == input.factoryId).Result;
|
|
|
//将PR按供应商和物料和日期(一周内)进行合并,生成PO
|
|
|
//1.按照供应商、需求日期排序
|
|
|
@@ -1842,18 +1817,17 @@ namespace Business.ResourceExamineManagement
|
|
|
mo_srm_po_occupy srm_Po_Occupy = new mo_srm_po_occupy();
|
|
|
srm_Po_Occupy.id = help.NextId();
|
|
|
srm_Po_Occupy.mysql_id = help.NextId();
|
|
|
- srm_Po_Occupy.bang_id = bangid;
|
|
|
+ //srm_Po_Occupy.bang_id = bangid;
|
|
|
srm_Po_Occupy.morder_mo = item.pr_mono;
|
|
|
srm_Po_Occupy.qty = item.pr_aqty;
|
|
|
srm_Po_Occupy.eid = item.sentry_id;
|
|
|
|
|
|
if (item.pr_purchaseid != supplierId)
|
|
|
{
|
|
|
- var itemsupplier = itemsupplierList.Find(a => a.mysql_id == item.pr_purchaseid && a.tenant_id == param.tenantId && a.factory_id == param.factoryId);
|
|
|
+ var itemsupplier = itemsupplierList.Find(a => a.Id == item.pr_purchaseid);
|
|
|
//新建一个PO
|
|
|
- mo_srm_po_main po_Main = new mo_srm_po_main();
|
|
|
- po_Main.id = help.NextId();
|
|
|
- po_Main.mysql_id = help.NextId();
|
|
|
+ srm_po_main po_Main = new srm_po_main();
|
|
|
+ po_Main.GenerateNewId(help.NextId());
|
|
|
po_Main.po_billno = poType==1? GetMaxSerialNumber(416188684804165) : GetMaxSerialNumber(416555323363397);
|
|
|
po_Main.po_purchaser = item.pr_purchaser;
|
|
|
po_Main.po_purchaser_no = item.pr_purchaser_num;
|
|
|
@@ -1879,22 +1853,20 @@ namespace Business.ResourceExamineManagement
|
|
|
po_Main.create_time = DateTime.Now;
|
|
|
po_Main.factory_id = param.factoryId;
|
|
|
po_Main.tenant_id = param.tenantId;
|
|
|
- po_Main.bang_id = bangid;
|
|
|
po_Main.po_delivery = 1;
|
|
|
polist.Add(po_Main);
|
|
|
|
|
|
- mo_srm_po_list podetail = new mo_srm_po_list();
|
|
|
- podetail.id = help.NextId();
|
|
|
- podetail.mysql_id = help.NextId();
|
|
|
- podetail.po_id = po_Main.mysql_id;
|
|
|
+ srm_po_list podetail = new srm_po_list();
|
|
|
+ podetail.GenerateNewId(help.NextId());
|
|
|
+ podetail.po_id = po_Main.Id;
|
|
|
podetail.po_billno = po_Main.po_billno;
|
|
|
podetail.polist_row = podetaillist.Where(a => a.po_billno == po_Main.po_billno).Count() + 1;
|
|
|
- podetail.pr_id = item.mysql_id;
|
|
|
+ podetail.pr_id = item.Id;
|
|
|
podetail.pr_billno = item.pr_billno;
|
|
|
podetail.pr_purchase_id = po_Main.supplier_id;
|
|
|
podetail.pr_purchase_name = po_Main.supplier_name;
|
|
|
podetail.icitem_id = item.icitem_id;
|
|
|
- podetail.ItemNum = itemList.First(a => a.mysql_id == item.icitem_id).number;
|
|
|
+ podetail.ItemNum = itemList.First(a => a.Id == item.icitem_id).number;
|
|
|
podetail.icitem_name = item.icitem_name;
|
|
|
podetail.qty = item.pr_aqty;
|
|
|
podetail.netprice = item.pr_price;
|
|
|
@@ -1910,11 +1882,10 @@ namespace Business.ResourceExamineManagement
|
|
|
podetail.create_time = DateTime.Now;
|
|
|
podetail.factory_id = param.factoryId;
|
|
|
podetail.tenant_id = param.tenantId;
|
|
|
- podetail.bang_id = bangid;
|
|
|
podetail.stock_id = 1;
|
|
|
podetaillist.Add(podetail);
|
|
|
|
|
|
- srm_Po_Occupy.polist_id = podetail.mysql_id;
|
|
|
+ srm_Po_Occupy.polist_id = podetail.Id;
|
|
|
srm_Po_Occupy.polist_row = podetail.polist_row;
|
|
|
srm_Po_Occupy.type = MorderEnum.Zyjc_Type;//TODO:类型未知
|
|
|
srm_Po_Occupy.stime = podetail.create_time;
|
|
|
@@ -1929,7 +1900,7 @@ namespace Business.ResourceExamineManagement
|
|
|
if (IsSameWeek(supplierDate, item.pr_rarrive_date.Value))
|
|
|
{
|
|
|
var pomain = polist.FindAll(x => x.supplier_id == item.pr_purchaseid).OrderByDescending(b => b.create_time).First();
|
|
|
- List<mo_srm_po_list> detail = podetaillist.FindAll(a => a.po_billno == pomain.po_billno && a.icitem_id == item.icitem_id);
|
|
|
+ List<srm_po_list> detail = podetaillist.FindAll(a => a.po_billno == pomain.po_billno && a.icitem_id == item.icitem_id);
|
|
|
if (detail.Count > 0)
|
|
|
{
|
|
|
//TODO:只能记录一条PR,可能需要先合PR
|
|
|
@@ -1940,7 +1911,7 @@ namespace Business.ResourceExamineManagement
|
|
|
detail[0].plan_qty = detail[0].plan_qty + item.pr_aqty;
|
|
|
detail[0].rarrdate = item.pr_rarrive_date;
|
|
|
|
|
|
- srm_Po_Occupy.polist_id = detail[0].mysql_id;
|
|
|
+ srm_Po_Occupy.polist_id = detail[0].Id;
|
|
|
srm_Po_Occupy.polist_row = detail[0].polist_row;
|
|
|
srm_Po_Occupy.type = MorderEnum.Zyjc_Type;//TODO:类型未知
|
|
|
srm_Po_Occupy.stime = detail[0].create_time;
|
|
|
@@ -1950,18 +1921,17 @@ namespace Business.ResourceExamineManagement
|
|
|
else
|
|
|
{
|
|
|
//不存在同一种物料新增一条明细
|
|
|
- mo_srm_po_list podetail = new mo_srm_po_list();
|
|
|
- podetail.id = help.NextId();
|
|
|
- podetail.mysql_id = help.NextId();
|
|
|
- podetail.po_id = pomain.mysql_id;
|
|
|
+ srm_po_list podetail = new srm_po_list();
|
|
|
+ podetail.GenerateNewId(help.NextId());
|
|
|
+ podetail.po_id = pomain.Id;
|
|
|
podetail.po_billno = pomain.po_billno;
|
|
|
podetail.polist_row = podetaillist.Where(a => a.po_billno == pomain.po_billno).Count() + 1;
|
|
|
- podetail.pr_id = item.mysql_id;
|
|
|
+ podetail.pr_id = item.Id;
|
|
|
podetail.pr_billno = item.pr_billno;
|
|
|
podetail.pr_purchase_id = pomain.supplier_id;
|
|
|
podetail.pr_purchase_name = pomain.supplier_name;
|
|
|
podetail.icitem_id = item.icitem_id;
|
|
|
- podetail.ItemNum = itemList.First(a => a.mysql_id == item.icitem_id).number;
|
|
|
+ podetail.ItemNum = itemList.First(a => a.Id == item.icitem_id).number;
|
|
|
podetail.icitem_name = item.icitem_name;
|
|
|
podetail.qty = item.pr_aqty;
|
|
|
podetail.netprice = item.pr_price;
|
|
|
@@ -1977,11 +1947,11 @@ namespace Business.ResourceExamineManagement
|
|
|
podetail.create_time = DateTime.Now;
|
|
|
podetail.factory_id = param.factoryId;
|
|
|
podetail.tenant_id = param.tenantId;
|
|
|
- podetail.bang_id = bangid;
|
|
|
+ //podetail.bang_id = bangid;
|
|
|
podetail.stock_id = 1;
|
|
|
podetaillist.Add(podetail);
|
|
|
|
|
|
- srm_Po_Occupy.polist_id = podetail.mysql_id;
|
|
|
+ srm_Po_Occupy.polist_id = podetail.Id;
|
|
|
srm_Po_Occupy.polist_row = podetail.polist_row;
|
|
|
srm_Po_Occupy.type = MorderEnum.Zyjc_Type;//TODO:类型未知
|
|
|
srm_Po_Occupy.stime = podetail.create_time;
|
|
|
@@ -1993,11 +1963,10 @@ namespace Business.ResourceExamineManagement
|
|
|
else
|
|
|
{
|
|
|
//不在同一周需要新建一张PO
|
|
|
- var itemsupplier = itemsupplierList.Find(a => a.mysql_id == item.pr_purchaseid && a.tenant_id == param.tenantId && a.factory_id == param.factoryId);
|
|
|
+ var itemsupplier = itemsupplierList.Find(a => a.Id == item.pr_purchaseid);
|
|
|
//新建一个PO单
|
|
|
- mo_srm_po_main po_Main = new mo_srm_po_main();
|
|
|
- po_Main.id = help.NextId();
|
|
|
- po_Main.mysql_id = help.NextId();
|
|
|
+ srm_po_main po_Main = new srm_po_main();
|
|
|
+ po_Main.GenerateNewId(help.NextId());
|
|
|
po_Main.po_billno = poType == 1 ? GetMaxSerialNumber(416188684804165) : GetMaxSerialNumber(416555323363397);
|
|
|
po_Main.po_purchaser = item.pr_purchaser;
|
|
|
po_Main.po_purchaser_no = item.pr_purchaser_num;
|
|
|
@@ -2023,22 +1992,20 @@ namespace Business.ResourceExamineManagement
|
|
|
po_Main.create_time = DateTime.Now;
|
|
|
po_Main.factory_id = param.factoryId;
|
|
|
po_Main.tenant_id = param.tenantId;
|
|
|
- po_Main.bang_id = bangid;
|
|
|
po_Main.po_delivery = 1;
|
|
|
polist.Add(po_Main);
|
|
|
|
|
|
- mo_srm_po_list podetail = new mo_srm_po_list();
|
|
|
- podetail.id = help.NextId();
|
|
|
- podetail.mysql_id = help.NextId();
|
|
|
- podetail.po_id = po_Main.mysql_id;
|
|
|
+ srm_po_list podetail = new srm_po_list();
|
|
|
+ podetail.GenerateNewId(help.NextId());
|
|
|
+ podetail.po_id = po_Main.Id;
|
|
|
podetail.po_billno = po_Main.po_billno;
|
|
|
podetail.polist_row = podetaillist.Where(a => a.po_billno == po_Main.po_billno).Count() + 1;
|
|
|
- podetail.pr_id = item.mysql_id;
|
|
|
+ podetail.pr_id = item.Id;
|
|
|
podetail.pr_billno = item.pr_billno;
|
|
|
podetail.pr_purchase_id = po_Main.supplier_id;
|
|
|
podetail.pr_purchase_name = po_Main.supplier_name;
|
|
|
podetail.icitem_id = item.icitem_id;
|
|
|
- podetail.ItemNum = itemList.First(a => a.mysql_id == item.icitem_id).number;
|
|
|
+ podetail.ItemNum = itemList.First(a => a.Id == item.icitem_id).number;
|
|
|
podetail.icitem_name = item.icitem_name;
|
|
|
podetail.qty = item.pr_aqty;
|
|
|
podetail.netprice = item.pr_price;
|
|
|
@@ -2054,11 +2021,10 @@ namespace Business.ResourceExamineManagement
|
|
|
podetail.create_time = DateTime.Now;
|
|
|
podetail.factory_id = param.factoryId;
|
|
|
podetail.tenant_id = param.tenantId;
|
|
|
- podetail.bang_id = bangid;
|
|
|
podetail.stock_id = 1;
|
|
|
podetaillist.Add(podetail);
|
|
|
|
|
|
- srm_Po_Occupy.polist_id = podetail.mysql_id;
|
|
|
+ srm_Po_Occupy.polist_id = podetail.Id;
|
|
|
srm_Po_Occupy.polist_row = podetail.polist_row;
|
|
|
srm_Po_Occupy.type = MorderEnum.Zyjc_Type;//TODO:类型未知
|
|
|
srm_Po_Occupy.stime = podetail.create_time;
|
|
|
@@ -2078,15 +2044,11 @@ namespace Business.ResourceExamineManagement
|
|
|
poaction.poOccupiesList.Add(srm_Po_Occupy);
|
|
|
}
|
|
|
|
|
|
- List<srm_po_main> po_mainlist = ObjectMapper.Map<List<mo_srm_po_main>, List<srm_po_main>>(polist);
|
|
|
- var po_listlist = ObjectMapper.Map<List<mo_srm_po_list>, List<srm_po_list>>(podetaillist);
|
|
|
|
|
|
- poaction.poMain.AddRange(po_mainlist);
|
|
|
- poaction.polist.AddRange(po_listlist);
|
|
|
- poaction.mopoMain.AddRange(polist);
|
|
|
- poaction.mopolist.AddRange(podetaillist);
|
|
|
+ poaction.poMain.AddRange(polist);
|
|
|
+ poaction.polist.AddRange(podetaillist);
|
|
|
List<PurOrdMaster> purOrdMasters = new List<PurOrdMaster>();
|
|
|
- po_mainlist.ForEach(a =>
|
|
|
+ polist.ForEach(a =>
|
|
|
{
|
|
|
purOrdMasters.Add(new PurOrdMaster
|
|
|
{
|
|
|
@@ -2108,7 +2070,7 @@ namespace Business.ResourceExamineManagement
|
|
|
});
|
|
|
poaction.poMasterList.AddRange(purOrdMasters);
|
|
|
List<PurOrdDetail> purOrdDetails = new List<PurOrdDetail>();
|
|
|
- po_listlist.ForEach(a =>
|
|
|
+ podetaillist.ForEach(a =>
|
|
|
{
|
|
|
purOrdDetails.Add(new PurOrdDetail
|
|
|
{
|
|
|
@@ -2526,8 +2488,8 @@ namespace Business.ResourceExamineManagement
|
|
|
{
|
|
|
var pr_mainlist = ObjectMapper.Map<List<mo_srm_pr_main>, List<srm_pr_main>>(prmainlist);
|
|
|
PoActionListDto poaction = new PoActionListDto();
|
|
|
-
|
|
|
- AutoCreatePOFromPR(prmainlist, bangid, icitemlist, itemsupplierList, poaction);
|
|
|
+ //TODO:工单齐套检查需要调整
|
|
|
+ //AutoCreatePOFromPR(prmainlist, bangid, icitemlist, itemsupplierList, poaction);
|
|
|
using (var unitOfWork = _unitOfWorkManager.Begin(false, true))
|
|
|
{
|
|
|
try
|