仓库-入库解析标签功能添加,添加一个综合判断是否能入库的接口
This commit is contained in:
@@ -1,15 +1,8 @@
|
||||
using Infrastructure.Extensions;
|
||||
using JinianNet.JNTemplate;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.IdentityModel.Tokens;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using ZR.Admin.WebApi.Extensions;
|
||||
using ZR.Model.Dto;
|
||||
using ZR.Model.MES.qu;
|
||||
using ZR.Model.MES.wms;
|
||||
using ZR.Model.MES.wms.Dto;
|
||||
using ZR.Service.mes.wms.IService;
|
||||
using static System.Runtime.InteropServices.JavaScript.JSType;
|
||||
|
||||
namespace ZR.Admin.WebApi.Controllers.mes.wms
|
||||
{
|
||||
@@ -26,6 +19,8 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms
|
||||
this.wm_entryWarehousing_productService = wm_entryWarehousing_productService;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 1. 判断是否为库位码
|
||||
/// </summary>
|
||||
@@ -92,7 +87,8 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms
|
||||
if (state)
|
||||
{
|
||||
msg = "满箱";
|
||||
}else
|
||||
}
|
||||
else
|
||||
{
|
||||
msg = "零头箱";
|
||||
}
|
||||
@@ -113,20 +109,20 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms
|
||||
return ToResponse(new ApiResult(200, "传入为空", false));
|
||||
}
|
||||
string msg = "";
|
||||
|
||||
|
||||
string createName = HttpContext.GetName();
|
||||
|
||||
int num = this.wm_entryWarehousing_productService.IntoProductwarehouse(wmgoodsDto, createName);
|
||||
if (num == 0)
|
||||
{
|
||||
msg = "数据插入异常";
|
||||
|
||||
|
||||
|
||||
}
|
||||
else if (num >= 1)
|
||||
{
|
||||
msg = "成功入库"+num+"个";
|
||||
|
||||
msg = "成功入库" + num + "个";
|
||||
|
||||
|
||||
}
|
||||
return ToResponse(new ApiResult(200, msg, num));
|
||||
@@ -164,6 +160,10 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms
|
||||
return ToResponse(new ApiResult(200, "传入为空", false));
|
||||
}
|
||||
ResultionPackageCodeDto data = this.wm_entryWarehousing_productService.ResolutionPackage(code);
|
||||
if (data == null)
|
||||
{
|
||||
return ToResponse(new ApiResult(500, "外标签解析异常", data));
|
||||
}
|
||||
return ToResponse(new ApiResult(200, "success", data));
|
||||
|
||||
}
|
||||
@@ -191,12 +191,33 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms
|
||||
{
|
||||
msg = "不存在";
|
||||
}
|
||||
|
||||
|
||||
return ToResponse(new ApiResult(200, msg, data));
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// all.判断标签扫描结果是否可入库(综合结果判断)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("checkWarehousing")]
|
||||
[Log(Title = "判断标签扫描结果是否可入库")]
|
||||
public IActionResult CheckWarehousing(string production_packcode = "", string location = "",
|
||||
bool isStrict = false)
|
||||
{
|
||||
string msg = this.wm_entryWarehousing_productService.checkWarehousing(production_packcode, location, isStrict);
|
||||
if ("ok".Equals(msg))
|
||||
{
|
||||
// 可入库
|
||||
return ToResponse(new ApiResult(200, msg, true));
|
||||
}
|
||||
else
|
||||
{
|
||||
// 不可入库
|
||||
return ToResponse(new ApiResult(200, msg, false));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using ZR.Model.Dto;
|
||||
|
||||
using ZR.Admin.WebApi.Extensions;
|
||||
using ZR.Admin.WebApi.Filters;
|
||||
using ZR.Service.mes.wms.IService;
|
||||
using ZR.Model.MES.wms.Dto;
|
||||
using ZR.Model.MES.wms;
|
||||
using Org.BouncyCastle.Crypto;
|
||||
using ZR.Model.MES.wms.Dto;
|
||||
using ZR.Service.mes.wms.IService;
|
||||
|
||||
//创建时间:2024-03-16
|
||||
namespace ZR.Admin.WebApi.Controllers
|
||||
@@ -52,8 +49,8 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
public IActionResult GetWmMaterial(string Id)
|
||||
{
|
||||
var response = _WmMaterialService.GetInfo(Id);
|
||||
|
||||
|
||||
|
||||
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
@@ -115,7 +112,7 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
{
|
||||
return SUCCESS(null);
|
||||
}
|
||||
WmGoodsNowProduction nowProduction= _WmMaterialService.GetInfoByPatchCode(patchCode);
|
||||
WmGoodsNowProduction nowProduction = _WmMaterialService.GetInfoByPatchCode(patchCode);
|
||||
return SUCCESS(nowProduction);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,21 +1,20 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ZR.Model.MES.wms.Dto
|
||||
namespace ZR.Model.MES.wms.Dto
|
||||
{
|
||||
public class ResultionPackageCodeDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 原始码
|
||||
/// </summary>
|
||||
public string originalCode { get; set; }
|
||||
public string originalCode { get; set; }
|
||||
/// <summary>
|
||||
/// 批次号(工单号+箱子号)
|
||||
/// 批次号(工单号+箱子号+班组)
|
||||
/// </summary>
|
||||
public string PatchCode { get; set; }
|
||||
public string PatchCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 班组
|
||||
/// </summary>
|
||||
public string Team { get; set; }
|
||||
/// <summary>
|
||||
/// 零件号
|
||||
/// </summary>
|
||||
@@ -33,12 +32,12 @@ namespace ZR.Model.MES.wms.Dto
|
||||
/// <summary>
|
||||
/// 生产时间
|
||||
/// </summary>
|
||||
public string ProductionTime { get; set; }
|
||||
public string ProductionTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品描述
|
||||
/// </summary>
|
||||
public string ProductionDescribe { get; set; }
|
||||
public string ProductionDescribe { get; set; }
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,25 +1,18 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using ZR.Model.MES.qc.DTO;
|
||||
using ZR.Model.MES.wms;
|
||||
using ZR.Model.MES.wms;
|
||||
using ZR.Model.MES.wms.Dto;
|
||||
using static Org.BouncyCastle.Crypto.Engines.SM2Engine;
|
||||
|
||||
namespace ZR.Service.mes.wms.IService
|
||||
{
|
||||
public interface IWMentryWarehousing_productService
|
||||
public interface IWMentryWarehousing_productService
|
||||
{
|
||||
|
||||
// 判断是否可以入库(入参为扫描结果)(附加参数bol 是否严格控制模式)
|
||||
public string checkWarehousing(string production_packcode, string location, bool isStrict);
|
||||
|
||||
// 获取库位列表
|
||||
public bool IsProductionLoacation(string production_location_code);
|
||||
|
||||
// 判断是否为成品箱子码
|
||||
public int isProductionPackage(string production_packcode);
|
||||
public int isProductionPackage(string production_packcode);
|
||||
|
||||
//判断箱子是否满
|
||||
public bool isFullPackage(string production_packcode);
|
||||
|
||||
@@ -1,23 +1,12 @@
|
||||
using Aliyun.OSS;
|
||||
using Infrastructure.Attribute;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Model.DBModel;
|
||||
using Infrastructure.Attribute;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using ZR.Model.mes.pro;
|
||||
using ZR.Model.MES.pro;
|
||||
using ZR.Model.MES.qu;
|
||||
using ZR.Model.MES.wms;
|
||||
using ZR.Model.MES.wms.Dto;
|
||||
using ZR.Service.mes.qc.IService;
|
||||
using ZR.Service.mes.wms.IService;
|
||||
using static Org.BouncyCastle.Crypto.Engines.SM2Engine;
|
||||
|
||||
namespace ZR.Service.mes.wms
|
||||
{
|
||||
@@ -38,7 +27,7 @@ namespace ZR.Service.mes.wms
|
||||
for (int i = 0; i < wmgoods.packagelist.Count(); i++)
|
||||
{
|
||||
|
||||
ResultionPackageCodeDto resultionPackage= ResolutionPackagecode(wmgoods.packagelist[i]);
|
||||
ResultionPackageCodeDto resultionPackage = ResolutionPackagecode(wmgoods.packagelist[i]);
|
||||
WmGoodsNowProduction wmGood = new WmGoodsNowProduction();
|
||||
wmGood.Id = SnowFlakeSingle.Instance.NextId().ToString();
|
||||
|
||||
@@ -47,11 +36,12 @@ namespace ZR.Service.mes.wms
|
||||
try
|
||||
{
|
||||
flow_num = Convert.ToInt32(flow);
|
||||
}catch(Exception ex)
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
flow_num = -1;
|
||||
}
|
||||
|
||||
|
||||
wmGood.PackageCode = Getpack_no(resultionPackage.WorkoderID, flow_num.ToString("000"));
|
||||
wmGood.PackageCodeClient = resultionPackage.PatchCode;
|
||||
wmGood.Partnumber = resultionPackage.PartNumner;
|
||||
@@ -66,8 +56,8 @@ namespace ZR.Service.mes.wms
|
||||
// .Where(it => it.WorkOrderNum == workorder_id)
|
||||
// .Count();
|
||||
|
||||
wmGood.GoodsNumLogic = (resultionPackage.Quantity)??0;
|
||||
wmGood.GoodsNumAction= wmGood.GoodsNumLogic;
|
||||
wmGood.GoodsNumLogic = (resultionPackage.Quantity) ?? 0;
|
||||
wmGood.GoodsNumAction = wmGood.GoodsNumLogic;
|
||||
wmGood.EntryWarehouseTime = DateTime.Now;
|
||||
wmGood.CreatedBy = createName;
|
||||
wmGood.CreatedTime = DateTime.Now;
|
||||
@@ -182,7 +172,7 @@ namespace ZR.Service.mes.wms
|
||||
.Where(it => it.Location.Equals(production_location_code)).Any();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
//获取库位已经存在的货物
|
||||
public List<WmGoodsNowProduction> Getpackagelist(string location)
|
||||
@@ -191,75 +181,29 @@ namespace ZR.Service.mes.wms
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 解析外箱标签码
|
||||
/// </summary>
|
||||
/// <param name="packagecode"></param>
|
||||
/// <returns></returns>
|
||||
private ResultionPackageCodeDto ResolutionPackagecode(string packagecode)
|
||||
{
|
||||
ResultionPackageCodeDto resultionPackageCode = new ResultionPackageCodeDto();
|
||||
try
|
||||
{
|
||||
resultionPackageCode.originalCode= packagecode;
|
||||
|
||||
// todo 解析外箱标签码
|
||||
string[] splitstr = packagecode.Split('^');
|
||||
resultionPackageCode.PatchCode = splitstr[0].Substring(5);
|
||||
|
||||
//todo 解析零件号
|
||||
string partnumber = splitstr[1].Substring(11);
|
||||
//int length = lingshi.Length - 2;
|
||||
//string partnumber = lingshi.Substring(0, length);
|
||||
resultionPackageCode.PartNumner = partnumber;
|
||||
//todo 解析工单号
|
||||
string workoderidid = splitstr[2].Substring(7);
|
||||
resultionPackageCode.WorkoderID = workoderidid;
|
||||
//todo 生产时间
|
||||
resultionPackageCode.ProductionTime="20"+ workoderidid.Substring(0,6);
|
||||
//todo 解析箱子中产品数量
|
||||
string product_num = splitstr[3].Substring(4);
|
||||
resultionPackageCode.Quantity = int.Parse(product_num);
|
||||
//todo 产品描述 partnumber
|
||||
// ProWorklplan_v2 plan= Context.Queryable<ProWorklplan_v2>().Where(it => it.Partnumber == partnumber).First();
|
||||
//if(plan != null)
|
||||
// {
|
||||
// resultionPackageCode.ProductionDescribe = plan.ProductName;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// resultionPackageCode.ProductionDescribe = "生产计划无此零件号";
|
||||
// }
|
||||
ProWorkorder_v2 workorder= Context.Queryable<ProWorkorder_v2>()
|
||||
.Where(it => it.FinishedPartNumber == partnumber)
|
||||
.First();
|
||||
|
||||
if (workorder != null)
|
||||
{
|
||||
resultionPackageCode.ProductionDescribe = workorder.ProductDescription;
|
||||
}
|
||||
else
|
||||
{
|
||||
resultionPackageCode.ProductionDescribe = "生产工单无此零件号";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Error($"外箱标签码,解析失败 {ex.Message}");
|
||||
|
||||
}
|
||||
|
||||
return resultionPackageCode;
|
||||
}
|
||||
|
||||
//解析外箱标签码
|
||||
public ResultionPackageCodeDto ResolutionPackage(string code)
|
||||
{
|
||||
|
||||
|
||||
return ResolutionPackagecode(code);
|
||||
// 初步进行解析检测,增加解析成功率
|
||||
string[] splitstr = code.Split('^');
|
||||
if (splitstr.Length < 1)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
// 第一类
|
||||
if (splitstr[0].Contains("Code="))
|
||||
{
|
||||
return ResolutionPackagecode1(code);
|
||||
}
|
||||
// 第二类
|
||||
if (splitstr[3].Contains("Cd="))
|
||||
{
|
||||
return ResolutionPackagecode2(code);
|
||||
}
|
||||
// 解析失败
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -271,9 +215,223 @@ namespace ZR.Service.mes.wms
|
||||
/// <exception cref="NotImplementedException"></exception>
|
||||
public bool IsExistedWarehouse(string originalCode)
|
||||
{
|
||||
ResultionPackageCodeDto resultionPackage= ResolutionPackagecode(originalCode);
|
||||
ResultionPackageCodeDto resultionPackage = ResolutionPackage(originalCode);
|
||||
|
||||
return Context.Queryable<WmGoodsNowProduction>().Where(it => it.PackageCodeClient == resultionPackage.PatchCode).Any();
|
||||
}
|
||||
|
||||
|
||||
// 检查是否可入库(ok 可入库,其余返回情况)
|
||||
public string checkWarehousing(string production_packcode, string location, bool isStrict)
|
||||
{
|
||||
if (string.IsNullOrEmpty(production_packcode))
|
||||
{
|
||||
return "扫描结果为空!";
|
||||
}
|
||||
// 1.判断能否解析
|
||||
ResultionPackageCodeDto resultionPackage = ResolutionPackage(production_packcode);
|
||||
if (resultionPackage == null)
|
||||
{
|
||||
return "标签解析异常!";
|
||||
}
|
||||
// 2.判断是否已入库
|
||||
bool isExistedWarehouse = Context.Queryable<WmGoodsNowProduction>().Where(it => it.PackageCodeClient == resultionPackage.PatchCode).Any();
|
||||
if (isExistedWarehouse)
|
||||
{
|
||||
return "该箱号已入库!";
|
||||
}
|
||||
// 提取库位信息
|
||||
WmInfo wmInfo = Context.Queryable<WmInfo>().Where(it => it.Location == location).First();
|
||||
if (wmInfo == null)
|
||||
{
|
||||
return "库位参数异常";
|
||||
}
|
||||
if (isStrict && wmInfo.Remark != "临时")
|
||||
{
|
||||
// 3.isStrict = TRUE时判断是否是满箱标签
|
||||
string packingCode = resultionPackage.PatchCode.Split('_')[1];
|
||||
bool isExist = Context.Queryable<WmPackingrecord>()
|
||||
.Where(it => it.WorkOrderNum == resultionPackage.WorkoderID)
|
||||
.Where(it => it.PackingCode.EndsWith(packingCode))
|
||||
.Where(it => it.BFilled == true)
|
||||
.Any();
|
||||
if (!isExist)
|
||||
{
|
||||
return "该标签不为满箱标签!请入临时仓库!";
|
||||
}
|
||||
// 4.isStrict = TRUE时判断能否追溯
|
||||
string flow = resultionPackage.PatchCode.Split('_')[1];
|
||||
int flow_num = 0;
|
||||
try
|
||||
{
|
||||
flow_num = Convert.ToInt32(flow);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
flow_num = -1;
|
||||
}
|
||||
//mes追溯码
|
||||
string PackageCode = Getpack_no(resultionPackage.WorkoderID, flow_num.ToString("000"));
|
||||
if (PackageCode == null)
|
||||
{
|
||||
return "该标签不可追溯!请入临时仓库!";
|
||||
}
|
||||
}
|
||||
return "ok";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 最早版本解析外箱标签码
|
||||
/// </summary>
|
||||
/// <param name="packagecode"></param>
|
||||
/// <returns></returns>
|
||||
private ResultionPackageCodeDto ResolutionPackagecode(string packagecode)
|
||||
{
|
||||
ResultionPackageCodeDto resultionPackageCode = new ResultionPackageCodeDto();
|
||||
try
|
||||
{
|
||||
resultionPackageCode.originalCode = packagecode;
|
||||
// todo 解析外箱标签码
|
||||
string[] splitstr = packagecode.Split('^');
|
||||
resultionPackageCode.PatchCode = splitstr[0].Substring(5);
|
||||
//todo 解析零件号
|
||||
string partnumber = splitstr[1].Substring(11);
|
||||
//int length = lingshi.Length - 2;
|
||||
//string partnumber = lingshi.Substring(0, length);
|
||||
resultionPackageCode.PartNumner = partnumber;
|
||||
//todo 解析工单号
|
||||
string workoderidid = splitstr[2].Substring(7);
|
||||
resultionPackageCode.WorkoderID = workoderidid;
|
||||
//todo 生产时间
|
||||
resultionPackageCode.ProductionTime = "20" + workoderidid.Substring(0, 6);
|
||||
//todo 解析箱子中产品数量
|
||||
string product_num = splitstr[3].Substring(4);
|
||||
resultionPackageCode.Quantity = int.Parse(product_num);
|
||||
//todo 产品描述 partnumber
|
||||
ProWorkorder_v2 workorder = Context.Queryable<ProWorkorder_v2>()
|
||||
.Where(it => it.FinishedPartNumber == partnumber)
|
||||
.First();
|
||||
if (workorder != null)
|
||||
{
|
||||
resultionPackageCode.ProductionDescribe = workorder.ProductDescription;
|
||||
}
|
||||
else
|
||||
{
|
||||
resultionPackageCode.ProductionDescribe = "生产工单无此零件号";
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Error($"外箱标签码,解析失败 {ex.Message}");
|
||||
return null;
|
||||
}
|
||||
|
||||
return resultionPackageCode;
|
||||
}
|
||||
/// <summary>
|
||||
/// 1-解析鲨鱼鳍外箱标签码
|
||||
/// </summary>
|
||||
/// <param name="packagecode"></param>
|
||||
/// <returns></returns>
|
||||
private ResultionPackageCodeDto ResolutionPackagecode1(string packagecode)
|
||||
{
|
||||
ResultionPackageCodeDto resultionPackageCode = new ResultionPackageCodeDto();
|
||||
try
|
||||
{
|
||||
resultionPackageCode.originalCode = packagecode;
|
||||
// 解析外箱标签码
|
||||
string[] splitstr = packagecode.Split('^');
|
||||
// 解析批次号
|
||||
resultionPackageCode.PatchCode = splitstr[0].Substring(5);
|
||||
// 解析零件号
|
||||
string partnumber = splitstr[1].Substring(11);
|
||||
// 有的零件号带了-FL,不是很标准
|
||||
resultionPackageCode.PartNumner = partnumber;
|
||||
// 解析工单号 工单号会带个W,需要去掉
|
||||
string workoderidid = splitstr[2].Substring(7);
|
||||
resultionPackageCode.WorkoderID = workoderidid;
|
||||
// 解析生产时间 工单号生产时间提取
|
||||
resultionPackageCode.ProductionTime = string.Concat("20", workoderidid.AsSpan(0, 6));
|
||||
// 解析箱子中产品数量
|
||||
string product_num = splitstr[3].Substring(4);
|
||||
resultionPackageCode.Quantity = int.Parse(product_num);
|
||||
// 解析产品描述 partnumber 从物料列表抓取数据
|
||||
WmMaterial material = Context.Queryable<WmMaterial>().Where(it => it.Partnumber == partnumber).First();
|
||||
if (material == null)
|
||||
{
|
||||
resultionPackageCode.ProductionDescribe = "物料记录未录入此零件号信息!";
|
||||
return resultionPackageCode;
|
||||
}
|
||||
string des1 = material.Description;
|
||||
string des2 = material.ProductName;
|
||||
if (string.IsNullOrEmpty(des1))
|
||||
{
|
||||
resultionPackageCode.ProductionDescribe = des1;
|
||||
}
|
||||
if (string.IsNullOrEmpty(des2))
|
||||
{
|
||||
resultionPackageCode.ProductionDescribe = des2;
|
||||
}
|
||||
return resultionPackageCode;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Error($"外箱标签码,解析失败 {ex.Message}");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
// 2-解析门把手
|
||||
private ResultionPackageCodeDto ResolutionPackagecode2(string packagecode)
|
||||
{
|
||||
ResultionPackageCodeDto resultionPackageCode = new ResultionPackageCodeDto();
|
||||
try
|
||||
{
|
||||
// 原始编码
|
||||
resultionPackageCode.originalCode = packagecode;
|
||||
// 解析外箱标签码
|
||||
string[] splitstr = packagecode.Split('^');
|
||||
// 解析批次号
|
||||
resultionPackageCode.PatchCode = splitstr[3].Substring(3);
|
||||
// 解析零件号
|
||||
string partnumber = splitstr[4].Substring(3);
|
||||
resultionPackageCode.PartNumner = partnumber;
|
||||
// 解析工单号
|
||||
string workoderidid = splitstr[3].Substring(6, 6);
|
||||
resultionPackageCode.WorkoderID = workoderidid;
|
||||
// 生产时间
|
||||
resultionPackageCode.ProductionTime = "20" + workoderidid.Substring(0, 6);
|
||||
//todo 解析箱子中产品数量
|
||||
string product_num = splitstr[5].Substring(3);
|
||||
resultionPackageCode.Quantity = int.Parse(product_num);
|
||||
// 解析产品描述 partnumber 从物料列表抓取数据
|
||||
WmMaterial material = Context.Queryable<WmMaterial>().Where(it => it.Partnumber == partnumber).First();
|
||||
if (material == null)
|
||||
{
|
||||
resultionPackageCode.ProductionDescribe = "物料记录未录入此零件号信息!";
|
||||
return resultionPackageCode;
|
||||
}
|
||||
string des1 = material.Description;
|
||||
string des2 = material.ProductName;
|
||||
if (!string.IsNullOrEmpty(des1))
|
||||
{
|
||||
resultionPackageCode.ProductionDescribe = des1;
|
||||
}
|
||||
else if (!string.IsNullOrEmpty(des2))
|
||||
{
|
||||
resultionPackageCode.ProductionDescribe = des2;
|
||||
}
|
||||
else
|
||||
{
|
||||
resultionPackageCode.ProductionDescribe = "物料记录内未填写详情信息!";
|
||||
}
|
||||
return resultionPackageCode;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Error($"外箱标签码,解析失败 {ex.Message}");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user