工单排序
This commit is contained in:
parent
f67ba347e8
commit
34e5a51a6f
@ -11,7 +11,7 @@ namespace DOAN.Admin.WebApi.Controllers.Bydlms
|
||||
/// <summary>
|
||||
/// 生产工单
|
||||
/// </summary>
|
||||
[Verify]
|
||||
|
||||
[Route("bydlms/BydWorkorder")]
|
||||
public class BydWorkorderController : BaseController
|
||||
{
|
||||
@ -25,11 +25,51 @@ namespace DOAN.Admin.WebApi.Controllers.Bydlms
|
||||
_BydWorkorderService = BydWorkorderService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BYD-MES传入生产工单
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("accept_BYD_MES_wrokorder_list")]
|
||||
[AllowAnonymousAttribute]
|
||||
[Log(Title = "BYD-MES传入生产工单", BusinessType = BusinessType.INSERT)]
|
||||
public IActionResult BatchAddBydWorkorder([FromBody] QueryParam parm)
|
||||
{
|
||||
try
|
||||
{
|
||||
var modalList = parm.Data.Adapt<List<BydWorkorder>>();
|
||||
var response = _BydWorkorderService.AddBydWorkorderList(modalList);
|
||||
Dictionary<string, string> result = new Dictionary<string, string>();
|
||||
|
||||
if (response)
|
||||
{
|
||||
result.Add("code", "000000");
|
||||
result.Add("mesg", "操作成功");
|
||||
return Ok(result); // 返回成功的响应
|
||||
}
|
||||
else
|
||||
{
|
||||
result.Add("code", "999999");
|
||||
result.Add("mesg", "传入数据为空");
|
||||
return BadRequest(result); // 返回失败的响应
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Dictionary<string, string> errorResult = new Dictionary<string, string>
|
||||
{
|
||||
{ "code", "999999" },
|
||||
{ "mesg", ex.Message }
|
||||
};
|
||||
return StatusCode(500, errorResult); // 返回异常响应
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询生产工单列表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
[Verify]
|
||||
[HttpGet("list")]
|
||||
[ActionPermissionFilter(Permission = "bydworkorder:list")]
|
||||
public IActionResult QueryBydWorkorder([FromQuery] BydWorkorderQueryDto parm)
|
||||
@ -46,6 +86,7 @@ namespace DOAN.Admin.WebApi.Controllers.Bydlms
|
||||
/// <returns></returns>
|
||||
[HttpGet("{Id}")]
|
||||
[ActionPermissionFilter(Permission = "bydworkorder:query")]
|
||||
[Verify]
|
||||
public IActionResult GetBydWorkorder(string Id)
|
||||
{
|
||||
var response = _BydWorkorderService.GetInfo(Id);
|
||||
@ -61,6 +102,7 @@ namespace DOAN.Admin.WebApi.Controllers.Bydlms
|
||||
[HttpPost]
|
||||
[ActionPermissionFilter(Permission = "bydworkorder:add")]
|
||||
[Log(Title = "生产工单", BusinessType = BusinessType.INSERT)]
|
||||
[Verify]
|
||||
public IActionResult AddBydWorkorder([FromBody] BydWorkorderDto parm)
|
||||
{
|
||||
var modal = parm.Adapt<BydWorkorder>().ToCreate(HttpContext);
|
||||
@ -70,27 +112,7 @@ namespace DOAN.Admin.WebApi.Controllers.Bydlms
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 批量添加生产工单
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("BatchAddBydWorkorder")]
|
||||
[AllowAnonymous]
|
||||
[Log(Title = "批量添加生产工单", BusinessType = BusinessType.INSERT)]
|
||||
public IActionResult BatchAddBydWorkorder([FromBody] List<BydWorkorderDto> parm)
|
||||
{
|
||||
try
|
||||
{
|
||||
var modal = parm.Adapt<BydWorkorder>().ToCreate(HttpContext);
|
||||
var response = _BydWorkorderService.AddBydWorkorder(modal);
|
||||
return ToResponse(new ApiResult(000000,"ok", response));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return ToResponse(new ApiResult(500, "error", ex.Message));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 更新生产工单
|
||||
@ -99,6 +121,7 @@ namespace DOAN.Admin.WebApi.Controllers.Bydlms
|
||||
[HttpPut]
|
||||
[ActionPermissionFilter(Permission = "bydworkorder:edit")]
|
||||
[Log(Title = "生产工单", BusinessType = BusinessType.UPDATE)]
|
||||
[Verify]
|
||||
public IActionResult UpdateBydWorkorder([FromBody] BydWorkorderDto parm)
|
||||
{
|
||||
var modal = parm.Adapt<BydWorkorder>().ToUpdate(HttpContext);
|
||||
@ -114,6 +137,7 @@ namespace DOAN.Admin.WebApi.Controllers.Bydlms
|
||||
[HttpPost("delete/{ids}")]
|
||||
[ActionPermissionFilter(Permission = "bydworkorder:delete")]
|
||||
[Log(Title = "生产工单", BusinessType = BusinessType.DELETE)]
|
||||
[Verify]
|
||||
public IActionResult DeleteBydWorkorder([FromRoute]string ids)
|
||||
{
|
||||
var idArr = Tools.SplitAndConvert<string>(ids);
|
||||
|
||||
@ -52,6 +52,7 @@ builder.Services.AddAppService();
|
||||
builder.Services.AddTaskSchedulers();
|
||||
//请求大小限制
|
||||
builder.Services.AddRequestLimit(builder.Configuration);
|
||||
//builder.Services.AddHostedService<MyBackgroundService>();
|
||||
|
||||
//注册REDIS 服务
|
||||
var openRedis = builder.Configuration["RedisServer:open"];
|
||||
|
||||
@ -14,8 +14,9 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
<WebPublishMethod>FileSystem</WebPublishMethod>
|
||||
<_TargetId>Folder</_TargetId>
|
||||
<SiteUrlToLaunchAfterPublish />
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ProjectGuid>e5497bb4-b0c1-4794-9fae-163f626ec399</ProjectGuid>
|
||||
<SelfContained>false</SelfContained>
|
||||
<SelfContained>true</SelfContained>
|
||||
<RuntimeIdentifier>linux-x64</RuntimeIdentifier>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
54
DOAN.Model/Bydlms/BydLine.cs
Normal file
54
DOAN.Model/Bydlms/BydLine.cs
Normal file
@ -0,0 +1,54 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DOAN.Model.Bydlms
|
||||
{
|
||||
/// <summary>
|
||||
/// 产线MES预警消息记录
|
||||
/// </summary>
|
||||
[SugarTable("byd_line")]
|
||||
public class BydLine
|
||||
{
|
||||
/// <summary>
|
||||
/// 主键
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
||||
public int Id { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 线code
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "line_code")]
|
||||
public string LineCode { get; set; }
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 线name
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "line_name")]
|
||||
public string LineName { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 创建人
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "created_by")]
|
||||
public string CreatedBy { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "created_time")]
|
||||
public DateTime? CreatedTime { get; set; }
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -157,5 +157,17 @@ namespace DOAN.Model.Bydlms
|
||||
[SugarColumn(ColumnName = "uPDATED_TIME")]
|
||||
public DateTime? UpdatedTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否已经上传MES
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "isupload")]
|
||||
public int Isupload { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 同日同线排序25030509001
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "sort")]
|
||||
public int Sort { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
150
DOAN.Model/Bydlms/DataUpload.cs
Normal file
150
DOAN.Model/Bydlms/DataUpload.cs
Normal file
@ -0,0 +1,150 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DOAN.Model.Bydlms
|
||||
{
|
||||
public class DataUpload
|
||||
{
|
||||
public string serviceId { get; set; }
|
||||
public string factoryCode { get; set; }
|
||||
|
||||
public MachineInfo[] data { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 生产信息参数
|
||||
/// </summary>
|
||||
public class MachineInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// 产线编码
|
||||
/// </summary>
|
||||
public string lineCode { get; set; }
|
||||
/// <summary>
|
||||
/// 设备编码
|
||||
/// </summary>
|
||||
public string machineCode { get; set; }
|
||||
/// <summary>
|
||||
/// 产品编号
|
||||
/// </summary>
|
||||
public string materialCode { get; set; }
|
||||
/// <summary>
|
||||
/// 产品名称
|
||||
/// </summary>
|
||||
public string materialName { get; set; }
|
||||
/// <summary>
|
||||
/// 产品版本
|
||||
/// </summary>
|
||||
public string materialVersion { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// SN编码
|
||||
/// </summary>
|
||||
public string snNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 参数名称
|
||||
/// </summary>
|
||||
public string paramName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 参数编号
|
||||
/// </summary>
|
||||
public string paramCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 参数地址
|
||||
/// </summary>
|
||||
public string paramAddress { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 标准值
|
||||
/// </summary>
|
||||
public string standardValue { get; set; }
|
||||
/// <summary>
|
||||
/// 实际值
|
||||
/// </summary>
|
||||
public string realValue { get; set; }
|
||||
/// <summary>
|
||||
/// 参数范围下限
|
||||
/// </summary>
|
||||
public double paramRange1 { get; set; }
|
||||
/// <summary>
|
||||
/// 参数范围上限
|
||||
/// </summary>
|
||||
|
||||
public double paramRange2 { get; set; }
|
||||
/// <summary>
|
||||
/// 参数时间
|
||||
/// </summary>
|
||||
public DateTime paramTime { get; set; }
|
||||
/// <summary>
|
||||
/// 数采设备编码
|
||||
/// </summary>
|
||||
public string acquisitCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 工位编码
|
||||
/// </summary>
|
||||
public string stationCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 检测结果标志(PASS:通过,FAIL:不通过)
|
||||
/// </summary>
|
||||
public string resultFlag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 附件类型
|
||||
/// </summary>
|
||||
public string resourceType { get; set; }
|
||||
/// <summary>
|
||||
/// 附件路径
|
||||
/// </summary>
|
||||
public string resourceValue { get; set; }
|
||||
/// <summary>
|
||||
/// 生产详细参数信息
|
||||
/// </summary>
|
||||
public ParamInfo[] data { get; set; }
|
||||
}
|
||||
|
||||
public class ParamInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// 参数名称
|
||||
/// </summary>
|
||||
public string paramName { get; set; }
|
||||
/// <summary>
|
||||
/// 参数编号
|
||||
/// </summary>
|
||||
public string paramCode { get; set; }
|
||||
/// <summary>
|
||||
/// 标准值
|
||||
/// </summary>
|
||||
public string standardValue { get; set; }
|
||||
/// <summary>
|
||||
/// 实际值
|
||||
/// </summary>
|
||||
public string realValue { get; set; }
|
||||
/// <summary>
|
||||
/// 参数范围下限
|
||||
/// </summary>
|
||||
public double paramRange1 { get; set; }
|
||||
/// <summary>
|
||||
/// 参数范围上限
|
||||
/// </summary>
|
||||
public double paramRange2 { get; set; }
|
||||
/// <summary>
|
||||
/// 参数时间
|
||||
/// </summary>
|
||||
public DateTime paramTime { get; set; }
|
||||
/// <summary>
|
||||
/// 判定结果(1是合格,0是不合格)
|
||||
/// </summary>
|
||||
public int checkResult { get; set; }
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@ -8,12 +8,20 @@ namespace DOAN.Model.Bydlms.Dto
|
||||
{
|
||||
}
|
||||
|
||||
public class QueryParam
|
||||
{
|
||||
public string LineCode { get; set; }
|
||||
|
||||
public BydWorkorderDto[] Data { get; set; }
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 生产工单输入输出对象
|
||||
/// </summary>
|
||||
public class BydWorkorderDto
|
||||
{
|
||||
[Required(ErrorMessage = "主键不能为空")]
|
||||
|
||||
public string Id { get; set; }
|
||||
|
||||
public string FactoryCode { get; set; }
|
||||
|
||||
53
DOAN.Service/BackService/MyBackgroundService.cs
Normal file
53
DOAN.Service/BackService/MyBackgroundService.cs
Normal file
@ -0,0 +1,53 @@
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using System.Diagnostics.Metrics;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
public class MyBackgroundService : BackgroundService
|
||||
{
|
||||
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
|
||||
{
|
||||
while (!stoppingToken.IsCancellationRequested)
|
||||
{
|
||||
//具体的后台任务逻辑
|
||||
var url = "/api/product/Product_Information?Product006_ProductParameters"; // 替换成你的URL
|
||||
var data = new { serviceId = "John Doe", Age = 30 }; // 创建要发送的数据对象
|
||||
|
||||
var jsonData = JsonConvert.SerializeObject(data);
|
||||
var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
|
||||
|
||||
var request = new HttpRequestMessage(HttpMethod.Post, url)
|
||||
{
|
||||
Content = content
|
||||
};
|
||||
|
||||
// 添加请求头
|
||||
request.Headers.Add("appId", "61320D6EEF5A48B7C32149DF991BED41");
|
||||
request.Headers.Add("appKey", "85725BB0BCCEE8DB1AE2D5A48D393ABE");
|
||||
|
||||
HttpClient client = new HttpClient();
|
||||
HttpResponseMessage response = await client.SendAsync(request);
|
||||
|
||||
response.EnsureSuccessStatusCode();
|
||||
|
||||
string responseBody = await response.Content.ReadAsStringAsync();
|
||||
Console.WriteLine(responseBody);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
await Task.Delay(TimeSpan.FromMinutes(10), stoppingToken); // 每隔10分钟执行一次
|
||||
}
|
||||
catch (TaskCanceledException)
|
||||
{
|
||||
// 当CancellationToken被触发时,Task.Delay会抛出TaskCanceledException。
|
||||
// 这里可以什么都不做或者记录日志等,然后退出循环。
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -13,6 +13,22 @@ namespace DOAN.Service.Bydlms
|
||||
[AppService(ServiceType = typeof(IBydWorkorderService), ServiceLifetime = LifeTime.Transient)]
|
||||
public class BydWorkorderService : BaseService<BydWorkorder>, IBydWorkorderService
|
||||
{
|
||||
/// <summary>
|
||||
/// 接受比亚迪工单
|
||||
/// </summary>
|
||||
/// <param name="workorders"></param>
|
||||
/// <returns></returns>
|
||||
public bool AddBydWorkorderList(List<BydWorkorder> workorders)
|
||||
{
|
||||
foreach (var workorder in workorders)
|
||||
{
|
||||
workorder.Id = SnowFlakeSingle.Instance.NextId().ToString();
|
||||
workorder.CreatedBy = "BYD_MES";
|
||||
workorder.CreatedTime = DateTime.Now;
|
||||
}
|
||||
return Context.Insertable(workorders).ExecuteCommand() > 0;
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 查询生产工单列表
|
||||
/// </summary>
|
||||
|
||||
@ -12,7 +12,7 @@ namespace DOAN.Service.Bydlms.IBydlmsService
|
||||
|
||||
BydWorkorder GetInfo(string Id);
|
||||
|
||||
|
||||
bool AddBydWorkorderList(List<BydWorkorder> workorders);
|
||||
BydWorkorder AddBydWorkorder(BydWorkorder parm);
|
||||
int UpdateBydWorkorder(BydWorkorder parm);
|
||||
|
||||
|
||||
@ -44,6 +44,7 @@ namespace Infrastructure.Controllers
|
||||
return Content(jsonStr, "application/json");
|
||||
}
|
||||
|
||||
|
||||
protected IActionResult ToResponse(long rows, string timeFormatStr = "yyyy-MM-dd HH:mm:ss")
|
||||
{
|
||||
string jsonStr = GetJsonStr(ToJson(rows), timeFormatStr);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user