using Admin.NET.Application;
|
using Admin.NET.Core;
|
using Admin.NET.Core.TaskModule.Enum;
|
using iWareCommon;
|
using iWareCommon.Utils;
|
using iWareSql.MyDbContext;
|
using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Linq;
|
using System.Threading;
|
using System.Xml;
|
|
namespace iWareCC
|
{
|
/// <summary>
|
/// PO收货 处理的线程
|
/// </summary>
|
public class PoDeliveryHandler
|
{
|
public static void Handler()
|
{
|
var errMsg = "";
|
while (true)
|
{
|
try
|
{
|
SystemWarningMsg._lbl_Alert_PoDeliveryHandler = "循环开始...";
|
if (SystemValue.isAllowRuning_PoDeliveryHandler && SystemValue.isStartedModel)
|
{
|
errMsg = "";//重置
|
try
|
{
|
Do(ref errMsg);
|
if (!string.IsNullOrEmpty(errMsg))
|
{
|
SystemWarningMsg._lbl_Alert_PoDeliveryHandler = errMsg;
|
}
|
}
|
catch (Exception ex)
|
{
|
Log4NetHelper.WriteErrorLog(LogType.PoDeliveryHandler, "PO接收线程=>" + errMsg + ",异常:" + ex.Message, ex);
|
SystemWarningMsg._lbl_Alert_PoDeliveryHandler = "PO接收线程=>" + errMsg + ",异常:" + ex.Message;
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
SystemWarningMsg._lbl_Alert_PoDeliveryHandler = "出现异常:" + ex.Message;
|
Log4NetHelper.WriteErrorLog(LogType.PoDeliveryHandler, "PoDeliveryHandler 出现异常:" + ex.Message, ex);
|
}
|
Thread.Sleep(2 * 1000);//休眠2秒
|
}
|
}
|
|
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="model"></param>
|
/// <param name="Lane"></param>
|
/// <param name="flag"></param>
|
/// <param name="errMsg"></param>
|
private static void Do(ref string errMsg)
|
{
|
var PoOrderInfo = new DiyAddWmsOrderPurchaseInput();
|
PoOrderInfo.BusinessType = 1001;
|
PoOrderInfo.SupplierCode = "GYS05";
|
var newWmsOrderPurchaseDetailsInput = new WmsOrderPurchaseDetailsInput();
|
var WmsOrderPurchaseDetailsInputList = new List<WmsOrderPurchaseDetailsInput>();
|
newWmsOrderPurchaseDetailsInput.MaterialCode = "T0987";
|
newWmsOrderPurchaseDetailsInput.MaterialName = "T0987";
|
newWmsOrderPurchaseDetailsInput.Id = 571952729907269;
|
newWmsOrderPurchaseDetailsInput.Quantity = 2;
|
newWmsOrderPurchaseDetailsInput.ErpCode = "ERPT0987";
|
newWmsOrderPurchaseDetailsInput.Unit = "G";
|
newWmsOrderPurchaseDetailsInput.PoLineNumber = "1";
|
WmsOrderPurchaseDetailsInputList.Add(newWmsOrderPurchaseDetailsInput);
|
PoOrderInfo.purchaseOrderDetails = WmsOrderPurchaseDetailsInputList;
|
var inputStr = JsonConvert.SerializeObject(PoOrderInfo);
|
// var respone =await
|
//using (MyDbContext mycontext = new MyDbContext())
|
//{
|
// var query_PrintStatuEnum = (int)PrintStatuEnum.未打印;
|
// var list = mycontext.wms_record_sncode_print.Where(x => (x.IsDelete == false) && x.PrintStatus == query_PrintStatuEnum)
|
// .OrderBy(x => x.Id).ToList();
|
|
|
// wms_config_print printConfig = null;
|
// string _PrinterName = "";
|
// if (list.Count > 0)
|
// {
|
|
// }
|
// else
|
// {
|
// errMsg = $"没有可打印的内容!";
|
// return;
|
// }
|
|
// foreach (var item in list)
|
// {
|
|
|
// PrintClassifyEnum printClassifyEnum = default(PrintClassifyEnum);
|
// var isRight = GetPrintClassifyEnum(item, mycontext, ref errMsg, ref printClassifyEnum);
|
// if (!isRight)
|
// {
|
// return;
|
// }
|
|
// printConfig = mycontext.wms_config_print.Where(x => x.PrintClassify == (int)printClassifyEnum).FirstOrDefault();
|
// if (printConfig == null)
|
// {
|
// errMsg = $"没有找到{printClassifyEnum.ToString()}的打印配置!";
|
// return;
|
// }
|
// //设置打印机,注意:这里只获取第一个,以后可能要改!
|
// _PrinterName = printConfig.PrinterList.Split(',')[0];
|
// //根据配置名字查询 打印机名字
|
// var printConfigData = mycontext.SysDictData.Where(x => x.Name == _PrinterName).FirstOrDefault();
|
// if (printConfigData == null)
|
// {
|
// errMsg = $"没有找到{_PrinterName.ToString()}的打印机名字!";
|
// return;
|
// }
|
// _PrinterName = printConfigData.Value;
|
|
// Dictionary<string, object> data = new Dictionary<string, object>();
|
// if (printClassifyEnum == PrintClassifyEnum.看板卡)
|
// {
|
// data.Add("cardNo", item.KanBanCardNo ?? "");
|
// data.Add("ToAreaName", item.ToAreaName ?? "");
|
|
// data.Add("bar", item.SNCode);
|
// data.Add("material", item.MaterialCode ?? "" + "/" + item.MaterialName ?? "");
|
// data.Add("supplier", item.SupplierName ?? "");
|
// data.Add("unit", item.MaterialUnit ?? "");
|
// data.Add("qty", item.Quantity);
|
// data.Add("date", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
// }
|
// else
|
// {
|
// data.Add("bar", item.SNCode);
|
// data.Add("material", item.MaterialCode ?? "" + "/" + item.MaterialName ?? "");
|
// data.Add("supplier", item.SupplierName ?? "");
|
// data.Add("unit", item.MaterialUnit ?? "");
|
// data.Add("qty", item.Quantity);
|
// data.Add("date", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
// }
|
|
|
// //调用打印接口
|
// bool isSuccess = false;
|
// using (PrintBaseService.PrintWcfServiceClient client = new PrintBaseService.PrintWcfServiceClient())
|
// {
|
// //isSuccess = client.Print3(data, 1, @"D:\打印程序\跟踪码打印模板\跟踪码打印模板_一维码.btw", "ZDesigner ZD888-203dpi ZPL", out errMsg);
|
// //isSuccess = client.Print3(data, 1, @"D:\打印程序\跟踪码打印模板\跟踪码打印模板_二维码.btw", "ZDesigner ZD888-203dpi ZPL", out errMsg);
|
// isSuccess = client.Print3(data, item.PrintSheetNum, printConfig.PrintTemplateAddr, _PrinterName, out errMsg);
|
// }
|
// if (isSuccess)
|
// {
|
// item.PrintStatus = 1;//打印状态(0:未打印 1:已打印)
|
// item.PrintNum = (item.PrintNum) + 1;
|
|
// mycontext.SaveChanges();
|
// }
|
// else
|
// {
|
// errMsg = $"打印错误,跟踪码{item.SNCode},打印机名称{_PrinterName},错误信息:(打印服务返回)" + errMsg;
|
// Log4NetHelper.WriteErrorLog(LogType.PoDeliveryHandler, errMsg, null);
|
// return;
|
// }
|
|
// Thread.Sleep(2000);
|
// }
|
|
//}
|
}
|
|
|
//private static bool GetPrintClassifyEnum(wms_record_sncode_print item, MyDbContext mycontext, ref string errMsg, ref PrintClassifyEnum printClassifyEnum)
|
//{
|
// if (item.PrintType == (int)PrintTypeEnum.看板卡)
|
// {
|
// printClassifyEnum = PrintClassifyEnum.看板卡;
|
// }
|
// else
|
// {
|
// wms_config_sncode_rule rule = null;
|
// var ruleList = mycontext.wms_config_sncode_rule.Where(x => (x.RuleName == "ASN一维码" || x.RuleName == "ASN二维码") && x.IsDisabled == false).ToList();
|
// if (ruleList != null && ruleList.Count > 1)
|
// {
|
// errMsg = "条码生成规则配置中,ASN一维码和ASN二维码只能启用其中一个!";
|
// return false;
|
// }
|
// if (ruleList == null || ruleList.Count == 0)
|
// {
|
// errMsg = "条码生成规则配置中,ASN一维码和ASN二维码两个都没有配置启用!";
|
// return false;
|
// }
|
// rule = ruleList.First();
|
|
// printClassifyEnum = default(PrintClassifyEnum);
|
// if (rule.RuleName == "ASN一维码")
|
// {
|
// printClassifyEnum = PrintClassifyEnum.一维跟踪码;
|
// }
|
// else
|
// {
|
// printClassifyEnum = PrintClassifyEnum.二维跟踪码;
|
// }
|
// }
|
|
// return true;
|
|
//}
|
|
|
public class DiyAddWmsOrderPurchaseInput : WmsOrderPurchaseBaseInput
|
{
|
|
public string Dock { get; set; } = "101";
|
public string ErpOrderNo { get; set; }
|
public virtual string ProjectNo { get; set; }
|
public List<WmsOrderPurchaseDetailsInput> purchaseOrderDetails { get; set; }
|
|
}
|
|
/// <summary>
|
/// 采购订单基础输入参数
|
/// </summary>
|
public class WmsOrderPurchaseBaseInput
|
{
|
/// <summary>
|
/// 采购单号
|
/// </summary>
|
public virtual string PurchaseNo { get; set; }
|
|
/// <summary>
|
/// 订单类型
|
/// </summary>
|
public virtual OrderTypeEnum OrderType { get; set; }
|
|
/// <summary>
|
/// 订单类型名称
|
/// </summary>
|
public virtual string OrderTypeName { get; set; }
|
|
/// <summary>
|
/// 业务类型
|
/// </summary>
|
public virtual int BusinessType { get; set; }
|
|
/// <summary>
|
/// 业务类型名称
|
/// </summary>
|
public virtual string BusinessTypeName { get; set; }
|
|
/// <summary>
|
/// 单据来源
|
/// </summary>
|
public virtual string OrderSocure { get; set; }
|
|
/// <summary>
|
/// 订单状态
|
/// </summary>
|
public virtual OrderStatusEnum PoStatus { get; set; }
|
|
/// <summary>
|
/// 订单状态名称
|
/// </summary>
|
public virtual string PoStatusName { get; set; }
|
|
/// <summary>
|
/// 需求数量
|
/// </summary>
|
public virtual decimal? Quantity { get; set; }
|
|
/// <summary>
|
/// 已收货数量
|
/// </summary>
|
public virtual decimal? GoodsQuantity { get; set; }
|
|
/// <summary>
|
/// 供应商编号
|
/// </summary>
|
public virtual string SupplierCode { get; set; }
|
|
/// <summary>
|
/// 供应商名称
|
/// </summary>
|
public virtual string SupplierName { get; set; }
|
|
/// <summary>
|
/// 收货道口
|
/// </summary>
|
public virtual string Dock { get; set; }
|
|
/// <summary>
|
/// ERP单号
|
/// </summary>
|
public virtual string ErpOrderNo { get; set; }
|
|
/// <summary>
|
/// 项目ID
|
/// </summary>
|
public virtual long? ProjectId { get; set; }
|
|
/// <summary>
|
/// 项目号
|
/// </summary>
|
public virtual string ProjectNo { get; set; }
|
|
/// <summary>
|
/// 项目名称
|
/// </summary>
|
public virtual string ProjectName { get; set; }
|
|
/// <summary>
|
/// 备注
|
/// </summary>
|
public virtual string Remark { get; set; }
|
|
/// <summary>
|
/// ERP创建人
|
/// </summary>
|
public virtual string Erp_CreatedUserName { get; set; }
|
|
/// <summary>
|
/// ERP修改人
|
/// </summary>
|
public virtual string Erp_UpdatedUserName { get; set; }
|
|
/// <summary>
|
/// 工厂ID
|
/// </summary>
|
public virtual long FactoryId { get; set; }
|
|
/// <summary>
|
/// 工厂名称
|
/// </summary>
|
public virtual string FactoryName { get; set; }
|
|
/// <summary>
|
/// 工厂编号
|
/// </summary>
|
public virtual string FactoryCode { get; set; }
|
|
/// <summary>
|
/// 创建时间
|
/// </summary>
|
public virtual DateTime? CreateTime { get; set; }
|
|
/// <summary>
|
/// 修改时间
|
/// </summary>
|
public virtual DateTime? UpdateTime { get; set; }
|
|
/// <summary>
|
/// 创建人Id
|
/// </summary>
|
public virtual long? CreateUserId { get; set; }
|
|
/// <summary>
|
/// 创建人
|
/// </summary>
|
public virtual string CreateUserName { get; set; }
|
|
/// <summary>
|
/// 修改人Id
|
/// </summary>
|
public virtual long? UpdateUserId { get; set; }
|
|
/// <summary>
|
/// 修改人
|
/// </summary>
|
public virtual string UpdateUserName { get; set; }
|
|
/// <summary>
|
/// 软删除
|
/// </summary>
|
public virtual bool IsDelete { get; set; }
|
|
|
|
|
}
|
/// <summary>
|
/// 采购订单明细分页查询输入参数
|
/// </summary>
|
public class WmsOrderPurchaseDetailsInput : BasePageInput
|
{
|
/// <summary>
|
/// 关键字查询
|
/// </summary>
|
public string SearchKey { get; set; }
|
|
/// <summary>
|
/// PO单ID
|
/// </summary>
|
public long? PoId { get; set; }
|
public long? Id { get; set; }
|
|
/// <summary>
|
/// PO单号
|
/// </summary>
|
public string PoNo { get; set; }
|
|
/// <summary>
|
/// 行号
|
/// </summary>
|
public string PoLineNumber { get; set; }
|
|
/// <summary>
|
/// ERP单号
|
/// </summary>
|
public string ErpOrderNo { get; set; }
|
|
/// <summary>
|
/// ERP库存地
|
/// </summary>
|
public string ErpCode { get; set; }
|
|
/// <summary>
|
/// 物料编号
|
/// </summary>
|
public string MaterialCode { get; set; }
|
|
/// <summary>
|
/// 物料名称
|
/// </summary>
|
public string MaterialName { get; set; }
|
|
/// <summary>
|
/// 数量
|
/// </summary>
|
public decimal? Quantity { get; set; }
|
|
/// <summary>
|
/// 已收数量
|
/// </summary>
|
public decimal? GoodsQuantity { get; set; }
|
|
/// <summary>
|
/// 状态
|
/// </summary>
|
public OrderStatusEnum? PoDetailStatus { get; set; }
|
|
/// <summary>
|
/// 状态名称
|
/// </summary>
|
public string PoDetailStatusName { get; set; }
|
|
/// <summary>
|
/// 供应商编号
|
/// </summary>
|
public string SupplierCode { get; set; }
|
|
/// <summary>
|
/// 供应商名称
|
/// </summary>
|
public string SupplierName { get; set; }
|
|
/// <summary>
|
/// 计划开始时间范围
|
/// </summary>
|
public List<DateTime?> PlannedStartTimeRange { get; set; }
|
/// <summary>
|
/// 计划开始时间
|
/// </summary>
|
|
|
public DateTime? PlannedStartTime { get; set; }
|
|
public string ProjectNo { get; set; }
|
|
/// <summary>
|
/// 计划结束时间
|
/// </summary>
|
|
|
public DateTime? PlannedEndTime { get; set; }
|
|
/// <summary>
|
/// 计划结束时间范围
|
/// </summary>
|
public List<DateTime?> PlannedEndTimeRange { get; set; }
|
|
public string Unit { get; set; }
|
|
public string SupplierBatch { get; set; }
|
|
/// <summary>
|
/// asn单- 过滤“新建”“处理中”的PO单
|
/// </summary>
|
public bool? FilterOrderStauts { get; set; }
|
|
}
|
/// <summary>
|
/// 全局分页查询输入参数
|
/// </summary>
|
public class BasePageInput
|
{
|
/// <summary>
|
/// 当前页码
|
/// </summary>
|
public virtual int Page { get; set; } = 1;
|
|
/// <summary>
|
/// 页码容量
|
/// </summary>
|
//[Range(0, 100, ErrorMessage = "页码容量超过最大限制")]
|
public virtual int PageSize { get; set; } = 20;
|
|
/// <summary>
|
/// 排序字段
|
/// </summary>
|
public virtual string Field { get; set; }
|
|
/// <summary>
|
/// 排序方向
|
/// </summary>
|
public virtual string Order { get; set; }
|
|
/// <summary>
|
/// 降序排序
|
/// </summary>
|
public virtual string DescStr { get; set; } = "descending";
|
}
|
/// <summary>
|
/// wcs推送Po单输入参数
|
/// </summary>
|
public class WCSPutPoOrderInput
|
{
|
public string AddPoOrderData { get; set; }
|
|
}
|
}
|
|
}
|