|
|
@@ -1131,7 +1131,7 @@ namespace Business.ResourceExamineManagement
|
|
|
return JsonConvert.SerializeObject("ok");
|
|
|
}
|
|
|
|
|
|
- //PR自动合并--要货令
|
|
|
+ //PR自动合并
|
|
|
public void PrAutoMerge(string companyid)
|
|
|
{
|
|
|
//直接按间隔多少天一次来处理数据,定时任务按周四来考虑。
|
|
|
@@ -1218,9 +1218,6 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- //将采购申请推送SAP
|
|
|
-
|
|
|
using (var unitOfWork = _unitOfWorkManager.Begin(false, true))
|
|
|
{
|
|
|
try
|
|
|
@@ -1248,6 +1245,58 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 采购申请推送SAP
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="companyid"></param>
|
|
|
+ public async Task<string> PrSendSAP(string companyid)
|
|
|
+ {
|
|
|
+ DateTime toTime = DateTime.Now;
|
|
|
+ DateTime starttime = toTime.Date.AddDays(1);
|
|
|
+ DateTime endtime = toTime.Date.AddDays(7);
|
|
|
+ //取出采购申请数据
|
|
|
+ List<srm_pr_main> prapplyList = _mysql_srm_pr_main.GetListAsync(s => s.company_id.ToString() == companyid && s.pr_ssend_date >= starttime && s.pr_ssend_date <= endtime && s.state == 1 && s.IsRequireGoods == 0).Result;
|
|
|
+ string seqSql = "";
|
|
|
+ if (prapplyList.Any())
|
|
|
+ {
|
|
|
+ //请购单插入事务
|
|
|
+ var rstSeqId = _serialNumberAppService.GetSeqIdList(prapplyList[0].factory_id.ToString(), 1, 1);
|
|
|
+ long seqId = 0;
|
|
|
+ if (long.TryParse(rstSeqId, out seqId))
|
|
|
+ {
|
|
|
+ prapplyList.ForEach(p =>
|
|
|
+ {
|
|
|
+ p.state = 2;
|
|
|
+ seqSql += "insert QadTracking(Ufld1,Domain,SeqID,TransType,Subject,[Order],Int1,CreateTime,CreateUser,UpdateTime,UpdateUser) values('C','" + p.factory_id.ToString() +
|
|
|
+ "'," + seqId.ToString() + ",'nbr-pr-mes','请购单','" + p.pr_billno + "'," + p.Id.ToString() + ",getdate(),'',getdate(),'');";
|
|
|
+ seqId++;
|
|
|
+ });
|
|
|
+ }
|
|
|
+ using (var unitOfWork = _unitOfWorkManager.Begin(false, true))
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ if (!string.IsNullOrEmpty(seqSql))
|
|
|
+ {
|
|
|
+ _businessBangDbContext.Database.ExecuteSqlRaw(seqSql);
|
|
|
+ }
|
|
|
+ await _mysql_srm_pr_main.UpdateManyAsync(prapplyList);
|
|
|
+ await unitOfWork.CompleteAsync();
|
|
|
+ }
|
|
|
+ catch (Exception e)
|
|
|
+ {
|
|
|
+ unitOfWork.Dispose();
|
|
|
+ new NLogHelper("ResourceExamineAppService").WriteLog("PrSendSAP", "写入采购单推送SAP事务失败:" + e.Message, _currentTenant.Id.ToString());
|
|
|
+ return e.Message;
|
|
|
+ };
|
|
|
+ }
|
|
|
+ return "ok";
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return "一周内暂无需要推送SAP的采购单。";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/// <summary>
|
|
|
/// 解析按周频率送货方式
|
|
|
@@ -1635,7 +1684,7 @@ namespace Business.ResourceExamineManagement
|
|
|
//PO占用记录
|
|
|
List<mo_srm_po_occupy> po_occupy = await _srm_po_occupy.GetListAsync(s => seIds.Contains(s.eid.Value) && bangidList.Contains(s.bang_id.Value));
|
|
|
List<mo_srm_pr_main> prmainlist = await _srm_pr_main.GetListAsync(s => seIds.Contains(s.sentry_id.Value) && bangidList.Contains(s.bang_id.Value));
|
|
|
- string seqSql = "";
|
|
|
+
|
|
|
if (prmainlist.Any())
|
|
|
{
|
|
|
var nbrlistDto = _serialNumberAppService.GetBillNo(prmainlist[0].factory_id.ToString(), "PR", prmainlist.Count, "admin", 1);
|
|
|
@@ -1661,22 +1710,6 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- var prapplyList = prmainlist.Where(s => s.IsRequireGoods != 1).ToList();
|
|
|
- if (prapplyList.Any())
|
|
|
- {
|
|
|
- //请购单插入事务
|
|
|
- var rstSeqId = _serialNumberAppService.GetSeqIdList(prapplyList[0].factory_id.ToString(), 1, 1);
|
|
|
- long seqId = 0;
|
|
|
- if (long.TryParse(rstSeqId, out seqId))
|
|
|
- {
|
|
|
- prapplyList.ForEach(p =>
|
|
|
- {
|
|
|
- seqSql += "insert QadTracking(Ufld1,Domain,SeqID,TransType,Subject,[Order],Int1,CreateTime,CreateUser,UpdateTime,UpdateUser) values('C','" + p.factory_id.ToString() +
|
|
|
- "'," + seqId.ToString() + ",'nbr-pr-mes','请购单','" + p.pr_billno + "'," + p.mysql_id.ToString() + ",getdate(),'',getdate(),'');";
|
|
|
- seqId++;
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
List<mo_ic_item_stockoccupy> item_stockoccupy = await _ic_item_stockoccupy.GetListAsync(s => seIds.Contains(s.orderentry_id.Value) && bangidList.Contains(s.bang_id));
|
|
|
@@ -1689,10 +1722,6 @@ namespace Business.ResourceExamineManagement
|
|
|
//批量保存 后期考虑子工单
|
|
|
if (moderlist.Any())
|
|
|
{
|
|
|
- if (!string.IsNullOrEmpty(seqSql))
|
|
|
- {
|
|
|
- _businessBangDbContext.Database.ExecuteSqlRaw(seqSql);
|
|
|
- }
|
|
|
_businessDbContext.BulkInsert(moderlist);
|
|
|
if (workOrds.Any())
|
|
|
{
|
|
|
@@ -3319,7 +3348,8 @@ namespace Business.ResourceExamineManagement
|
|
|
if (returnList.Any())
|
|
|
{
|
|
|
WorkOrdDetail woDetail = null;
|
|
|
- var calereturnList = returnList.Select(x => x.item_number).Distinct().ToList();
|
|
|
+ var calereturnList = returnList.OrderBy(c => c.item_number).Select(x => x.item_number).Distinct().ToList();
|
|
|
+ short num = 1;
|
|
|
foreach (var caleNumber in calereturnList)
|
|
|
{
|
|
|
var caleList = returnList.Where(x => x.item_number == caleNumber).ToList();
|
|
|
@@ -3335,6 +3365,7 @@ namespace Business.ResourceExamineManagement
|
|
|
woDetail.Status = "";
|
|
|
woDetail.IsActive = true;
|
|
|
woDetail.CreateTime = DateTime.Now;
|
|
|
+ woDetail.Line = num;
|
|
|
woDetail.QtyRequired = caleList.Sum(c => c.needCount);
|
|
|
woDetail.WorkOrdMasterRecID = workord.RecID;
|
|
|
if (workord.QtyOrded != 0)
|
|
|
@@ -3342,6 +3373,7 @@ namespace Business.ResourceExamineManagement
|
|
|
woDetail.FrozenBOMQty = Math.Round(woDetail.QtyRequired / workord.QtyOrded, 10);
|
|
|
}
|
|
|
workOrdDetails.Add(woDetail);
|
|
|
+ num++;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -3367,7 +3399,6 @@ namespace Business.ResourceExamineManagement
|
|
|
if (list.Any())
|
|
|
rtn.srm_pr_list = _CalcBomViewAppService.SRMPRDtoList;
|
|
|
}
|
|
|
- string seqSql = "";
|
|
|
if (prmainlist.Any())
|
|
|
{
|
|
|
var nbrlistDto = _serialNumberAppService.GetBillNo(prmainlist[0].factory_id.ToString(), "PR", prmainlist.Count, "admin", 1);
|
|
|
@@ -3392,22 +3423,6 @@ namespace Business.ResourceExamineManagement
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- var prapplyList = prmainlist.Where(s => s.IsRequireGoods != 1).ToList();
|
|
|
- if (prapplyList.Any())
|
|
|
- {
|
|
|
- //请购单插入事务
|
|
|
- var rstSeqId = _serialNumberAppService.GetSeqIdList(prapplyList[0].factory_id.ToString(), 1, 1);
|
|
|
- long seqId = 0;
|
|
|
- if (long.TryParse(rstSeqId, out seqId))
|
|
|
- {
|
|
|
- prapplyList.ForEach(p =>
|
|
|
- {
|
|
|
- seqSql += "insert QadTracking(Ufld1,Domain,SeqID,TransType,Subject,[Order],Int1,CreateTime,CreateUser,UpdateTime,UpdateUser) values('C','" + p.factory_id.ToString() +
|
|
|
- "'," + seqId.ToString() + ",'nbr-pr-mes','请购单','" + p.pr_billno + "'," + p.mysql_id.ToString() + ",getdate(),'',getdate(),'');";
|
|
|
- seqId++;
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
//获取工单数据
|
|
|
@@ -3433,10 +3448,6 @@ namespace Business.ResourceExamineManagement
|
|
|
{
|
|
|
var pr_mainlist = ObjectMapper.Map<List<mo_srm_pr_main>, List<srm_pr_main>>(prmainlist);
|
|
|
_businessDbContext.BulkInsert(pr_mainlist);
|
|
|
- if (!string.IsNullOrEmpty(seqSql))
|
|
|
- {
|
|
|
- _businessBangDbContext.Database.ExecuteSqlRaw(seqSql);
|
|
|
- }
|
|
|
}
|
|
|
if (_CalcBomViewAppService.newStockOccList.Any())
|
|
|
{
|
|
|
@@ -3448,6 +3459,7 @@ namespace Business.ResourceExamineManagement
|
|
|
{
|
|
|
_CalcBomViewAppService.srm_Po_OccupiesInsert.ForEach(s => { s.company_id = param.company_id; s.factory_id = param.factoryId; });
|
|
|
var srmpooccupyInsert = ObjectMapper.Map<List<mo_srm_po_occupy>, List<srm_po_occupy>>(_CalcBomViewAppService.srm_Po_OccupiesInsert);
|
|
|
+ srmpooccupyInsert.ForEach(x => { x.GenerateNewId(help.NextId()); });
|
|
|
_businessDbContext.BulkInsert(srmpooccupyInsert);
|
|
|
}
|
|
|
if (delWorkOrddetails.Any())
|
|
|
@@ -4241,7 +4253,8 @@ namespace Business.ResourceExamineManagement
|
|
|
if (returnList.Any())
|
|
|
{
|
|
|
WorkOrdDetail woDetail = null;
|
|
|
- var calereturnList = returnList.Select(x => x.item_number).Distinct().ToList();
|
|
|
+ var calereturnList = returnList.OrderBy(c => c.item_number).Select(x => x.item_number).Distinct().ToList();
|
|
|
+ short num = 1;
|
|
|
foreach (var caleNumber in calereturnList)
|
|
|
{
|
|
|
var caleList = returnList.Where(x => x.item_number == caleNumber).ToList();
|
|
|
@@ -4257,12 +4270,14 @@ namespace Business.ResourceExamineManagement
|
|
|
woDetail.Status = "";
|
|
|
woDetail.IsActive = true;
|
|
|
woDetail.CreateTime = DateTime.Now;
|
|
|
+ woDetail.Line = num;
|
|
|
woDetail.QtyRequired = caleList.Sum(c => c.needCount.GetValueOrDefault());
|
|
|
if (workOrd.QtyOrded != 0)
|
|
|
{
|
|
|
woDetail.FrozenBOMQty = Math.Round(woDetail.QtyRequired / workOrd.QtyOrded, 10);
|
|
|
}
|
|
|
workOrdDetails.Add(woDetail);
|
|
|
+ num++;
|
|
|
}
|
|
|
}
|
|
|
}
|