扫码工单主表

This commit is contained in:
quowingwang 2025-11-26 14:11:28 +08:00
parent 7b19fc26ca
commit f30ca78717
8 changed files with 47 additions and 57 deletions

View File

@ -105,10 +105,10 @@ namespace RIZO.Admin.WebApi.Controllers.Mes.WorkOrderInfo
/// <returns></returns>
[HttpPost("createWorkOrderBySacnCode")]
[Log(Title = "扫码新增工单主表", BusinessType = BusinessType.INSERT)]
public IActionResult CreateWorkOrderBySacnCode([FromBody] FlowCard flowCard)
public ApiResult CreateWorkOrderBySacnCode([FromBody] string json)
{
var response = _WorkOrderService.CreateWorkOrderBySacnCode(flowCard);
return SUCCESS(response);
var response = _WorkOrderService.CreateWorkOrderBySacnCode(json);
return response;
}
/// <summary>

View File

@ -131,9 +131,9 @@ namespace RIZO.Admin.WebApi.Controllers.Mes.WorkOrderInfo
/// <returns></returns>
[HttpPost("createWorkOrderItemBySacnCode")]
[Log(Title = "扫码新增工单主表", BusinessType = BusinessType.INSERT)]
public IActionResult CreateWorkOrderItemBySacnCode([FromBody] PartsBasketCard partsBasketCard)
public IActionResult CreateWorkOrderItemBySacnCode(string json)
{
var response = _WorkOrderItemService.CreateWorkOrderItemBySacnCode(partsBasketCard);
var response = _WorkOrderItemService.CreateWorkOrderItemBySacnCode(json);
return SUCCESS(response);
}
}

View File

@ -6,6 +6,7 @@ namespace RIZO.Model.Mes.Dto.WorkOrderInfo
/// </summary>
public class WorkOrderItemQueryDto : PagerInfo
{
public string WorkOrderCode { get; set; }
public string ProcessCode { get; set; }
public string ProcessName { get; set; }

View File

@ -20,7 +20,7 @@ namespace RIZO.Service.Mes.IMesService.WorkOrderInfo
WorkOrderItem AddWorkOrderItem(WorkOrderItem parm);
int UpdateWorkOrderItem(WorkOrderItem parm);
WorkOrderItem CreateWorkOrderItemBySacnCode(PartsBasketCard partsBasketCard);
WorkOrderItem CreateWorkOrderItemBySacnCode(string json);
}

View File

@ -1,3 +1,4 @@
using Infrastructure.Model;
using RIZO.Model.Mes.Dto.GatherData;
using RIZO.Model.Mes.Dto.WorkOrderInfo;
using RIZO.Model.Mes.WorkOrderInfo;
@ -19,7 +20,7 @@ namespace RIZO.Service.Mes.IMesService.WorkOrderInfo
WorkOrder AddWorkOrder(WorkOrder parm);
int UpdateWorkOrder(WorkOrder parm);
WorkOrder CreateWorkOrderBySacnCode(FlowCard flowCard);
ApiResult CreateWorkOrderBySacnCode(string json);
int ChangeWorkOrderState(WorkOrderState parm);

View File

