| | |
| | | "MainDB": "DB_WIDESEA", //å½å项ç®ç主åºï¼æå¯¹åºçè¿æ¥å符串çEnabledå¿
须为true |
| | | "DBType": "SqlServer", |
| | | //è¿æ¥å符串 |
| | | "ConnectionString": "Data Source=.;Initial Catalog=WIDESEA_HF;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | "ConnectionString": "Data Source=.;Initial Catalog=WIDESEA_HanDanWCS;User ID=sa;Password=root;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //è·¨å |
| | | "Cors": { |
| | | "PolicyName": "CorsIpAccess", //çç¥åç§° |
| | |
| | | using WIDESEA_Core.Helper; |
| | | using WIDESEA_DTO.Basic; |
| | | using WIDESEA_DTO.ERP; |
| | | using WIDESEA_DTO.PLS; |
| | | using WIDESEA_IBasicRepository; |
| | | using WIDESEA_IBasicService; |
| | | using WIDESEA_Model.Models; |
| | |
| | | return WebResponseContent.Instance.OK(ex.Message); |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 忥VMIç©æä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent ReceiveVMIMaterial(VMIItemCodeInfo vmiModel) |
| | | { |
| | | try |
| | | { |
| | | ///åæ°æ ¡éª |
| | | if (vmiModel == null || vmiModel.Data == null || !vmiModel.Data.Any()) |
| | | { |
| | | return WebResponseContent.Instance.Error("æ¥å£ä¼ å
¥çç©ææ°æ®éåä¸è½ä¸ºç©º"); |
| | | } |
| | | |
| | | foreach (var itemData in vmiModel.Data) |
| | | { |
| | | var existMateriel = BaseDal.QueryFirst(x => x.MaterielCode == itemData.ItemCode); |
| | | |
| | | if (existMateriel == null) |
| | | { |
| | | Dt_MaterielInfo addEntity = new Dt_MaterielInfo() |
| | | { |
| | | MaterielCode = itemData.ItemCode, |
| | | OrgId = itemData.OrgId, |
| | | MaterielInvOrgId = itemData.SupplierCode, |
| | | PackageQty = itemData.PackageQty, |
| | | MaterielState = itemData.DeleteFlag == "0" ? EnableEnum.Enable : EnableEnum.Disable, |
| | | WarehouseId = 0, |
| | | MaterielSourceType = 0, |
| | | Creater = itemData.CreateUser, |
| | | CreateDate = itemData.CreateDate, |
| | | Modifier = itemData.UpdateUser, |
| | | ModifyDate = itemData.UpdateDate |
| | | }; |
| | | BaseDal.AddData(addEntity); |
| | | } |
| | | else |
| | | { |
| | | existMateriel.OrgId = itemData.OrgId; |
| | | existMateriel.MaterielInvOrgId = itemData.SupplierCode; |
| | | existMateriel.PackageQty = itemData.PackageQty; |
| | | existMateriel.MaterielState = itemData.DeleteFlag == "0" ? EnableEnum.Enable : EnableEnum.Disable; |
| | | |
| | | existMateriel.Modifier = itemData.UpdateUser; |
| | | existMateriel.ModifyDate = itemData.UpdateDate; |
| | | |
| | | BaseDal.UpdateData(existMateriel); |
| | | } |
| | | } |
| | | // å¤ç宿 |
| | | return WebResponseContent.Instance.OK("VMIç©ææ°æ®åæ¥æå"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // å¼å¸¸è¿å |
| | | return WebResponseContent.Instance.Error($"VMIç©æåæ¥å¤±è´¥ï¼{ex.Message}"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | /// åè°WCSä»»å¡å®æ |
| | | /// </summary> |
| | | [Description("åè°WCSä»»å¡å®æ")] |
| | | FeedBackWCSTaskCompleted |
| | | FeedBackWCSTaskCompleted, |
| | | |
| | | /// <summary> |
| | | /// PLSæ¥å£è°ç¨ |
| | | /// </summary> |
| | | [Description("PLSæ¥å£è°ç¨")] |
| | | InvokePLSApi |
| | | } |
| | | } |
| | |
| | | /// <summary> |
| | | /// ç¦ç¨ |
| | | /// </summary> |
| | | [Description("ç¦ç¨")] |
| | | [Description("ææ")] |
| | | Disable = 0, |
| | | |
| | | /// <summary> |
| | | /// å¯ç¨ |
| | | /// </summary> |
| | | [Description("å¯ç¨")] |
| | | [Description("æ æ")] |
| | | Enable = 1, |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_Common.PLSEnum |
| | | { |
| | | public enum ReturnToPlsStatusEnum |
| | | { |
| | | /// <summary> |
| | | /// æªæ¨é |
| | | /// </summary> |
| | | [Description("æªæ¨é")] |
| | | æªæ¨é = 0, |
| | | |
| | | /// <summary> |
| | | /// æ¨éæå |
| | | /// </summary> |
| | | [Description("æ¨éæå")] |
| | | æ¨éæå = 1, |
| | | |
| | | /// <summary> |
| | | /// æ¨é失败 |
| | | /// </summary> |
| | | [Description("æ¨é失败")] |
| | | æ¨é失败 = 2, |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_Common.PLSEnum |
| | | { |
| | | public enum VMIStatusEnum |
| | | { |
| | | /// <summary> |
| | | /// å·²ç»å® |
| | | /// </summary> |
| | | [Description("å·²ç»å®")] |
| | | å·²ç»å® = 1, |
| | | |
| | | /// <summary> |
| | | /// å·²å
¥åº |
| | | /// </summary> |
| | | [Description("å·²å
¥åº")] |
| | | å·²å
¥åº = 2, |
| | | |
| | | /// <summary> |
| | | /// å·²å»ç» |
| | | /// </summary> |
| | | [Description("å·²å»ç»")] |
| | | å·²å»ç» = 3, |
| | | |
| | | /// <summary> |
| | | /// å·²åºåº |
| | | /// </summary> |
| | | [Description("å·²åºåº")] |
| | | å·²åºåº = 4, |
| | | |
| | | /// <summary> |
| | | /// å·²éè´§ |
| | | /// </summary> |
| | | [Description("å·²éè´§")] |
| | | å·²éè´§ = 5, |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_DTO.PLS |
| | | { |
| | | /// <summary> |
| | | /// MOç¥¨åæ¥ |
| | | /// </summary> |
| | | public class MoInboundOrderDTO |
| | | { |
| | | /// <summary> |
| | | /// æ¶é´æ³ |
| | | /// </summary> |
| | | public string TimeStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¾å |
| | | /// </summary> |
| | | public string Sign { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ°æ®éå |
| | | /// </summary> |
| | | public List<PLS_MoStatusItemDto> Data { get; set; } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// MOç¥¨åæ¡æ°æ® |
| | | /// </summary> |
| | | public class PLS_MoStatusItemDto |
| | | { |
| | | /// <summary> |
| | | /// ç»ç»ç¼ç |
| | | /// </summary> |
| | | public string OrgId { get; set; } |
| | | /// <summary> |
| | | /// MOç¥¨å· |
| | | /// </summary> |
| | | public string LabelNo { get; set; } |
| | | /// <summary> |
| | | /// VMIç©æµç¶æ |
| | | /// </summary> |
| | | public string Status { get; set; } |
| | | /// <summary> |
| | | /// åæ®å· |
| | | /// </summary> |
| | | public string BarcodeNumber { get; set; } |
| | | /// <summary> |
| | | /// 便¹ç¼ç |
| | | /// </summary> |
| | | public string SupplierCode { get; set; } |
| | | /// <summary> |
| | | /// ç©æç¼ç |
| | | /// </summary> |
| | | public string ItemCode { get; set; } |
| | | /// <summary> |
| | | /// æ°é |
| | | /// </summary> |
| | | public decimal Qty { get; set; } |
| | | /// <summary> |
| | | /// ä½ä¸å· |
| | | /// </summary> |
| | | public string WorkOrderName { get; set; } |
| | | /// <summary> |
| | | /// æ¯å¦ææ |
| | | /// </summary> |
| | | public long DeleteFlag { get; set; } |
| | | /// <summary> |
| | | /// å建人 |
| | | /// </summary> |
| | | public string CreateUser { get; set; } |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public DateTime CreateDate { get; set; } |
| | | /// <summary> |
| | | /// ä¿®æ¹äºº |
| | | /// </summary> |
| | | public string UpdateUser { get; set; } |
| | | /// <summary> |
| | | /// ä¿®æ¹æ¶é´ |
| | | /// </summary> |
| | | public DateTime UpdateDate { get; set; } |
| | | } |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_DTO.PLS |
| | | { |
| | | /// <summary> |
| | | /// PLSéç¨å®ä½å¤´ |
| | | /// </summary> |
| | | public class PLSBaseModel<T> |
| | | { |
| | | /// <summary> |
| | | /// æ¶é´æ³ |
| | | /// </summary> |
| | | public long TimeStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¾å |
| | | /// </summary> |
| | | public string Sign { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ°æ®å¯¹è±¡ |
| | | /// </summary> |
| | | public T Data { get; set; } |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_DTO.PLS |
| | | { |
| | | /// <summary> |
| | | /// PLSæ¥å£ååºå®ä½ |
| | | /// </summary> |
| | | public class PLSRequestContent |
| | | { |
| | | |
| | | /// <summary> |
| | | /// ç¶æç 0-æåï¼1-失败 |
| | | /// </summary> |
| | | public int Code { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ååºä¿¡æ¯ |
| | | /// </summary> |
| | | public string Msg { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è¿åæ°æ®éåï¼æ¯æ¡MO票çå¤çç»æï¼ |
| | | /// </summary> |
| | | public List<PlsMoStatusResult> Data { get; set; } |
| | | |
| | | } |
| | | /// <summary> |
| | | /// åæ¡ MO ç¥¨ç¶ææ¨éç»æ |
| | | /// </summary> |
| | | public class PlsMoStatusResult |
| | | { |
| | | /// <summary> |
| | | /// MOç¥¨å· |
| | | /// </summary> |
| | | public string LabelNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¨éæ¯å¦æå 0-æå 1-失败 |
| | | /// </summary> |
| | | public int Success { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ååºä¿¡æ¯/失败åå |
| | | /// </summary> |
| | | public string Msg { get; set; } |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.Attributes; |
| | | |
| | | namespace WIDESEA_DTO |
| | | { |
| | | /// <summary> |
| | | /// PLSååºå®ä½ |
| | | /// </summary> |
| | | [ModelValidate] |
| | | public class ApiResponseContent |
| | | { |
| | | /// <summary> |
| | | /// ç¶æç 0-æå 1-失败 |
| | | /// </summary> |
| | | public int Code { get; set; } = 0; |
| | | |
| | | /// <summary> |
| | | /// ååºä¿¡æ¯ |
| | | /// </summary> |
| | | public string Msg { get; set; } = "æå"; |
| | | |
| | | /// <summary> |
| | | /// è¿åæ°æ® |
| | | /// </summary> |
| | | public object Data { get; set; } = null; |
| | | |
| | | /// <summary> |
| | | /// åä¾å®ä¾ |
| | | /// </summary> |
| | | public static ApiResponseContent Instance |
| | | { |
| | | get { return new ApiResponseContent(); } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æåè¿å |
| | | /// </summary> |
| | | public ApiResponseContent OK(string message = null) |
| | | { |
| | | Code = 0; |
| | | Msg = message ?? "æå"; |
| | | Data = null??"æ "; |
| | | return this; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 失败è¿å |
| | | /// </summary> |
| | | public ApiResponseContent Error(string message = null) |
| | | { |
| | | Code = 1; |
| | | Msg = message ?? "失败"; |
| | | Data = null ?? "æ "; |
| | | return this; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 带æç»æ°æ®è¿åï¼MO票å·ä¸ç¨ï¼ |
| | | /// </summary> |
| | | public ApiResponseContent OK(List<LabelNoData> dataList, string message = null) |
| | | { |
| | | Code = 0; |
| | | Msg = message ?? "æå"; |
| | | Data = dataList; |
| | | return this; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// MO票å·è¿åæç» |
| | | /// </summary> |
| | | public class LabelNoData |
| | | { |
| | | /// <summary> |
| | | /// MOç¥¨å· |
| | | /// </summary> |
| | | public string LabelNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¨éæ¯å¦æå 0-æå 1-失败 |
| | | /// </summary> |
| | | public int Success { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ååºä¿¡æ¯ |
| | | /// </summary> |
| | | public object Msg { get; set; } |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_DTO.PLS |
| | | { |
| | | /// <summary> |
| | | /// MOç¥¨ç¶æä¸æ¥å®ä½ |
| | | /// </summary> |
| | | public class ReturnMoInboundStatuModel |
| | | { |
| | | /// <summary> |
| | | /// ç»ç»ç¼ç |
| | | /// </summary> |
| | | public string OrgId { get; set; } |
| | | /// <summary> |
| | | /// MOç¥¨å· |
| | | /// </summary> |
| | | public string LabelNo { get; set; } |
| | | /// <summary> |
| | | /// VMIç©æµç¶æ |
| | | /// </summary> |
| | | public string Status { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®å· |
| | | /// </summary> |
| | | public string BarcodeNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建人 |
| | | /// </summary> |
| | | public string CreateUser { get; set; } |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public DateTime CreateDate { get; set; } |
| | | /// <summary> |
| | | /// ä¿®æ¹äºº |
| | | /// </summary> |
| | | public string UpdateUser { get; set; } |
| | | /// <summary> |
| | | /// ä¿®æ¹æ¶é´ |
| | | /// </summary> |
| | | public DateTime UpdateDate { get; set; } |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_DTO.PLS |
| | | { |
| | | /// <summary> |
| | | /// VMIç©æåæ¥ |
| | | /// </summary> |
| | | public class VMIItemCodeInfo |
| | | { |
| | | /// <summary> |
| | | /// é´æè´¦å· |
| | | /// </summary> |
| | | public string AppId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¶é´æ³ |
| | | /// </summary> |
| | | public long TimeStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¾å |
| | | /// </summary> |
| | | public string Sign { get; set; } |
| | | |
| | | /// <summary> |
| | | /// VMIç©ææ°æ®éå |
| | | /// </summary> |
| | | public List<VMIItemCodeData> Data { get; set; } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// VMIç©ææ°æ®éå |
| | | /// </summary> |
| | | public class VMIItemCodeData |
| | | { |
| | | /// <summary> |
| | | /// éæ±ç»ç»ç¼ç |
| | | /// </summary> |
| | | public long OrgId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 便¹ç¼ç |
| | | /// </summary> |
| | | public string SupplierCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼ç |
| | | /// </summary> |
| | | public string ItemCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
è£
æ° |
| | | /// </summary> |
| | | public decimal PackageQty { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æææ è¯ |
| | | /// </summary> |
| | | public string DeleteFlag { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建人 |
| | | /// </summary> |
| | | public string CreateUser { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public DateTime CreateDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹äºº |
| | | /// </summary> |
| | | public string UpdateUser { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹æ¶é´ |
| | | /// </summary> |
| | | public DateTime UpdateDate { get; set; } |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_DTO.PLS; |
| | | using WIDESEA_External.Model; |
| | | |
| | | namespace WIDESEA_External.IPLSService |
| | | { |
| | | public interface IInvokePLSService:IDependency |
| | | { |
| | | |
| | | /// <summary> |
| | | /// MOç¥¨ä¸æ¥PLSæ¥å£è°ç¨ |
| | | /// </summary> |
| | | /// <param name="receiveModel"></param> |
| | | /// <returns></returns> |
| | | string InvokeMoInboundStatuApi(ReturnMoInboundStatuModel moInboundStatuModel); |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using Newtonsoft.Json; |
| | | using Newtonsoft.Json.Serialization; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common.APIEnum; |
| | | using WIDESEA_Core.Helper; |
| | | using WIDESEA_DTO.PLS; |
| | | using WIDESEA_External.IPLSService; |
| | | using WIDESEA_External.Model; |
| | | using WIDESEA_IBasicRepository; |
| | | using WIDESEA_Model.Models; |
| | | |
| | | namespace WIDESEA_External.PLSService |
| | | { |
| | | public class InvokePLSService : IInvokePLSService |
| | | { |
| | | private readonly IApiInfoRepository _apiInfoRepository; |
| | | |
| | | public InvokePLSService(IApiInfoRepository apiInfoRepository) |
| | | { |
| | | _apiInfoRepository = apiInfoRepository; |
| | | } |
| | | JsonSerializerSettings settings = new JsonSerializerSettings |
| | | { |
| | | ContractResolver = new CamelCasePropertyNamesContractResolver() |
| | | }; |
| | | public string InvokeMoInboundStatuApi(ReturnMoInboundStatuModel moInboundStatuModel) |
| | | { |
| | | Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokePLSApi.ToString()); |
| | | PLSBaseModel<ReturnMoInboundStatuModel> model = new PLSBaseModel<ReturnMoInboundStatuModel>() |
| | | { |
| | | Data = moInboundStatuModel, |
| | | TimeStamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), |
| | | Sign = "RWMS001" |
| | | }; |
| | | string request = JsonConvert.SerializeObject(model, settings); |
| | | string response = HttpHelper.Post(apiInfo.ApiAddress, request); |
| | | return response; |
| | | } |
| | | } |
| | | } |
| | |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_DTO.Basic; |
| | | using WIDESEA_DTO.ERP; |
| | | using WIDESEA_DTO.PLS; |
| | | using WIDESEA_IBasicRepository; |
| | | using WIDESEA_Model.Models; |
| | | |
| | |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | WebResponseContent ReceiveMaterial(MaterielInfoDTO model); |
| | | |
| | | |
| | | /// <summary> |
| | | /// 忥VMIç©æä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | WebResponseContent ReceiveVMIMaterial(VMIItemCodeInfo vmiModel); |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Model.Models; |
| | | |
| | | namespace WIDESEA_IInboundRepository |
| | | { |
| | | public interface IMoInboundOrderRepository : IRepository<Dt_MoInboundOrder> |
| | | { |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_IInboundRepository; |
| | | using WIDESEA_Model.Models; |
| | | |
| | | namespace WIDESEA_IInboundService |
| | | { |
| | | public interface IMoInboundOrderService : IService<Dt_MoInboundOrder> |
| | | { |
| | | IMoInboundOrderRepository Repository { get; } |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_IInboundRepository; |
| | | using WIDESEA_Model.Models; |
| | | |
| | | namespace WIDESEA_InboundRepository |
| | | { |
| | | public class MoInboundOrderRepository : RepositoryBase<Dt_MoInboundOrder>, IMoInboundOrderRepository |
| | | { |
| | | public MoInboundOrderRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage) |
| | | { |
| | | } |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using SqlSugar.Extensions; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common.PLSEnum; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_DTO; |
| | | using WIDESEA_DTO.PLS; |
| | | using WIDESEA_IBasicRepository; |
| | | using WIDESEA_IBasicService; |
| | | using WIDESEA_IInboundRepository; |
| | | using WIDESEA_IInboundService; |
| | | using WIDESEA_Model.Models; |
| | | |
| | | namespace WIDESEA_InboundService |
| | | { |
| | | public class MoInboundOrderService : ServiceBase<Dt_MoInboundOrder, IMoInboundOrderRepository>, IMoInboundOrderService |
| | | { |
| | | |
| | | public IMoInboundOrderRepository Repository => BaseDal; |
| | | |
| | | public MoInboundOrderService(IMoInboundOrderRepository BaseDal) : base(BaseDal) |
| | | { |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// PLS忥MOç¥¨ä¿¡æ¯ |
| | | /// </summary> |
| | | public ApiResponseContent ReceiveMoStatus(MoInboundOrderDTO model) |
| | | { |
| | | // 1. åºç¡åæ°æ ¡éª |
| | | if (model == null || model.Data == null || !model.Data.Any()) |
| | | { |
| | | return ApiResponseContent.Instance.Error("MOç¥¨ä¼ å
¥åæ°ä¸ºç©º"); |
| | | } |
| | | |
| | | var dataList = new List<LabelNoData>(); |
| | | int successCount = 0; |
| | | int totalCount = model.Data.Count; |
| | | |
| | | try |
| | | { |
| | | foreach (var item in model.Data) |
| | | { |
| | | var itemResult = new LabelNoData |
| | | { |
| | | LabelNo = item.LabelNo |
| | | }; |
| | | try |
| | | { |
| | | // åæ°æ ¡éª |
| | | if (string.IsNullOrWhiteSpace(item.LabelNo)) |
| | | { |
| | | throw new Exception("æ ç¾å· LabelNo ä¸è½ä¸ºç©º"); |
| | | } |
| | | |
| | | // æ¥è¯¢MO票æ¯å¦å·²åå¨ |
| | | var existMo = BaseDal.QueryFirst(x => x.LabelNo == item.LabelNo); |
| | | |
| | | if (existMo == null) |
| | | { |
| | | var addEntity = new Dt_MoInboundOrder() |
| | | { |
| | | OrgId = item.OrgId, |
| | | LabelNo = item.LabelNo, |
| | | Status = item.Status, |
| | | BarcodeNumber = item.BarcodeNumber, |
| | | SupplierCode = item.SupplierCode, |
| | | ItemCode = item.ItemCode, |
| | | Qty = item.Qty, |
| | | WorkOrderName = item.WorkOrderName, |
| | | DeleteFlag = item.DeleteFlag, |
| | | ReturnToPlsStatus = ReturnToPlsStatusEnum.æªæ¨é.ObjToInt(), |
| | | CreateDate = item.CreateDate, |
| | | Creater = item.CreateUser, |
| | | Modifier = item.UpdateUser, |
| | | ModifyDate = item.UpdateDate |
| | | }; |
| | | BaseDal.AddData(addEntity); |
| | | } |
| | | else |
| | | { |
| | | existMo.OrgId = item.OrgId; |
| | | existMo.Status = item.Status; |
| | | existMo.BarcodeNumber = item.BarcodeNumber; |
| | | existMo.SupplierCode = item.SupplierCode; |
| | | existMo.ItemCode = item.ItemCode; |
| | | existMo.Qty = item.Qty; |
| | | existMo.WorkOrderName = item.WorkOrderName; |
| | | existMo.DeleteFlag = item.DeleteFlag; |
| | | existMo.Modifier = item.UpdateUser; |
| | | existMo.ModifyDate = item.UpdateDate; |
| | | |
| | | BaseDal.UpdateData(existMo); |
| | | } |
| | | |
| | | // åæ¡å¤çæå |
| | | itemResult.Success = 0; |
| | | successCount++; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // åæ¡å¤ç失败 |
| | | itemResult.Success = 1; |
| | | itemResult.Msg = ex.Message; |
| | | } |
| | | finally |
| | | { |
| | | // æ¯æ¡æ 论æå/失败ï¼é½å å
¥è¿åå表 |
| | | dataList.Add(itemResult); |
| | | } |
| | | } |
| | | |
| | | // å
¨é¨å¤ç宿ï¼è¿åç»æ |
| | | return ApiResponseContent.Instance.OK( |
| | | dataList, |
| | | $"å¤ç宿ï¼å
±{totalCount}æ¡ï¼æå{successCount}æ¡ï¼å¤±è´¥{totalCount - successCount}æ¡" |
| | | ); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return ApiResponseContent.Instance.Error($"MOç¥¨åæ¥æ´ä½å¼å¸¸ï¼{ex.Message}"); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | |
| | | /// <summary> |
| | | /// ä»åºç¼å· |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "ä»åºç¼å·")] |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "ä»åºç¼å·")] |
| | | public int WarehouseId { get; set; } |
| | | |
| | | /// <summary> |
| | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, Length = 200, ColumnDescription = "ç©æåç§°")] |
| | | [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "ç©æåç§°")] |
| | | public string MaterielName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æè§æ ¼ |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, Length = 200, ColumnDescription = "ç©æè§æ ¼")] |
| | | [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "ç©æè§æ ¼")] |
| | | public string MaterielSpec { get; set; } |
| | | |
| | | /// <summary> |
| | |
| | | /// <summary> |
| | | /// åºæ¬åä½(buyUnitId/StockUnitId) |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "åºæ¬åä½(buyUnitId/StockUnitId)")] |
| | | [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "åºæ¬åä½(buyUnitId/StockUnitId)")] |
| | | public string MaterielUnit { get; set; } |
| | | |
| | | /// <summary> |
| | |
| | | public string MaterielModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¶æ(0:ç¦ç¨ã1:å¯ç¨) |
| | | ///æææ è¯(0:ææã1:æ æ) |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "ç©æç¶æ(0:ç¦ç¨ã1:å¯ç¨)")] |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "æææ è¯(0:ææã1:æ æ)")] |
| | | public EnableEnum MaterielState { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåç»ç»(é»è®¤:æ·®å®ç¹åäºå) |
| | | /// 便¹ç¼ç |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "åºåç»ç»")] |
| | | [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "便¹ç¼ç ")] |
| | | public string MaterielInvOrgId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦éè¦è´¨æ£ |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "æ¯å¦éè¦è´¨æ£")] |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "æ¯å¦éè¦è´¨æ£")] |
| | | public WhetherEnum IsCheck { get; set; } |
| | | |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "夿³¨")] |
| | | public string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éæ±ç»ç»ç¼ç |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "éæ±ç»ç»ç¼ç ")] |
| | | public long OrgId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
è£
æ° |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "å
è£
æ°")] |
| | | public decimal PackageQty { get; set; } |
| | | |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common.CommonEnum; |
| | | using WIDESEA_Core.DB.Models; |
| | | |
| | | namespace WIDESEA_Model.Models |
| | | { |
| | | /// <summary> |
| | | /// MO票å
¥åºåæ®è¡¨ |
| | | /// </summary> |
| | | [SugarTable(nameof(Dt_MoInboundOrder), "MO票å
¥åºåæ®è¡¨")] |
| | | public class Dt_MoInboundOrder:BaseEntity |
| | | { |
| | | /// <summary> |
| | | /// ä¸»é® |
| | | /// </summary> |
| | | [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "主é®")] |
| | | public int Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "ç©æç¼å·")] |
| | | public string ItemCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// MO票 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "MO票")] |
| | | public string LabelNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®å· |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, Length = 200, ColumnDescription = "åæ®å·")] |
| | | public string BarcodeNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// VMIç©æµç¶æ(å·²å建ï¼å·²å¤è´§ï¼å·²åè¿ï¼å·²åæ¶) |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, Length = 10, ColumnDescription = "VMIç©æµç¶æ(å·²å建ï¼å·²å¤è´§ï¼å·²åè¿ï¼å·²åæ¶)")] |
| | | public string Status { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | ///æææ è¯(0:ææã1:æ æ) |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "æææ è¯(0:ææã1:æ æ)")] |
| | | public long DeleteFlag { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 便¹ç¼ç |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "便¹ç¼ç ")] |
| | | public string SupplierCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éæ±ç»ç»ç¼ç |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "éæ±ç»ç»ç¼ç ")] |
| | | public string OrgId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ°é |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "æ°é")] |
| | | public decimal Qty { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// ä½ä¸å· |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "ä½ä¸å·")] |
| | | public string WorkOrderName { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ¨éç¶æ |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "æ¨éç¶æ")] |
| | | public int ReturnToPlsStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "夿³¨")] |
| | | public string Remark { get; set; } |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | |
| | | <ItemGroup> |
| | | <Folder Include="Models\Check\" /> |
| | | <Folder Include="Models\Inbound\" /> |
| | | <Folder Include="Models\Outbound\" /> |
| | | </ItemGroup> |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using Microsoft.AspNetCore.Authorization; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using WIDESEA_Core.Attributes; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_DTO.ERP; |
| | | using WIDESEA_DTO; |
| | | using WIDESEA_External.ERPService; |
| | | using WIDESEA_IBasicService; |
| | | using WIDESEA_DTO.PLS; |
| | | using WIDESEA_External.Model; |
| | | using WIDESEA_External.IPLSService; |
| | | |
| | | |
| | | namespace WIDESEA_WMSServer.Controllers.PLS |
| | | { |
| | | [Route("api/Pls")] |
| | | [ApiController] |
| | | public class PlsController:ControllerBase |
| | | { |
| | | private readonly IBasicService _basicService; |
| | | private readonly IInvokePLSService _invokePLSService; |
| | | |
| | | public PlsController(IBasicService basicService,IInvokePLSService invokePLSService) |
| | | { |
| | | _basicService = basicService; |
| | | _invokePLSService = invokePLSService; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥æ¶PLS忥VMIç©æä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("ReceiveVMIMaterial"), AllowAnonymous, MethodParamsValidate] |
| | | public ApiResponseContent ReceiveVMIMaterial([FromBody] VMIItemCodeInfo vmiModel) |
| | | { |
| | | WebResponseContent content = _basicService.MaterielInfoService.ReceiveVMIMaterial(vmiModel); |
| | | if (content.Status) { |
| | | return ApiResponseContent.Instance.OK(); |
| | | } |
| | | else { |
| | | return ApiResponseContent.Instance.Error(); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// MOç¥¨ç¶æä¸æ¥PLS |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("InvokeMoInboundStatuApi"), AllowAnonymous] |
| | | public string InvokeMoInboundStatuApi([FromBody] ReturnMoInboundStatuModel moInboundStatuModel) |
| | | { |
| | | return _invokePLSService.InvokeMoInboundStatuApi(moInboundStatuModel); |
| | | } |
| | | } |
| | | } |
| | |
| | | //è¿æ¥å符串 |
| | | //"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=", |
| | | //"ConnectionString": "Data Source=.;Initial Catalog=WIDESEAWMS_HUAIAN;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | "ConnectionString": "Data Source=.;Initial Catalog=WIDESEA_WMSLLD;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | "ConnectionString": "Data Source=.;Initial Catalog=WIDESEA_HanDanWMS;User ID=sa;Password=root;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //"ConnectionString": "Data Source=10.30.4.92;Initial Catalog=WMS_TC;User ID=sa;Password=duo123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //æ§WMSæ°æ®åºè¿æ¥ |
| | | //"TeConnectionString": "Data Source=10.30.4.92;Initial Catalog=TeChuang;User ID=sa;Password=duo123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | |
| | | "ExpMinutes": 120, |
| | | "QuartzJobAutoStart": true, |
| | | "PDAVersion": "4", |
| | | "WebSocketPort": 9296 |
| | | "WebSocketPort": "9296ï¼", |
| | | "DBSeedEnable": true |
| | | |
| | | } |