From 0ba8a633323a1c07611a52cc9b8fe0f209cefa61 Mon Sep 17 00:00:00 2001 From: 18923810322 <1666941798@qq.com> Date: Tue, 6 May 2025 17:27:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E5=BA=8F=E5=88=97=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 | Bin 278290 -> 278605 bytes .../Controllers/TakeStockController.cs | 2 +- src/WMS.Web.Api/appsettings(测试).json1 | 136 ++++++++++++++++++ src/WMS.Web.Api/appsettings.json | 6 +- src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml | 2 +- src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 28 ++++ src/WMS.Web.Domain/Entitys/SerialNumbers.cs | 5 + .../IService/Public/IErpService.cs | 4 + .../ISerialNumbersRepositories.cs | 4 + src/WMS.Web.Domain/Services/BoxService.cs | 18 ++- .../Services/InStockTaskService.cs | 39 +++++ .../Services/Public/ErpService.cs | 120 ++++++++++++++++ src/WMS.Web.Domain/Values/Erp/FormIdParam.cs | 7 +- src/WMS.Web.Domain/Values/InstockType.cs | 5 + .../ErrorHandlingMiddleware.cs | 6 +- .../SerialNumbersRepositories.cs | 34 +++++ 16 files changed, 407 insertions(+), 9 deletions(-) create mode 100644 src/WMS.Web.Api/appsettings(测试).json1 diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index bf8df9c1782be4e73fe36fabc442f9ca8cfe08ef..cfd605f6ba06da8a6a1e434ef5dec2b866546438 100644 GIT binary patch literal 278605 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

odR3KE8P?1nsLS;f#2~`Qz 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�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 literal 278290 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 V(X7Wydc3U1@ATN;?dAmw{s;M}ScL!p diff --git a/src/WMS.Web.Api/Controllers/TakeStockController.cs b/src/WMS.Web.Api/Controllers/TakeStockController.cs index 0ae01dfe..99709585 100644 --- a/src/WMS.Web.Api/Controllers/TakeStockController.cs +++ b/src/WMS.Web.Api/Controllers/TakeStockController.cs @@ -103,7 +103,7 @@ namespace WMS.Web.Api.Controllers return await _takeStockService.Save(dto, loginInfo); } ///

