diff --git a/ProductionMgr/Tnb.ProductionMgr.Interfaces/IPrdFeedingService.cs b/ProductionMgr/Tnb.ProductionMgr.Interfaces/IPrdFeedingService.cs
index 17e095c4..7f9ea3db 100644
--- a/ProductionMgr/Tnb.ProductionMgr.Interfaces/IPrdFeedingService.cs
+++ b/ProductionMgr/Tnb.ProductionMgr.Interfaces/IPrdFeedingService.cs
@@ -3,7 +3,7 @@ using Tnb.ProductionMgr.Entities.Dto;
namespace Tnb.ProductionMgr.Interfaces
{
///
- /// 物料签收服务接口
+ /// 物料投料服务接口
///
public interface IPrdFeedingService
{
diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdFeedingService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdFeedingService.cs
index 32bc5917..6ecc1bdf 100644
--- a/ProductionMgr/Tnb.ProductionMgr/PrdFeedingService.cs
+++ b/ProductionMgr/Tnb.ProductionMgr/PrdFeedingService.cs
@@ -27,7 +27,7 @@ using Tnb.BasicData;
namespace Tnb.ProductionMgr
{
///
- /// 业务实现:物料签收
+ /// 业务实现:物料投料
///
[ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 700)]
[Route("api/[area]/[controller]/[action]")]
@@ -159,7 +159,7 @@ namespace Tnb.ProductionMgr
}
if(!result.IsSuccess) throw Oops.Oh(result.ErrorMessage);
- return result.IsSuccess ? "签收成功" : result.ErrorMessage;
+ return result.IsSuccess ? "投料成功" : result.ErrorMessage;
}
[HttpPost]
@@ -272,34 +272,34 @@ namespace Tnb.ProductionMgr
// carry_code = input.carry_code ?? "",
// });
- var mesCarrySignInput = new MESCarrySignInput()
- {
- org_id = _userManager.GetUserInfo().Result.organizeId,
- create_id = _userManager.UserId,
- carry_code = input.carry_code ?? "",
- };
-
- string domain = (App.HttpContext.Request.IsHttps ? "https://" : "http://") + App.HttpContext.Request.Host;
- Dictionary header = new Dictionary()
- {
- ["Authorization"] = App.HttpContext.Request.Headers["Authorization"]
- };
- var sendResult = HttpUtils.RequestPost(domain + WebApiConst.MES_CARRY_SIGN,JsonConvert.SerializeObject(mesCarrySignInput),header);
- Log.Information(sendResult);
- AuthResponse authResponse = JsonConvert.DeserializeObject(sendResult);
- if (authResponse.code != 200)
- {
- throw Oops.Bah(authResponse.msg);
- }
- else
- {
- result2 = await db.Ado.UseTranAsync(async () =>
- {
- await db.Insertable(prdFeedingH).ExecuteCommandAsync();
- await db.Insertable(list).ExecuteCommandAsync();
- });
-
- }
+ // var mesCarrySignInput = new MESCarrySignInput()
+ // {
+ // org_id = _userManager.GetUserInfo().Result.organizeId,
+ // create_id = _userManager.UserId,
+ // carry_code = input.carry_code ?? "",
+ // };
+ //
+ // string domain = (App.HttpContext.Request.IsHttps ? "https://" : "http://") + App.HttpContext.Request.Host;
+ // Dictionary header = new Dictionary()
+ // {
+ // ["Authorization"] = App.HttpContext.Request.Headers["Authorization"]
+ // };
+ // var sendResult = HttpUtils.RequestPost(domain + WebApiConst.MES_CARRY_SIGN,JsonConvert.SerializeObject(mesCarrySignInput),header);
+ // Log.Information(sendResult);
+ // AuthResponse authResponse = JsonConvert.DeserializeObject(sendResult);
+ // if (authResponse.code != 200)
+ // {
+ // throw Oops.Bah(authResponse.msg);
+ // }
+ // else
+ // {
+ // result2 = await db.Ado.UseTranAsync(async () =>
+ // {
+ // await db.Insertable(prdFeedingH).ExecuteCommandAsync();
+ // await db.Insertable(list).ExecuteCommandAsync();
+ // });
+ //
+ // }
}
if(!result2.IsSuccess) throw Oops.Oh(result2.ErrorMessage);
diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMaterialReceiptService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMaterialReceiptService.cs
index bf6d721d..bdb2348f 100644
--- a/ProductionMgr/Tnb.ProductionMgr/PrdMaterialReceiptService.cs
+++ b/ProductionMgr/Tnb.ProductionMgr/PrdMaterialReceiptService.cs
@@ -1,11 +1,16 @@
+using JNPF;
using JNPF.Common.Core.Manager;
using JNPF.Common.Enums;
using JNPF.Common.Security;
using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
+using JNPF.Extras.CollectiveOAuth.Models;
+using JNPF.Extras.CollectiveOAuth.Utils;
using JNPF.FriendlyException;
+using JNPF.Logging;
using JNPF.Systems.Interfaces.System;
using Microsoft.AspNetCore.Mvc;
+using Newtonsoft.Json;
using SqlSugar;
using Tnb.BasicData.Entities;
using Tnb.ProductionMgr.Entities;
@@ -14,6 +19,13 @@ using Tnb.ProductionMgr.Interfaces;
using Tnb.WarehouseMgr.Entities;
using Tnb.WarehouseMgr.Entities.Dto;
using Tnb.ProductionMgr.Entities.Consts;
+using Tnb.ProductionMgr.Entities;
+using Tnb.ProductionMgr.Entities.Dto;
+using Tnb.ProductionMgr.Interfaces;
+using Tnb.ProductionMgr.Entities.Consts;
+using Tnb.WarehouseMgr;
+using Tnb.WarehouseMgr.Entities;
+using Tnb.BasicData;
namespace Tnb.ProductionMgr
{
@@ -71,6 +83,9 @@ namespace Tnb.ProductionMgr
public async Task SaveData(MaterialReceiptInput input)
{
var db = _repository.AsSugarClient();
+ DbResult result2 = new DbResult();
+ PrdMaterialReceiptH prdMaterialReceiptH = null;
+ List list = new List();
DbResult result = await db.Ado.UseTranAsync(async () =>
{
var moTask = await db.Queryable().FirstAsync(x => x.id == input.mo_task_id);
@@ -80,7 +95,7 @@ namespace Tnb.ProductionMgr
.ToListAsync();
string code = await _billRullService.GetBillNumber(Tnb.BasicData.CodeTemplateConst.MATERIAL_RECEIPT_CODE);
- PrdMaterialReceiptH prdMaterialReceiptH = new PrdMaterialReceiptH()
+ prdMaterialReceiptH = new PrdMaterialReceiptH()
{
code = code,
station_id = input.station_id,
@@ -125,13 +140,54 @@ namespace Tnb.ProductionMgr
}
- await db.Insertable(prdMaterialReceiptH).ExecuteCommandAsync();
- await db.Insertable(list).ExecuteCommandAsync();
+ // await db.Insertable(prdMaterialReceiptH).ExecuteCommandAsync();
+ // await db.Insertable(list).ExecuteCommandAsync();
});
- if(!result.IsSuccess) throw Oops.Oh(result.ErrorMessage);
- return result.IsSuccess ? "签收成功" : result.ErrorMessage;
+
+ if (result.IsSuccess)
+ {
+ //签收后调用载具签收接口
+ // await _wmsSignForDeliveryService.MESCarrySign(new MESCarrySignInput()
+ // {
+ // org_id = _userManager.GetUserInfo().Result.organizeId,
+ // create_id = _userManager.UserId,
+ // carry_code = input.carry_code ?? "",
+ // });
+
+ var mesCarrySignInput = new MESCarrySignInput()
+ {
+ org_id = _userManager.GetUserInfo().Result.organizeId,
+ create_id = _userManager.UserId,
+ carry_code = input.carry_code ?? "",
+ };
+
+ string domain = (App.HttpContext.Request.IsHttps ? "https://" : "http://") + App.HttpContext.Request.Host;
+ Dictionary header = new Dictionary()
+ {
+ ["Authorization"] = App.HttpContext.Request.Headers["Authorization"]
+ };
+ var sendResult = HttpUtils.RequestPost(domain + WebApiConst.MES_CARRY_SIGN,JsonConvert.SerializeObject(mesCarrySignInput),header);
+ Log.Information(sendResult);
+ AuthResponse authResponse = JsonConvert.DeserializeObject(sendResult);
+ if (authResponse.code != 200)
+ {
+ throw Oops.Bah(authResponse.msg);
+ }
+ else
+ {
+ result2 = await db.Ado.UseTranAsync(async () =>
+ {
+ await db.Insertable(prdMaterialReceiptH).ExecuteCommandAsync();
+ await db.Insertable(list).ExecuteCommandAsync();
+ });
+
+ }
+ }
+
+ if(!result2.IsSuccess) throw Oops.Oh(result2.ErrorMessage);
+ return result2.IsSuccess ? "签收成功" : result2.ErrorMessage;
}
}
}
\ No newline at end of file
diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs
index 5f5d2c05..6886f5fd 100644
--- a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs
+++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs
@@ -44,6 +44,9 @@ using Newtonsoft.Json;
using Tnb.BasicData.Entities.Dto;
using NPOI.SS.Formula.Functions;
using Tnb.PerMgr.Entities;
+using Tnb.QcMgr.Interfaces;
+using Tnb.QcMgr.Entities.Dto;
+using Tnb.QcMgr.Entities.Enums;
// using Tnb.PerMgr.Entities;
@@ -67,7 +70,7 @@ namespace Tnb.ProductionMgr
private static Dictionary _dicProcess = new Dictionary();
private readonly ISqlSugarClient _db;
private readonly IBillRullService _billRuleService;
-
+ private readonly IQcCheckPlanService _qcCheckPlanService;
public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc();
public PrdMoTaskService(
@@ -76,7 +79,8 @@ namespace Tnb.ProductionMgr
IDictionaryDataService dictionaryDataService,
IRunService runService,
IBillRullService billRullService,
- IVisualDevService visualDevService
+ IVisualDevService visualDevService,
+ IQcCheckPlanService qcCheckPlanService
)
{
_repository = repository;
@@ -88,7 +92,7 @@ namespace Tnb.ProductionMgr
OverideFuncs.DeleteAsync = Delete;
OverideFuncs.GetListAsync = GetList;
_billRuleService = billRullService;
-
+ _qcCheckPlanService=qcCheckPlanService;
}
#region Get
@@ -1004,16 +1008,22 @@ namespace Tnb.ProductionMgr
var taskReportLogs = new List();
var prdTaskList = await db.Queryable().Where(it => input.TaskIds.Contains(it.id)).ToListAsync();
if (prdTaskList?.Count > 0)
- {
- /*
- if (prdTaskList.Where(p => p.mo_task_status == "Closed").Count() > 0 && status == "InProgress")
- {
- foreach (var task in prdTaskList.Where(p => p.mo_task_status == "Closed").ToList())
- {
+ {
+ #region 质检模块
//质检
+ if (prdTaskList.Where(p => p.mo_task_status == "Pause").Count() > 0 && status == "InProgress")
+ {
+ foreach (var task in prdTaskList.Where(p => p.mo_task_status == "Pause").ToList())
+ {
+ TriggerPlanEntity entity = new TriggerPlanEntity();
+ entity.materialid = task.material_id;
+ entity.processid = task.process_id;
+ entity.workid = task.workstation_id;
+ entity.triggerevent = EnumTriggerEvent.首件检生产任务暂停;
+ await _qcCheckPlanService.CreateTask(entity);
}
}
- */
+ #endregion
prdTaskList.ForEach(x => x.mo_task_status = status);
row = await db.Updateable(prdTaskList).ExecuteCommandAsync();
if (row > 0)
@@ -1299,7 +1309,19 @@ namespace Tnb.ProductionMgr
row = await db.Insertable(report).ExecuteCommandAsync();
-
+ #region 质检模块
+ //质检模块
+ TriggerPlanEntity entity = new TriggerPlanEntity();
+ entity.materialid = prdMoTask.material_id;
+ entity.processid = prdMoTask.process_id;
+ entity.workid = prdMoTask.workstation_id;
+ var reported = prdMoTask.reported_work_qty == null ? 0 : prdMoTask.reported_work_qty;
+ var scrap = prdMoTask.scrap_qty == null ? 0 : prdMoTask.scrap_qty;
+ entity.oldpronum = reported+ scrap;
+ entity.newpronum = input.reported_qty;
+ entity.triggerevent = EnumTriggerEvent.生产检定量;
+ await _qcCheckPlanService.CreateTask(entity);
+ #endregion
if (prdMoTask.reported_work_qty == null)
{
await db.Updateable()
@@ -1482,6 +1504,20 @@ namespace Tnb.ProductionMgr
var scrapQty = db.Queryable().Where(it => it.mo_task_id == input.mo_task_id)?.Sum(d => d.defective_item_qty);
if (scrapQty.HasValue && scrapQty.Value > 0)//更新生产任务表报废数量
{
+ #region 质检模块
+ //质检模块
+ var prdMoTask = await db.Queryable().SingleAsync(x => x.id == input.mo_task_id);
+ TriggerPlanEntity entity = new TriggerPlanEntity();
+ entity.materialid = prdMoTask.material_id;
+ entity.processid = prdMoTask.process_id;
+ entity.workid = prdMoTask.workstation_id;
+ var reported = prdMoTask.reported_work_qty == null ? 0 : prdMoTask.reported_work_qty;
+ var scrap = prdMoTask.scrap_qty == null ? 0 : prdMoTask.scrap_qty;
+ entity.oldpronum = reported + scrap;
+ entity.newpronum = input.scrap_qty;
+ entity.triggerevent = EnumTriggerEvent.生产检定量;
+ await _qcCheckPlanService.CreateTask(entity);
+ #endregion
await db.Updateable().SetColumns(it => new PrdMoTask { scrap_qty = scrapQty.Value }).Where(it => it.id == input.mo_task_id).ExecuteCommandAsync();
}
var defectRecord = await db.Queryable().FirstAsync(it => it.mo_task_id == input.mo_task_id);
diff --git a/ProductionMgr/Tnb.ProductionMgr/Tnb.ProductionMgr.csproj b/ProductionMgr/Tnb.ProductionMgr/Tnb.ProductionMgr.csproj
index 6aa07278..1e9a332b 100644
--- a/ProductionMgr/Tnb.ProductionMgr/Tnb.ProductionMgr.csproj
+++ b/ProductionMgr/Tnb.ProductionMgr/Tnb.ProductionMgr.csproj
@@ -13,6 +13,7 @@
+
diff --git a/QcMgr/Tnb.QcMgr.Entities/Dto/CheckPlan.cs b/QcMgr/Tnb.QcMgr.Entities/Dto/CheckPlan.cs
index e19c59f6..08231e28 100644
--- a/QcMgr/Tnb.QcMgr.Entities/Dto/CheckPlan.cs
+++ b/QcMgr/Tnb.QcMgr.Entities/Dto/CheckPlan.cs
@@ -13,6 +13,7 @@ namespace Tnb.QcMgr.Entities
public string? addid { get; set; }
public string? triggertype { get; set; }
public string? content { get; set; }
+ public int? number { get; set; }
public List? checktypes { get; set; }
}
public class CheckPlanTypeInput
@@ -38,10 +39,11 @@ namespace Tnb.QcMgr.Entities
{
public string? id { get; set; }
public bool hasadd { get; set; }
- public bool hasitem{ get; set; }
+ public bool hasitem { get; set; }
public string? addid { get; set; }
public string? triggertype { get; set; }
public string? content { get; set; }
+ public int? number { get; set; }
public List? checktypes { get; set; }
}
public class CheckPlanTypeOut
diff --git a/QcMgr/Tnb.QcMgr.Entities/Dto/Trigger.cs b/QcMgr/Tnb.QcMgr.Entities/Dto/Trigger.cs
index 65de98c4..c58ec94c 100644
--- a/QcMgr/Tnb.QcMgr.Entities/Dto/Trigger.cs
+++ b/QcMgr/Tnb.QcMgr.Entities/Dto/Trigger.cs
@@ -37,5 +37,18 @@ namespace Tnb.QcMgr.Entities.Dto
/// 触发条件
///
public EnumTriggerEvent? triggerevent { get; set; }
+
+ ///
+ /// 原先生产数量
+ ///
+ public int? oldpronum { get; set; }
+ ///
+ /// 新生产数量
+ ///
+ public int? newpronum { get; set; }
+ ///
+ /// 生产次数
+ ///
+ public int? pronum { get; set; }
}
}
diff --git a/QcMgr/Tnb.QcMgr.Entities/Entity/QcCheckPlanAdd.cs b/QcMgr/Tnb.QcMgr.Entities/Entity/QcCheckPlanAdd.cs
index 57df112f..9cbba68d 100644
--- a/QcMgr/Tnb.QcMgr.Entities/Entity/QcCheckPlanAdd.cs
+++ b/QcMgr/Tnb.QcMgr.Entities/Entity/QcCheckPlanAdd.cs
@@ -34,5 +34,10 @@ namespace Tnb.QcMgr.Entities
/// 主表编号
///
public string? mainid { get; set; }
+
+ ///
+ /// 频次/数量
+ ///
+ public int? number { get; set; }
}
}
diff --git a/QcMgr/Tnb.QcMgr.Entities/Enums/EnumTriggerType.cs b/QcMgr/Tnb.QcMgr.Entities/Enums/EnumTriggerType.cs
index 9ef65818..6a534904 100644
--- a/QcMgr/Tnb.QcMgr.Entities/Enums/EnumTriggerType.cs
+++ b/QcMgr/Tnb.QcMgr.Entities/Enums/EnumTriggerType.cs
@@ -1,6 +1,8 @@
using System;
using System.Collections.Generic;
+using System.ComponentModel;
using System.Linq;
+using System.Reflection;
using System.Text;
using System.Threading.Tasks;
@@ -14,18 +16,48 @@ namespace Tnb.QcMgr.Entities.Enums
}
public enum EnumTriggerEvent
{
+ [Remark("首件检", "换模具")]
首件检换模具 = 1,
+ [Remark("首件检", "换物料批号")]
首件检换物料批号 = 2,
+ [Remark("首件检", "换物料编号")]
首件检换物料编号 = 3,
+ [Remark("首件检", "新的生产任务")]
首件检新的生产任务 = 4,
+ [Remark("首件检", "生产任务暂停")]
首件检生产任务暂停 = 5,
+ [Remark("出厂检", "按入厂频次")]
出厂检按入厂频次 = 6,
+ [Remark("入厂检", "按物料频次")]
入厂检按物料频次 = 7,
+ [Remark("入厂检", "按物料编号")]
入厂检按物料编号 = 8,
+ [Remark("生产检", "定量")]
生产检定量 = 9,
+ [Remark("生产检", "定码")]
生产检定码 = 10,
+ [Remark("生产检", "产出频次")]
生产检产出频次 = 11,
+ [Remark("生产检", "固定次数")]
生产检固定次数 = 12,
+ [Remark("生产检", "按流转卡")]
生产检按流转卡 = 13
}
+ public class RemarkAttribute : Attribute
+ {
+ public string CheckType { get; set; }
+ public string CheckContent { get; set; }
+
+ public RemarkAttribute(string checkType, string checkContent)
+ {
+ this.CheckType = checkType;
+ this.CheckContent = checkContent;
+ }
+ public static RemarkAttribute GetRemark(EnumTriggerEvent? enumTriggerEvent)
+ {
+ FieldInfo fi = enumTriggerEvent!.GetType().GetField(enumTriggerEvent.ToString()!)!;
+ object[] attributes = fi.GetCustomAttributes(typeof(RemarkAttribute), false);
+ return ((RemarkAttribute)attributes[0]);
+ }
+ }
}
diff --git a/QcMgr/Tnb.QcMgr.Interfaces/IQcCheckPlanService.cs b/QcMgr/Tnb.QcMgr.Interfaces/IQcCheckPlanService.cs
index 14102ccc..2192f330 100644
--- a/QcMgr/Tnb.QcMgr.Interfaces/IQcCheckPlanService.cs
+++ b/QcMgr/Tnb.QcMgr.Interfaces/IQcCheckPlanService.cs
@@ -31,5 +31,12 @@ namespace Tnb.QcMgr.Interfaces
///
public Task GetTriggerPlans();
+ ///
+ /// 根据计划生成任务
+ ///
+ ///
+ ///
+ public Task CreateTask(TriggerPlanEntity entity);
+
}
}
diff --git a/QcMgr/Tnb.QcMgr/QcCheckPlanService.cs b/QcMgr/Tnb.QcMgr/QcCheckPlanService.cs
index 5717a3f5..a9f95453 100644
--- a/QcMgr/Tnb.QcMgr/QcCheckPlanService.cs
+++ b/QcMgr/Tnb.QcMgr/QcCheckPlanService.cs
@@ -7,6 +7,7 @@ using System.Text;
using System.Threading.Tasks;
using Aspose.Cells.Drawing;
using COSXML.Model.Tag;
+using JNPF.Common.Contracts;
using JNPF.Common.Core.Manager;
using JNPF.Common.Enums;
using JNPF.Common.Security;
@@ -93,6 +94,7 @@ namespace Tnb.QcMgr
CheckPlansOut.addid = QcCheckPlanAdd.id;
CheckPlansOut.triggertype = QcCheckPlanAdd.triggertype!;
CheckPlansOut.content = QcCheckPlanAdd.content!;
+ CheckPlansOut.number= QcCheckPlanAdd.number;
}
if (QcCheckPlanDs != null && QcCheckPlanDs.Count > 0)
{
@@ -191,6 +193,7 @@ namespace Tnb.QcMgr
QcCheckPlanAdd.mainid = CheckPlanInput.mainid;
QcCheckPlanAdd.triggertype = CheckPlanInput.triggertype;
QcCheckPlanAdd.content = CheckPlanInput.content;
+ QcCheckPlanAdd.number = CheckPlanInput.number;
List QcCheckPlanDs = new List();
if (CheckPlanInput.checktypes != null)
{
@@ -276,49 +279,93 @@ namespace Tnb.QcMgr
JoinType.Left,a.id == d.planid,
JoinType.Left,a.id == e.planid,
});
- GetQuery(Query, entity.triggerevent);
+ GetQuery(Query, entity);
var list = await Query
.WhereIF(!string.IsNullOrEmpty(entity.materialid), (a, b, c, d, e) => c.materialid == entity.materialid)
.WhereIF(!string.IsNullOrEmpty(entity.processid), (a, b, c, d, e) => d.processid == entity.processid)
.WhereIF(!string.IsNullOrEmpty(entity.workid), (a, b, c, d, e) => e.workid == entity.workid).ToListAsync();
+ Filter(list, entity);
if (list.Count > 0)
await SaveTask(list, entity);
}
- private void GetQuery(ISugarQueryable Query, EnumTriggerEvent? enumTriggerEvent)
+ private void GetQuery(ISugarQueryable Query, TriggerPlanEntity entity)
{
-
var DictionaryData = _repository.AsSugarClient().Queryable
((a, b) => new object[] { JoinType.Left, a.DictionaryTypeId == b.Id, })
.Where((a, b) => b.FullName == "质量方案类型").ToList();
var TriggerEvent = new QcTriggerEvent();
- if (enumTriggerEvent == EnumTriggerEvent.首件检换模具)
- TriggerEvent = _repository.AsSugarClient().Queryable().Where(p => p.type == DictionaryData.Where(p => p.FullName == "首件检").First().Id && p.name == "换模具").First();
- if (enumTriggerEvent == EnumTriggerEvent.首件检换物料批号)
- TriggerEvent = _repository.AsSugarClient().Queryable().Where(p => p.type == DictionaryData.Where(p => p.FullName == "首件检").First().Id && p.name == "换物料批号").First();
- if (enumTriggerEvent == EnumTriggerEvent.首件检换物料编号)
- TriggerEvent = _repository.AsSugarClient().Queryable().Where(p => p.type == DictionaryData.Where(p => p.FullName == "首件检").First().Id && p.name == "换物料编号").First();
- if (enumTriggerEvent == EnumTriggerEvent.首件检新的生产任务)
- TriggerEvent = _repository.AsSugarClient().Queryable().Where(p => p.type == DictionaryData.Where(p => p.FullName == "首件检").First().Id && p.name == "新的生产任务").First();
- if (enumTriggerEvent == EnumTriggerEvent.首件检生产任务暂停)
- TriggerEvent = _repository.AsSugarClient().Queryable().Where(p => p.type == DictionaryData.Where(p => p.FullName == "首件检").First().Id && p.name == "生产任务暂停").First();
- if (enumTriggerEvent == EnumTriggerEvent.出厂检按入厂频次)
- TriggerEvent = _repository.AsSugarClient().Queryable().Where(p => p.type == DictionaryData.Where(p => p.FullName == "出厂检").First().Id && p.name == "按入厂频次").First();
- if (enumTriggerEvent == EnumTriggerEvent.入厂检按物料频次)
- TriggerEvent = _repository.AsSugarClient().Queryable().Where(p => p.type == DictionaryData.Where(p => p.FullName == "入厂检").First().Id && p.name == "按物料频次").First();
- if (enumTriggerEvent == EnumTriggerEvent.入厂检按物料编号)
- TriggerEvent = _repository.AsSugarClient().Queryable().Where(p => p.type == DictionaryData.Where(p => p.FullName == "入厂检").First().Id && p.name == "按物料编号").First();
- if (enumTriggerEvent == EnumTriggerEvent.生产检定量)
- TriggerEvent = _repository.AsSugarClient().Queryable().Where(p => p.type == DictionaryData.Where(p => p.FullName == "生产检").First().Id && p.name == "定量").First();
- if (enumTriggerEvent == EnumTriggerEvent.生产检定码)
- TriggerEvent = _repository.AsSugarClient().Queryable().Where(p => p.type == DictionaryData.Where(p => p.FullName == "生产检").First().Id && p.name == "定码").First();
- if (enumTriggerEvent == EnumTriggerEvent.生产检产出频次)
- TriggerEvent = _repository.AsSugarClient().Queryable().Where(p => p.type == DictionaryData.Where(p => p.FullName == "生产检").First().Id && p.name == "产出频次").First();
- if (enumTriggerEvent == EnumTriggerEvent.生产检固定次数)
- TriggerEvent = _repository.AsSugarClient().Queryable().Where(p => p.type == DictionaryData.Where(p => p.FullName == "生产检").First().Id && p.name == "固定次数").First();
- if (enumTriggerEvent == EnumTriggerEvent.生产检按流转卡)
- TriggerEvent = _repository.AsSugarClient().Queryable().Where(p => p.type == DictionaryData.Where(p => p.FullName == "生产检").First().Id && p.name == "按流转卡").First();
+ var enumTriggerEvent = entity.triggerevent;
+ var remark = RemarkAttribute.GetRemark(enumTriggerEvent);
+ TriggerEvent = _repository.AsSugarClient().Queryable().Where(p => p.type == DictionaryData.Where(p => p.FullName == remark.CheckType).First().Id && p.name == remark.CheckContent).First();
Query = Query.Where((a, b, c, d, e) => b.triggertype == "3" && b.content!.Contains(TriggerEvent.id));
}
+ private void Filter(List QcCheckPlanHs, TriggerPlanEntity entity)
+ {
+ var removePlanHs = new List();
+ var enumTriggerEvent = entity.triggerevent;
+ foreach (var plan in QcCheckPlanHs)
+ {
+ if (enumTriggerEvent == EnumTriggerEvent.首件检换模具)
+ {
+
+ }
+ if (enumTriggerEvent == EnumTriggerEvent.首件检换物料批号)
+ {
+
+ }
+
+ if (enumTriggerEvent == EnumTriggerEvent.首件检换物料编号)
+ {
+
+ }
+ if (enumTriggerEvent == EnumTriggerEvent.首件检新的生产任务)
+ {
+
+ }
+ if (enumTriggerEvent == EnumTriggerEvent.首件检生产任务暂停)
+ {
+
+ }
+
+ if (enumTriggerEvent == EnumTriggerEvent.出厂检按入厂频次)
+ {
+
+ }
+ if (enumTriggerEvent == EnumTriggerEvent.入厂检按物料频次)
+ {
+
+ }
+ if (enumTriggerEvent == EnumTriggerEvent.入厂检按物料编号)
+ {
+
+ }
+ if (enumTriggerEvent == EnumTriggerEvent.生产检定量)
+ {
+ var number = _repository.AsSugarClient().Queryable().Where(p => p.mainid == plan.id).First().number;
+ if ((entity.newpronum + entity.oldpronum / number) <= (entity.oldpronum / number))
+ removePlanHs.Add(plan);
+ }
+ if (enumTriggerEvent == EnumTriggerEvent.生产检定码)
+ {
+
+ }
+ if (enumTriggerEvent == EnumTriggerEvent.生产检产出频次)
+ {
+ var number = _repository.AsSugarClient().Queryable().Where(p => p.mainid == plan.id).First().number;
+ if ((entity.pronum % number) != 0)
+ removePlanHs.Add(plan);
+ }
+ if (enumTriggerEvent == EnumTriggerEvent.生产检固定次数)
+ {
+
+ }
+ if (enumTriggerEvent == EnumTriggerEvent.生产检按流转卡)
+ {
+
+ }
+ }
+ removePlanHs.ForEach(p => { QcCheckPlanHs.Remove(p); });
+ }
private async Task SaveTask(List planhs, TriggerPlanEntity entity)
{
var DictionaryData = _repository.AsSugarClient().Queryable
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryQueryService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryQueryService.cs
index c76028c8..d5a58f81 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryQueryService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryQueryService.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Dynamic;
using System.Linq;
+using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using Aop.Api.Domain;
@@ -11,6 +12,7 @@ using Mapster;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using Tnb.WarehouseMgr.Entities;
+using Tnb.WarehouseMgr.Entities.Consts;
using Tnb.WarehouseMgr.Entities.Dto;
using Tnb.WarehouseMgr.Entities.Dto.Inputs;
using Tnb.WarehouseMgr.Entities.Dto.Outputs;
@@ -67,7 +69,18 @@ namespace Tnb.WarehouseMgr
try
{
var carry = await _db.Queryable().SingleAsync(it => it.carry_code == input.carry_code);
- var carryCodes = await _db.Queryable().Where(it => it.carry_id == carry.id).ToListAsync();
+ List carryCodes = new();
+ if (carry.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID)
+ {
+ var carryDs = await _db.Queryable().Where(it => it.carry_id == carry.id).ToListAsync();
+ var mCarryIds = carryDs.Select(x => x.membercarry_id).ToList();
+ carryCodes = await _db.Queryable().Where(it => mCarryIds.Contains(it.carry_id)).ToListAsync();
+ }
+ else
+ {
+ carryCodes = await _db.Queryable().Where(it => it.carry_id == carry.id).ToListAsync();
+ }
+
data = carry.Adapt();
data.wmsCarryCodes = carryCodes.Adapt>();
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs
index c224d1a2..56df10e8 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs
@@ -346,6 +346,7 @@ namespace Tnb.WarehouseMgr
await _db.Ado.BeginTranAsync();
List kittingOutDs = new();
var kittingOuts = input.Adapt>();
+ var ids = input.Select(x => x.location_code).ToArray();
for (int i = 0; i < kittingOuts.Count; i++)
{
@@ -356,6 +357,7 @@ namespace Tnb.WarehouseMgr
x.bill_type = WmsWareHouseConst.BIZTYPE_WMSKITTINGOUTSTK_ID;
x.status = WmsWareHouseConst.BILLSTATUS_ADD_ID;
x.biz_type = WmsWareHouseConst.BIZTYPE_WMSKITTINGOUTSTK_ID;
+ x.location_id = ids[i];
var d = input[i]?.wmsKittingoutDs?.Adapt>();
d?.ForEach(it =>
{