wangxinhui
2025-08-28 637e23e7df2eb7e9e3dc630f3cf4e212017c7e18
更新最新代码
已修改27个文件
已删除53个文件
已添加3个文件
5881 ■■■■ 文件已修改
项目代码/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WCSServices/WIDESEAWCS_Server/appsettings.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService_Operate.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/原料库/ConveyorLineJob_YL1ndFloor.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/ConveyorLineJob_CPA.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/ConveyorLineJob_CPB.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/RGVJob_CP.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/StackerCraneJob_CP.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/码垛/MDJob_CP.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_BasicService/Base/MaterielInfoService.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_Common/APIEnum/APIEnum.cs 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_Common/CommonEnum/RecyclingEnum.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/Basic/BSTMaterialDTO.cs 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/Basic/CachePointGroupDTO.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/Basic/InnerCodeDTO.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/Basic/ProSerNumAnalysisModel.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/ERP/ErpInOrderDTO.cs 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/ERP/ErpOutOrderDTO.cs 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/ERP/ErpOutProSyncResponseContent.cs 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/ERP/ErpProInErpStaticResponseContent.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/ERP/ErpProOutLingOrder.cs 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/ERP/ErpProOutOrderDTO.cs 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/ERP/ErpProductScrappedOrderDTO.cs 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/ERP/ErpProductSpecifyVerDTO.cs 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/ERP/ErpProductTransferOrderDTO.cs 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/ERP/ErpProductWarehousingOrderDTO.cs 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/ERP/ErpReturnOrderDTO.cs 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/ERP/ErpSaleCustomResponseContent.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/ERP/MaterielInfoDTO.cs 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/ERP/PurchaseOrderModel.cs 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/ERP/Root.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/ERP/UserInfoDTO.cs 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/Inbound/InboundOrderGetDTO.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/Inbound/MaterielGroupDTO.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/Inbound/ProInStaticDTO.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/MES/MESRoot.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/MES/MesBagInfoModel.cs 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/MES/MesMaterialLotaAceptModel.cs 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/MES/MesProductOutBound.cs 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/MES/MesShipmentOrderSync.cs 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/MES/MesSolderModel.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/MES/PPSubsectionModel.cs 194 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/MES/RworkTaskModel.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/MES/SubstrateModel.cs 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/MES/TestToolModel.cs 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/Outbound/OutProInfoDTO.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/Outbound/OutboundOrderAddDTO.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/Outbound/OutboundOrderDetailAddDTO.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/Outbound/OutboundOrderGetDTO.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/Stock/StockSelectViewDTO.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/Stock/StockViewDTO.cs 167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_DTO/WIDESEA_DTO.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_External/ERPService/InvokeERPService.cs 274 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_External/IERPService/IInvokeERPService.cs 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_External/Model/ERPCheckModel.cs 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_External/Model/ERPInboundModel.cs 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_External/Model/ERPIssueModel.cs 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_External/Model/ERPMaintainIssueModel.cs 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_External/Model/ERPMaterialSaleReturnModel.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_External/Model/ERPOutboundModel.cs 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_External/Model/ERPProInboundModel.cs 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_External/Model/ERPProOutOrderModel.cs 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_External/Model/ERPProStockCheckModel.cs 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_External/Model/ERPProductCheckModel.cs 187 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_External/Model/ERPReceiveModel.cs 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_External/Model/ERPReturnModel.cs 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_External/Model/ERPScrapSheetModel.cs 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_External/Model/ERPTakeStockModel.cs 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_MaterielInfo.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/AssignInboundTaskLocation_BC.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/MesProductService.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/MesSolderService.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_WMSServer/Controllers/ERP/ErpController.cs 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_WMSServer/Controllers/LargeScreen/LargeController.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_WMSServer/Controllers/MES/MesController.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WMSServices/WIDESEA_WMSServer/Filter/CustomProfile.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/接口协议/一期BSTERP需求字段.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/接口协议/博思通ERPJSON数据解析.txt 726 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/接口协议/博斯通利拓接口.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/通信协议/成品输送线通讯协议_20250707.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs
@@ -68,7 +68,7 @@
                    }
                    else//出库放货请求
                    {
                        var content = PutRequest(secureApplyModel.WbCode, task.PalletType);
                        var content = PutRequest(task.NextAddress, task.PalletType);
                        if (!content.Status)
                        {
                            throw new Exception(content.Message);
@@ -87,7 +87,7 @@
                    }
                    else//入库放货请求
                    {
                        var content = PutRequest(secureApplyModel.WbCode, task.TaskNum);
                        var content = PutRequest(task.NextAddress, task.TaskNum);
                        if (!content.Status)
                        {
                            throw new Exception(content.Message);
@@ -315,7 +315,7 @@
            WebResponseContent content = new WebResponseContent();
            try
            {
                Dt_StationManger stationManger = _stationMangerRepository.QueryFirst(x => x.AGVStationCode == code);
                Dt_StationManger stationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == code);
                if (stationManger == null)
                {
                    return content.Error($"未找到站台配置");
ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_Server/appsettings.json
@@ -14,10 +14,10 @@
  //连接字符串
  //"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=",
  //"ConnectionString": "Data Source=.;Initial Catalog=WIDESEA_WCSLLD;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_WCSLLD;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_WCSLLD;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
  //"ConnectionString": "Data Source=192.168.35.3;Initial Catalog=TestWCS_TC;User ID=sa;Password=Sa123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
  //"ConnectionString": "Data Source=10.30.4.92;Initial Catalog=TESTWCSCP_WCS;User ID=sa;Password=duo123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
  "WMSConnectionStrings": "Data Source=.;Initial Catalog=WIDESEA_WMSLLD;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
  "WMSConnectionStrings": "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",
  //"WMSConnectionStrings": "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",
  //"WMSConnectionStrings": "Data Source=10.30.4.92;Initial Catalog=WIDESEAWMS_HUAIAN;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
  //跨域
ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService_Operate.cs
@@ -99,11 +99,11 @@
            BaseDal.UpdateData(task);
            //同步到WMS
            string address = AppSettings.Get("WMSApiAddress");
            if (!string.IsNullOrEmpty(address))
            {
                HttpHelper.Post($"{address}/api/Task/UpdateTaskInfo", task.Serialize());
            }
            //string address = AppSettings.Get("WMSApiAddress");
            //if (!string.IsNullOrEmpty(address))
            //{
            //    HttpHelper.Post($"{address}/api/Task/UpdateTaskInfo", task.Serialize());
            //}
            _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskNum, stringBuilder.ToString());
        }
    }
ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_Tasks/Ô­ÁÏ¿â/ConveyorLineJob_YL1ndFloor.cs
@@ -67,10 +67,9 @@
            if (flag && value != null)
            {
                OtherDevice device = (OtherDevice)value;
                //获取所有协议的输送线站台
                List<string> deviceStations = device.DeviceProDTOs.Select(x => x.DeviceChildCode).ToList();
                //获取有协议的输送线-z
                List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StationDeviceCode == device.DeviceCode);
                //让每个输送线启动-z
                foreach (var item in stationMangers.Where(x => deviceStations.Contains(x.StationCode)))
                {
                    DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode && x.DeviceProParamType == nameof(WR_CLineYLDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_Tasks/³ÉÆ·²Ö/ConveyorLineJob_CPA.cs
@@ -83,7 +83,7 @@
                            if (task != null)
                            {
                                //分配货位
                                string? local = _taskService.RequestAssignLocation(task.TaskNum, task.Roadway);
                                string? local = "SC01_CP-002-064-008-01";
                                if (!string.IsNullOrEmpty(local))
                                {
                                    task.CurrentAddress = item.StackerCraneStationCode;
ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_Tasks/³ÉÆ·²Ö/ConveyorLineJob_CPB.cs
@@ -84,10 +84,10 @@
                            if (task != null)
                            {
                                //分配巷道 å­˜å…¥æ‰˜ç›˜æ•°æ®
                                string roadWay = _taskService.AssignCPRoadwayNo().Data.ToString();
                                if (!string.IsNullOrEmpty(roadWay))
                                {
                                    List<Dt_Router> routers = _routerService.QueryNextRoutes(item.StationCode, roadWay, task.TaskType);
                                //string roadWay = _taskService.AssignCPRoadwayNo().Data.ToString();
                                //if (!string.IsNullOrEmpty(roadWay))
                                //{
                                    List<Dt_Router> routers = _routerService.QueryNextRoutes(item.StationCode, "SC01_CP", task.TaskType);
                                    Dt_Router? router = routers.FirstOrDefault();
                                    if (routers == null || routers.Count == 0 || router == null)
                                    {
@@ -105,11 +105,11 @@
                                    task.CurrentAddress = item.StationCode;
                                    task.NextAddress = router.NextPosi;
                                    task.PalletCode = DateTime.Now.ToString("yyMMddHHmmss");//todo临时
                                    task.Roadway = roadWay;
                                    task.Roadway = "SC01_CP";
                                    task.DeviceCode = router.ChildPosiDeviceCode;
                                    _taskService.UpdateTask(task, TaskStatusEnum.Line_Executing);
                                    WriteInfo(item.StationName, $"任务号{conveyorLineInfoRead.TaskNo}下一步");
                                }
                                //}
                            }
                        }
                    }
ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_Tasks/³ÉÆ·²Ö/RGVJob_CP.cs
@@ -71,11 +71,14 @@
                DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == device.DeviceCode && x.DeviceProParamType == nameof(R_RgvCPDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
                DeviceProDTO? deviceProWrite = device.DeviceProDTOs.Where(x => x.DeviceChildCode == device.DeviceCode && x.DeviceProParamType == nameof(W_RgvCPDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
                Console.WriteLine(DateTime.Now.ToString("yyyy-mm-ddd HH:mm:ss"));
                if (deviceProRead != null && deviceProWrite != null)
                {
                    R_RGVCPInfo rgvInfoRead = device.Communicator.ReadCustomer<R_RGVCPInfo>(deviceProRead.DeviceProAddress);
                    W_RGVCPInfo rgvInfoWrite = device.Communicator.ReadCustomer<W_RGVCPInfo>(deviceProWrite.DeviceProAddress);
                    if (rgvInfoRead==null || rgvInfoWrite==null)
                    {
                        return Task.CompletedTask;
                    }
                    if ((rgvInfoRead.Mode == 5 || rgvInfoRead.Mode == 4) && rgvInfoRead.State == 0 && rgvInfoRead.TaskDone==1)
                    {
                        //获取任务 æ˜¯å¦æœ‰RGV执行的任务
ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_Tasks/³ÉÆ·²Ö/StackerCraneJob_CP.cs
@@ -249,12 +249,18 @@
                if (device != null)
                {
                    OtherDevice client = (OtherDevice)device;
                    if (client.GetValue<R_ConveyorLineCPDB, short>(R_ConveyorLineCPDB.Command, stationManger.StationCode)==3)//出库站台未被占用
                    short command = client.GetValue<R_ConveyorLineCPDB, short>(R_ConveyorLineCPDB.Command, stationManger.StationCode);
                    if (command==3)//出库站台未被占用
                    {
                        task.NextAddress = stationManger.StackerCraneStationCode;
                        _taskRepository.UpdateData(task);
                        return task;
                    }
                    else
                    {
                        task.ExceptionMessage = "出库站台无法下发";
                        _taskRepository.UpdateData(task);
                    }
                }
                else
                {
ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_Tasks/Âë¶â/MDJob_CP.cs
@@ -92,11 +92,19 @@
                            Thread.Sleep(500);
                            device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDReceiveDone.ToString()).DeviceProDataBlock, 0);
                        }
                        if (R_MDQtys2==18)
                        {
                            device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDSend2.ToString()).DeviceProDataBlock, 2);
                        }
                        if (R_MDStatus2 == 2)
                        {
                            device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDSend2.ToString()).DeviceProDataBlock, 0);
                        }
                        //获取当前任务
                        Dt_Task task = _taskRepository.QueryData(x => x.NextAddress == item.StationCode && _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.MD_Executing.ObjToInt() && x.DeviceCode == device.DeviceCode).OrderBy(x=>x.TaskNum).First();
                        if (task!=null) //码垛申请
                        {
                            if ((Allow==3 || Allow == 7)&& item.StackerCraneStationCode == "1")
                            if ((Allow==3 || Allow == 7))
                            {
                                if ( R_MDQtys1 / 6 ==1)
                                {
@@ -110,39 +118,46 @@
                                {
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDZ.ToString()).DeviceProDataBlock, 0);
                                }
                                device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x=>x.DeviceProParamName== W_MDDB.W_MDSend1.ToString()).DeviceProDataBlock,1);
                                device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDSendID.ToString()).DeviceProDataBlock, 1);
                                if (item.StackerCraneStationCode == "1")
                                {
                                    device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDSend1.ToString()).DeviceProDataBlock, 1);
                                }
                                else if (item.StackerCraneStationCode == "2")
                                {
                                    device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDSend2.ToString()).DeviceProDataBlock, 1);
                                }
                                device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDSendID.ToString()).DeviceProDataBlock, Convert.ToInt16(item.StackerCraneStationCode));
                                if (R_MDQtys1 % 6==0)
                                {
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDX.ToString()).DeviceProDataBlock, 1675);
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDY.ToString()).DeviceProDataBlock, 1137);
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDX.ToString()).DeviceProDataBlock, 1670);
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDY.ToString()).DeviceProDataBlock, -1140);
                                }
                                else if (R_MDQtys1 % 6 == 1)
                                {
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDX.ToString()).DeviceProDataBlock, 1675);
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDY.ToString()).DeviceProDataBlock, 1462);
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDX.ToString()).DeviceProDataBlock, 1670);
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDY.ToString()).DeviceProDataBlock, -1480);
                                }
                                else if (R_MDQtys1 % 6 == 2)
                                {
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDX.ToString()).DeviceProDataBlock, 1675);
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDY.ToString()).DeviceProDataBlock, 1787);
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDX.ToString()).DeviceProDataBlock, 1670);
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDY.ToString()).DeviceProDataBlock, -1820);
                                }
                                else if (R_MDQtys1 % 6 == 3)
                                {
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDX.ToString()).DeviceProDataBlock, 1250);
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDY.ToString()).DeviceProDataBlock, 1137);
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDX.ToString()).DeviceProDataBlock, 1243);
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDY.ToString()).DeviceProDataBlock, -1140);
                                }
                                else if (R_MDQtys1 % 6 == 4)
                                {
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDX.ToString()).DeviceProDataBlock, 1250);
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDY.ToString()).DeviceProDataBlock, 1462);
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDX.ToString()).DeviceProDataBlock, 1243);
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDY.ToString()).DeviceProDataBlock, -1480);
                                }
                                else if (R_MDQtys1 % 6 == 5)
                                {
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDX.ToString()).DeviceProDataBlock, 1250);
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDY.ToString()).DeviceProDataBlock, 1787);
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDX.ToString()).DeviceProDataBlock, 1243);
                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDY.ToString()).DeviceProDataBlock, -1820);
                                }
                                device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDA.ToString()).DeviceProDataBlock, 1);
                                device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDA.ToString()).DeviceProDataBlock, item.StackerCraneStationCode.ObjToInt());
                                device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDReceiveDone.ToString()).DeviceProDataBlock, 3);
                                //更新任务信息
                                //_taskService.TaskCompleted(task.TaskNum);
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_BasicService/Base/MaterielInfoService.cs
@@ -15,12 +15,29 @@
    {
        private readonly IBasicRepository _basicRepository;
        public IMaterielInfoRepository Repository => BaseDal;
        public MaterielInfoService(IMaterielInfoRepository BaseDal, IBasicRepository basicRepository) : base(BaseDal)
        {
            _basicRepository = basicRepository;
        }
        /// <summary>
        /// æ·»åŠ è€åŽ‚ç‰©æ–™ä¿¡æ¯
        /// </summary>
        /// <returns></returns>
        public WebResponseContent AddMaterial()
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
        public IMaterielInfoRepository Repository => BaseDal;
            }
            catch (Exception ex)
            {
                content.Error(ex.Message);
            }
            return content;
        }
    }
}
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_Common/APIEnum/APIEnum.cs
@@ -8,65 +8,10 @@
namespace WIDESEA_Common.APIEnum
{
    /// <summary>
    ///
    /// æŽ¥å£
    /// </summary>
    public enum APIEnum
    {
        /// <summary>
        /// AGV发送任务接口
        /// </summary>
        [Description("AGV发送任务接口")]
        AgvSendTask,
        /// <summary>
        /// AGV安全信号回复
        /// </summary>
        [Description("AGV安全信号回复")]
        AgvSecureReply,
        /// <summary>
        /// ERP接口调用
        /// </summary>
        [Description("ERP接口调用")]
        InvokeErpApi,
        /// <summary>
        /// ERP成品订单客户查询接口调用
        /// </summary>
        [Description("ERP成品订单客户查询接口调用")]
        InvokeErpSaleCustomApi,
        /// <summary>
        /// ERP成品出库订单出库库存查询接口调用
        /// </summary>
        [Description("ERP成品订单客户查询接口调用")]
        InvokeErpOutProErpSyncApi,
        /// <summary>
        /// ERP成品入库产品型号面积查询接口
        /// </summary>
        [Description("ERP成品入库产品型号面积查询接口")]
        InvokeProInErpStatic,
        /// <summary>
        /// MES同步测试架台账信息
        /// </summary>
        [Description("MES同步测试架台账信息")]
        WMS_MES_TestToolSync,
        /// <summary>
        /// MES同步板料出库
        /// </summary>
        [Description("MES同步板料出库")]
        WMS_MES_MaterialLotaAcept,
        /// <summary>
        /// MES接口获取批次信息ZH
        /// </summary>
        [Description("MES接口获取批次信息ZH")]
        WMS_MES_GetProductByLot,
        /// <summary>
        /// MES同步成品出库
        /// </summary>
        [Description("MES同步成品出库")]
        WMS_MES_ShipmentOrderSync,
        /// <summary>
        /// åº“存板出库
        /// </summary>
        [Description("库存板出库")]
        WMS_MES_ProductOutBound,
        /// <summary>
        /// å›žè°ƒWCS任务完成
        /// </summary>
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_Common/CommonEnum/RecyclingEnum.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/Basic/BSTMaterialDTO.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,95 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Core.Attributes;
namespace WIDESEA_DTO.Basic
{
    /// <summary>
    /// åšæ€é€šç‰©æ–™æŽ¥æ”¶å®žä½“
    /// </summary>
    [ModelValidate]
    public class BSTMaterialDTO
    {
        /// <summary>
        /// æ“ä½œç±»åž‹<br/>
        /// </summary>
        [PropertyValidate("操作类型", NotNullAndEmpty = true)]
        public int Way { get; set; }
        /// <summary>
        /// ç‰©æ–™å”¯ä¸€æ ‡è¯†ID<br/>
        /// </summary>
        [PropertyValidate("物料唯一标识ID", NotNullAndEmpty = true)]
        public int MaterialId { get; set; }
        /// <summary>
        /// ç‰©æ–™ç¼–号
        /// </summary>
        [PropertyValidate("物料编号", NotNullAndEmpty = true)]
        public string MaterialNo { get; set; }
        /// <summary>
        /// ç‰©æ–™åç§°
        /// </summary>
        [PropertyValidate("物料名称", NotNullAndEmpty = true)]
        public string Name { get; set; }
        /// <summary>
        /// ç‰©æ–™è§„æ ¼
        /// </summary>
        [PropertyValidate("物料规格", NotNullAndEmpty = false)]
        public string Spec { get; set; }
        /// <summary>
        /// ç‰©æ–™ç±»åž‹
        /// </summary>
        [PropertyValidate("物料类型", NotNullAndEmpty = true)]
        public int MaterielType { get; set; }
        /// <summary>
        /// è”系电话
        /// </summary>
        [PropertyValidate("联系电话", NotNullAndEmpty = true)]
        public string ContactNumber { get; set; }
        /// <summary>
        /// è”系地址
        /// </summary>
        [PropertyValidate("联系地址", NotNullAndEmpty = true)]
        public string ContactAddress { get; set; }
        /// <summary>
        /// ç”µå­é‚®ç®±
        /// </summary>
        [PropertyValidate("电子邮箱", NotNullAndEmpty = true)]
        public string Email { get; set; }
        /// <summary>
        /// æè¿°
        /// </summary>
        [PropertyValidate("描述", NotNullAndEmpty = true)]
        public string Description { get; set; }
        /// <summary>
        /// çŠ¶æ€
        /// </summary>
        [PropertyValidate("状态", NotNullAndEmpty = true)]
        public int State { get; set; }
        /// <summary>
        /// åº“存组织
        /// </summary>
        [PropertyValidate("库存组织", NotNullAndEmpty = true)]
        public string InvOrgId { get; set; }
        /// <summary>
        /// æ“ä½œç±»åž‹
        /// </summary>
        [PropertyValidate("操作类型", NotNullAndEmpty = true, Check = new object[] { 0, 1, 2 })]
        public string OperateType { get; set; }
    }
}
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/Basic/CachePointGroupDTO.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/Basic/InnerCodeDTO.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/Basic/ProSerNumAnalysisModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/ERP/ErpInOrderDTO.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/ERP/ErpOutOrderDTO.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/ERP/ErpOutProSyncResponseContent.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/ERP/ErpProInErpStaticResponseContent.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/ERP/ErpProOutLingOrder.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/ERP/ErpProOutOrderDTO.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/ERP/ErpProductScrappedOrderDTO.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/ERP/ErpProductSpecifyVerDTO.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/ERP/ErpProductTransferOrderDTO.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/ERP/ErpProductWarehousingOrderDTO.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/ERP/ErpReturnOrderDTO.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/ERP/ErpSaleCustomResponseContent.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/ERP/MaterielInfoDTO.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/ERP/PurchaseOrderModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/ERP/Root.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/ERP/UserInfoDTO.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/Inbound/InboundOrderGetDTO.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/Inbound/MaterielGroupDTO.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/Inbound/ProInStaticDTO.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/MES/MESRoot.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/MES/MesBagInfoModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/MES/MesMaterialLotaAceptModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/MES/MesProductOutBound.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/MES/MesShipmentOrderSync.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/MES/MesSolderModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/MES/PPSubsectionModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/MES/RworkTaskModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/MES/SubstrateModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/MES/TestToolModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/Outbound/OutProInfoDTO.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/Outbound/OutboundOrderAddDTO.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/Outbound/OutboundOrderDetailAddDTO.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/Outbound/OutboundOrderGetDTO.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/Stock/StockSelectViewDTO.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/Stock/StockViewDTO.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/WIDESEA_DTO.csproj
@@ -11,4 +11,8 @@
        <ProjectReference Include="..\WIDESEA_Model\WIDESEA_Model.csproj" />
    </ItemGroup>
    <ItemGroup>
      <Folder Include="Outbound\" />
    </ItemGroup>
</Project>
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_External/ERPService/InvokeERPService.cs
@@ -28,279 +28,5 @@
        {
            ContractResolver = new CamelCasePropertyNamesContractResolver()
        };
        /// <summary>
        /// ERP收货单接口调用
        /// </summary>
        /// <param name="receiveModel"></param>
        /// <returns></returns>
        public string InvokeMatReceiveApi(ERPReceiveModel receiveModel)
        {
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
            ERPBaseModel<ERPReceiveModel> model = new ERPBaseModel<ERPReceiveModel>()
            {
                Data = receiveModel,
                Desc = "WMS收货单推送",
                Type = "toTCWMSReceive",
                SecurityCode = "TeChuang"
            };
            string request = JsonConvert.SerializeObject(model, settings);
            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
            return response;
        }
        /// <summary>
        /// ERP物料IQC检验单接口调用
        /// </summary>
        /// <param name="checkModel"></param>
        /// <returns></returns>
        public string InvokeCheckOrderApi(ERPCheckModel checkModel)
        {
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
            ERPBaseModel<ERPCheckModel> model = new ERPBaseModel<ERPCheckModel>()
            {
                Data = checkModel,
                Desc = "物料IQC检验单",
                Type = "toTCWMSIQCTest",
                SecurityCode = "TeChuang"
            };
            string request = JsonConvert.SerializeObject(model, settings);
            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
            return response;
        }
        /// <summary>
        /// ERP物料入库单接口调用
        /// </summary>
        /// <param name="inboundModel"></param>
        /// <returns></returns>
        public string InvokeInboundOrderApi(ERPInboundModel inboundModel)
        {
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
            ERPBaseModel<ERPInboundModel> model = new ERPBaseModel<ERPInboundModel>()
            {
                Data = inboundModel,
                Desc = "物料入库单",
                Type = "toTCWMSMaterialWarehousing",
                SecurityCode = "TeChuang"
            };
            string request = JsonConvert.SerializeObject(model, settings);
            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
            return response;
        }
        /// <summary>
        /// ERP领料通知单出库
        /// </summary>
        public string InvokeOutStandardsApi(ERPIssueModel issueModel)
        {
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
            ERPBaseModel<ERPIssueModel> model = new ERPBaseModel<ERPIssueModel>()
            {
                Data = issueModel,
                Desc = "领料出库通知单",
                Type = "toStandardPickList",
                SecurityCode = "TeChuang"
            };
            string request = JsonConvert.SerializeObject(model, settings).Replace("issitem", "Issitem");
            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
            return response;
        }
        /// <summary>
        /// ERP退料上报接口调用
        /// </summary>
        public string InvokeReturnApi(ERPReturnModel returnModel)
        {
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
            ERPBaseModel<ERPReturnModel> model = new ERPBaseModel<ERPReturnModel>()
            {
                Data = returnModel,
                Desc = "材料退库",
                Type = "importMaterialsIssueNoteWMS",
                SecurityCode = "TeChuang"
            };
            string request = JsonConvert.SerializeObject(model, settings).Replace("issitem", "Issitem");
            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
            return response;
        }
        /// <summary>
        /// ERP盘赢/亏上报接口调用
        /// </summary>
        public string InvokeTakeStockApi(ERPTakeStockModel takeModel)
        {
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
            ERPBaseModel<ERPTakeStockModel> model = new ERPBaseModel<ERPTakeStockModel>()
            {
                Data = takeModel,
                Desc = "材料盘点",
                Type = "toTCWMSMaterialCounting",
                SecurityCode = "TeChuang"
            };
            string request = JsonConvert.SerializeObject(model, settings);
            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
            return response;
        }
        /// <summary>
        /// ERP成品出库上报接口调用
        /// </summary>
        public string InvokeProOutApi(ERPProOutOrderModel outOrderModel)
        {
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
            ERPBaseModel<ERPProOutOrderModel> model = new ERPBaseModel<ERPProOutOrderModel>()
            {
                Data = outOrderModel,
                Desc = "出库成品通知",
                Type = "toOrderAssignment",
                SecurityCode = "TeChuang"
            };
            string request = JsonConvert.SerializeObject(model, settings);
            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
            return response;
        }
        /// <summary>
        /// ERP成品订单客户查询接口调用
        /// </summary>
        /// <param name="saleOrderNo"></param>
        /// <returns></returns>
        public string InvokeProSaleCustomer(string saleOrderNo)
        {
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpSaleCustomApi.ToString());
            object saleObj = new { soNumber=saleOrderNo };
            string request = JsonConvert.SerializeObject(saleObj, settings);
            Dictionary<string,string> requestHeader =new Dictionary<string, string>
            {
                { "AccessToken", "TCKJF60B03C07E8E41B0B3CF759B7B01AB81HATC"},
            };
            string response = HttpHelper.Post(apiInfo.ApiAddress, request,headers:requestHeader);
            return response;
        }
        /// <summary>
        /// ERP成品订单出库库存查询
        /// </summary>
        /// <returns></returns>
        public string InvokeOutProErpSync(string outProOrderNo)
        {
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpOutProErpSyncApi.ToString());
            object outNoObj = new { shippingNumber = outProOrderNo };
            string request = JsonConvert.SerializeObject(outNoObj, settings);
            Dictionary<string, string> requestHeader = new Dictionary<string, string>
            {
                { "AccessToken", "TCKJF60B03C07E8E41B0B3CF759B7B01AB81HATC"},
            };
            string response = HttpHelper.Post(apiInfo.ApiAddress, request, headers: requestHeader);
            return response;
        }
        /// <summary>
        /// ERP成品入库产品型号面积查询
        /// </summary>
        /// <returns></returns>
        public string InvokeProInErpStatic(string partNum,string partNumWithRev)
        {
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeProInErpStatic.ToString());
            object inObj = new { partNum, partNumWithRev };
            string request = JsonConvert.SerializeObject(inObj, settings);
            Dictionary<string, string> requestHeader = new Dictionary<string, string>
            {
                { "AccessToken", "TCKJF60B03C07E8E41B0B3CF759B7B01AB81HATC"},
            };
            string response = HttpHelper.Post(apiInfo.ApiAddress, request, headers: requestHeader);
            return response;
        }
        /// <summary>
        /// ERP成品入库上报接口调用
        /// </summary>
        public string InvokeProInApi(ERPProInboundModel inboundModel)
        {
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
            ERPBaseModel<ERPProInboundModel> model = new ERPBaseModel<ERPProInboundModel>()
            {
                Data = inboundModel,
                Desc = "成品入库",
                Type = "toWOStockForm",
                SecurityCode = "TeChuang"
            };
            string request = JsonConvert.SerializeObject(model, settings);
            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
            return response;
        }
        /// <summary>
        /// æˆå“ä»“检报废出库推送ERP
        /// </summary>
        /// <param name="checkModel"></param>
        /// <returns></returns>
        public string InvokeProCheckApi(ERPProductCheckModel checkModel)
        {
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
            ERPBaseModel<ERPProductCheckModel> model = new ERPBaseModel<ERPProductCheckModel>()
            {
                Data = checkModel,
                Desc = "成品检验单",
                Type = "toFGIIqcChecked",
                SecurityCode = "TeChuang"
            };
            string request = JsonConvert.SerializeObject(model, settings);
            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
            return response;
        }
        /// <summary>
        /// æˆå“è¶…周期报废推送ERP
        /// </summary>
        /// <param name="sheetModel"></param>
        /// <returns></returns>
        public string InvokeProScrapSheetApi(ERPScrapSheetModel sheetModel)
        {
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
            ERPBaseModel<ERPScrapSheetModel> model = new ERPBaseModel<ERPScrapSheetModel>()
            {
                Data = sheetModel,
                Desc = "成品报废单",
                Type = "toFGIScrapSheet",
                SecurityCode = "TeChuang"
            };
            string request = JsonConvert.SerializeObject(model, settings);
            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
            return response;
        }
        /// <summary>
        /// æˆå“ç›˜ç‚¹ç›˜èµ¢/盘亏
        /// </summary>
        /// <param name="stockCheckModel"></param>
        /// <returns></returns>
        public string InvokeProStockCheckApi(ERPProStockCheckModel stockCheckModel)
        {
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
            ERPBaseModel<ERPProStockCheckModel> model = new ERPBaseModel<ERPProStockCheckModel>()
            {
                Data = stockCheckModel,
                Desc = "成品盘点单",
                Type = "toStockCheck",
                SecurityCode = "TeChuang"
            };
            string request = JsonConvert.SerializeObject(model, settings);
            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
            return response;
        }
        /// <summary>
        /// ERP物料出库接口调用
        /// </summary>
        /// <param name="outboundModel"></param>
        /// <returns></returns>
        #region å¼ƒç”¨
        //public string InvokeOutboundOrderApi(ERPOutboundModel outboundModel)
        //{
        //    Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
        //    ERPBaseModel<ERPOutboundModel> model = new ERPBaseModel<ERPOutboundModel>()
        //    {
        //        Data = outboundModel,
        //        Desc = "材料出库",
        //        Type = "toBomMaterialOutTC",
        //        SecurityCode = "TeChuang"
        //    };
        //    string request = JsonConvert.SerializeObject(model, settings);
        //    string response = HttpHelper.Post(apiInfo.ApiAddress, request);
        //    return response;
        //}
        #endregion
    }
}
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_External/IERPService/IInvokeERPService.cs
@@ -13,83 +13,6 @@
    /// </summary>
    public interface IInvokeERPService : IDependency
    {
        /// <summary>
        /// ERP收货单接口调用
        /// </summary>
        /// <param name="receiveModel"></param>
        /// <returns></returns>
        string InvokeMatReceiveApi(ERPReceiveModel receiveModel);
        /// <summary>
        /// ERP物料IQC检验单接口调用
        /// </summary>
        /// <param name="checkModel"></param>
        /// <returns></returns>
        string InvokeCheckOrderApi(ERPCheckModel checkModel);
        /// <summary>
        /// ERP物料入库单接口调用
        /// </summary>
        /// <param name="inboundModel"></param>
        /// <returns></returns>
        string InvokeInboundOrderApi(ERPInboundModel inboundModel);
        /// <summary>
        /// ERP物料出库接口调用
        /// </summary>
        string InvokeOutStandardsApi(ERPIssueModel issueModel);
        /// <summary>
        /// ERP退料上报接口调用
        /// </summary>
        string InvokeReturnApi(ERPReturnModel returnModel);
        /// <summary>
        /// ERP盘赢/亏上报接口调用
        /// </summary>
        string InvokeTakeStockApi(ERPTakeStockModel takeModel);
        /// <summary>
        /// ERP成品出库完成上报
        /// </summary>
        /// <param name="outOrderModel"></param>
        /// <returns></returns>
        string InvokeProOutApi(ERPProOutOrderModel outOrderModel);
        /// <summary>
        /// ERP成品入库完成上报
        /// </summary>
        /// <param name="inboundModel"></param>
        /// <returns></returns>
        string InvokeProInApi(ERPProInboundModel inboundModel);
        /// <summary>
        /// æˆå“ä»“检报废出库推送ERP
        /// </summary>
        /// <param name="checkModel"></param>
        /// <returns></returns>
        string InvokeProCheckApi(ERPProductCheckModel checkModel);
        /// <summary>
        /// æˆå“è¶…周期报废推送ERp
        /// </summary>
        /// <param name="sheetModel"></param>
        /// <returns></returns>
        string InvokeProScrapSheetApi(ERPScrapSheetModel sheetModel);
        /// <summary>
        /// æˆå“ç›˜ç‚¹ç›˜èµ¢/盘亏
        /// </summary>
        /// <param name="stockCheckModel"></param>
        /// <returns></returns>
        string InvokeProStockCheckApi(ERPProStockCheckModel stockCheckModel);
        /// <summary>
        /// ERP成品订单客户查询接口调用
        /// </summary>
        /// <param name="saleOrderNo"></param>
        /// <returns></returns>
        string InvokeProSaleCustomer(string saleOrderNo);
        /// <summary>
        /// ERP成品订单出库库存查询
        /// </summary>
        /// <returns></returns>
        string InvokeOutProErpSync(string outProOrderNo);
        /// <summary>
        /// ERP成品入库产品型号面积查询
        /// </summary>
        /// <returns></returns>
        string InvokeProInErpStatic(string partNum, string partNumWithRev);
    }
}
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_External/Model/ERPCheckModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_External/Model/ERPInboundModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_External/Model/ERPIssueModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_External/Model/ERPMaintainIssueModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_External/Model/ERPMaterialSaleReturnModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_External/Model/ERPOutboundModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_External/Model/ERPProInboundModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_External/Model/ERPProOutOrderModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_External/Model/ERPProStockCheckModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_External/Model/ERPProductCheckModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_External/Model/ERPReceiveModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_External/Model/ERPReturnModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_External/Model/ERPScrapSheetModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_External/Model/ERPTakeStockModel.cs
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs
@@ -29,7 +29,6 @@
using WIDESEA_Core.Enums;
using WIDESEA_DTO;
using WIDESEA_DTO.ERP;
using WIDESEA_DTO.MES;
using WIDESEA_DTO.Stock;
using WIDESEA_DTO.Task;
using WIDESEA_ITaskInfoRepository;
@@ -147,11 +146,6 @@
        /// <param name="task"></param>
        /// <returns></returns>
        WebResponseContent UpdateTaskInfo(WCSTaskDTO task);
        /// <summary>
        /// MES成品出库接口调用
        /// </summary>
        /// <returns></returns>
        WebResponseContent ShipmentOrderSync(MesShipmentOrderSync model);
       
        /// <summary>
        /// æˆå“ç©ºæ¡†å›žåº“
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_MaterielInfo.cs
@@ -22,6 +22,12 @@
        /// </summary>
        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "主键")]
        public int Id { get; set; }
        /// <summary>
        /// æ¥æºId
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDescription = "来源Id")]
        public int MaterialSourceId { get; set; }
        /// <summary>
        /// ä»“库编号
