diff --git a/BasicData/Tnb.BasicData.Entities/Consts/DictConst.cs b/BasicData/Tnb.BasicData.Entities/Consts/DictConst.cs
index 6a3d17e6..95b03123 100644
--- a/BasicData/Tnb.BasicData.Entities/Consts/DictConst.cs
+++ b/BasicData/Tnb.BasicData.Entities/Consts/DictConst.cs
@@ -48,6 +48,10 @@ public static class DictConst
/// 包装工单
///
public const string PrdMoTypeBZ = "25019191681045";
+ ///
+ /// 物料分类
+ ///
+ public const string MaterialCatagoryID = "24882163283733";
#endregion
diff --git a/BasicData/Tnb.BasicData.Entities/Entity/BasRegionMat.cs b/BasicData/Tnb.BasicData.Entities/Entity/BasRegionMat.cs
new file mode 100644
index 00000000..6086951f
--- /dev/null
+++ b/BasicData/Tnb.BasicData.Entities/Entity/BasRegionMat.cs
@@ -0,0 +1,72 @@
+using JNPF.Common.Contracts;
+using JNPF.Common.Security;
+using SqlSugar;
+
+namespace Tnb.BasicData.Entities;
+
+///
+/// 区域物料设定
+///
+[SugarTable("bas_region_mat")]
+public partial class BasRegionMat : BaseEntity
+{
+ public BasRegionMat()
+ {
+ id = SnowflakeIdHelper.NextId();
+ }
+ ///
+ /// 所属组织
+ ///
+ public string? org_id { get; set; }
+
+ ///
+ /// 区域ID
+ ///
+ public string region_id { get; set; } = string.Empty;
+
+ ///
+ /// 区域代码
+ ///
+ public string region_code { get; set; } = string.Empty;
+
+ ///
+ /// 物料分类
+ ///
+ public string material_type { get; set; } = string.Empty;
+
+ ///
+ /// 备注
+ ///
+ public string? remark { get; set; }
+
+ ///
+ /// 创建用户
+ ///
+ public string create_id { get; set; } = string.Empty;
+
+ ///
+ /// 创建时间
+ ///
+ public DateTime create_time { get; set; } = DateTime.Now;
+
+ ///
+ /// 修改用户
+ ///
+ public string? modify_id { get; set; }
+
+ ///
+ /// 修改时间
+ ///
+ public DateTime? modify_time { get; set; }
+
+ ///
+ /// 扩展字段
+ ///
+ public string? extras { get; set; }
+
+ ///
+ /// 时间戳(用于并发控制)
+ ///
+ public DateTime? timestamp { get; set; }
+
+}
diff --git a/BasicData/Tnb.BasicData/BasRegionMatService.cs b/BasicData/Tnb.BasicData/BasRegionMatService.cs
new file mode 100644
index 00000000..f89d5907
--- /dev/null
+++ b/BasicData/Tnb.BasicData/BasRegionMatService.cs
@@ -0,0 +1,99 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Aspose.Cells.Drawing;
+using DingTalk.Api.Request;
+using JNPF.Common.Dtos.VisualDev;
+using JNPF.Common.Extension;
+using JNPF.DependencyInjection;
+using JNPF.DynamicApiController;
+using JNPF.FriendlyException;
+using JNPF.Systems.Interfaces.System;
+using JNPF.VisualDev;
+using JNPF.VisualDev.Entitys;
+using JNPF.VisualDev.Interfaces;
+using Microsoft.AspNetCore.Components.Forms;
+using Microsoft.AspNetCore.Mvc;
+using SqlSugar;
+using Tnb.BasicData.Entities;
+
+namespace Tnb.BasicData
+{
+ ///
+ /// 区域物料设定
+ ///
+ [ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 701)]
+ [Route("api/[area]/[controller]/[action]")]
+ [OverideVisualDev(ModuleId)]
+
+ public class BasRegionMatService : IOverideVisualDevService, IDynamicApiController, ITransient
+ {
+ private const string ModuleId = "26187428200229";
+ private readonly ISqlSugarClient _db;
+ private readonly IRunService _runService;
+ private readonly IVisualDevService _visualDevService;
+ private readonly IDictionaryDataService _dataDictionaryService;
+ private static Dictionary s_materialCategoryMap = new();
+
+ public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc();
+ public BasRegionMatService(ISqlSugarRepository repo,
+ IRunService runService, IVisualDevService visualDevService,
+ IDictionaryDataService dataDictionaryService
+ )
+ {
+ _db = repo.AsSugarClient();
+ _runService = runService;
+ _visualDevService = visualDevService;
+ _dataDictionaryService = dataDictionaryService;
+ OverideFuncs.CreateAsync = CreateAsync;
+ }
+
+ private async Task CreateAsync(VisualDevModelDataCrInput input)
+ {
+ Task respTask = Task.FromResult(1);
+ try
+ {
+ await _db.Ado.BeginTranAsync();
+
+ string? regionCode = null, materialType = null;
+ if (input.data.ContainsKey(nameof(BasRegionMat.region_code)) && input.data[nameof(BasRegionMat.region_code)].IsNotEmptyOrNull())
+ {
+ regionCode = input.data[nameof(BasRegionMat.region_code)].ToString();
+ }
+ if (input.data.ContainsKey(nameof(BasRegionMat.material_type)) && input.data[nameof(BasRegionMat.material_type)].IsNotEmptyOrNull())
+ {
+ materialType = input.data[nameof(BasRegionMat.material_type)].ToString();
+ }
+ var blTrueAll = new List { regionCode.IsNullOrWhiteSpace(), materialType.IsNullOrWhiteSpace() };
+ if (blTrueAll.All(b => !b))
+ {
+ if (s_materialCategoryMap.Count == 0)
+ {
+ s_materialCategoryMap = await _dataDictionaryService.GetDictionaryByTypeId(DictConst.MaterialCatagoryID);
+ }
+ var regionMat = await _db.Queryable().FirstAsync(it => it.region_code == regionCode && it.material_type == materialType);
+ if (regionMat != null)
+ {
+ throw new AppFriendlyException($"区域:【{regionCode}】,物料:【{s_materialCategoryMap[materialType]?.ToString()}】已存在", 500);
+ }
+ }
+ await _db.Ado.CommitTranAsync();
+
+ VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleId, true);
+ await _runService.Create(templateEntity, input);
+
+ }
+ catch (Exception)
+ {
+ respTask = Task.FromResult(0);
+ await _db.Ado.RollbackTranAsync();
+ throw;
+ }
+
+ return await respTask;
+ }
+
+ }
+}
diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMolds.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMolds.cs
index 3674be98..639fcd84 100644
--- a/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMolds.cs
+++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMolds.cs
@@ -67,7 +67,7 @@ public partial class ToolMolds : BaseEntity
///
/// 成长周期
///
- public int? growth_cycle { get; set; }
+ public decimal? growth_cycle { get; set; }
///
/// 型腔数
diff --git a/EquipMgr/Tnb.EquipMgr/ToolMoldRequisitionService.cs b/EquipMgr/Tnb.EquipMgr/ToolMoldRequisitionService.cs
index f71ae603..e7dbd085 100644
--- a/EquipMgr/Tnb.EquipMgr/ToolMoldRequisitionService.cs
+++ b/EquipMgr/Tnb.EquipMgr/ToolMoldRequisitionService.cs
@@ -1,4 +1,5 @@
using System.Dynamic;
+using JNPF.Common.Core.Manager;
using JNPF.Common.Dtos.VisualDev;
using JNPF.Common.Enums;
using JNPF.Common.Filter;
@@ -7,10 +8,12 @@ using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
using JNPF.FriendlyException;
using JNPF.Systems.Entitys.Permission;
+using JNPF.Systems.Interfaces.System;
using JNPF.VisualDev;
using JNPF.VisualDev.Entitys;
using JNPF.VisualDev.Entitys.Dto.VisualDevModelData;
using JNPF.VisualDev.Interfaces;
+using Mapster;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using SqlSugar;
@@ -34,12 +37,16 @@ namespace Tnb.EquipMgr
private readonly ISqlSugarClient _db;
private readonly IRunService _runService;
private readonly IVisualDevService _visualDevService;
+ private readonly IBillRullService _billRuleService;
+ private readonly IUserManager _userManager;
public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc();
public ToolMoldRequisitionService(
ISqlSugarRepository repository,
IRunService runService,
- IVisualDevService visualDevService
+ IVisualDevService visualDevService,
+ IBillRullService billRullService,
+ IUserManager userManager
)
{
_db = repository.AsSugarClient();
@@ -47,6 +54,8 @@ namespace Tnb.EquipMgr
_visualDevService = visualDevService;
OverideFuncs.GetListAsync = GetList;
OverideFuncs.CreateAsync = Create;
+ _billRuleService= billRullService;
+ _userManager= userManager;
}
private async Task GetList(VisualDevModelListQueryInput input)
@@ -96,13 +105,42 @@ namespace Tnb.EquipMgr
return PageResult.SqlSugarPageResult(result);
}
-
+ private DateTime GetDateTime(long value)
+ {
+
+ DateTime unixStartTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
+ DateTime dateTime = unixStartTime.AddMilliseconds(value);
+ return dateTime;
+ }
private async Task Create(VisualDevModelDataCrInput input)
{
+ string Code = await _billRuleService.GetBillNumber("moldRequisition");
DbResult result = await _db.Ado.UseTranAsync(async () =>
{
- VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleId, true);
- await _runService.Create(templateEntity, input);
+ ToolMoldRequisition toolMoldRequisition = new ToolMoldRequisition();
+ toolMoldRequisition.code = Code;
+ toolMoldRequisition.mold_id= input.data[nameof(ToolMoldRequisition.mold_id)].ToString();
+ toolMoldRequisition.mo_task_id = input.data[nameof(ToolMoldRequisition.mo_task_id)].ToString();
+ toolMoldRequisition.equip_id = input.data[nameof(ToolMoldRequisition.equip_id)].ToString();
+ if (input.data[nameof(ToolMoldRequisition.requisition_time)] != null)
+ {
+ toolMoldRequisition.requisition_time = GetDateTime(long.Parse(input.data[nameof(ToolMoldRequisition.requisition_time)].ToString()!));
+ }
+ if (input.data[nameof(ToolMoldRequisition.estimated_return_time)] != null)
+ {
+ toolMoldRequisition.estimated_return_time = GetDateTime(long.Parse(input.data[nameof(ToolMoldRequisition.estimated_return_time)].ToString()!));
+ }
+
+ toolMoldRequisition.recipient_id = input.data[nameof(ToolMoldRequisition.recipient_id)].ToString();
+ if (input.data.ContainsKey(nameof(ToolMoldRequisition.remark)))
+ {
+ toolMoldRequisition.remark = input.data[nameof(ToolMoldRequisition.remark)].ToString();
+ }
+ toolMoldRequisition.create_time = DateTime.Now;
+ toolMoldRequisition.create_id = _userManager.UserId;
+ await _db.Insertable(toolMoldRequisition).ExecuteCommandAsync();
+ // VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleId, true);
+ // await _runService.Create(templateEntity, input);
_ = await _db.Updateable().SetColumns(x => x.mold_status == Tnb.BasicData.DictConst.SCTypeId)
diff --git a/EquipMgr/Tnb.EquipMgr/ToolMoldReturnService.cs b/EquipMgr/Tnb.EquipMgr/ToolMoldReturnService.cs
index 2c413d78..b6211f70 100644
--- a/EquipMgr/Tnb.EquipMgr/ToolMoldReturnService.cs
+++ b/EquipMgr/Tnb.EquipMgr/ToolMoldReturnService.cs
@@ -1,8 +1,10 @@
+using JNPF.Common.Core.Manager;
using JNPF.Common.Dtos.VisualDev;
using JNPF.Common.Enums;
using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
using JNPF.FriendlyException;
+using JNPF.Systems.Interfaces.System;
using JNPF.VisualDev;
using JNPF.VisualDev.Entitys;
using JNPF.VisualDev.Interfaces;
@@ -25,29 +27,60 @@ namespace Tnb.EquipMgr
private readonly ISqlSugarClient _db;
private readonly IRunService _runService;
private readonly IVisualDevService _visualDevService;
+ private readonly IBillRullService _billRuleService;
+ private readonly IUserManager _userManager;
public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc();
public ToolMoldReturnService(
ISqlSugarRepository repository,
IRunService runService,
- IVisualDevService visualDevService
+ IVisualDevService visualDevService,
+ IBillRullService billRullService,
+ IUserManager userManager
)
{
_db = repository.AsSugarClient();
_runService = runService;
_visualDevService = visualDevService;
OverideFuncs.CreateAsync = Create;
+ _billRuleService= billRullService;
+ _userManager = userManager;
}
+ private DateTime GetDateTime(long value)
+ {
+ DateTime unixStartTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
+ DateTime dateTime = unixStartTime.AddMilliseconds(value);
+ return dateTime;
+ }
private async Task Create(VisualDevModelDataCrInput input)
{
+ string Code = await _billRuleService.GetBillNumber("moldReturn");
DbResult result = await _db.Ado.UseTranAsync(async () =>
{
- VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleId, true);
- await _runService.Create(templateEntity, input);
+ ToolMoldReturn toolMoldReturn = new ToolMoldReturn();
+ toolMoldReturn.code = Code;
+ toolMoldReturn.mold_id = input.data[nameof(ToolMoldReturn.mold_id)].ToString();
+ toolMoldReturn.location_id = input.data[nameof(ToolMoldReturn.location_id)].ToString();
+ if (input.data[nameof(ToolMoldReturn.return_id)] != null)
+ {
+ toolMoldReturn.return_id = input.data[nameof(ToolMoldReturn.return_id)].ToString();
+ }
+ if (input.data[nameof(ToolMoldReturn.return_time)] != null)
+ {
+ toolMoldReturn.return_time = GetDateTime(long.Parse(input.data[nameof(ToolMoldReturn.return_time)].ToString()!));
+ }
+ if (input.data.ContainsKey(nameof(ToolMoldReturn.remark)))
+ {
+ toolMoldReturn.remark = input.data[nameof(ToolMoldReturn.remark)].ToString();
+ }
+ toolMoldReturn.create_time = DateTime.Now;
+ toolMoldReturn.create_id = _userManager.UserId;
+ // VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleId, true);
+ //await _runService.Create(templateEntity, input);
+ await _db.Insertable(toolMoldReturn).ExecuteCommandAsync();
-
- string? locationId = "";
+ string ? locationId = "";
if (input.data.TryGetValue("location_id", out object? value))
{
locationId = value.ToString();
diff --git a/EquipMgr/Tnb.EquipMgr/ToolMoldsService.cs b/EquipMgr/Tnb.EquipMgr/ToolMoldsService.cs
index bb2d2b4a..ca540162 100644
--- a/EquipMgr/Tnb.EquipMgr/ToolMoldsService.cs
+++ b/EquipMgr/Tnb.EquipMgr/ToolMoldsService.cs
@@ -72,7 +72,12 @@ namespace Tnb.EquipMgr
private async Task Update(string id, VisualDevModelDataUpInput visualDevModelDataUpInput)
{
- string? qrcode = visualDevModelDataUpInput.data.ContainsKey("qrcode") ? visualDevModelDataUpInput.data["qrcode"].ToString() : "";
+ string? qrcode = string.Empty;
+ if (visualDevModelDataUpInput.data.ContainsKey("qrcode") && visualDevModelDataUpInput.data["qrcode"] != null)
+ {
+ qrcode = visualDevModelDataUpInput.data["qrcode"].ToString();
+ }
+
if (!string.IsNullOrEmpty(qrcode) && await _repository.AsSugarClient().Queryable().AnyAsync(x => x.code == visualDevModelDataUpInput.data["qrcode"] && x.source_id != id))
{
throw Oops.Bah("二维码总表中已存在该二维码");
diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdInstockService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdInstockService.cs
index 1a21e971..dbd431b5 100644
--- a/ProductionMgr/Tnb.ProductionMgr/PrdInstockService.cs
+++ b/ProductionMgr/Tnb.ProductionMgr/PrdInstockService.cs
@@ -59,11 +59,12 @@ namespace Tnb.ProductionMgr
{
Dictionary? queryJson = !string.IsNullOrEmpty(input.queryJson) ? Newtonsoft.Json.JsonConvert.DeserializeObject>(input.queryJson) : new Dictionary();
string moCode = queryJson.ContainsKey("mo_task_code") ? queryJson["mo_task_code"].ToString() : "";
- List list = await _repository.AsSugarClient().Queryable()
+ var list = await _repository.AsSugarClient().Queryable()
.LeftJoin((a, b) => a.material_id == b.id)
.LeftJoin((a, b, c) => a.mold_id == c.id)
.LeftJoin((a, b, c, d) => a.eqp_id == d.id)
.WhereIF(!string.IsNullOrEmpty(moCode), (a, b, c, d) => a.mo_task_code!.Contains(moCode))
+ .Where(a=>string.IsNullOrEmpty(a.parent_id))
.Select((a, b, c, d) => new PrdMoTaskTreeOutput()
{
id = a.id,
@@ -78,20 +79,20 @@ namespace Tnb.ProductionMgr
estimated_start_date = a.estimated_start_date!.ToString(),
estimated_end_date = a.estimated_end_date.ToString(),
create_time = a.create_time.ToString()
- }).ToListAsync();
- List treeList = list.ToTree();
- treeList = treeList.Skip((input.currentPage - 1) * input.pageSize).Take(input.pageSize).ToList();
- SqlSugarPagedList pagedList = new()
- {
- list = treeList,
- pagination = new Pagination
- {
- CurrentPage = input.currentPage,
- PageSize = input.pageSize,
- Total = treeList.Count
- }
- };
- return PageResult.SqlSugarPageResult(pagedList);
+ }).ToPagedListAsync(input.currentPage, input.pageSize);
+ // List treeList = list.ToTree();
+ // treeList = treeList.Skip((input.currentPage - 1) * input.pageSize).Take(input.pageSize).ToList();
+ // SqlSugarPagedList pagedList = new()
+ // {
+ // list = treeList,
+ // pagination = new Pagination
+ // {
+ // CurrentPage = input.currentPage,
+ // PageSize = input.pageSize,
+ // Total = treeList.Count
+ // }
+ // };
+ return PageResult.SqlSugarPageResult(list);
}
[HttpPost]
diff --git a/QcMgr/Tnb.QcMgr/QcCheckTaskResultService.cs b/QcMgr/Tnb.QcMgr/QcCheckTaskResultService.cs
index 1d2880e5..4b8c36ee 100644
--- a/QcMgr/Tnb.QcMgr/QcCheckTaskResultService.cs
+++ b/QcMgr/Tnb.QcMgr/QcCheckTaskResultService.cs
@@ -56,7 +56,7 @@ namespace Tnb.QcMgr
.LeftJoin((a, b, c) => a.processid == c.id)
.LeftJoin((a, b, c, d) => a.workid == d.Id)
.LeftJoin((a, b, c, d, e) => a.execuser == e.Id)
- .WhereIF(!string.IsNullOrEmpty(materialid), (a, b, c, d, e) => a.materialid == materialid)
+ .WhereIF(!string.IsNullOrEmpty(materialid), (a, b, c, d, e) => b.name.Contains(materialid))
.WhereIF(!string.IsNullOrEmpty(checktype), (a, b, c, d, e) => a.checktype == checktype)
.WhereIF(!string.IsNullOrEmpty(status), (a, b, c, d, e) => a.status == status)
.Where((a, b, c, d, e) => a.status == list.Where(p => p.FullName == "已完成").First().Id)
diff --git a/QcMgr/Tnb.QcMgr/QcCheckTaskService.cs b/QcMgr/Tnb.QcMgr/QcCheckTaskService.cs
index 51b94859..70ef769b 100644
--- a/QcMgr/Tnb.QcMgr/QcCheckTaskService.cs
+++ b/QcMgr/Tnb.QcMgr/QcCheckTaskService.cs
@@ -67,7 +67,7 @@ namespace Tnb.QcMgr
.LeftJoin((a, b, c) => a.processid == c.id)
.LeftJoin((a, b, c, d) => a.workid == d.Id)
.LeftJoin((a, b, c, d, e) => a.execuser == e.Id)
- .WhereIF(!string.IsNullOrEmpty(materialid), (a, b, c, d, e) => a.materialid == materialid)
+ .WhereIF(!string.IsNullOrEmpty(materialid), (a, b, c, d,e) => b.name.Contains(materialid))
.WhereIF(!string.IsNullOrEmpty(checktype), (a, b, c, d, e) => a.checktype == checktype)
.WhereIF(!string.IsNullOrEmpty(status), (a, b, c, d, e) => a.status == status)
.Where((a, b, c, d, e) => a.status == list.Where(p => p.FullName == "待执行").First().Id)
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs
index d7dd9e09..b4bd74b9 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs
@@ -195,4 +195,9 @@ public class ModuleConsts
/// 模块标识-在库物料维护
///
public const string MODULE_WMSINSTKMIN_ID = "27124095468309";
+ ///
+ /// 模块标识-区域物料设定
+ ///
+ public const string MODULE_BASREGIONMAT_ID = "26187428200229";
+
}
\ No newline at end of file
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs
index bec5a1b3..056da03d 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs
@@ -265,5 +265,7 @@
/// 盘点任务计算状态-未结算
///
public const string CLOSINGSTATUS_WJS_ID = "27674058079509";
+
+
}
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsElevatorH.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsElevatorH.cs
index 88ca59b7..83c7b068 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsElevatorH.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsElevatorH.cs
@@ -44,10 +44,6 @@ public partial class WmsElevatorH : BaseEntity
///
public string elevator_group { get; set; } = string.Empty;
- ///
- /// 状态
- ///
- public int status { get; set; }
///
/// 任务数量
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsElevatorH.part.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsElevatorH.part.cs
index a605cbb1..4709864f 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsElevatorH.part.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsElevatorH.part.cs
@@ -59,4 +59,11 @@ public partial class WmsElevatorH
///
[SugarColumn(IsIgnore = true)]
public string device_id { get; set; }
+
+ ///
+ /// 状态
+ ///
+ [SugarColumn(ColumnName = "status")]
+ public int enable_mark { get; set; }
+
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/BasRegionMatService.cs b/WarehouseMgr/Tnb.WarehouseMgr/BasRegionMatService.cs
new file mode 100644
index 00000000..f850db17
--- /dev/null
+++ b/WarehouseMgr/Tnb.WarehouseMgr/BasRegionMatService.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using JNPF.VisualDev;
+
+namespace Tnb.WarehouseMgr
+{
+ ///
+ /// 区域物料设定
+ ///
+ [OverideVisualDev(ModuleConsts.MODULE_BASREGIONMAT_ID)]
+ public class BasRegionMatService :BaseWareHouseService
+ {
+
+ }
+}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs
index ab54ec7b..032b86a3 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs
@@ -1,7 +1,9 @@
using System.Reflection;
using System.Runtime.InteropServices;
using System.Security.Claims;
+using System.Text;
using JNPF;
+using JNPF.Common.Contracts;
using JNPF.Common.Core.Manager;
using JNPF.Common.Enums;
using JNPF.Common.Extension;
@@ -12,6 +14,7 @@ using JNPF.EventBus;
using JNPF.Extras.CollectiveOAuth.Enums;
using JNPF.VisualDev;
using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using SqlSugar;
@@ -37,7 +40,24 @@ namespace Tnb.WarehouseMgr
protected IEventPublisher? EventPublisher { set; get; }
+ protected ILogger Logger => LoggerFactory.Create(builder => builder.AddFile($"{AppContext.BaseDirectory}/logs/{this.GetType().Name}{DateTime.Now:yyyyMMdd}.log", cfgOpts =>
+ {
+ //cfgOpts.DateFormat = "yyyy-MM-dd HH:mm:ss.fff";
+ cfgOpts.MessageFormat = (logMsg) =>
+ {
+ Span span = logMsg.LogLevel.ToString().ToCharArray();
+ StringBuilder sb = new();
+ _ = sb.Append($"{span[..4]} ");
+ _ = sb.Append($"{logMsg.LogName} ");
+ _ = sb.Append($"{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff} ");
+ _ = sb.Append($"#{logMsg.EventId.Id} ");
+ _ = sb.Append(logMsg.Message + " ");
+ _ = sb.Append(logMsg.Exception?.ToString());
+ return sb.ToString();
+ };
+
+ })).CreateLogger(this.GetType());
static BaseWareHouseService()
@@ -300,6 +320,8 @@ namespace Tnb.WarehouseMgr
}
}
+
+
#region 斑马打印
///
/// 打印
@@ -347,7 +369,7 @@ namespace Tnb.WarehouseMgr
// tcs.SetResult(printerList);
// return tcs.Task;
//}
- #endregion
+ #endregion
///
/// Api响应结果
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs b/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs
index 084109fa..606f6ac9 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs
@@ -32,7 +32,7 @@ namespace Tnb.WarehouseMgr
/// Wms设备接口提供程序服务类
///
- public class DeviceProviderService : BaseWareHouseService
+ public class DeviceProviderService : ServiceLoggerBase
{
private readonly ISqlSugarClient _db;
private readonly IWareHouseService _wareHouseService;
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService`1.cs b/WarehouseMgr/Tnb.WarehouseMgr/ServiceLoggerBase`1.cs
similarity index 62%
rename from WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService`1.cs
rename to WarehouseMgr/Tnb.WarehouseMgr/ServiceLoggerBase`1.cs
index 246da2d1..8be1be94 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService`1.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/ServiceLoggerBase`1.cs
@@ -6,17 +6,19 @@ using Tnb.WarehouseMgr.Entities;
namespace Tnb.WarehouseMgr
{
- public class BaseWareHouseService : BaseWareHouseService
+ public class ServiceLoggerBase : BaseWareHouseService
{
protected static Dictionary s_elevatorMap = new();
private static readonly Lazy initializationTask;
- static BaseWareHouseService()
+ static ServiceLoggerBase()
{
initializationTask = new Lazy(InitializeAsync);
}
+
+
private static async Task InitializeAsync()
{
@@ -37,24 +39,24 @@ namespace Tnb.WarehouseMgr
- protected ILogger Logger => LoggerFactory.Create(builder => builder.AddFile($"{AppContext.BaseDirectory}/logs/custom{DateTime.Now:yyyyMMdd}.log", cfgOpts =>
- {
+ //protected ILogger Logger => LoggerFactory.Create(builder => builder.AddFile($"{AppContext.BaseDirectory}/logs/{this.GetType().Name}{DateTime.Now:yyyyMMdd}.log", cfgOpts =>
+ //{
- //cfgOpts.DateFormat = "yyyy-MM-dd HH:mm:ss.fff";
- cfgOpts.MessageFormat = (logMsg) =>
- {
- Span span = logMsg.LogLevel.ToString().ToCharArray();
- StringBuilder sb = new();
- _ = sb.Append($"{span[..4]} ");
- _ = sb.Append($"{logMsg.LogName} ");
- _ = sb.Append($"{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff} ");
- _ = sb.Append($"#{logMsg.EventId.Id} ");
- _ = sb.Append(logMsg.Message + " ");
- _ = sb.Append(logMsg.Exception?.ToString());
- return sb.ToString();
- };
+ // //cfgOpts.DateFormat = "yyyy-MM-dd HH:mm:ss.fff";
+ // cfgOpts.MessageFormat = (logMsg) =>
+ // {
+ // Span span = logMsg.LogLevel.ToString().ToCharArray();
+ // StringBuilder sb = new();
+ // _ = sb.Append($"{span[..4]} ");
+ // _ = sb.Append($"{logMsg.LogName} ");
+ // _ = sb.Append($"{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff} ");
+ // _ = sb.Append($"#{logMsg.EventId.Id} ");
+ // _ = sb.Append(logMsg.Message + " ");
+ // _ = sb.Append(logMsg.Exception?.ToString());
+ // return sb.ToString();
+ // };
- })).CreateLogger();
+ //})).CreateLogger(this.GetType());
}
public static class CustomLoggerExtenstions
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs
index 2d3a6937..c9c64737 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs
@@ -33,7 +33,7 @@ namespace Tnb.WarehouseMgr
///
/// 库房业务类(出入库)
///
- public class WareHouseService : BaseWareHouseService, IWareHouseService
+ public class WareHouseService : ServiceLoggerBase, IWareHouseService
{
private readonly ISqlSugarClient _db;
private readonly IDictionaryDataService _dictionaryDataService;
@@ -977,9 +977,9 @@ namespace Tnb.WarehouseMgr
if (curEleDs?.Count > 0)
{
//当前电梯
- WmsElevatorH curEle = await _db.Queryable().SingleAsync(it => it.id == curEleDs.First().bill_id && it.status == 1);
+ WmsElevatorH curEle = await _db.Queryable().SingleAsync(it => it.id == curEleDs.First().bill_id && it.enable_mark == 1);
//同电梯组电梯
- List sGpEle = await _db.Queryable().Where(it => it.elevator_group == curEle.elevator_group && it.id != curEle.id && it.status == 1).ToListAsync();
+ List sGpEle = await _db.Queryable().Where(it => it.elevator_group == curEle.elevator_group && it.id != curEle.id && it.enable_mark == 1).ToListAsync();
if (curEle == null && sGpEle?.Count > 0)
{
@@ -1048,9 +1048,9 @@ namespace Tnb.WarehouseMgr
if (curEleDs?.Count > 0)
{
//当前电梯
- WmsElevatorH curEle = await _db.Queryable().SingleAsync(it => it.id == curEleDs.First().bill_id && it.status == 1);
+ WmsElevatorH curEle = await _db.Queryable().SingleAsync(it => it.id == curEleDs.First().bill_id && it.enable_mark == 1);
//同电梯组电梯
- List sGpEle = await _db.Queryable().Where(it => it.elevator_group == curEle.elevator_group && it.id != curEle.id && it.status == 1).ToListAsync();
+ List sGpEle = await _db.Queryable().Where(it => it.elevator_group == curEle.elevator_group && it.id != curEle.id && it.enable_mark == 1).ToListAsync();
if (curEle == null && sGpEle?.Count > 0)
{
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsBasicDataBase`1.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsBasicDataBase`1.cs
new file mode 100644
index 00000000..d9be1169
--- /dev/null
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsBasicDataBase`1.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using JNPF.Common.Contracts;
+using Microsoft.AspNetCore.Mvc;
+using SqlSugar;
+
+namespace Tnb.WarehouseMgr
+{
+ ///
+ /// Wms基础数据基类
+ ///
+ ///
+ //public class WmsBasicDataBase : BaseWareHouseService where TEntity : BaseEntity, new()
+ //{
+ // private readonly ISqlSugarClient _db;
+ // public WmsBasicDataBase()
+ // {
+
+ // }
+ // [HttpPost]
+ // public async Task IsEnabledMark(IEnumerable ids,int status)
+ // {
+
+ // }
+ //}
+}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCheckTaskService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCheckTaskService.cs
index d00f1dc2..c54969ce 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCheckTaskService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCheckTaskService.cs
@@ -29,7 +29,7 @@ namespace Tnb.WarehouseMgr
/// 盘点任务
///
[OverideVisualDev(ModuleConsts.MODULE_WMSCHECKTASK_ID)]
- public class WmsCheckTaskService : BaseWareHouseService
+ public class WmsCheckTaskService : ServiceLoggerBase
{
private readonly ISqlSugarClient _db;
private readonly IWareHouseService _warehouseService;
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyInstockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyInstockService.cs
index 6ac049fc..25ebbc91 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyInstockService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyInstockService.cs
@@ -30,7 +30,7 @@ namespace Tnb.WarehouseMgr
[OverideVisualDev(ModuleConsts.MODULE_WMSEMPTYINSTOCK_ID)]
[ServiceModule(BizTypeId)]
- public class WmsEmptyInstockService : BaseWareHouseService, IWmsEmptyInstockService
+ public class WmsEmptyInstockService : ServiceLoggerBase, IWmsEmptyInstockService
{
private const string BizTypeId = "26121986416677";
private readonly ISqlSugarClient _db;
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs
index 0fe26b25..53e6c2d8 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs
@@ -34,7 +34,7 @@ namespace Tnb.WarehouseMgr
///
[OverideVisualDev(ModuleConsts.MODULE_WMSOUTSTOCK_ID)]
[ServiceModule(BizTypeId)]
- public class WmsOutStockService : BaseWareHouseService, IWmsOutStockService
+ public class WmsOutStockService : ServiceLoggerBase, IWmsOutStockService
{
private const string BizTypeId = "26191522660645";
private readonly ISqlSugarClient _db;
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsStockReportService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsStockReportService.cs
index df16f071..99ef65d1 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsStockReportService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsStockReportService.cs
@@ -1,9 +1,11 @@
using JNPF.Common.Core.Manager;
+using JNPF.Common.Extension;
using JNPF.Common.Filter;
using JNPF.Common.Security;
using JNPF.VisualDev;
using JNPF.VisualDev.Entitys.Dto.VisualDevModelData;
using Mapster;
+using Newtonsoft.Json.Linq;
using SqlSugar;
using Tnb.BasicData.Entities;
using Tnb.WarehouseMgr.Entities;
@@ -29,11 +31,18 @@ namespace Tnb.WarehouseMgr
private async Task GetListAsync(VisualDevModelListQueryInput input)
{
+ var materialCode = "";
+ if (!input.queryJson.IsNullOrWhiteSpace())
+ {
+ materialCode = JObject.Parse(input.queryJson).Value(nameof(WmsCarryCode.material_code));
+ }
+
List items = await _db.Queryable().InnerJoin((a, b) => a.material_id == b.id)
.InnerJoin((a, b, c) => b.id == c.material_id)
.InnerJoin((a, b, c, d) => a.carry_id == d.id)
.InnerJoin((a, b, c, d, e) => d.location_id == e.id)
.Where((a, b, c, d, e) => e.is_type == ((int)EnumLocationType.存储库位).ToString())
+ .WhereIF(!string.IsNullOrEmpty(materialCode), (a, b, c, d, e) => a.material_code.Contains(materialCode))
.Select((a, b, c, d, e) => new WmsStockReportH
{
warehouse_id = a.warehouse_id,