已删除5个文件
已修改20个文件
已添加16个文件
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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_IBasicRepository |
| | | { |
| | | /// <summary> |
| | | /// æ¥å£ä¿¡æ¯ä»å¨å®ç°å± |
| | | /// </summary> |
| | | public class ApiInfoRepository : RepositoryBase<Dt_ApiInfo>, IApiInfoRepository |
| | | { |
| | | public ApiInfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage) |
| | | { |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_BasicRepository; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_DTO.Basic; |
| | | using WIDESEA_DTO.ERP; |
| | | using WIDESEA_IBasicRepository; |
| | | using WIDESEA_IBasicService; |
| | | using WIDESEA_Model.Models; |
| | | |
| | | namespace WIDESEA_BasicService |
| | | { |
| | | public class ApiInfoService : ServiceBase<Dt_ApiInfo, IApiInfoRepository>, IApiInfoService |
| | | { |
| | | public ApiInfoService(IApiInfoRepository BaseDal) : base(BaseDal) |
| | | { |
| | | } |
| | | |
| | | public IApiInfoRepository Repository => BaseDal; |
| | | } |
| | | } |
| | |
| | | |
| | | namespace WIDESEA_Common.APIEnum |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public enum APIEnum |
| | | { |
| | | /// <summary> |
| | | /// AGVåé任塿¥å£ |
| | | /// </summary> |
| | | [Description("AGVåé任塿¥å£")] |
| | | AgvSendTask, |
| | | /// <summary> |
| | | /// AGVå®å
¨ä¿¡å·åå¤ |
| | | /// </summary> |
| | | [Description("AGVå®å
¨ä¿¡å·åå¤")] |
| | | AgvSecureReply |
| | | AgvSecureReply, |
| | | /// <summary> |
| | | /// ERPæ¶è´§æ¥å£è°ç¨ |
| | | /// </summary> |
| | | [Description("ERPæ¶è´§æ¥å£è°ç¨")] |
| | | InvokeMatReceiveApi, |
| | | /// <summary> |
| | | /// ERPç©æIQCæ£éªæ¥å£è°ç¨ |
| | | /// </summary> |
| | | [Description("ERPç©æIQCæ£éªæ¥å£è°ç¨")] |
| | | InvokeCheckOrderApi, |
| | | /// <summary> |
| | | /// ERPç©æå
¥åºæ¥å£è°ç¨ |
| | | /// </summary> |
| | | [Description("ERPç©æå
¥åºæ¥å£è°ç¨")] |
| | | InvokeInboundOrderApi, |
| | | /// <summary> |
| | | /// ERPç©æåºåºæ¥å£è°ç¨ |
| | | /// </summary> |
| | | [Description("ERPç©æåºåºæ¥å£è°ç¨")] |
| | | InvokeOutboundOrderApi |
| | | } |
| | | } |
| | |
| | | |
| | | [Description("ç§»åºéå®")] |
| | | ç§»åºéå® = 9, |
| | | |
| | | [Description("å
¥åºå®ææªå»ºåºåºå")] |
| | | å
¥åºå®ææªå»ºåºåºå = 10 |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_Common.TaskEnum |
| | | { |
| | | /// <summary> |
| | | /// ä»»å¡ç¶æ |
| | | /// </summary> |
| | | public enum TaskStatusEnum |
| | | { |
| | | /// <summary> |
| | | /// æ°å»ºä»»å¡ |
| | | /// </summary> |
| | | [Description("æ°å»º")] |
| | | New = 100, |
| | | /// <summary> |
| | | /// å åæºå¾
æ§è¡ |
| | | /// </summary> |
| | | [Description("å åæºå¾
æ§è¡")] |
| | | SC_Execute= 200, |
| | | /// <summary> |
| | | /// å åæºæ§è¡ä¸ |
| | | /// </summary> |
| | | [Description("å åæºæ§è¡ä¸")] |
| | | SC_Executing = 210, |
| | | /// <summary> |
| | | /// å åæºå®æ |
| | | /// </summary> |
| | | [Description("å åæºå®æ")] |
| | | SC_Finish = 220, |
| | | /// <summary> |
| | | /// ä»»å¡å®æ |
| | | /// </summary> |
| | | [Description("ä»»å¡å®æ")] |
| | | Finish = 900, |
| | | /// <summary> |
| | | /// ä»»å¡æèµ· |
| | | /// </summary> |
| | | [Description("ä»»å¡æèµ·")] |
| | | Pending = 970, |
| | | /// <summary> |
| | | /// ä»»å¡åæ¶ |
| | | /// </summary> |
| | | [Description("ä»»å¡åæ¶")] |
| | | Cancel = 980, |
| | | /// <summary> |
| | | /// ä»»å¡å¼å¸¸ |
| | | /// </summary> |
| | | [Description("ä»»å¡å¼å¸¸")] |
| | | Exception = 990, |
| | | } |
| | | } |
| | |
| | | |
| | | namespace WIDESEA_Common.TaskEnum |
| | | { |
| | | public enum TaskInboundTypeEnum |
| | | { |
| | | /// <summary> |
| | | /// å
¥åº |
| | | /// </summary> |
| | | [Description("å
¥åº")] |
| | | Inbound = 200, |
| | | /// <summary> |
| | | /// çç¹å
¥åº |
| | | /// </summary> |
| | | [Description("çç¹å
¥åº")] |
| | | InInventory = 201, |
| | | /// <summary> |
| | | /// 忣å
¥åº |
| | | /// </summary> |
| | | [Description("忣å
¥åº")] |
| | | InPick = 202, |
| | | /// <summary> |
| | | /// è´¨æ£å
¥åº |
| | | /// </summary> |
| | | [Description("è´¨æ£å
¥åº")] |
| | | InQuality = 203, |
| | | /// <summary> |
| | | /// æµè¯æ¶å
¥åº |
| | | /// </summary> |
| | | [Description("æµè¯æ¶å
¥åº")] |
| | | TestInbound = 204, |
| | | } |
| | | |
| | | public enum TaskOutboundTypeEnum |
| | | { |
| | | /// <summary> |
| | | /// åºåº |
| | | /// </summary> |
| | | [Description("åºåº")] |
| | | Outbound = 100, |
| | | /// <summary> |
| | | /// çç¹åºåº |
| | | /// </summary> |
| | | [Description("çç¹åºåº")] |
| | | OutInventory = 101, |
| | | /// <summary> |
| | | /// 忣åºåº |
| | | /// </summary> |
| | | [Description("忣åºåº")] |
| | | OutPick = 102, |
| | | /// <summary> |
| | | /// è´¨æ£åºåº |
| | | /// </summary> |
| | | [Description("è´¨æ£åºåº")] |
| | | OutQuality = 103, |
| | | /// <summary> |
| | | /// æµè¯æ¶åºåº |
| | | /// </summary> |
| | | [Description("æµè¯æ¶åºåº")] |
| | | OutTestStand = 104, |
| | | } |
| | | |
| | | public enum TaskRelocationTypeEnum |
| | | public enum TaskTypeEnum |
| | | { |
| | | /// <summary> |
| | | /// åºå
ç§»åº |
| | |
| | | /// åºå¤ç§»åº |
| | | /// </summary> |
| | | [Description("åºå¤ç§»åº")] |
| | | RelocationIn = 301 |
| | | } |
| | | |
| | | public enum TaskOtherTypeEnum |
| | | { |
| | | |
| | | RelocationIn = 301, |
| | | /// <summary> |
| | | /// å
¥åº |
| | | /// </summary> |
| | | [Description("å
¥åº")] |
| | | Inbound = 1050, |
| | | /// <summary> |
| | | /// çç¹å
¥åº |
| | | /// </summary> |
| | | [Description("çç¹å
¥åº")] |
| | | InInventory = 1100, |
| | | /// <summary> |
| | | /// 忣å
¥åº |
| | | /// </summary> |
| | | [Description("忣å
¥åº")] |
| | | InPick = 1150, |
| | | /// <summary> |
| | | /// è´¨æ£å
¥åº |
| | | /// </summary> |
| | | [Description("è´¨æ£å
¥åº")] |
| | | InQuality = 1200, |
| | | /// <summary> |
| | | /// æµè¯æ¶å
¥åº |
| | | /// </summary> |
| | | [Description("æµè¯æ¶å
¥åº")] |
| | | TestInbound = 2000, |
| | | /// <summary> |
| | | /// 油墨ä»å
¥åº |
| | | /// </summary> |
| | | [Description("油墨ä»å
¥åº")] |
| | | PrintingInbound = 2050, |
| | | /// <summary> |
| | | /// è¾
æä»å
¥åº |
| | | /// </summary> |
| | | [Description("è¾
æä»å
¥åº")] |
| | | AccessoryInbound = 2100, |
| | | /// <summary> |
| | | /// æ¿æä»å
¥åº |
| | | /// </summary> |
| | | [Description("æ¿æä»å
¥åº")] |
| | | SheetInbound = 2150, |
| | | /// <summary> |
| | | /// å¹²èä»å
¥åº |
| | | /// </summary> |
| | | [Description("å¹²èä»å
¥åº")] |
| | | DryfilmInbound = 2200, |
| | | /// <summary> |
| | | /// PPä»å
¥åº |
| | | /// </summary> |
| | | [Description("PPä»å
¥åº")] |
| | | PPInbound = 2250, |
| | | /// <summary> |
| | | /// æåä»å
¥åº |
| | | /// </summary> |
| | | [Description("æåä»å
¥åº")] |
| | | ProductInbound = 2300, |
| | | /// <summary> |
| | | /// é»çä»å
¥åº |
| | | /// </summary> |
| | | [Description("é»çä»å
¥åº")] |
| | | SolderInbound = 2350, |
| | | /// <summary> |
| | | /// åºåº |
| | | /// </summary> |
| | | [Description("åºåº")] |
| | | Outbound = 3000, |
| | | /// <summary> |
| | | /// çç¹åºåº |
| | | /// </summary> |
| | | [Description("çç¹åºåº")] |
| | | OutInventory = 3050, |
| | | /// <summary> |
| | | /// 忣åºåº |
| | | /// </summary> |
| | | [Description("忣åºåº")] |
| | | OutPick = 3100, |
| | | /// <summary> |
| | | /// è´¨æ£åºåº |
| | | /// </summary> |
| | | [Description("è´¨æ£åºåº")] |
| | | OutQuality = 3150, |
| | | /// <summary> |
| | | /// æµè¯æ¶åºåº |
| | | /// </summary> |
| | | [Description("æµè¯æ¶åºåº")] |
| | | TestOutbound = 4000, |
| | | /// <summary> |
| | | /// 油墨ä»åºåº |
| | | /// </summary> |
| | | [Description("油墨ä»åºåº")] |
| | | PrintingOutbound = 4050, |
| | | /// <summary> |
| | | /// è¾
æä»åºåº |
| | | /// </summary> |
| | | [Description("è¾
æä»åºåº")] |
| | | AccessoryOutbound = 4100, |
| | | /// <summary> |
| | | /// æ¿æä»åºåº |
| | | /// </summary> |
| | | [Description("æ¿æä»åºåº")] |
| | | SheetOutbound = 4150, |
| | | /// <summary> |
| | | /// å¹²èä»åºåº |
| | | /// </summary> |
| | | [Description("å¹²èä»åºåº")] |
| | | DryfilmOutbound = 4200, |
| | | /// <summary> |
| | | /// PPä»åºåº |
| | | /// </summary> |
| | | [Description("PPä»åºåº")] |
| | | PPOutbound = 4250, |
| | | /// <summary> |
| | | /// æåä»åºåº |
| | | /// </summary> |
| | | [Description("æåä»åºåº")] |
| | | ProductOutbound = 4300, |
| | | /// <summary> |
| | | /// é»çä»åºåº |
| | | /// </summary> |
| | | [Description("é»çä»åºåº")] |
| | | SolderOutbound = 4350, |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_Common.WareHouseEnum |
| | | { |
| | | /// <summary> |
| | | /// ä»åº |
| | | /// HA57 = æ·®å®äºå - æ¿æä»<br/> |
| | | /// HA58 = æ·®å®äºå - PPä»<br/> |
| | | /// HA60 = æ·®å®äºå - è¾
æä»<br/> |
| | | /// HA64 = æ·®å®äºå - æµè¯æ¶ä»<br/> |
| | | /// HA71 = æ·®å®äºå - æåä»<br/> |
| | | /// HA72 = æ·®å®äºå - å°¾æ°ä»<br/> |
| | | /// HA73 = æ·®å®äºå - ç åä»<br/> |
| | | /// HA101 = æ·®å®äºå - æåä»å¹³åº<br/> |
| | | /// HA152 = æ·®å®äºå - å¹²èä»<br/> |
| | | /// HA153 = æ·®å®äºå - 油墨ä»<br/> |
| | | /// </summary> |
| | | public enum WarehouseEnum |
| | | { |
| | | /// <summary> |
| | | /// æ¿æä» |
| | | /// </summary> |
| | | [Description("æ¿æä»")] |
| | | HA57, |
| | | /// <summary> |
| | | /// PPä» |
| | | /// </summary> |
| | | [Description("PPä»")] |
| | | HA58, |
| | | /// <summary> |
| | | /// è¾
æä» |
| | | /// </summary> |
| | | [Description("è¾
æä»")] |
| | | HA60, |
| | | /// <summary> |
| | | /// æµè¯æ¶ä» |
| | | /// </summary> |
| | | [Description("æµè¯æ¶ä»")] |
| | | HA64, |
| | | /// <summary> |
| | | /// æåä» |
| | | /// </summary> |
| | | [Description("æåä»")] |
| | | HA71, |
| | | /// <summary> |
| | | /// å°¾æ°ä» |
| | | /// </summary> |
| | | [Description("å°¾æ°ä»")] |
| | | HA72, |
| | | /// <summary> |
| | | /// ç åä» |
| | | /// </summary> |
| | | [Description("ç åä»")] |
| | | HA73, |
| | | /// <summary> |
| | | /// æåä»å¹³åº |
| | | /// </summary> |
| | | [Description("æåä»å¹³åº")] |
| | | HA101, |
| | | /// <summary> |
| | | /// å¹²èä» |
| | | /// </summary> |
| | | [Description("å¹²èä»")] |
| | | HA152, |
| | | /// <summary> |
| | | /// æ²¹å¢¨ä» |
| | | /// </summary> |
| | | [Description("油墨ä»")] |
| | | HA153 |
| | | } |
| | | } |
| | |
| | | |
| | | namespace WIDESEA_DTO.AGV |
| | | { |
| | | #region å¼ç¨ |
| | | public class AgvResponseContent |
| | | { |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | public string Data { get; set; } |
| | | } |
| | | #endregion |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_DTO.ERP |
| | | { |
| | | public class ErpRequestContent |
| | | { |
| | | public string Data { get ; set; } |
| | | public string Rdata { get; set; } |
| | | public int res { get ; set; } |
| | | } |
| | | } |
| | |
| | | public class TestToolOutModel |
| | | { |
| | | /// <summary> |
| | | /// æµæ¶æçç¼ç |
| | | /// æµè¯æ¶æ¹æ¬¡å· |
| | | /// </summary> |
| | | [PropertyValidate("æµæ¶æçç¼ç ", NotNullAndEmpty = true)] |
| | | [PropertyValidate("æµè¯æ¶æ¹æ¬¡å·", NotNullAndEmpty = true)] |
| | | public string ToolCode { get; set; } |
| | | /// <summary> |
| | | /// ç®æ å°åç |
| | |
| | | /// æµè¯æ¶æ¥åºæ¨¡å |
| | | /// </summary> |
| | | [ModelValidate] |
| | | public class TestToolScrapModel |
| | | public class TestToolScrap |
| | | { |
| | | /// <summary> |
| | | /// æµæ¶ç¼ç |
| | | /// æµè¯æ¶æ¹æ¬¡å· |
| | | /// </summary> |
| | | [PropertyValidate("æµæ¶ç¼ç ", NotNullAndEmpty = true)] |
| | | [PropertyValidate("æµè¯æ¶æ¹æ¬¡å·", NotNullAndEmpty = true)] |
| | | public string ToolCode { get; set; } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æµè¯æ¶éåºæ¨¡å |
| | | /// æµè¯æ¶éåº |
| | | /// </summary> |
| | | [ModelValidate] |
| | | public class TestToolBackModel |
| | |
| | | public string SourceAddressCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æµè¯æ¶ç¼ç |
| | | /// æµè¯æ¶æ¹æ¬¡å· |
| | | /// </summary> |
| | | [PropertyValidate("æµè¯æ¶ç¼ç ", NotNullAndEmpty = true)] |
| | | [PropertyValidate("æµè¯æ¶æ¹æ¬¡å·", NotNullAndEmpty = true)] |
| | | public string TestToolCode { get; set; } |
| | | } |
| | | /// <summary> |
| | | ///æµè¯æ¶åæ¥ |
| | | /// </summary> |
| | | public class TestToolSynInfo |
| | | { |
| | | /// <summary> |
| | | /// æµè¯æ¶æ¹æ¬¡å· |
| | | /// </summary> |
| | | public string ToolCode { get; set; } |
| | | /// <summary> |
| | | /// åå§å¯¿å½ |
| | | /// </summary> |
| | | public int Life { get; set; } |
| | | |
| | | } |
| | | } |
| | |
| | | |
| | | namespace WIDESEA_External.AGVService |
| | | { |
| | | #region å¼ç¨ |
| | | public class InvokeAGVService : IInvokeAGVService |
| | | { |
| | | public static IInvokeAGVService Intance |
| | |
| | | return new AgvResponseContent(); |
| | | } |
| | | } |
| | | #endregion |
| | | } |
| | |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common.APIEnum; |
| | | using WIDESEA_Core.Helper; |
| | | using WIDESEA_External.Model; |
| | | using WIDESEA_IBasicRepository; |
| | | using WIDESEA_Model.Models; |
| | | |
| | | namespace WIDESEA_External.ERPService |
| | | { |
| | |
| | | /// </summary> |
| | | public class InvokeERPService : IInvokeERPService |
| | | { |
| | | string serviceIp = ""; |
| | | |
| | | private readonly IApiInfoRepository _apiInfoRepository; |
| | | public InvokeERPService(IApiInfoRepository apiInfoRepository) |
| | | { |
| | | _apiInfoRepository= apiInfoRepository; |
| | | } |
| | | /// <summary> |
| | | /// ERPæ¶è´§åæ¥å£è°ç¨ |
| | | /// </summary> |
| | |
| | | /// <returns></returns> |
| | | public string InvokeMatReceiveApi(ERPReceiveModel receiveModel) |
| | | { |
| | | string serviceAddress = ""; |
| | | |
| | | Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x=>x.ApiCode==APIEnum.InvokeMatReceiveApi.ToString()); |
| | | ERPBaseModel<ERPReceiveModel> model = new ERPBaseModel<ERPReceiveModel>() |
| | | { |
| | | Data = receiveModel, |
| | |
| | | Type = "toTCWMSReceive", |
| | | SecurityCode = "" |
| | | }; |
| | | |
| | | string response = HttpHelper.Post(serviceIp + serviceAddress, model.Serialize()); |
| | | string response = HttpHelper.Post(apiInfo.ApiAddress, model.Serialize()); |
| | | return response; |
| | | } |
| | | |
| | |
| | | /// <returns></returns> |
| | | public string InvokeCheckOrderApi(ERPCheckModel checkModel) |
| | | { |
| | | string serviceAddress = ""; |
| | | Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeCheckOrderApi.ToString()); |
| | | ERPBaseModel<ERPCheckModel> model = new ERPBaseModel<ERPCheckModel>() |
| | | { |
| | | Data = checkModel, |
| | |
| | | SecurityCode = "" |
| | | }; |
| | | |
| | | string response = HttpHelper.Post(serviceIp + serviceAddress, model.Serialize()); |
| | | string response = HttpHelper.Post(apiInfo.ApiAddress, model.Serialize()); |
| | | return response; |
| | | } |
| | | |
| | |
| | | /// <returns></returns> |
| | | public string InvokeInboundOrderApi(ERPInboundModel inboundModel) |
| | | { |
| | | string serviceAddress = ""; |
| | | Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeInboundOrderApi.ToString()); |
| | | ERPBaseModel<ERPInboundModel> model = new ERPBaseModel<ERPInboundModel>() |
| | | { |
| | | Data = inboundModel, |
| | |
| | | SecurityCode = "" |
| | | }; |
| | | |
| | | string response = HttpHelper.Post(serviceIp + serviceAddress, model.Serialize()); |
| | | string response = HttpHelper.Post(apiInfo.ApiAddress, model.Serialize()); |
| | | return response; |
| | | } |
| | | /// <summary> |
| | | /// ERPç©æåºåºæ¥å£è°ç¨ |
| | | /// </summary> |
| | | /// <param name="outboundModel"></param> |
| | | /// <returns></returns> |
| | | public string InvokeOutboundOrderApi(ERPOutboundModel outboundModel) |
| | | { |
| | | Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeOutboundOrderApi.ToString()); |
| | | ERPBaseModel<ERPOutboundModel> model = new ERPBaseModel<ERPOutboundModel>() |
| | | { |
| | | Data = outboundModel, |
| | | Desc = "ææåºåº", |
| | | Type = "toBomMaterialOutTC", |
| | | SecurityCode = "LxkgPgN3$U" |
| | | }; |
| | | string response = HttpHelper.Post(apiInfo.ApiAddress, model.Serialize()); |
| | | return response; |
| | | } |
| | | } |
| | |
| | | |
| | | namespace WIDESEA_External.AGVService |
| | | { |
| | | #region å¼ç¨ |
| | | public interface IInvokeAGVService:IDependency |
| | | { |
| | | /// <summary> |
| | |
| | | WebResponseContent AgvSecureReply(AgvSecureReplyModel secureReplyModel); |
| | | AgvResponseContent AgvUpdateTask(AgvUpdateModel agvUpdateModel); |
| | | } |
| | | #endregion |
| | | } |
| | |
| | | /// <param name="inboundModel"></param> |
| | | /// <returns></returns> |
| | | string InvokeInboundOrderApi(ERPInboundModel inboundModel); |
| | | string InvokeOutboundOrderApi(ERPOutboundModel outboundModel); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_External.Model |
| | | { |
| | | /// <summary> |
| | | /// åºåºååä¼ ERP |
| | | /// </summary> |
| | | public class ERPOutboundModel |
| | | { |
| | | /// <summary> |
| | | /// æä½ç±»å |
| | | /// </summary> |
| | | public int Way { get; set; } |
| | | /// <summary> |
| | | /// 主é®å¼ |
| | | /// </summary> |
| | | public string UniqueTag { get; set; } |
| | | /// <summary> |
| | | /// åºåºåå· |
| | | /// </summary> |
| | | public string Code { get; set; } |
| | | /// <summary> |
| | | /// ä»åºç¼ç |
| | | /// </summary> |
| | | public string WarehouseCode { get; set; } |
| | | /// <summary> |
| | | /// 忮夿³¨ |
| | | /// </summary> |
| | | public string Docremark { get; set; } |
| | | /// <summary> |
| | | /// åæé¨é¨ç¼ç |
| | | /// </summary |
| | | public string Deptno { get; set; } |
| | | /// <summary> |
| | | /// åæé¨é¨åç§° |
| | | /// </summary |
| | | public string DeptName { get; set; } |
| | | /// <summary> |
| | | /// åææ¶é´ |
| | | /// </summary |
| | | public DateTime? Createtime { get; set; } |
| | | /// <summary> |
| | | /// åæäººå |
| | | /// </summary |
| | | public string Createuser { get; set; } |
| | | /// <summary> |
| | | /// |
| | | /// </summary |
| | | public List<ERPOutPick> Picklist { get; set; } |
| | | } |
| | | public class ERPOutPick |
| | | { |
| | | /// <summary> |
| | | /// åæè¡å· |
| | | /// </summary> |
| | | public string Rowindex { get; set; } |
| | | /// <summary> |
| | | /// ç©æç¼ç |
| | | /// </summary> |
| | | public string Material { get; set; } |
| | | /// <summary> |
| | | /// æ»æ°é |
| | | /// </summary> |
| | | public float Qty { get; set; } |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public List<ERPOutPickDetail> Dataitem { get; set; } |
| | | } |
| | | public class ERPOutPickDetail |
| | | { |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡ |
| | | /// </summary> |
| | | public string Lotno { get; set; } |
| | | /// <summary> |
| | | /// æ°é |
| | | /// </summary> |
| | | public float Qty { get; set; } |
| | | } |
| | | } |
| | |
| | | <ProjectReference Include="..\WIDESEA_Common\WIDESEA_Common.csproj" /> |
| | | <ProjectReference Include="..\WIDESEA_Core\WIDESEA_Core.csproj" /> |
| | | <ProjectReference Include="..\WIDESEA_DTO\WIDESEA_DTO.csproj" /> |
| | | <ProjectReference Include="..\WIDESEA_IBasicRepository\WIDESEA_IBasicRepository.csproj" /> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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_IBasicRepository |
| | | { |
| | | /// <summary> |
| | | /// æ¥å£ä¿¡æ¯ä»å¨æ¥å£å± |
| | | /// </summary> |
| | | public interface IApiInfoRepository : IRepository<Dt_ApiInfo> |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_DTO.Basic; |
| | | using WIDESEA_DTO.ERP; |
| | | using WIDESEA_IBasicRepository; |
| | | using WIDESEA_Model.Models; |
| | | |
| | | namespace WIDESEA_IBasicService |
| | | { |
| | | public interface IApiInfoService : IService<Dt_ApiInfo> |
| | | { |
| | | IApiInfoRepository Repository { get; } |
| | | } |
| | | } |
| | |
| | | /// <param name="taskNum">ä»»å¡å·</param> |
| | | /// <returns></returns> |
| | | WebResponseContent OutboundTaskCompleted(int taskNum); |
| | | /// <summary> |
| | | /// æµè¯æ¶éåº |
| | | /// </summary> |
| | | /// <param name="backModel"></param> |
| | | /// <returns></returns> |
| | | MesResponseContent TestReturnStock(TestToolBackModel backModel); |
| | | } |
| | | } |
| | |
| | | using AutoMapper; |
| | | using Newtonsoft.Json; |
| | | using Newtonsoft.Json.Serialization; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common.OrderEnum; |
| | | using WIDESEA_Common.StockEnum; |
| | | using WIDESEA_Common.WareHouseEnum; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Core.BaseServices; |
| | |
| | | using WIDESEA_DTO.ERP; |
| | | using WIDESEA_DTO.Inbound; |
| | | using WIDESEA_DTO.Outbound; |
| | | using WIDESEA_External.ERPService; |
| | | using WIDESEA_External.Model; |
| | | using WIDESEA_IBasicService; |
| | | using WIDESEA_IOutboundRepository; |
| | |
| | | private readonly IStockInfoService _stockInfoService; |
| | | private readonly IStockInfoRepository _stockInfoRepository; |
| | | public IOutboundOrderRepository Repository => BaseDal; |
| | | private readonly IInvokeERPService _invokeERPService; |
| | | |
| | | public OutboundOrderService(IOutboundOrderRepository BaseDal, IMapper mapper,IUnitOfWorkManage unitOfWorkManage, IBasicService basicService, IOutboundOrderDetailRepository outboundOrderDetailRepository, IStockInfoService stockInfoService, |
| | | IStockInfoRepository stockInfoRepository) : base(BaseDal) |
| | | IStockInfoRepository stockInfoRepository, IInvokeERPService invokeERPService) : base(BaseDal) |
| | | { |
| | | _mapper = mapper; |
| | | _unitOfWorkManage=unitOfWorkManage; |
| | | _basicService = basicService; |
| | | _outboundOrderDetailRepository = outboundOrderDetailRepository; |
| | | _stockInfoService = stockInfoService; |
| | | _stockInfoRepository= stockInfoRepository; |
| | | _stockInfoRepository = stockInfoRepository; |
| | | _invokeERPService = invokeERPService; |
| | | } |
| | | |
| | | public WebResponseContent ReceiveOutOrder(ErpOutOrderDTO model) |
| | |
| | | } |
| | | else |
| | | { |
| | | Dt_StockInfo? stockInfo = null; |
| | | Dt_OutboundOrderDetail outboundOrderDetail = new Dt_OutboundOrderDetail() |
| | | { |
| | | RowNo = Convert.ToInt32(model.RowNo), |
| | |
| | | OrderQuantity = model.Qty, |
| | | OrderId = oldOutboundOrder.Id |
| | | }; |
| | | List<Dt_StockInfo>? stockInfos = new List<Dt_StockInfo>(); |
| | | //ERPä¸ä¼ æµè¯ä»é¢æåæ´æ°å¯¹åºåºåç¶æ |
| | | if (warehouse.WarehouseId == 1) |
| | | if (warehouse.WarehouseCode == WarehouseEnum.HA64.ToString()) |
| | | { |
| | | //è·ååºåºååºå |
| | | stockInfo = _stockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId).Includes(x => x.Details).Where(x => x.Details.Any(x => x.MaterielCode == model.MCode && x.BatchNo == model.MLot && x.InboundOrderRowNo == Convert.ToInt32(model.RowNo))).First(); |
| | | stockInfo.StockStatus = StockStatusEmun.å
¥åºå®æ.ObjToInt(); |
| | | WebResponseContent responseContent = TestOutStocksUpdate(warehouse, model); |
| | | if (!responseContent.Status) |
| | | { |
| | | return responseContent; |
| | | } |
| | | stockInfos = responseContent.Data as List<Dt_StockInfo>; |
| | | } |
| | | _unitOfWorkManage.BeginTran(); |
| | | if (stockInfo != null) |
| | | if (stockInfos.Count>0) |
| | | { |
| | | _stockInfoRepository.UpdateData(stockInfo); |
| | | _stockInfoRepository.UpdateData(stockInfos); |
| | | //æµè¯æ¶åºç»ERP䏿¥åºåºå®æ |
| | | if (!TestOutBack(stockInfos, warehouse, model).Status) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return WebResponseContent.Instance.Error($"æµè¯æ¶åºåºä¸æ¥å¤±è´¥"); |
| | | } |
| | | } |
| | | _outboundOrderDetailRepository.AddData(outboundOrderDetail); |
| | | _unitOfWorkManage.CommitTran(); |
| | |
| | | WarehouseId = warehouse.WarehouseId, |
| | | Details = new List<Dt_OutboundOrderDetail> { outboundOrderDetail } |
| | | }; |
| | | Dt_StockInfo? stockInfo = null; |
| | | //ERPä¸ä¼ æµè¯ä»é¢æåæ´æ°å¯¹åºåºåç¶æ |
| | | if (warehouse.WarehouseId==1) |
| | | List<Dt_StockInfo>? stockInfos = new List<Dt_StockInfo>(); |
| | | //ERPä¸ä¼ æµè¯ä»é¢æåæ´æ°å¯¹åºåºåç¶æ |
| | | if (warehouse.WarehouseCode == WarehouseEnum.HA64.ToString()) |
| | | { |
| | | //è·ååºåºååºå |
| | | stockInfo = _stockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId).Includes(x => x.Details).Where(x => x.Details.Any(x => x.MaterielCode == model.MCode && x.BatchNo == model.MLot && x.InboundOrderRowNo == Convert.ToInt32(model.RowNo))).First(); |
| | | stockInfo.StockStatus=StockStatusEmun.å
¥åºå®æ.ObjToInt(); |
| | | WebResponseContent responseContent = TestOutStocksUpdate(warehouse, model); |
| | | if (!responseContent.Status) |
| | | { |
| | | return responseContent; |
| | | } |
| | | stockInfos = responseContent.Data as List<Dt_StockInfo>; |
| | | } |
| | | _unitOfWorkManage.BeginTran(); |
| | | if (stockInfo!=null) |
| | | if (stockInfos.Count > 0) |
| | | { |
| | | _stockInfoRepository.UpdateData(stockInfo); |
| | | _stockInfoRepository.UpdateData(stockInfos); |
| | | //æµè¯æ¶åºç»ERP䏿¥åºåºå®æ |
| | | if (!TestOutBack(stockInfos, warehouse, model).Status) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return WebResponseContent.Instance.Error($"æµè¯æ¶åºåºä¸æ¥å¤±è´¥"); |
| | | } |
| | | } |
| | | Db.InsertNav(outboundOrder).Include(x => x.Details).ExecuteCommand(); |
| | | _unitOfWorkManage.CommitTran(); |
| | | |
| | | } |
| | | } |
| | | else if (model.Way == 2) |
| | |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ¹åºåºååºåç¶æ |
| | | /// </summary> |
| | | /// <param name="warehouse"></param> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent TestOutStocksUpdate(Dt_Warehouse warehouse, ErpOutOrderDTO model) |
| | | { |
| | | try |
| | | { |
| | | //è·ååºåºååºå |
| | | List<Dt_StockInfo> stockInfos = _stockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId).OrderBy(x => x.CreateDate).Includes(x => x.Details).Where(x => x.Details.Any(x => x.MaterielCode == model.MCode)).Take((int)(model.Qty)).ToList(); |
| | | if (model.Qty > stockInfos.Count) |
| | | { |
| | | return WebResponseContent.Instance.Error($"ç©æ:{model.MCode}åºåä¸è¶³"); |
| | | } |
| | | //æ´æ¹ç¶æ |
| | | stockInfos.ForEach(x => |
| | | { |
| | | x.StockStatus = StockStatusEmun.å
¥åºå®æ.ObjToInt(); |
| | | }); |
| | | return WebResponseContent.Instance.OK("æå", stockInfos); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | ///æ¨éæµè¯æ¶åºåº |
| | | public WebResponseContent TestOutBack(List<Dt_StockInfo> stockInfos,Dt_Warehouse warehouse, ErpOutOrderDTO model) |
| | | { |
| | | try |
| | | { |
| | | //æµè¯æ¶åºç»ERP䏿¥åºåºå®æ |
| | | List<ERPOutPickDetail> pickDetails = stockInfos.Select(x => new ERPOutPickDetail() |
| | | { |
| | | Lotno = x.Details[0].BatchNo, |
| | | Qty = x.Details[0].StockQuantity |
| | | }).ToList(); |
| | | ERPOutPick outPick = new ERPOutPick() |
| | | { |
| | | Rowindex = model.RowNo, |
| | | Material = model.MCode, |
| | | Qty = model.Qty, |
| | | Dataitem = pickDetails |
| | | }; |
| | | ERPOutboundModel inboundModel = new ERPOutboundModel() |
| | | { |
| | | Way = 1, |
| | | UniqueTag = model.OrderNo, |
| | | Code = model.OrderNo, |
| | | WarehouseCode = warehouse.WarehouseCode, |
| | | Docremark = "", |
| | | Deptno = model.DepartmentCode, |
| | | DeptName = model.DepartmentName, |
| | | Createtime = DateTime.Now, |
| | | Createuser = "WMS", |
| | | Picklist = new List<ERPOutPick>() { outPick }, |
| | | }; |
| | | string response = _invokeERPService.InvokeOutboundOrderApi(inboundModel); |
| | | ErpRequestContent requestContent=response.DeserializeObject<ErpRequestContent>(); |
| | | if (requestContent.res==1) |
| | | { |
| | | |
| | | return WebResponseContent.Instance.OK(requestContent.Data); |
| | | } |
| | | else |
| | | { |
| | | return WebResponseContent.Instance.Error(requestContent.Data); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | //public WebResponseContent FeedbackOutbondIssue(List<Dt_OutStockLockInfo> outStockLockInfos) |
| | | //{ |
| | |
| | | List<object> data = new List<object>(); |
| | | |
| | | { |
| | | Type type = typeof(TaskInStatusEnum); |
| | | List<int> enums = Enum.GetValues(typeof(TaskInStatusEnum)).Cast<int>().ToList(); |
| | | Type type = typeof(TaskStatusEnum); |
| | | List<int> enums = Enum.GetValues(typeof(TaskStatusEnum)).Cast<int>().ToList(); |
| | | int index = 0; |
| | | foreach (var item in enums) |
| | | { |
| | | FieldInfo? fieldInfo = typeof(TaskInStatusEnum).GetField(((TaskInStatusEnum)item).ToString()); |
| | | FieldInfo? fieldInfo = typeof(TaskStatusEnum).GetField(((TaskStatusEnum)item).ToString()); |
| | | DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); |
| | | if (description != null) |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | { |
| | | Type type = typeof(TaskOutStatusEnum); |
| | | List<int> enums = Enum.GetValues(typeof(TaskOutStatusEnum)).Cast<int>().ToList(); |
| | | int index = 0; |
| | | foreach (var item in enums) |
| | | { |
| | | FieldInfo? fieldInfo = typeof(TaskOutStatusEnum).GetField(((TaskOutStatusEnum)item).ToString()); |
| | | DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); |
| | | if (description != null) |
| | | { |
| | | data.Add(new { key = item.ToString(), value = description.Description }); |
| | | } |
| | | else |
| | | { |
| | | data.Add(new { key = item.ToString(), value = item.ToString() }); |
| | | } |
| | | index++; |
| | | } |
| | | } |
| | | //{ |
| | | // Type type = typeof(TaskStatusEnum); |
| | | // List<int> enums = Enum.GetValues(typeof(TaskStatusEnum)).Cast<int>().ToList(); |
| | | // int index = 0; |
| | | // foreach (var item in enums) |
| | | // { |
| | | // FieldInfo? fieldInfo = typeof(TaskStatusEnum).GetField(((TaskStatusEnum)item).ToString()); |
| | | // DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); |
| | | // if (description != null) |
| | | // { |
| | | // data.Add(new { key = item.ToString(), value = description.Description }); |
| | | // } |
| | | // else |
| | | // { |
| | | // data.Add(new { key = item.ToString(), value = item.ToString() }); |
| | | // } |
| | | // index++; |
| | | // } |
| | | //} |
| | | result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; |
| | | } |
| | | break; |
| | |
| | | using WIDESEA_Common.OtherEnum; |
| | | using WIDESEA_Common.StockEnum; |
| | | using WIDESEA_Common.TaskEnum; |
| | | using WIDESEA_Common.WareHouseEnum; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_DTO; |
| | | using WIDESEA_DTO.ERP; |
| | | using WIDESEA_DTO.MES; |
| | | using WIDESEA_ITaskInfoRepository; |
| | | using WIDESEA_ITaskInfoService; |
| | |
| | | MesResponseContent responseContent = new MesResponseContent(); |
| | | try |
| | | { |
| | | //è·ååºåè®°å½ warehouseIDæå®å
ç¨åºå®å¼ TEST |
| | | Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.WarehouseId == 1 && |
| | | x.PalletCode == model.ToolCode && |
| | | Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseCode==WarehouseEnum.HA64.ToString()); |
| | | //è·ååºåè®°å½ |
| | | Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => |
| | | x.WarehouseId == warehouse.WarehouseId && |
| | | x.StockStatus==(int)StockStatusEmun.å
¥åºå®æ) |
| | | .Includes(x => x.Details).First(); |
| | | .Includes(x => x.Details).Where(x => x.Details.Any(x => x.MaterielCode == model.ToolCode)).First(); |
| | | if (stockInfo==null) |
| | | { |
| | | return responseContent.Error($"æµè¯æ¶æç:{model.ToolCode}æ åºåè®°å½"); |
| | | return responseContent.Error($"æµè¯æ¶:{model.ToolCode}æ å¯ç¨åºå"); |
| | | } |
| | | Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == stockInfo.LocationCode && |
| | | x.WarehouseId == stockInfo.WarehouseId && |
| | |
| | | (x.EnableStatus == (int)EnableStatusEnum.Normal || x.EnableStatus == (int)EnableStatusEnum.OnlyOut)); |
| | | if (locationInfo==null) |
| | | { |
| | | return responseContent.Error($"è´§ä½:{stockInfo.LocationCode}åºåºæ¡ä»¶ä¸æ»¡è¶³"); |
| | | return responseContent.Error($"æµè¯æ¶è´§ä½:{stockInfo.LocationCode}åºåºæ¡ä»¶ä¸æ»¡è¶³"); |
| | | } |
| | | //çææµè¯æ¶åºåºä»»å¡ éå®åºå æ´æ¹è´§ä½ç¶æ |
| | | Dt_Task taskOut = new() |
| | |
| | | Roadway = locationInfo.RoadwayNo, |
| | | SourceAddress = stockInfo.LocationCode, |
| | | TargetAddress = "", |
| | | TaskStatus = (int)TaskOutStatusEnum.OutNew, |
| | | TaskType = (int)TaskOutboundTypeEnum.OutTestStand, |
| | | TaskStatus = (int)TaskStatusEnum.New, |
| | | TaskType = (int)TaskTypeEnum.TestOutbound, |
| | | TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), |
| | | PalletType = stockInfo.PalletType, |
| | | WarehouseId = stockInfo.WarehouseId, |
| | |
| | | stockInfo.StockStatus = (int)StockStatusEmun.åºåºéå®; |
| | | LocationStatusEnum locationStatus = (LocationStatusEnum)locationInfo.LocationStatus; |
| | | locationInfo.LocationStatus = (int)LocationStatusEnum.Lock; |
| | | //夿æ¯å¦æåºåºåä¿¡æ¯ |
| | | _unitOfWorkManage.BeginTran(); |
| | | //æ´æ°åºåç¶æ |
| | | _stockRepository.StockInfoRepository.UpdateData(stockInfo); |
| | |
| | | //å å
¥è´§ä½åå¨è®°å½ |
| | | _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, locationStatus, LocationChangeType.OutboundAssignLocation, stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", taskOut.TaskNum); |
| | | _unitOfWorkManage.CommitTran(); |
| | | //å°ä»»å¡æ¨éå°WCS |
| | | PushTasksToWCS(); |
| | | responseContent.OK(); |
| | | } |
| | | catch (Exception ex) |
| | |
| | | } |
| | | return responseContent; |
| | | } |
| | | /// <summary> |
| | | /// æµè¯æ¶éåº |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public MesResponseContent TestReturnStock(TestToolBackModel backModel) |
| | | { |
| | | MesResponseContent responseContent = new MesResponseContent(); |
| | | try |
| | | { |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | responseContent.Error(ex.Message); |
| | | } |
| | | return responseContent; |
| | | } |
| | | /// <summary> |
| | | /// æµè¯æ¶æ¥åº |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public MesResponseContent TestScrap(TestToolScrap toolScrap) |
| | | { |
| | | MesResponseContent responseContent = new MesResponseContent(); |
| | | try |
| | | { |
| | | //è·åæµè¯æ¶æ¹æ¬¡å·åºå |
| | | Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA64.ToString()); |
| | | //è·ååºåè®°å½ |
| | | Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => |
| | | x.WarehouseId == warehouse.WarehouseId) |
| | | .Includes(x => x.Details).Where(x => x.Details.Any(x => x.MaterielCode == toolScrap.ToolCode)).First(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | responseContent.Error(ex.Message); |
| | | } |
| | | return responseContent; |
| | | } |
| | | /// <summary> |
| | | /// 忥æµè¯æ¶å¯¿å½ |
| | | /// </summary> |
| | | /// <param name="toolSynInfo"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent TestSynStock(TestToolSynInfo toolSynInfo) |
| | | { |
| | | WebResponseContent content= new WebResponseContent(); |
| | | try |
| | | { |
| | | Root<TestToolSynInfo> root = new Root<TestToolSynInfo>() |
| | | { |
| | | |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | } |
| | | } |
| | |
| | | private readonly IRecordService _recordService; |
| | | private readonly IOutboundService _outboundService; |
| | | private readonly IStockService _stockService; |
| | | private readonly IBasicRepository _basicRepository; |
| | | |
| | | public ITaskRepository Repository => BaseDal; |
| | | |
| | |
| | | {nameof(Dt_Task.CreateDate),OrderByType.Asc}, |
| | | }; |
| | | |
| | | public List<int> TaskInboundTypes => typeof(TaskInboundTypeEnum).GetEnumIndexList(); |
| | | public List<int> TaskTypes => typeof(TaskTypeEnum).GetEnumIndexList(); |
| | | |
| | | public List<int> TaskOutboundTypes => typeof(TaskOutboundTypeEnum).GetEnumIndexList(); |
| | | public List<int> TaskOutboundTypes => typeof(TaskTypeEnum).GetEnumIndexList(); |
| | | |
| | | public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IStockRepository stockRepository, IBasicService basicService, IRecordService recordService, IOutboundService outboundService, IStockService stockService) : base(BaseDal) |
| | | public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IStockRepository stockRepository, IBasicService basicService, IRecordService recordService, IOutboundService outboundService, IStockService stockService, IBasicRepository basicRepository) : base(BaseDal) |
| | | { |
| | | _mapper = mapper; |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | |
| | | _recordService = recordService; |
| | | _outboundService = outboundService; |
| | | _stockService = stockService; |
| | | _basicRepository = basicRepository; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | { |
| | | try |
| | | { |
| | | List<Dt_Task> tasks = BaseDal.QueryData(x => (TaskInboundTypes.Contains(x.TaskType) && x.TaskStatus == (int)TaskInStatusEnum.InNew || TaskOutboundTypes.Contains(x.TaskType) && x.TaskStatus == (int)TaskOutStatusEnum.OutNew)); |
| | | |
| | | List<Dt_Task> tasks = BaseDal.QueryData(x => (TaskTypes.Contains(x.TaskType) && x.TaskStatus == (int)TaskStatusEnum.New)); |
| | | List<WMSTaskDTO> taskDTOs = _mapper.Map<List<WMSTaskDTO>>(tasks); |
| | | |
| | | string response = HttpHelper.Post("http://127.0.0.1:9291/api/Task/ReceiveTask", taskDTOs.Serialize()); |
| | |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä»»å¡ä¿¡æ¯"); |
| | | } |
| | | |
| | | if (task.TaskType != TaskInboundTypeEnum.Inbound.ObjToInt()) |
| | | if (task.TaskType != TaskTypeEnum.Inbound.ObjToInt()) |
| | | { |
| | | return WebResponseContent.Instance.Error($"ä»»å¡ç±»åé误"); |
| | | } |
| | |
| | | locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt(); |
| | | |
| | | //æµè¯æ¶å
¥åºåºåç¶æ |
| | | if (task.TaskType == TaskInboundTypeEnum.TestInbound.ObjToInt()) |
| | | if (task.TaskType == TaskTypeEnum.TestInbound.ObjToInt()) |
| | | { |
| | | stockInfo.StockStatus = StockStatusEmun.å
¥åºå®ææªå»ºåºåºå.ObjToInt(); |
| | | } |
| | |
| | | return WebResponseContent.Instance.Error($"该æçå·²çæä»»å¡"); |
| | | } |
| | | |
| | | if (Repository.QueryFirst(x => x.SourceAddress == stationCode && x.TaskStatus == TaskInStatusEnum.InNew.ObjToInt()) != null) |
| | | if (Repository.QueryFirst(x => x.SourceAddress == stationCode && x.TaskStatus == TaskStatusEnum.New.ObjToInt()) != null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"该ç«ç¹å·²ææªæ§è¡çä»»å¡"); |
| | | } |
| | |
| | | Roadway = "", |
| | | SourceAddress = stationCode, |
| | | TargetAddress = "", |
| | | TaskType = TaskInboundTypeEnum.Inbound.ObjToInt(), |
| | | TaskStatus = TaskInStatusEnum.InNew.ObjToInt(), |
| | | TaskType = TaskTypeEnum.Inbound.ObjToInt(), |
| | | TaskStatus = TaskStatusEnum.New.ObjToInt(), |
| | | }; |
| | | |
| | | stockInfo.StockStatus = StockStatusEmun.å
¥åºç¡®è®¤.ObjToInt(); |
| | |
| | | |
| | | task.Roadway = roadwayNo; |
| | | task.TargetAddress = locationInfo.LocationCode; |
| | | task.TaskStatus = TaskInStatusEnum.SC_InExecute.ObjToInt(); |
| | | task.TaskStatus = TaskStatusEnum.SC_Execute.ObjToInt(); |
| | | |
| | | LocationStatusEnum lastStatus = (LocationStatusEnum)locationInfo.LocationStatus; |
| | | |
| | |
| | | Roadway = locationInfo.RoadwayNo, |
| | | SourceAddress = stockInfo.LocationCode, |
| | | TargetAddress = "", |
| | | TaskStatus = TaskOutStatusEnum.OutNew.ObjToInt(), |
| | | TaskType = TaskOutboundTypeEnum.Outbound.ObjToInt(), |
| | | TaskStatus = TaskStatusEnum.New.ObjToInt(), |
| | | TaskType = TaskTypeEnum.Outbound.ObjToInt(), |
| | | TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), |
| | | PalletType = stockInfo.PalletType, |
| | | WarehouseId = stockInfo.WarehouseId, |
| | |
| | | |
| | | namespace WIDESEA_WMSServer.Controllers.ERP |
| | | { |
| | | #region å¼ç¨ |
| | | /// <summary> |
| | | /// ç¹åAGVæ¥å£ |
| | | /// </summary> |
| | |
| | | } |
| | | |
| | | } |
| | | #endregion |
| | | } |
| | |
| | | { |
| | | return _taskService.TestToolOut(model.Content); |
| | | } |
| | | /// <summary> |
| | | /// æ¥æ¶MESæµè¯æ¶éåº |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("TestReturnStock"), AllowAnonymous, MethodParamsValidate] |
| | | public MesResponseContent TestReturnStock([FromBody] Root<TestToolBackModel> model) |
| | | { |
| | | return _taskService.TestReturnStock(model.Content); |
| | | } |
| | | } |
| | | } |