- /// 同步金蝶 + /// 同步金蝶2 /// /// /// diff --git a/src/WMS.Web.Api/appsettings(测试).json1 b/src/WMS.Web.Api/appsettings(测试).json1 new file mode 100644 index 00000000..d83df423 --- /dev/null +++ b/src/WMS.Web.Api/appsettings(测试).json1 @@ -0,0 +1,136 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information", + "Ops.Web.Repositories": "Information" + } + }, + "Kestrel": { + "EndPoints": { + "Http": { + "Url": "http://*:8035" + } + } + }, + "AllowedHosts": "*", //允许所有主机 + "AllowedCores": "localhost,http://localhost:8080,http://192.168.1.188:8080", //跨域 + "AppOptions": { + "DBConnectionString": "Server=rm-wz9215skklas0287pwo.mysql.rds.aliyuncs.com; Database=test_wmsdb;User Id=orico_erp;password=Orico2023;port=3306;CharSet=gb2312;Connect Timeout=150;", //数据库连接地址 + "RedisConnectionString": "47.106.232.90:6379,password=orico.2020,DefaultDatabase=3", //redis连接地址 + "RedisIpRateLimitingConnectionString": "47.110.156.96:16379,password=123456,DefaultDatabase=2", //redis连接地址 + "SingleBaseUrl": "http://127.0.0.1:8066/api", //单点服务连接地址 + "DBType": "Mysql", //数据库类型 + "CompanyId": 1, //公司Id + "AllowCache": false, //允许缓存 + "RedisDirectory": "Test" //redis标记 + }, + "SoaOptions": { + "ModuleID": 25, //系统在单点系统的标记 + "Url_V3": "https://dev.uc.v3.f2b211.com", //正式http://uc.v3.f2b211.com //单点系统的连接地址v3版 + "Url": "http://dev.uc.f2b211.com", //单点系统的连接地址(老版 应该没用了) + "AppId": "100528847652388864", //系统Id + "AppSecret": "fa950a1fe690fe610338084b49db7db9", //系统授权 + "PublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx4RaUAcPIEzHkMA0dvp51SbvC+ASiitHw9h6sCq8blqh8Cmx+ZfldxmX+sGqUDL40Eo07tQGWpY8WTlUROCOB9PIfZC6Wb+ntM6x8FzvcW5xfiKDfd6tbp5+ztFHVvutde0ceYk4VjOw5Q1wGJENZoQxQGd6/tt/cHbyNKF3HeAPCLJkMriKBXn3k4r4kix5oetVpaacFABBMRS019n/k0S8fg2H+72WaPVJElRk/iCkQwBA6JIKt/iSVXR8qMe+K6NTRnND4j5i7Ai0TgEV8MRlRMRVK7q4MyO0TPky//0HtVULdhb+G/XbF08ZgIgXlFBroQCEEj0RqdLio0Bg9wIDAQAB", //公钥 + "PrivateKey": "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDHhFpQBw8gTMeQwDR2+nnVJu8L4BKKK0fD2HqwKrxuWqHwKbH5l+V3GZf6wapQMvjQSjTu1AZaljxZOVRE4I4H08h9kLpZv6e0zrHwXO9xbnF+IoN93q1unn7O0UdW+6117Rx5iThWM7DlDXAYkQ1mhDFAZ3r+239wdvI0oXcd4A8IsmQyuIoFefeTiviSLHmh61WlppwUAEExFLTX2f+TRLx+DYf7vZZo9UkSVGT+IKRDAEDokgq3+JJVdHyox74ro1NGc0PiPmLsCLROARXwxGVExFUrurgzI7RM+TL//Qe1VQt2Fv4b9dsXTxmAiBeUUGuhAIQSPRGp0uKjQGD3AgMBAAECggEBAI/1MJDjtwdQPwJznKdobTXeJMdFwzrMpbhq34NzIojhfkziWNdFwTzhS6aTzEaXsK3hjTXx6C++jQa39dTIzdJZ/iSTo9IUFnbAWOWcuOv4i40+a/ALFsplNAwYNshNSkh3cH9FAlA4dd+fhY1ERA3/PeZBhB6V0+sa+AH/qwnzFY+lwOeuaUe4PNEjjnBVhzqV8XApca7HZNlrGmiTuO3J/e4k/FAP11iYYIf8e8JtgocinW1LIxJGBcp7Zyof37k4e+s25B0k5MkXiYlvveMsmlEcU+sYm+uLNtu8eG1R3b1qvi0H8ULdwoSParnKSyYMh0WlZTS8Ka3X33WeCOkCgYEA2Cc/nnJkwPaOXLiAbKg7/4hIne1X3rneVVbwCaebKXfSsCSGoVt5b8vBCgbVZNw79d8Z8ZLEf4e26ayLLXRz9QriMPiWyHUEr0XLZ4lq6E1EdZMBZWmjT9VY8NeAkB+eMPfCZLZe3OoVstuNQA0pGVFJgYXmXgcjJcidxzgIqU0CgYEA7EwAA6OP9DoQq4GcBCuIVGBjEWzbVekMt7f+WeLxGl3NYTWiXiaK6WjF/pvFv7AGQIqwOpnbKahWntpPj5DModhjQN8u/yonhzagubQbDTX0jR3w4gVsv/yyGgksPIwAQT/FW9cOqriqw8IGJG92VQw8dy6M1ZP9yK3yc41Q8VMCgYATH3XLaMdtIuL5ZQFHm6KjOsVh42uQstTuq+BUmlVp18X1+2VFxTf7IgWUA4LBh5JucCx1aMylk7Yk+jTd8p2HokzclEGSvneJoh0ardedcaiK1lSbSjs+htt1gztGhOWT43d5PYEq/jKpPi9C6WcnbD+ai+QTkYIUh6kdxOFPSQKBgQDltLfq0azWMUAVSYi+MQd1ZsHHpbfO2x+m1TFodgoFpJxL3JS7y+IMJvMaoJlqz5Y0Vd4dCYYZB/E0uWrQWGXlC3LpFE0edf85HWy/Ogt2GzZhnHKXdciTFfaZAsPDFCIHTBPyRKyYX655YHsSHly9Loj1HwZ/dT8nP5nKpNzDywKBgB3itp7eQ71y+6npr0MUcYF6cgjhPTLL03zVzJdR3ELzPFW+J69MFwqafoGu+xgGu43pDgIR6gVKqYhqfSk28oRl7YtO4fvk6KRcG5zrc1FyDw3S5XpVc5MhsxmBBXZj5ivBkoqxyDAOqu3MDCbHqg1J5inDu2gA8tbsgJ41pTER" //私钥 + }, + "ErpOptions": { + "EndpointAddress": "http://erp.orico.com.cn/k3cloud/ERPGW.asmx", //金蝶连接地址 + "UserName": "mes", //测试账号密码 mes/A1B2C3Dh/ce20210909/6723b1acf19987 正式账号密码 orico/A123321./Orico/663a26829afbdd //金蝶账户名 + "Password": "A1B2C3Dh.", //金蝶密码 + "ErpId": "ce20210909", //金蝶Id + "ZhangTaoId": "6723b1acf19987"//金蝶账套Id + }, + "OpsOptions": { + "Url": "https://api.opsscm.test.f2b211.com/", //https://api.opsscm.test.f2b211.com/ //OPS供应链系统 + "UserName": "admin", //账户名 这是之前链接老ops 需要的用户名密码 现在链接 OPS供应链系统是不需要了 + "PassWord": "888888" //密码 这是之前链接老ops 需要的用户名密码 现在链接 OPS供应链系统是不需要了 + }, + "LingXingOptions": { + "Url": "https://openapi.lingxing.com", //领星连接地址 + "AppId": "ak_QGK2J8TssERmu", //领星Id + "AppSecret": "n/HUKD2wVdTbvhnFZbVBPw==" //领星授权 + }, + "JuShuiTanOptions": { + "Url": "https://openapi.jushuitan.com",//聚水潭连接地址 + "AppKey": "17231841286c45f99eb9acf445404349",//聚水潭Key + "AppSecret": "5ce9641ae6db4abb8b96eea7df6a81e9",//聚水潭授权 + "AccessToken": "4605358c37374780a8a4395e6cdb1c3f" //一年后过期(2025/10/18) + }, + "Qiniu": { + "AccessKey": "dOsTum4a5qvhPTBbZRPX0pIOU7PZWRX7htKjztms", //七牛云key + "SecretKey": "KFxsGbnErkALFfeGdMa8QWTdodJbamMX0iznLe-q", //七牛云授权 + "Bucket": "orico-wms-test", //正式 orico-wms //七牛云文件下的文件名 + "Url": "https://wmstestfile.f2b211.com/" //测试 https://wmstestfile.f2b211.com/ 正式 https://wmsfile.f2b211.com/ //访问七牛云文件的链接地址 + }, + //定时任务配置项 + "QuartzJobOptions": { + //存储类型:键和值 + "JobStoreTypeKey": "quartz.jobStore.type", + "JobStoreTypeValue": "Quartz.Impl.AdoJobStore.JobStoreTX, Quartz", + + //数据库驱动类型-这里是mysql:键和值 + "JobStoreDriverDelegateTypeKey": "quartz.jobStore.driverDelegateType", + "JobStoreDriverDelegateTypeValue": "Quartz.Impl.AdoJobStore.MySQLDelegate, Quartz", + + //数据库表名前缀:键和值 + "JobStoreTablePrefixKey": "quartz.jobStore.tablePrefix", + "JobStoreTablePrefixValue": "QRTZ_", + + //数据源的名称:键和值 + "JobStoreDataSourceKey": "quartz.jobStore.dataSource", + "JobStoreDataSourceValue": "myDS", + + //连接字符串:键和值 + "JobStoreConnectionStringKey": "quartz.dataSource.myDS.connectionString", + "JobStoreConnectionStringValue": "Server=192.168.7.103; Database=wms_db;User Id=root;password=L8mrCGbPisAa6GNh;port=3306;CharSet=gb2312;Connect Timeout=150;", + + //mysql提供器:键和值 + "JobStoreProviderKey": "quartz.dataSource.myDS.provider", + "JobStoreProviderValue": "MySql", + + //几点开始执行 + "JobStartHour": [ 15, 11, 1, 0, 0, 10 ], + //几分钟开始执行 + "JobStartMinute": [ 30, 39, 30, 20, 5, 5 ], + + //执行Cron表达式:可以是几小时or几分钟or几秒钟or几天or几周; + "JobStartExpre": "0 0/30 * * * ?", + "JobStartExpreAmount": "0 50 23 * * ?", + "JobStartExpreSend": "0 0 12,16,20 * * ?", + "JobStartExpreMaterial": "0 30 23 * * ?", + "JobStartErpDelete": "0 5 * * * ?", + "JobStartProductInventory": "0 0/30 * * * ?", + //a.是否启用集群:键和值 + "JobStoreClusteredKey": "quartz.jobStore.clustered", + "JobStoreClusteredValue": true, + + //b.集群中的每个节点都必须有一个唯一的 instanceId + // 通过将“AUTO”设置为该属性的值来完成 + //备注:a属性和b属性配套使用;如果不开启集群这两个属性去掉 + "JobStoreInstanceIdKey": "quartz.scheduler.instanceId", + "JobStoreInstanceIdValue": "AUTO", + + //以下可以自定义配置 + "QuartzJobKey": "OpsJob", + "QuartzJobValue": "OpsJobGroup", + "QuartzJobDescription": "OpsJob", + "QuartzTriggerIdentity": "OpsTrigger", + "QuartzTriggerDescription": "OpsJobTrigger" + }, + "EmailOptions": { + "SmtpServer": "smtp.qiye.aliyun.com",//邮箱配置 + "SmtpPort": 587, + "SenderName": "深圳市元创时代", + "SendTitle": "【深圳市元创时代】-产品入库通知", + "SenderEmail": "info@f2b211.com", + "SenderEmailPwd": "K4h6GgxZYGMYV1Bb" + }, + "SmsOptions": { + "AccessKeyId": "LTAI5tBJg6KeDV2V1NiS7Ngi",//短信配置 + "AccessKeySecret": "MAC8bMovSFyCgRQGkfhVcL1jvLJ8cP", + "SignName": "深圳市元创时代", + "TemplateCode": "SMS_465408787" + } +} diff --git a/src/WMS.Web.Api/appsettings.json b/src/WMS.Web.Api/appsettings.json index 9492cb15..5820f5ea 100644 --- a/src/WMS.Web.Api/appsettings.json +++ b/src/WMS.Web.Api/appsettings.json @@ -17,8 +17,10 @@ "AllowedHosts": "*", //允许所有主机 "AllowedCores": "localhost,http://localhost:8080,http://192.168.1.188:8080", //跨域 "AppOptions": { - "DBConnectionString": "Server=192.168.7.103; Database=wms_db;User Id=root;password=L8mrCGbPisAa6GNh;port=3306;CharSet=gb2312;Connect Timeout=150;", //数据库连接地址 - "RedisConnectionString": "47.110.156.96:16379,password=123456,DefaultDatabase=2", //redis连接地址 + "DBConnectionString": "Server=rm-wz9215skklas0287pwo.mysql.rds.aliyuncs.com; Database=test_wmsdb;User Id=orico_erp;password=Orico2023;port=3306;CharSet=gb2312;Connect Timeout=150;", //测试数据库连接地址 + // "DBConnectionString": "Server=rm-wz9215skklas0287pwo.mysql.rds.aliyuncs.com; Database=wms_db;User Id=orico_erp;password=Orico2023;port=3306;CharSet=gb2312;Connect Timeout=150;", //正式数据库连接地址 + "RedisConnectionString": "47.106.232.90:6379,password=orico.2020,DefaultDatabase=3", //测试redis连接地址 + //"RedisConnectionString": "47.106.232.90:6379,password=orico.2020,DefaultDatabase=2", //正式redis连接地址 "RedisIpRateLimitingConnectionString": "47.110.156.96:16379,password=123456,DefaultDatabase=2", //redis连接地址 "SingleBaseUrl": "http://127.0.0.1:8066/api", //单点服务连接地址 "DBType": "Mysql", //数据库类型 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml index 97e96d4b..5c3b66ec 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml @@ -869,7 +869,7 @@ - 同步金蝶 + 同步金蝶2 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 4f9e603a..6bb2b1ca 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -3565,6 +3565,9 @@ 根据箱Ids查询集合 + + 根据生成记录id查询序列码 + 修改实体集合 @@ -5644,6 +5647,14 @@ + + + 同步:生产入库单据 + + + + + 同步:其他入库单 @@ -6229,6 +6240,13 @@ + + + erp:单据查询-生产入单,生产汇报单(已审核的) + + + + erp:单据查询-组装拆卸单-组装(成品入库) @@ -7194,6 +7212,11 @@ 即时库存 + + + 生产入库单(来源于生产汇报单) + + 文件导出状态 @@ -7344,6 +7367,11 @@ 组装拆卸入库 + + + 生产入库 + + 出入库存-方式 diff --git a/src/WMS.Web.Domain/Entitys/SerialNumbers.cs b/src/WMS.Web.Domain/Entitys/SerialNumbers.cs index a5dabe38..245f1f13 100644 --- a/src/WMS.Web.Domain/Entitys/SerialNumbers.cs +++ b/src/WMS.Web.Domain/Entitys/SerialNumbers.cs @@ -102,6 +102,11 @@ namespace WMS.Web.Domain.Entitys /// [Column("IsActivate")] public bool? IsActivate { get; set; } = false; + ///// + ///// 产生第二个 + ///// + //[Column("TwoSerialNumber")] + //public string? TwoSerialNumber { get; set; } = string.Empty; /// /// 操作(绑定箱信息) diff --git a/src/WMS.Web.Domain/IService/Public/IErpService.cs b/src/WMS.Web.Domain/IService/Public/IErpService.cs index b52997c7..26bd6448 100644 --- a/src/WMS.Web.Domain/IService/Public/IErpService.cs +++ b/src/WMS.Web.Domain/IService/Public/IErpService.cs @@ -75,6 +75,10 @@ namespace WMS.Web.Domain.IService.Public /// Task> BillQueryForAssembledApp_Disassembly(List sourceBillNos = null, DateTime? beginTime = null, bool isCheck = true); + + Task> BillQueryForProduceSotckin(List sourceBillNos = null, DateTime? beginTime = null, bool isCheck = true); + + /// /// erp:单据查询-出库单 /// diff --git a/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs b/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs index 6362769a..888f685a 100644 --- a/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs @@ -30,6 +30,10 @@ namespace WMS.Web.Domain.Infrastructure Task> GetEntityListByBoxId(int boxId); /// 根据箱Ids查询集合 Task> GetEntityListByBoxIds(List boxIds); + + /// 根据生成记录id查询序列码 + Task> GetEntityListBySuitNumber(string suitNumber); + /// 修改实体集合 Task EditEntityList(List entitys, bool isTransaction = true); //批量删除 diff --git a/src/WMS.Web.Domain/Services/BoxService.cs b/src/WMS.Web.Domain/Services/BoxService.cs index 291aa633..604e33e8 100644 --- a/src/WMS.Web.Domain/Services/BoxService.cs +++ b/src/WMS.Web.Domain/Services/BoxService.cs @@ -103,7 +103,14 @@ namespace WMS.Web.Domain.Services var opsSerial = list.FirstOrDefault(f => f.OpsBoxId == b.OpsBoxId).Details .SelectMany(s => s.SerialNumbers) .FirstOrDefault(s => s.SerialNumber.Equals(sn.SerialNumber)); - //序列号 + ////序列号 + //var serialList = await _serialNumbersRepositories.GetEntityListBySuitNumber(sn.SerialNumber); + + //for (int i = 0; i < serialList.Count; i++) + //{ + //SerialNumbers s = new SerialNumbers(serialList[i].SerialNumber, detail.MaterialNumber, b.Id, b.OpsBoxId, opsSerial.BarCereateUser, opsSerial.BarCreateTime, b.CompleteCartonTime); + //sList.Add(s); + SerialNumbers s = new SerialNumbers(sn.SerialNumber, detail.MaterialNumber, b.Id, b.OpsBoxId, opsSerial.BarCereateUser, opsSerial.BarCreateTime, b.CompleteCartonTime); sList.Add(s); //序列号记录(序列号生成) @@ -113,6 +120,15 @@ namespace WMS.Web.Domain.Services SerialNumberOperate so_g = new SerialNumberOperate(); so_g.CompleteCartonBox(sn.SerialNumber, detail.MaterialNumber, b); soList.Add(so_g); + + ////序列号记录(序列号生成) + //SerialNumberOperate so = new SerialNumberOperate(serialList[i].SerialNumber, SerialNumberOperateType.Generate, detail.MaterialNumber, opsSerial.BarCereateUser, "", b.SupplierId, b.OrgId, null, opsSerial.BarCreateTime); + //soList.Add(so); + ////序列号记录(装箱) + //SerialNumberOperate so_g = new SerialNumberOperate(); + //so_g.CompleteCartonBox(serialList[i].SerialNumber, detail.MaterialNumber, b); + //soList.Add(so_g); + //} } } #endregion diff --git a/src/WMS.Web.Domain/Services/InStockTaskService.cs b/src/WMS.Web.Domain/Services/InStockTaskService.cs index fb052fb3..bfec6de0 100644 --- a/src/WMS.Web.Domain/Services/InStockTaskService.cs +++ b/src/WMS.Web.Domain/Services/InStockTaskService.cs @@ -124,6 +124,25 @@ namespace WMS.Web.Domain.Services return await this.SysnDataNew(erp_list.ToList(), isTransaction); } + + /// + /// 同步:生产入库单据 + /// + /// + /// + /// + public async Task SsynProduceSotck(List billNos = null, bool isTransaction = true, DateTime? beginTime = null) + { + //1.获取金蝶数据:生产入库数据 + var erp_result = await _erpService.BillQueryForProduceSotckin(billNos, beginTime); + if (!erp_result.IsSuccess) + return Result.ReFailure(erp_result.Message, erp_result.Status); + var erp_list = erp_result.Data; + + return await this.SysnDataNew(erp_list.ToList(), isTransaction); + } + + /// /// 同步:其他入库单 /// @@ -240,6 +259,13 @@ namespace WMS.Web.Domain.Services { var beginTime = DateTime.Now.AddHours(-262);//默认拉去8小时以内的数据,ALTER BY YZH + //6.同步数据:生产入库单 + var ProduceSotck_result = await this.SsynProduceSotck(null, isTransaction, beginTime); + if (!ProduceSotck_result.IsSuccess) + return Result.ReFailure(ProduceSotck_result.Message, ProduceSotck_result.Status); + + + //1.同步数据:采购订单 var purchase_result = await this.SsynPurchaseInStock(null, isTransaction, beginTime); if (!purchase_result.IsSuccess) @@ -755,6 +781,7 @@ namespace WMS.Web.Domain.Services List TransferDirect_sourceBillNos = new List(); List Transferin_sourceBillNos = new List(); List AssembledApp_sourceBillNos = new List(); + List ProduceSotck_sourceBillNos = new List();//生产入库 foreach (var entity in list) { @@ -768,6 +795,16 @@ namespace WMS.Web.Domain.Services AssembledApp_sourceBillNos.Add(entity.SourceBillNo); else if (entity.Type == InstockType.Miscellaneous) Miscellaneous_sourceBillNos.Add(entity.SourceBillNo); + else if (entity.Type == InstockType.ProduceSotck) + ProduceSotck_sourceBillNos.Add(entity.SourceBillNo); + } + + if (ProduceSotck_sourceBillNos.Count() > 0)//生产入库 + { + var erp_result = await _erpService.BillQueryForProduceSotckin(ProduceSotck_sourceBillNos, null); + if (!erp_result.IsSuccess) + return Result>.ReFailure(erp_result.Message, erp_result.Status); + erp_list.AddRange(erp_result.Data); } if (Instock_sourceBillNos.Count() > 0) @@ -812,6 +849,8 @@ namespace WMS.Web.Domain.Services erp_list.AddRange(erp_result_disass.Data); } + + return Result>.ReSuccess(erp_list); } } diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index ff74c7f6..92321ba2 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -620,6 +620,124 @@ namespace WMS.Web.Domain.Services.Public } } + + /// + /// erp:单据查询-生产入单,生产汇报单(已审核的) + /// + /// + /// + public async Task> BillQueryForProduceSotckin(List sourceBillNos = null, DateTime? beginTime = null, bool isCheck = true) + { + string result_json = ""; + try + { + + var stocks = await _basicsRepositories.GetUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), "", _appOptions.CompanyId); + if (stocks.Count == 0) + return ResultList.ReFailure(ResultCodes.ErpStockNoData); + var stocks_codes = string.Join(",", stocks.Select(x => $"'{x.Code}'")); + var stocks_orgs = string.Join(",", stocks.Select(x => $"'{x.ErpOrgCode}'")); + + //1.先登录金蝶-拿到token + var token_result = await this.Init(); + if (!token_result.IsSuccess) + return ResultList.ReFailure(token_result); + + //2.时间条件:可能还有其它条件 + //var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00"); + var beginStr = DateTime.Now.AddDays(-3).ToString("yyyy-MM-dd HH:mm:ss"); + if (beginTime != null) beginStr = beginTime?.ToString("yyyy-MM-dd HH:mm:ss"); + var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + //3.获取金蝶分步式入库订单:拼接参数和条件 + var query = new ErpBillQueryDto(token_result.Data); + var param = new ErpBillQueryParamDto(FormIdParam.PRD_MORPT.ToString()); + param.FieldKeys = "FBillNo,FReqBillNo,FPrdOrgId,FPrdOrgId.FNumber,FMATERIALID.FNumber,FSpecification,FMaterialName,FSTOCKID,FSTOCKID.FNumber,FQuaQty,FCreateDate,FDescriptionE,FEntity_FEntryID"; + param.Limit = 10000; + //查询条件:备注其中的条件值以金蝶的值为准!!! + //1.创建时间在两天前和当天时间之间 + //2.审核状态:已审核 + //3.单据类型:标准分步式调入单;这里要注意了-----------测试端的“单据类型ID”和线上的可能不一样;上线的时候要核对下 + //5.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步 + //当金蝶系统物料明细行调出仓库和调入仓库相同, 数据不需要拉取 + //param.FilterString = " FDocumentStatus='C' and FBillTypeID='e65a4f29743a44b7b67dc8145e1f9c92'"; + param.FilterString = " 1=1"; + if (isCheck) param.FilterString += " and FDocumentStatus='C'"; + //param.FilterString += " and FSrcStockId!=FDestStockId"; + for (int i = 0; i < stocks.Count(); i++) + { + if (i == 0) + { + param.FilterString += " and ("; + param.FilterString += $"(FSTOCKID.FNumber='{stocks[i].Code}' and FPrdOrgId.FNumber='{stocks[i].ErpOrgCode}')"; + // param.FilterString += $"( FPrdOrgId.FNumber='{stocks[i].ErpOrgCode}')"; + } + else + param.FilterString += $" or (FSTOCKID.FNumber='{stocks[i].Code}' and FPrdOrgId.FNumber='{stocks[i].ErpOrgCode}')"; + if (i == stocks.Count() - 1) param.FilterString += ")"; + + } + + //根据原订单号查询 + if (sourceBillNos != null && sourceBillNos.Count() > 0) + { + param.FilterString = param.FilterString + " and FBillNo in ("; + + var bill_str = ""; + int bill_index = 0; + //var srt_b = JsonConvert.SerializeObject(sourceBillNos); + foreach (var bill in sourceBillNos) + { + bill_index++; + if (bill_index == sourceBillNos.Count) + bill_str = bill_str + $"'{bill}'"; + else + bill_str = bill_str + $"'{bill}'" + ","; + } + param.FilterString = param.FilterString + bill_str + ")"; + }//注意:当有单据编号的查询的时候,时间条件去掉;不然就查不到数据了 + else + { + //param.FilterString = param.FilterString + " and FCreateDate>='" + beginTime + "' and FCreateDate<='" + endTime + "'"; + param.FilterString = param.FilterString + " and FApproveDate>='" + beginStr + "' and FApproveDate<='" + endTime + "'"; + } + + query.Data = JsonConvert.SerializeObject(param); + var json = JsonConvert.SerializeObject(query); + + //4.请求查询接口 + result_json = await _client.ExecuteBillQueryAsync(json); + var result = JsonConvert.DeserializeObject>>(result_json); + + //5.返回数据的组装 + var erp_list = new List(); + foreach (var item in result) + { + var lis = new ErpInStockResultDto(); + lis.BillNo = item[0]; + lis.OrgId = Convert.ToInt32(item[2]); + lis.MaterialNumber = item[4]; + lis.StockId = Convert.ToInt32(item[7]); + lis.StockCode = item[8]; + lis.Qty = Convert.ToDecimal(item[9]); + lis.CreateTime = Convert.ToDateTime(item[10]); + lis.Remark = item[11]; + lis.OrgCode = item[3]; + lis.ErpDetailId = Convert.ToInt32(item[12]); + lis.Type = (int)InstockType.ProduceSotck; + lis.SaleBillNo= item[1]; + erp_list.Add(lis); + } + //_logger.LogInformation("分步式调入条数:" + erp_list.Count); + return ResultList.ReSuccess(erp_list); + } + catch (Exception ex) + { + _logger.LogError($"BillQueryForTransferin->拉取金蝶数据失败yzh:{ex.Message} 返回json:{result_json}"); + return ResultList.ReFailure(ResultCodes.Erp_BillQuery_Error); + } + } + + /// /// erp:单据查询-组装拆卸单-组装(成品入库) /// @@ -2469,6 +2587,8 @@ namespace WMS.Web.Domain.Services.Public return ResultList.ReFailure(ResultCodes.Erp_BillQuery_Error); } } + + /// /// 销售出库单 /// diff --git a/src/WMS.Web.Domain/Values/Erp/FormIdParam.cs b/src/WMS.Web.Domain/Values/Erp/FormIdParam.cs index 8d433a36..c8166429 100644 --- a/src/WMS.Web.Domain/Values/Erp/FormIdParam.cs +++ b/src/WMS.Web.Domain/Values/Erp/FormIdParam.cs @@ -80,6 +80,11 @@ namespace WMS.Web.Domain.Values.Erp /// /// 即时库存 /// - STK_Inventory = 18 + STK_Inventory = 18, + /// + /// 生产入库单(来源于生产汇报单) + /// + PRD_MORPT = 19, + } } diff --git a/src/WMS.Web.Domain/Values/InstockType.cs b/src/WMS.Web.Domain/Values/InstockType.cs index 6cf83926..65a6f4b0 100644 --- a/src/WMS.Web.Domain/Values/InstockType.cs +++ b/src/WMS.Web.Domain/Values/InstockType.cs @@ -35,5 +35,10 @@ namespace WMS.Web.Domain.Values /// [EnumRemark("组装拆卸入库")] Assembled = 5, + /// + /// 生产入库 + /// + [EnumRemark("生产入库")] + ProduceSotck = 6, } } diff --git a/src/WMS.Web.Repositories/DependencyInjection/ErrorHandlingMiddleware.cs b/src/WMS.Web.Repositories/DependencyInjection/ErrorHandlingMiddleware.cs index dfab979b..5f9859f0 100644 --- a/src/WMS.Web.Repositories/DependencyInjection/ErrorHandlingMiddleware.cs +++ b/src/WMS.Web.Repositories/DependencyInjection/ErrorHandlingMiddleware.cs @@ -51,7 +51,7 @@ namespace WMS.Web.Repositories.DependencyInjection _logger.LogError($"统一拦截异常处理: {ex.Message}, StackTrace:{ex.StackTrace},Path:{context.Request.Path},Parame:{bodyStr}"); - await HandleExceptionAsync(context, statusCode, "服务器错误,不能执行此请求,请稍后重试,若问题一直存在,请与站点管理员联系"); + await HandleExceptionAsync(context, statusCode, "服务器错误,不能执行此请求,请稍后重试,若问题一直存在,请与站点管理员联系500"); // await HandleExceptionAsync(context, statusCode, "服务器错误"); } finally @@ -63,8 +63,8 @@ namespace WMS.Web.Repositories.DependencyInjection // msg = "未授权"; // } if (statusCode == 404) - msg = "服务器暂无响应,请稍后重试,若问题一直存在,请与站点管理员联系"; - else if (statusCode == 502) msg = "网关出错,请与站点管理员联系"; + msg = "服务器暂无响应,请稍后重试,若问题一直存在,请与站点管理员联系404"; + else if (statusCode == 502) msg = "网关出错,请与站点管理员联系502"; // else if (statusCode != 200) // { // msg = "未知错误"; diff --git a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs index 40192e5d..eaecdb08 100644 --- a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs +++ b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs @@ -219,6 +219,40 @@ namespace WMS.Web.Repositories return res_c; } + /// + /// 根据套装码获取序列码 + /// + /// + /// + public async Task> GetEntityListBySuitNumber(string suitNumber) + { + + return await _context.SerialNumbers.AsNoTracking() + .Where(f => f.SerialNumber.Contains(suitNumber)) + .ToListAsync(); + + //var res = await _context.SerialNumbers + // .Where(f => serialNumbers.Contains(f.SerialNumber)) + // .ToListAsync(); + //var res_c = res.Clone(); + + //var s_e = res.Select(s => s.SerialNumber).ToList(); + ////在序列表里没找到的序列码 则到老ops序列码数据里去处理 list比较 取差集 + //var s_c = serialNumbers.Except(s_e); + //if (s_c.Count() > 0) + //{ + // var entitys_ops = serialNumbers.Where(w => s_c.Contains(w)).ToList(); + // var r_o = await _context.SerialNumbers_Ops + // .Where(f => serialNumbers.Contains(f.SerialNumber)) + // .ToListAsync(); + + // res_c.AddRange(_mapper.Map>(r_o.Clone())); + //} + + //return res_c; + } + + /// /// 根据序列号 ///