@ -93,6 +93,10 @@ namespace RIZO.Service.Mes.WorkOrderInfo
{
predicate.And(it => it.ProcessCode.Contains(parm.ProcessCode));
}
if (!string.IsNullOrWhiteSpace(parm.WorkOrderCode))
{
predicate.And(it => it.ProcessCode.Contains(parm.WorkOrderCode));
}
return predicate;
}
@ -116,8 +120,9 @@ namespace RIZO.Service.Mes.WorkOrderInfo
return predicate;
}
public WorkOrderItem CreateWorkOrderItemBySacnCode(PartsBasketCard partsBasketCard)
public WorkOrderItem CreateWorkOrderItemBySacnCode(string json)
{
PartsBasketCard partsBasketCard = JsonConvert.DeserializeObject<PartsBasketCard>(json);
string plcCode = "";
PlcFirstCode plcFirstCode = plcFirstCodeService.Queryable()
.Where(it => it.Character == partsBasketCard.Character).First();

View File

@ -1,6 +1,7 @@
using Aliyun.OSS;
using Infrastructure.Attribute;
using Infrastructure.Extensions;
using Infrastructure.Model;
using Microsoft.Data.SqlClient;
using RIZO.Model.Mes.Dto.GatherData;
using RIZO.Model.Mes.Dto.WorkOrderInfo;
@ -10,6 +11,7 @@ using RIZO.Repository;
using RIZO.Service.Mes.IMesService.MasterData;
using RIZO.Service.Mes.IMesService.WorkOrderInfo;
using RIZO.Service.Mes.MasterData;
using MDM.Services.Material;
using SqlSugar;
using SqlSugar.Extensions;
using static System.Runtime.InteropServices.JavaScript.JSType;
@ -23,6 +25,7 @@ namespace RIZO.Service.Mes.WorkOrderInfo
public class WorkOrderService : BaseService<WorkOrder>, IWorkOrderService
{
private WorkOrderItemService workOrderItemService = new WorkOrderItemService();
private MaterialListService materialListService = new MaterialListService();
/// <summary>
/// 查询工单主表列表
@ -128,11 +131,16 @@ namespace RIZO.Service.Mes.WorkOrderInfo
}
public WorkOrder CreateWorkOrderBySacnCode(FlowCard flowCard)
public ApiResult CreateWorkOrderBySacnCode(string json)
{
try
{
WorkOrder orderInfoNew = new WorkOrder();
if (string.IsNullOrWhiteSpace(json))
{
return ApiResult.Error(400,"扫码数据为空,请重新扫码");
}
//扫码信息转成FlowCard对象
//假设扫码结果是json形式
//{
@ -145,12 +153,25 @@ namespace RIZO.Service.Mes.WorkOrderInfo
// "TotalQty": 100
//}
//字符串转对象
//FlowCard flowCard = JsonConvert.DeserializeObject<FlowCard>(ScanCode);
FlowCard flowCard = new FlowCard();
try
{
flowCard = JsonConvert.DeserializeObject<FlowCard>(json);
}
catch (Exception ex)
{
return ApiResult.Error(400, "扫码数据格式错误,无法解析");
}
//根据IDCode解析的数据去检索物料档案
//var material = materialInfoService.Queryable().Where(it => it.MaterialCode == flowCard.MaterialCode).First();
//var material = materialListService.Queryable().Where(it => it.Code == flowCard.MaterialCode).First();
//if (material != null)
//{
// //工艺路线防错
// //目前情况是工艺路线与物料未绑定
//}
//else
//{
// return ApiResult.Error(400, "零件编码:"+flowCard.MaterialCode+"不存在,请添加");
//}
string strDay = DateTime.Now.ToString("yyyyMMdd");
//检验流卡二维码生成的工单是否重复生成
@ -178,57 +199,18 @@ namespace RIZO.Service.Mes.WorkOrderInfo
orderInfoNew.UpdateTime = DateTime.Now;
int iFlag = Update(orderInfoNew);
}
return orderInfoNew;
else
{
orderInfoNew = WorkOrder;
}
return ApiResult.Success(orderInfoNew);
}
catch (Exception ex)
{
return null;
return ApiResult.Error("工单创建失败");
}
}
//根据工单主表号去创建工单从表数据
//private WorkOrderItem createWorkOrderItem(string strWorkOrderCode, string strMaterialCode, string strLineCode, string strLineName, string strProcessCode, string strProcessName, string strIdCode, MaterialInfo material,string strUserId,string strUserName)
//{
// string plcCode = "";
// string materialCode = material.MaterialCode;
// string strFeature = material.Feature;
// List<PlcFirstCode> plcFirstCodes = plcFirstCodeService.Queryable()
// .Where(it => it.LineCode == strLineCode && (it.Feature == "ALL" || it.Feature == strFeature)).ToList();
// string strPlcFirstCode = "";
// if (plcFirstCodes != null && plcFirstCodes.Any())
// {
// strPlcFirstCode = plcFirstCodes[0].FirstCode;
// }
// int Sequcence = 1;
// WorkOrderItem workOrderItem = workOrderItemService.Queryable()
// .Where(it => it.WorkOrderCode == strWorkOrderCode).OrderByDescending(it => it.Sequcence).First();
// if (workOrderItem != null)
// {
// Sequcence = workOrderItem.Sequcence;
// Sequcence += 1;
// }
// string formattedSequence = Sequcence.ToString("D4");
// string strWorkOrderItemCode = strWorkOrderCode + formattedSequence;
// plcCode = strPlcFirstCode + materialCode + strWorkOrderItemCode;
// WorkOrderItem workOrderItem1 = new WorkOrderItem();
// workOrderItem1.WorkOrderCode = strWorkOrderCode;
// workOrderItem1.WorkOrderItemCode = strWorkOrderItemCode;
// workOrderItem1.PlcCode = plcCode;
// workOrderItem1.ProcessCode = strProcessCode;
// workOrderItem1.ProcessName = strProcessName;
// workOrderItem1.MaterialCode = materialCode;
// workOrderItem1.MaterialName = material.MaterialName;
// workOrderItem1.CreateBy = strUserId;
// workOrderItem1.CreateName = strUserName;
// workOrderItem1.UpdateBy = strUserId;
// workOrderItem1.UpdateName = strUserName;
// workOrderItem1.CreateTime = DateTime.Now;
// workOrderItem1.UpdateTime = DateTime.Now;
// workOrderItem1.Qty = 1;
// workOrderItem1.Sequcence = Sequcence;
// int iFlag = workOrderItemService.Insert(workOrderItem1);
// return workOrderItem1;
//}
/// <summary>
/// OrderStatus 1执行中2已完成
/// </summary>

View File

@ -21,6 +21,7 @@
<PackageReference Include="MiniExcel" Version="2.0.0-preview.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MDM\MDM.csproj" />
<ProjectReference Include="..\RIZO.ServiceCore\RIZO.ServiceCore.csproj" />
</ItemGroup>
<ItemGroup>