@@ -60,9 +66,9 @@
        public decimal? MaterielLength { get; set; }
        /// <summary>
        /// ç‰©æ–™ç›´å¾„/高度
        /// ç‰©æ–™åŽšåº¦
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDescription = "物料直径/高度")]
        [SugarColumn(IsNullable = true, ColumnDescription = "物料厚度")]
        public decimal? MaterielThickness { get; set; }
        /// <summary>
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_TaskInfoService/AssignInboundTaskLocation_BC.cs
@@ -12,7 +12,6 @@
using WIDESEA_Core;
using WIDESEA_Core.Helper;
using WIDESEA_DTO;
using WIDESEA_DTO.MES;
using WIDESEA_Model.Models;
namespace WIDESEA_TaskInfoService
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_TaskInfoService/MesProductService.cs
@@ -7,7 +7,6 @@
using WIDESEA_Common.StockEnum;
using WIDESEA_Common.TaskEnum;
using WIDESEA_Core;
using WIDESEA_DTO.MES;
using WIDESEA_DTO;
using WIDESEA_Model.Models;
using WIDESEA_Core.Helper;
@@ -26,43 +25,6 @@
{
    public partial class TaskService
    {
        /// <summary>
        /// WMS同步成品出库至MES
        /// </summary>
        public WebResponseContent ShipmentOrderSync(MesShipmentOrderSync model)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.WMS_MES_ShipmentOrderSync.ToString());
                MESRoot<MesShipmentOrderSync> root = new MESRoot<MesShipmentOrderSync>()
                {
                    From = "WMS",
                    DateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                    Content = model
                };
                JsonSerializerSettings settings = new JsonSerializerSettings
                {
                    ContractResolver = new CamelCasePropertyNamesContractResolver()
                };
                string request = JsonConvert.SerializeObject(root, settings);
                string response = HttpMesHelper.Post(apiInfo.ApiAddress, request);
                MesResponseContent mesResponseContent = response.DeserializeObject<MesResponseContent>();
                //调用接口
                if (mesResponseContent.BSucc == true)
                {
                    content.OK(mesResponseContent.StrMsg);
                }
                else
                {
                    content.Error(mesResponseContent.StrMsg);
                }
            }
            catch (Exception ex)
            {
                content.Error(ex.Message);
            }
            return content;
        }
    }
}
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_TaskInfoService/MesSolderService.cs
@@ -9,7 +9,6 @@
using WIDESEA_Core.Helper;
using WIDESEA_Core;
using WIDESEA_DTO;
using WIDESEA_DTO.MES;
using WIDESEA_Model.Models;
namespace WIDESEA_TaskInfoService
@@ -32,36 +31,6 @@
                    responseContent.Error(ex.Message);
                }
                return responseContent;
            }
        }
        /// <summary>
        /// é˜²ç„Šç«‹åº“入库后调用MES接口获取批次信息
        /// </summary>
        /// <param name="LotNo"></param>
        /// <returns></returns>
        public MesSolderModel? GetProductByLot(string LotNo)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.WMS_MES_GetProductByLot.ToString());
                string requestApi = apiInfo.ApiAddress + "?lotNo=" + LotNo;
                string response = HttpMesHelper.Post(requestApi);
                MesResponseContent mesResponseContent = response.DeserializeObject<MesResponseContent>();
                //调用接口
                if (mesResponseContent.BSucc == true)
                {
                    MesSolderModel? mesSolder= mesResponseContent.Content.ToString()?.DeserializeObject<MesSolderModel>();
                    return mesSolder;
                }
                else
                {
                    throw new Exception(mesResponseContent.StrMsg);
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
    }
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs
@@ -19,7 +19,6 @@
using WIDESEA_Core.Helper;
using WIDESEA_DTO;
using WIDESEA_DTO.ERP;
using WIDESEA_DTO.MES;
using WIDESEA_ITaskInfoRepository;
using WIDESEA_ITaskInfoService;
using WIDESEA_Model.Models;
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService.cs
@@ -34,7 +34,6 @@
using WIDESEA_Core.Helper;
using WIDESEA_DTO;
using WIDESEA_DTO.Inbound;
using WIDESEA_DTO.MES;
using WIDESEA_DTO.Stock;
using WIDESEA_DTO.Task;
using WIDESEA_External.ERPService;
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_WMSServer/Controllers/ERP/ErpController.cs
@@ -35,131 +35,6 @@
            _basicService = basicService;
            _invokeERPService = invokeERPService;
        }
        /// <summary>
        /// æŽ¨é€ERP出库
        /// </summary>
        /// <returns></returns>
        [HttpPost, Route("InvokeOutStandardsApi"), AllowAnonymous]
        public string InvokeOutStandardsApi([FromBody] ERPIssueModel issueModel)
        {
            return _invokeERPService.InvokeOutStandardsApi(issueModel);
        }
        /// <summary>
        /// æŽ¨é€ERP收货
        /// </summary>
        /// <returns></returns>
        [HttpPost, Route("InvokeMatReceiveApi"), AllowAnonymous]
        public string InvokeMatReceiveApi([FromBody]ERPReceiveModel receiveModel)
        {
            return _invokeERPService.InvokeMatReceiveApi(receiveModel);
        }
        /// <summary>
        /// æŽ¨é€ERP来料IQC质检
        /// </summary>
        /// <returns></returns>
        [HttpPost, Route("InvokeCheckOrderApi"), AllowAnonymous]
        public string InvokeCheckOrderApi(ERPCheckModel checkModel)
        {
            return _invokeERPService.InvokeCheckOrderApi(checkModel);
        }
        /// <summary>
        /// æŽ¨é€ERP入库
        /// </summary>
        /// <returns></returns>
        [HttpPost, Route("InvokeInboundOrderApi"), AllowAnonymous]
        public string InvokeInboundOrderApi([FromBody]ERPInboundModel inboundModel)
        {
            return _invokeERPService.InvokeInboundOrderApi(inboundModel);
        }
        /// <summary>
        /// æŽ¨é€ERP退料上报
        /// </summary>
        [HttpPost, Route("InvokeReturnApi"), AllowAnonymous]
        public string InvokeReturnApi([FromBody] ERPReturnModel returnModel)
        {
            return _invokeERPService.InvokeReturnApi(returnModel);
        }
        /// <summary>
        /// ERP盘赢/亏上报接口调用
        /// </summary>
        [HttpPost, Route("InvokeTakeStockApi"), AllowAnonymous]
        public string InvokeTakeStockApi([FromBody] ERPTakeStockModel takeModel)
        {
            return _invokeERPService.InvokeTakeStockApi(takeModel);
        }
        /// <summary>
        /// ERP成品入库上报接口调用
        /// </summary>
        /// <returns></returns>
        [HttpPost, Route("InvokeProInApi"), AllowAnonymous]
        public string InvokeProInApi([FromBody] ERPProInboundModel inboundModel)
        {
            return _invokeERPService.InvokeProInApi(inboundModel);
        }
        /// <summary>
        /// ERP成品出库上报接口调用
        /// </summary>
        [HttpPost, Route("InvokeProOutApi"), AllowAnonymous]
        public string InvokeProOutApi([FromBody] ERPProOutOrderModel outOrderModel)
        {
            return _invokeERPService.InvokeProOutApi(outOrderModel);
        }
        /// <summary>
        /// æˆå“ä»“检报废出库推送ERP
        /// </summary>
        /// <param name="checkModel"></param>
        /// <returns></returns>
        [HttpPost, Route("InvokeProCheckApi"), AllowAnonymous]
        public string InvokeProCheckApi([FromBody] ERPProductCheckModel checkModel)
        {
            return _invokeERPService.InvokeProCheckApi(checkModel);
        }
        /// <summary>
        /// æˆå“è¶…周期报废推送ERp
        /// </summary>
        /// <param name="sheetModel"></param>
        /// <returns></returns>
        [HttpPost, Route("InvokeProScrapSheetApi"), AllowAnonymous]
        public string InvokeProScrapSheetApi([FromBody] ERPScrapSheetModel sheetModel)
        {
            return _invokeERPService.InvokeProScrapSheetApi(sheetModel);
        }
        /// <summary>
        /// æˆå“ç›˜ç‚¹ç›˜èµ¢/盘亏
        /// </summary>
        /// <param name="stockCheckModel"></param>
        /// <returns></returns>
        [HttpPost, Route("InvokeProStockCheckApi"), AllowAnonymous]
        public string InvokeProStockCheckApi([FromBody] ERPProStockCheckModel stockCheckModel)
        {
            return _invokeERPService.InvokeProStockCheckApi(stockCheckModel);
        }
        /// <summary>
        /// æŸ¥è¯¢é”€å”®ERP客户
        /// </summary>
        /// <returns></returns>
        [HttpPost, Route("InvokeProSaleCustomer"), AllowAnonymous]
        public string InvokeProSaleCustomer(string saleOrder)
        {
            return _invokeERPService.InvokeProSaleCustomer(saleOrder);
        }
        /// <summary>
        /// æŸ¥è¯¢é”€å”®ERP客户
        /// </summary>
        /// <returns></returns>
        [HttpPost, Route("InvokeOutProErpSync"), AllowAnonymous]
        public string InvokeOutProErpSync(string outProOrderNo)
        {
            return _invokeERPService.InvokeOutProErpSync(outProOrderNo);
        }
        /// <summary>
        /// ERP成品入库产品型号面积查询
        /// </summary>
        /// <returns></returns>
        [HttpPost, Route("InvokeProInErpStatic"), AllowAnonymous]
        public string InvokeProInErpStatic(string partNum, string partNumWithRev)
        {
            return _invokeERPService.InvokeProInErpStatic(partNum, partNumWithRev);
        }
    }
}
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_WMSServer/Controllers/LargeScreen/LargeController.cs
@@ -7,7 +7,6 @@
using WIDESEA_ITaskInfoService;
using WIDESEA_TaskInfoService;
using WIDESEA_DTO.ERP;
using WIDESEA_DTO.MES;
using WIDESEA_Core.Helper;
using Autofac.Core;
using WIDESEA_DTO.Stock;
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_WMSServer/Controllers/MES/MesController.cs
@@ -7,7 +7,6 @@
using WIDESEA_ITaskInfoService;
using WIDESEA_TaskInfoService;
using WIDESEA_DTO.ERP;
using WIDESEA_DTO.MES;
using WIDESEA_Core.Helper;
using Autofac.Core;
using WIDESEA_DTO.Stock;
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_WMSServer/Filter/CustomProfile.cs
@@ -11,8 +11,6 @@
using WIDESEA_DTO;
using WIDESEA_DTO.ERP;
using WIDESEA_DTO.Inbound;
using WIDESEA_DTO.MES;
using WIDESEA_DTO.Outbound;
using WIDESEA_DTO.System;
using WIDESEA_DTO.Task;
using WIDESEA_Model.Models;
ÏîÄ¿×ÊÁÏ/½Ó¿ÚЭÒé/Ò»ÆÚBSTERPÐèÇó×Ö¶Î.xlsx
Binary files differ
ÏîÄ¿×ÊÁÏ/½Ó¿ÚЭÒé/²©Ë¼Í¨ERPJSONÊý¾Ý½âÎö.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,726 @@
--供应商信息
[
  {
    "way": 1,
    "vendId": 1453,
    "vendNo": "BLJ0001",
    "shortName": "倍力杰",
    "businessContact": "汪胜利/刘工",
    "tel": "0512-62602957",
    "address": "苏州工业园区唯亭镇起叶路61号",
    "status": 1
  }
]
way:数据获取方式或来源标识
vendId:供应商唯一标识ID
vendNo:供应商编号/代码
shortName:供应商简称
businessContact:商务联系人
tel:联系电话
address:公司地址
status:状态标识(1表示启用/有效状态)
--盘点信息
[
  {
    "way": 1,
    "paperStktakeId": 1,
    "paperStktakeNo": "6666",
    "stktakeDate": null,
    "warehouseId": null,
    "warehouse": null,
    "paperStktakeDetailList": []
  }
]
way:数据获取方式或来源标识
paperStktakeId:纸质盘点单唯一标识ID
paperStktakeNo:纸质盘点单编号
stktakeDate:盘点日期(null表示未设置)
warehouseId:仓库ID(null表示未指定)
warehouse:仓库信息(null表示未指定)
paperStktakeDetailList:纸质盘点单明细列表(空数组表示无明细项)
明细列表中的字段说明:
barcode:条码信息
materialNo:原纸编码/物料编号
seqNo:批次号/序列号
width:幅宽尺寸
thickness:纸类厚度
procurementLength:总长度(计算公式:数量/(幅宽/1000)/重量)
quantity:数量
unit:计量单位
--领料单
[
  {
    "way": 2,
    "paperMattakeId": 30,
    "paperMattakeNo": "MY151112001",
    "mattakeDate": 1447257600000,
    "employeeName": null,
    "paperMattakeDetails": [
      {
        "paperMattakeId": 30,
        "barcode": "151005005",
        "materialNo": "70-RC",
        "seqNo": 1,
        "w": 1700.00,
        "thick": 0.06,
        "procurementLength": 0.51,
        "qty": 91.00,
        "unit": "Kg"
      }
    ]
  }
]
way:数据获取方式或来源标识(2表示物料领用单)
paperMattakeId:主表ID,纸质物料领用单唯一标识
paperMattakeNo:纸质物料领用单编号
mattakeDate:领用日期(时间戳格式,1447257600000表示2015-11-12)
employeeName:员工姓名(null表示未指定)
paperMattakeDetails:纸质物料领用单明细列表
明细列表中的字段说明:
paperMattakeId:关联的主表ID
barcode:条码信息
materialNo:物料编号
seqNo:批次号/序列号
w:幅宽尺寸(单位:mm)
thick:厚度(单位:mm或其他厚度单位)
procurementLength:采购长度/计算长度
qty:数量
unit:计量单位(Kg表示千克)
--验收单信息
[
  {
    "way": 1,
    "paperReceiptId": 56,
    "paperReceiptNo": "IY151126001",
    "vendNo": "WH001",
    "totalProcurementLength": 157.365585850402425194261013530194759368896484375,
    "receiptDate": 1448467200000,
    "remark": null,
    "paperReceiptDetails": [
      {
        "paperReceiptId": 56,
        "barcode": "151126001",
        "materialNo": "I1-RC",
        "seqNo": 1,
        "w": 2000.00,
        "thick": 0.17,
        "procurementLength": 7.48,
        "deliveryQty": 1946.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126002",
        "materialNo": "I1-RC",
        "seqNo": 2,
        "w": 2000.00,
        "thick": 0.17,
        "procurementLength": 7.32,
        "deliveryQty": 1903.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126018",
        "materialNo": "U1-RC",
        "seqNo": 1,
        "w": 2300.00,
        "thick": 0.20,
        "procurementLength": 5.88,
        "deliveryQty": 2165.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126019",
        "materialNo": "U1-RC",
        "seqNo": 1,
        "w": 2200.00,
        "thick": 0.20,
        "procurementLength": 5.87,
        "deliveryQty": 2066.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126020",
        "materialNo": "U1-RC",
        "seqNo": 1,
        "w": 2050.00,
        "thick": 0.20,
        "procurementLength": 6.42,
        "deliveryQty": 2105.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126003",
        "materialNo": "I1-RC",
        "seqNo": 1,
        "w": 2400.00,
        "thick": 0.17,
        "procurementLength": 7.36,
        "deliveryQty": 2297.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126004",
        "materialNo": "I1-RC",
        "seqNo": 2,
        "w": 2400.00,
        "thick": 0.17,
        "procurementLength": 7.30,
        "deliveryQty": 2277.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126005",
        "materialNo": "I1-RC",
        "seqNo": 3,
        "w": 2400.00,
        "thick": 0.17,
        "procurementLength": 7.35,
        "deliveryQty": 2293.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126006",
        "materialNo": "I1-RC",
        "seqNo": 1,
        "w": 2300.00,
        "thick": 0.17,
        "procurementLength": 7.63,
        "deliveryQty": 2282.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126007",
        "materialNo": "P1-RC",
        "seqNo": 1,
        "w": 1950.00,
        "thick": 0.10,
        "procurementLength": 8.93,
        "deliveryQty": 1916.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126008",
        "materialNo": "P1-RC",
        "seqNo": 2,
        "w": 1950.00,
        "thick": 0.10,
        "procurementLength": 8.89,
        "deliveryQty": 1907.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126009",
        "materialNo": "P1-RC",
        "seqNo": 1,
        "w": 2500.00,
        "thick": 0.10,
        "procurementLength": 8.74,
        "deliveryQty": 2404.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126010",
        "materialNo": "P1-RC",
        "seqNo": 2,
        "w": 2500.00,
        "thick": 0.10,
        "procurementLength": 8.74,
        "deliveryQty": 2403.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126011",
        "materialNo": "P1-RC",
        "seqNo": 1,
        "w": 2350.00,
        "thick": 0.10,
        "procurementLength": 8.74,
        "deliveryQty": 2258.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126012",
        "materialNo": "P1-RC",
        "seqNo": 2,
        "w": 2350.00,
        "thick": 0.10,
        "procurementLength": 8.65,
        "deliveryQty": 2235.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126013",
        "materialNo": "P1-RC",
        "seqNo": 1,
        "w": 2250.00,
        "thick": 0.10,
        "procurementLength": 8.83,
        "deliveryQty": 2185.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126014",
        "materialNo": "P1-RC",
        "seqNo": 2,
        "w": 2250.00,
        "thick": 0.10,
        "procurementLength": 8.71,
        "deliveryQty": 2156.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126015",
        "materialNo": "P1-RC",
        "seqNo": 1,
        "w": 2150.00,
        "thick": 0.10,
        "procurementLength": 8.48,
        "deliveryQty": 2005.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126016",
        "materialNo": "P1-RC",
        "seqNo": 1,
        "w": 2050.00,
        "thick": 0.10,
        "procurementLength": 8.15,
        "deliveryQty": 1838.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126017",
        "materialNo": "P1-RC",
        "seqNo": 2,
        "w": 2050.00,
        "thick": 0.10,
        "procurementLength": 7.90,
        "deliveryQty": 1781.00,
        "unit": "Kg"
      }
    ]
  },
  {
    "way": 2,
    "paperReceiptId": 56,
    "paperReceiptNo": "IY151126001",
    "vendNo": "WH001",
    "totalProcurementLength": 157.365585850402425194261013530194759368896484375,
    "receiptDate": 1448467200000,
    "remark": null,
    "paperReceiptDetails": [
      {
        "paperReceiptId": 56,
        "barcode": "151126001",
        "materialNo": "I1-RC",
        "seqNo": 1,
        "w": 2000.00,
        "thick": 0.17,
        "procurementLength": 7.48,
        "deliveryQty": 1946.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126002",
        "materialNo": "I1-RC",
        "seqNo": 2,
        "w": 2000.00,
        "thick": 0.17,
        "procurementLength": 7.32,
        "deliveryQty": 1903.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126018",
        "materialNo": "U1-RC",
        "seqNo": 1,
        "w": 2300.00,
        "thick": 0.20,
        "procurementLength": 5.88,
        "deliveryQty": 2165.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126019",
        "materialNo": "U1-RC",
        "seqNo": 1,
        "w": 2200.00,
        "thick": 0.20,
        "procurementLength": 5.87,
        "deliveryQty": 2066.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126020",
        "materialNo": "U1-RC",
        "seqNo": 1,
        "w": 2050.00,
        "thick": 0.20,
        "procurementLength": 6.42,
        "deliveryQty": 2105.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126003",
        "materialNo": "I1-RC",
        "seqNo": 1,
        "w": 2400.00,
        "thick": 0.17,
        "procurementLength": 7.36,
        "deliveryQty": 2297.00,
        "unit": "Kg"
      },
      {
        "paperReceiptId": 56,
        "barcode": "151126004",
        "materialNo": "I1-RC",
        "seqNo": 2,
        "w": 2400.00,
        "thick": æžé•¿çš„JSON数据,此处省略重复内容...
      }
    ]
  }
]
way:数据获取方式标识(1:纸质收货单,2:其他类型)
paperReceiptId:纸质收货单主表ID
paperReceiptNo:纸质收货单编号
vendNo:供应商编号
totalProcurementLength:总采购长度
receiptDate:收货日期(时间戳格式,1448467200000表示2015-11-26)
remark:备注信息(null表示无备注)
paperReceiptDetails:纸质收货单明细列表
明细列表字段说明:
paperReceiptId:关联的主表ID
barcode:物料条码
materialNo:物料编号
seqNo:批次序列号
w:幅宽(单位:mm)
thick:厚度
procurementLength:采购长度/计算长度
deliveryQty:交货数量
unit:计量单位(Kg:千克)
--生产退料
[
  {
    "way": 2,
    "paperWreturnId": 7814,
    "paperWreturnNo": "MRY160113130",
    "wreturnDate": 1452614400000,
    "employeeName": null,
    "bstPaperWreturnDetails": [
      {
        "paperWreturnId": 7814,
        "barcode": "160112022",
        "materialNo": "61-RC",
        "seqNo": 1,
        "w": 1300.00,
        "thick": 0.10,
        "procurementLength": 9.15,
        "qty": 1071.00,
        "unit": "Kg"
      }
    ]
  }
]
way:数据获取方式标识(2表示纸质退料单)
paperWreturnId:纸质退料单主表ID
paperWreturnNo:纸质退料单编号
wreturnDate:退料日期(时间戳格式,1452614400000表示2016-01-13)
employeeName:员工姓名(null表示未指定)
bstPaperWreturnDetails:纸质退料单明细列表
明细列表字段说明:
paperWreturnId:关联的主表ID
barcode:物料条码
materialNo:物料编号
seqNo:批次序列号
w:幅宽(单位:mm)
thick:厚度
procurementLength:采购长度/计算长度
qty:退料数量
unit:计量单位(Kg:千克)
--采购退货
[
  {
    "way": 2,
    "paperVreturnId": 12,
    "paperVreturnNo": "RY160305001",
    "vreturnDate": 1457107200000,
    "warehouseId": 3,
    "warehouse": "原纸仓",
    "vendNo": "LP001",
    "vendName": "林平纸业",
    "paperVreturnDetails": [
      {
        "paperVreturnId": 12,
        "barcode": "160301018",
        "materialNo": "61-LP",
        "seqNo": 1,
        "w": 2250.00,
        "thick": 0.00,
        "procurementLength": 8.05,
        "qty": 1630.00,
        "unit": "Kg"
      },
      {
        "paperVreturnId": 12,
        "barcode": "160228032",
        "materialNo": "61-LP",
        "seqNo": 1,
        "w": 1800.00,
        "thick": 0.00,
        "procurementLength": 7.63,
        "qty": 1236.00,
        "unit": "Kg"
      },
      {
        "paperVreturnId": 12,
        "barcode": "160228033",
        "materialNo": "61-LP",
        "seqNo": 2,
        "w": 1800.00,
        "thick": 0.00,
        "procurementLength": 8.09,
        "qty": 1310.00,
        "unit": "Kg"
      },
      {
        "paperVreturnId": 12,
        "barcode": "160228026",
        "materialNo": "61-LP",
        "seqNo": 1,
        "w": 1300.00,
        "thick": 0.00,
        "procurementLength": 8.58,
        "qty": 1004.00,
        "unit": "Kg"
      },
      {
        "paperVreturnId": 12,
        "barcode": "160228027",
        "materialNo": "61-LP",
        "seqNo": 2,
        "w": 1300.00,
        "thick": 0.00,
        "procurementLength": 7.80,
        "qty": 913.00,
        "unit": "Kg"
      },
      {
        "paperVreturnId": 12,
        "barcode": "160301010",
        "materialNo": "61-LP",
        "seqNo": 2,
        "w": 1800.00,
        "thick": 0.00,
        "procurementLength": 8.04,
        "qty": 1302.00,
        "unit": "Kg"
      },
      {
        "paperVreturnId": 12,
        "barcode": "160228046",
        "materialNo": "61-LP",
        "seqNo": 1,
        "w": 2250.00,
        "thick": 0.00,
        "procurementLength": 7.77,
        "qty": 1573.00,
        "unit": "Kg"
      },
      {
        "paperVreturnId": 12,
        "barcode": "160228048",
        "materialNo": "61-LP",
        "seqNo": 2,
        "w": 2400.00,
        "thick": 0.00,
        "procurementLength": 8.22,
        "qty": 1775.00,
        "unit": "Kg"
      },
      {
        "paperVreturnId": 12,
        "barcode": "160221021",
        "materialNo": "61",
        "seqNo": 1,
        "w": 1300.00,
        "thick": 0.10,
        "procurementLength": 7.88,
        "qty": 922.00,
        "unit": "Kg"
      },
      {
        "paperVreturnId": 12,
        "barcode": "极长的JSON数据,此处省略部分内容..."
      }
    ]
  }
]
way:数据获取方式标识(2表示纸质退货单)
paperVreturnId:纸质退货单主表ID
paperVreturnNo:纸质退货单编号
vreturnDate:退货日期(时间戳格式,1457107200000表示2016-03-05)
warehouseId:仓库ID(3表示原纸仓)
warehouse:仓库名称
vendNo:供应商编号
vendName:供应商名称
paperVreturnDetails:纸质退货单明细列表
明细列表字段说明:
paperVreturnId:关联的主表ID
barcode:物料条码
materialNo:物料编号
seqNo:批次序列号
w:幅宽(单位:mm)
thick:厚度(0.00表示厚度未记录或为零)
procurementLength:采购长度/计算长度
qty:退货数量
unit:计量单位(Kg:千克)
--物料信息
[
  {
    "way": 2,
    "materialId": 1,
    "materialNo": "I2",
    "name": "140gA级牛卡",
    "spec": "",
    "materielType": 3,
    "materielWide": 0,
    "materielThickness": 0,
    "materielLength": 0,
    "weight": 0.14000000000000001332267629550187848508358001708984375,
    "unit": "Kg",
    "invOrgId": 1,
    "status": 1
  }
]
way:数据获取方式标识(2表示物料基础信息)
materialId:物料唯一标识ID
materialNo:物料编号/代码
name:物料名称
spec:物料规格(空字符串表示无规格)
materielType:物料类型(3表示特定分类)
materielWide:物料宽度(0表示未设置)
materielThickness:物料厚度(0表示未设置)
materielLength:物料长度(0表示未设置)
weight:物料重量(单位重量,精确数值)
unit:计量单位(Kg:千克)
invOrgId:库存组织ID(1表示默认库存组织)
status:状态标识(1表示启用/有效状态)
--排程信息
[{
    "way": 2,
    "boardMpsId": 21,
    "boardMpsNo": "PP151125001",
    "productionDate": 1448380800000,
    "bstBoardMpsDetails": [{
        "boardMpsId": 21,
        "width": 2500.00,
        "xqLen": 1121.18,
        "totalUsage": 476.50,
        "materialId": 38,
        "materialNo": "E2",
        "procurementLength": 1121.18
    }, {
        "boardMpsId": 21,
        "width": 2500.00,
        "xqLen": 1479.96,
        "totalUsage": 406.99,
        "materialId": 6,
        "materialNo": "71",
        "procurementLength": 1479.96
    }, {
        "boardMpsId": 21,
        "width": 2500.00,
        "xqLen": 1121.18,
        "totalUsage": 308.32,
        "materialId": 8,
        "materialNo": "P1",
        "procurementLength": 1121.16
    }, {
        "boardMpsId": 21,
        "width": 2500.00,
        "xqLen": 1816.29,
        "totalUsage": 771.92,
        "materialId": 38,
        "materialNo": "E2",
        "procurementLength": 1816.28
    }]
}]
way:数据获取方式标识(2表示纸板生产计划)
boardMpsId:纸板主生产计划ID
boardMpsNo:纸板主生产计划编号
productionDate:生产日期(时间戳格式,1448380800000表示2015-11-25)
bstBoardMpsDetails:纸板生产计划明细列表
明细列表字段说明:
boardMpsId:关联的主表ID
width:幅宽/宽度(单位:mm)
xqLen:需求长度
totalUsage:总用量s
materialId:物料ID
materialNo:物料编号
procurementLength:采购长度/计算长度
ÏîÄ¿×ÊÁÏ/½Ó¿ÚЭÒé/²©Ë¹Í¨ÀûÍØ½Ó¿Ú.xlsx
Binary files differ
ÏîÄ¿×ÊÁÏ/ͨÐÅЭÒé/³ÉÆ·ÊäËÍÏßͨѶЭÒé_20250707.xlsx
Binary files differ