diff --git a/BasicData/Tnb.BasicData.Entities/Consts/FactoryConfigConst.cs b/BasicData/Tnb.BasicData.Entities/Consts/FactoryConfigConst.cs
index 1b16c47f..8d256f63 100644
--- a/BasicData/Tnb.BasicData.Entities/Consts/FactoryConfigConst.cs
+++ b/BasicData/Tnb.BasicData.Entities/Consts/FactoryConfigConst.cs
@@ -14,5 +14,10 @@ namespace Tnb.BasicData
/// 报工允许超过工单计划数百分比 例:填写10就是10%
///
public const string IS_SURPASS_PERCENTAGE = "is_surpass_percentage";
+
+ ///
+ /// 域名
+ ///
+ public const string DOMAIN = "domain";
}
}
\ No newline at end of file
diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/EquipFileQueryOutput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/EquipFileQueryOutput.cs
index 01f09767..b5f59b08 100644
--- a/EquipMgr/Tnb.EquipMgr.Entities/Dto/EquipFileQueryOutput.cs
+++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/EquipFileQueryOutput.cs
@@ -10,5 +10,8 @@ namespace Tnb.EquipMgr.Entities.Dto
public string? equip_id { get; set; }
public string? equip_id_id { get; set; }
public string? file_name { get; set; }
+
+ public string file_type { get; set; }
+ public string file_ext { get; set; }
}
}
\ No newline at end of file
diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpEquipFile.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpEquipFile.cs
index b2919f9b..746aa8c5 100644
--- a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpEquipFile.cs
+++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpEquipFile.cs
@@ -28,6 +28,16 @@ public partial class EqpEquipFile : BaseEntity
/// 文件名
///
public string file_name { get; set; } = string.Empty;
+
+ ///
+ /// 文件后缀
+ ///
+ public string file_ext { get; set; } = string.Empty;
+
+ ///
+ /// 文件类型
+ ///
+ public string file_type { get; set; } = string.Empty;
///
/// 创建用户
diff --git a/EquipMgr/Tnb.EquipMgr/EqpEquipFileService.cs b/EquipMgr/Tnb.EquipMgr/EqpEquipFileService.cs
index 61d56003..b035c051 100644
--- a/EquipMgr/Tnb.EquipMgr/EqpEquipFileService.cs
+++ b/EquipMgr/Tnb.EquipMgr/EqpEquipFileService.cs
@@ -38,12 +38,12 @@ namespace Tnb.EquipMgr
}
[HttpPost]
- public async Task Upload([FromForm] string equip_id, [FromForm] ChunkModel input)
+ public async Task Upload([FromForm] string equip_id,[FromForm] string file_type, [FromForm] ChunkModel input)
{
string msg;
try
{
- dynamic attachment = await _fileService.Uploader("annexpic", input);
+ FileControlsModel attachment = await _fileService.Uploader("annexpic", input);
EqpEquipFile eqpEquipFile = new()
{
@@ -52,6 +52,8 @@ namespace Tnb.EquipMgr
create_id = _userManager.UserId,
create_time = DateTime.Now,
attachment = JsonConvert.SerializeObject(attachment),
+ file_ext = attachment.fileExtension,
+ file_type = file_type,
org_id = _userManager.GetUserInfo().Result.organizeId,
};
@@ -82,6 +84,7 @@ namespace Tnb.EquipMgr
.LeftJoin((a, b, c, d) => a.equip_id == d.id)
.Where((a, b, c, d) => a.equip_id == input.equip_id)
.WhereIF(queryJson != null && queryJson.ContainsKey("file_name"), (a, b, c, d) => a.file_name.Contains(queryJson!["file_name"]))
+ .WhereIF(queryJson != null && queryJson.ContainsKey("file_type"), (a, b, c, d) => a.file_type==queryJson!["file_type"])
.Select((a, b, c, d) => new EquipFileQueryOutput
{
id = a.id,
@@ -91,6 +94,8 @@ namespace Tnb.EquipMgr
create_time = a.create_time == null ? null : a.create_time.Value.ToString("yyyy-MM-dd"),
equip_id = d.name,
equip_id_id = a.equip_id,
+ file_ext = a.file_ext,
+ file_type = a.file_type,
file_name = a.file_name,
}).ToPagedListAsync(input.currentPage, input.pageSize);
diff --git a/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs b/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs
new file mode 100644
index 00000000..54e5bcd7
--- /dev/null
+++ b/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs
@@ -0,0 +1,141 @@
+using Aop.Api.Domain;
+using JNPF;
+using JNPF.Common.Core.Manager;
+using JNPF.Common.Enums;
+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.Permission;
+using JNPF.Systems.Interfaces.System;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using Newtonsoft.Json;
+using SqlSugar;
+using SqlSugar.Extensions;
+using Tnb.BasicData.Entities;
+using Tnb.Common.Redis;
+using Tnb.WarehouseMgr.Interfaces;
+using Tnb.WarehouseMgr.Entities.Dto.Inputs;
+using Tnb.WarehouseMgr.Entities.Consts;
+using Tnb.WarehouseMgr.Entities.Dto.Outputs;
+using Result = Tnb.WarehouseMgr.Entities.Dto.Outputs.Result;
+using Tnb.BasicData;
+using Tnb.WarehouseMgr;
+
+namespace Tnb.ProductionMgr
+{
+ [ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 700)]
+ [Route("api/[area]/[controller]/[action]")]
+ public class TimeWorkService : IDynamicApiController, ITransient
+ {
+ private readonly ISqlSugarRepository _repository;
+ private readonly IOrganizeService _organizeService;
+ private readonly IBillRullService _billRullService;
+ private readonly RedisData _redisData;
+ private readonly IWmsEmptyOutstockService _wmsEmptyOutstockService;
+
+ public TimeWorkService(
+ RedisData redisData,
+ ISqlSugarRepository repository,
+ IBillRullService billRullService,
+ IOrganizeService organizeService,
+ IWmsEmptyOutstockService wmsEmptyOutstockService
+ )
+ {
+ _redisData = redisData;
+ _repository = repository;
+ _organizeService = organizeService;
+ _billRullService = billRullService;
+ _wmsEmptyOutstockService = wmsEmptyOutstockService;
+ }
+
+ ///
+ /// 注塑空载具出库
+ ///
+ ///
+ [HttpGet]
+ [AllowAnonymous]
+ public async Task EmptyCarryOutStk()
+ {
+ bool cs01 = _redisData.Get("CallCcuEmptyin_cs01");
+ bool c503 = _redisData.Get("CallCtuEmptyin c503");
+ bool cs01Flag = _redisData.Get("CallCcuEmptyin_cs01_flag");
+ bool c503Flag = _redisData.Get("CallCtuEmptyin c503_flag");
+ if (cs01 && !cs01Flag)
+ {
+ MESEmptyCarryOutStkInput input = new MESEmptyCarryOutStkInput();
+ input.org_id = "";
+ input.location_code = "SSX-021-001";
+ input.warehouse_id = WmsWareHouseConst.WAREHOUSE_ZC_ID;
+ input.carrystd_id = WmsWareHouseConst.LIAOXIANGID;
+ input.qty = 5;
+ Log.Information($"【EmptyCarryOutStk】左输送线空箱入呼叫开始,参数:{JsonConvert.SerializeObject(input)}");
+ Result result = await _wmsEmptyOutstockService.MESEmptyCarryOutStk(input);
+ if (result.code == HttpStatusCode.OK)
+ {
+ Log.Information("【EmptyCarryOutStk】左输送线空箱入呼叫成功");
+ _redisData.Set("CallCcuEmptyin_cs01_flag", true, TimeSpan.FromMinutes(20));
+ }
+ }
+
+ if (c503 && !c503Flag)
+ {
+ MESEmptyCarryOutStkInput input = new MESEmptyCarryOutStkInput();
+ input.org_id = "";
+ input.location_code = "SSX-021-003";
+ input.warehouse_id = WmsWareHouseConst.WAREHOUSE_ZC_ID;
+ input.carrystd_id = WmsWareHouseConst.LIAOXIANGID;
+ input.qty = 5;
+ Log.Information($"【EmptyCarryOutStk】右输送线空箱入呼叫开始,参数:{JsonConvert.SerializeObject(input)}");
+ Result result = await _wmsEmptyOutstockService.MESEmptyCarryOutStk(input);
+ if (result.code == HttpStatusCode.OK)
+ {
+ Log.Information("【EmptyCarryOutStk】右输送线空箱入呼叫成功");
+ _redisData.Set("CallCtuEmptyin c503_flag", true, TimeSpan.FromMinutes(20));
+ }
+ }
+
+
+ return Task.CompletedTask;
+ }
+
+ [HttpGet]
+ [AllowAnonymous]
+ public async Task FixedPointDelivery()
+ {
+ bool value = _redisData.Get("DB100.132.0");
+ bool valueFlag = _redisData.Get("DB100.132.0_flag");
+ if (value && !valueFlag)
+ {
+ var db = _repository.AsSugarClient();
+ Dictionary postData = new Dictionary();
+
+
+ Dictionary header = new()
+ {
+ ["Authorization"] = App.HttpContext != null ? App.HttpContext.Request.Headers["Authorization"] : ""
+ };
+ BasFactoryConfig config = await db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.DOMAIN);
+ string sendResult = HttpUtils.RequestPost($"{config.value}/api/visualdev/OnlineDev/{ModuleConsts.MODULE_WMSDELIVERYPDA_ID}", JsonConvert.SerializeObject(postData), header);
+
+ AuthResponse authResponse = JsonConvert.DeserializeObject(sendResult);
+ if(authResponse.code == 200 && authResponse.data.ObjToBool())
+ {
+ Log.Information("【FixedPointDelivery】注塑定点配送成功");
+ _redisData.Set("DB100.132.0_flag", true, TimeSpan.FromMinutes(20));
+ }
+ else
+ {
+ Log.Information(sendResult);
+ }
+
+ }
+
+ return Task.CompletedTask;
+ }
+
+ }
+}
\ 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 3550467c..7d51555e 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs
@@ -322,5 +322,9 @@
/// 一楼中储仓出库工位
///
public const string ZZCSSX111012 = "32609251845653";
+ ///
+ /// 料箱id
+ ///
+ public const string LIAOXIANGID = "26037262680357";
}
}