From f04f48ddd4504583e84f2a8aa092373404705710 Mon Sep 17 00:00:00 2001 From: "Blank.li" Date: Fri, 26 Sep 2025 13:35:45 +0800 Subject: [PATCH] Clear code --- VOL.DingTalk/Models/Biz/DingTalkDepartment.cs | 33 + VOL.DingTalk/Models/Biz/DingTalkEmployee.cs | 38 ++ .../Models/Biz/DingTalkEmployeeRsp.cs | 41 ++ VOL.DingTalk/Models/Biz/DingTalkResponse.cs | 18 + VOL.DingTalk/Models/DingTalkConfig.cs | 36 + VOL.DingTalk/Models/SystemToken.cs | 21 + .../Services/Biz}/DingTalkService.cs | 517 ++++++++------- VOL.DingTalk/VOL.DingTalk.csproj | 13 + .../DomainModels/DeptShip/HR_DeptShip.cs | 69 ++ .../DeptShip/partial/HR_DeptShip.cs | 22 + .../DomainModels/DeptSync/HR_DeptSync.cs | 64 ++ .../DeptSync/partial/HR_DeptSync.cs | 22 + .../EmployeeSync/HR_EmployeeSync.cs | 1 + .../DeptShip/IHR_DeptShipRepository.cs | 6 +- .../DeptSync/IHR_DeptSyncRepository.cs | 6 +- .../IServices/DeptShip/IHR_DeptShipService.cs | 4 +- .../DeptShip/Partial/IHR_DeptShipService.cs | 15 + .../IServices/DeptSync/IHR_DeptSyncService.cs | 4 +- .../DeptSync/Partial/IHR_DeptSyncService.cs | 6 +- .../Partial/IHR_EmployeeSyncService.cs | 9 + .../DeptShip/HR_DeptShipRepository.cs | 26 + .../DeptSync/HR_DeptSyncRepository.cs | 26 + .../Services/DeptShip/HR_DeptShipService.cs | 22 + .../DeptShip/Partial/HR_DeptShipService.cs | 67 ++ .../Services/DeptSync/HR_DeptSyncService.cs | 22 + .../DeptSync/Partial/HR_DeptSyncService.cs | 16 +- .../EmployeeSync/HR_EmployeeSyncService.cs | 2 + .../Partial/HR_EmployeeSyncService.cs | 129 +++- VOL.HR/VOL.HR.csproj | 4 +- .../mes/IMES_Bom_DetailRepository.cs | 18 - .../mes/IMES_Bom_MainRepository.cs | 18 - .../mes/IMES_CustomerRepository.cs | 18 - ...efectiveProductDisposalRecordRepository.cs | 18 - .../IMES_DefectiveProductRecordRepository.cs | 18 - .../IMES_EquipmentFaultRecordRepository.cs | 18 - .../IMES_EquipmentMaintenanceRepository.cs | 18 - .../mes/IMES_EquipmentManagementRepository.cs | 18 - .../mes/IMES_EquipmentRepairRepository.cs | 18 - .../mes/IMES_InventoryManagementRepository.cs | 18 - .../mes/IMES_LocationManagementRepository.cs | 18 - .../mes/IMES_MaterialCatalogRepository.cs | 18 - .../mes/IMES_MaterialRepository.cs | 18 - .../mes/IMES_ProcessReportRepository.cs | 18 - .../mes/IMES_ProcessRouteRepository.cs | 18 - .../mes/IMES_ProductInboundRepository.cs | 18 - .../mes/IMES_ProductOutboundRepository.cs | 18 - .../IMES_ProductionLineDeviceRepository.cs | 18 - .../mes/IMES_ProductionLineRepository.cs | 18 - .../mes/IMES_ProductionOrderRepository.cs | 18 - ...ES_ProductionPlanChangeRecordRepository.cs | 18 - .../IMES_ProductionPlanDetailRepository.cs | 18 - ...MES_ProductionReportingDetailRepository.cs | 18 - .../mes/IMES_ProductionReportingRepository.cs | 18 - ...S_QualityInspectionPlanDetailRepository.cs | 18 - .../IMES_QualityInspectionPlanRepository.cs | 18 - .../IMES_QualityInspectionRecordRepository.cs | 18 - .../mes/IMES_SchedulingPlanRepository.cs | 18 - .../mes/IMES_SupplierRepository.cs | 18 - .../mes/IMES_WarehouseManagementRepository.cs | 18 - .../IServices/mes/IMES_Bom_DetailService.cs | 12 - VOL.MES/IServices/mes/IMES_Bom_MainService.cs | 12 - VOL.MES/IServices/mes/IMES_CustomerService.cs | 12 - ...S_DefectiveProductDisposalRecordService.cs | 12 - .../mes/IMES_DefectiveProductRecordService.cs | 12 - .../mes/IMES_EquipmentFaultRecordService.cs | 12 - .../mes/IMES_EquipmentMaintenanceService.cs | 12 - .../mes/IMES_EquipmentManagementService.cs | 12 - .../mes/IMES_EquipmentRepairService.cs | 12 - .../mes/IMES_InventoryManagementService.cs | 12 - .../mes/IMES_LocationManagementService.cs | 12 - .../mes/IMES_MaterialCatalogService.cs | 12 - VOL.MES/IServices/mes/IMES_MaterialService.cs | 12 - .../mes/IMES_ProcessReportService.cs | 12 - .../IServices/mes/IMES_ProcessRouteService.cs | 12 - .../mes/IMES_ProductInboundService.cs | 12 - .../mes/IMES_ProductOutboundService.cs | 12 - .../mes/IMES_ProductionLineDeviceService.cs | 12 - .../mes/IMES_ProductionLineService.cs | 12 - .../mes/IMES_ProductionOrderService.cs | 12 - .../IMES_ProductionPlanChangeRecordService.cs | 12 - .../mes/IMES_ProductionPlanDetailService.cs | 12 - .../IMES_ProductionReportingDetailService.cs | 12 - .../mes/IMES_ProductionReportingService.cs | 12 - ...IMES_QualityInspectionPlanDetailService.cs | 12 - .../mes/IMES_QualityInspectionPlanService.cs | 12 - .../IMES_QualityInspectionRecordService.cs | 12 - .../mes/IMES_SchedulingPlanService.cs | 12 - VOL.MES/IServices/mes/IMES_SupplierService.cs | 12 - .../mes/IMES_WarehouseManagementService.cs | 12 - .../mes/Partial/IMES_Bom_DetailService.cs | 13 - .../mes/Partial/IMES_Bom_MainService.cs | 13 - .../mes/Partial/IMES_CustomerService.cs | 13 - ...S_DefectiveProductDisposalRecordService.cs | 13 - .../IMES_DefectiveProductRecordService.cs | 13 - .../IMES_EquipmentFaultRecordService.cs | 13 - .../IMES_EquipmentMaintenanceService.cs | 13 - .../IMES_EquipmentManagementService.cs | 13 - .../Partial/IMES_EquipmentRepairService.cs | 13 - .../IMES_InventoryManagementService.cs | 13 - .../Partial/IMES_LocationManagementService.cs | 13 - .../Partial/IMES_MaterialCatalogService.cs | 13 - .../mes/Partial/IMES_MaterialService.cs | 13 - .../mes/Partial/IMES_ProcessReportService.cs | 13 - .../mes/Partial/IMES_ProcessRouteService.cs | 13 - .../mes/Partial/IMES_ProductInboundService.cs | 13 - .../Partial/IMES_ProductOutboundService.cs | 13 - .../IMES_ProductionLineDeviceService.cs | 13 - .../mes/Partial/IMES_ProductionLineService.cs | 13 - .../Partial/IMES_ProductionOrderService.cs | 13 - .../IMES_ProductionPlanChangeRecordService.cs | 13 - .../IMES_ProductionPlanDetailService.cs | 13 - .../IMES_ProductionReportingDetailService.cs | 13 - .../IMES_ProductionReportingService.cs | 13 - ...IMES_QualityInspectionPlanDetailService.cs | 13 - .../IMES_QualityInspectionPlanService.cs | 13 - .../IMES_QualityInspectionRecordService.cs | 13 - .../mes/Partial/IMES_SchedulingPlanService.cs | 13 - .../mes/Partial/IMES_SupplierService.cs | 13 - .../IMES_WarehouseManagementService.cs | 13 - .../mes/Partial/ITestServiceService.cs | 13 - .../mes/MES_Bom_DetailRepository.cs | 24 - .../mes/MES_Bom_MainRepository.cs | 24 - .../mes/MES_CustomerRepository.cs | 24 - ...efectiveProductDisposalRecordRepository.cs | 24 - .../MES_DefectiveProductRecordRepository.cs | 24 - .../mes/MES_EquipmentFaultRecordRepository.cs | 24 - .../mes/MES_EquipmentMaintenanceRepository.cs | 24 - .../mes/MES_EquipmentManagementRepository.cs | 24 - .../mes/MES_EquipmentRepairRepository.cs | 24 - .../mes/MES_InventoryManagementRepository.cs | 24 - .../mes/MES_LocationManagementRepository.cs | 24 - .../mes/MES_MaterialCatalogRepository.cs | 24 - .../mes/MES_MaterialRepository.cs | 24 - .../mes/MES_ProcessReportRepository.cs | 24 - .../Repositories/mes/MES_ProcessRepository.cs | 24 - .../mes/MES_ProcessRouteRepository.cs | 24 - .../mes/MES_ProductInboundRepository.cs | 24 - .../mes/MES_ProductOutboundRepository.cs | 24 - .../mes/MES_ProductionLineDeviceRepository.cs | 24 - .../mes/MES_ProductionLineRepository.cs | 24 - .../mes/MES_ProductionOrderRepository.cs | 24 - ...ES_ProductionPlanChangeRecordRepository.cs | 24 - .../mes/MES_ProductionPlanDetailRepository.cs | 24 - ...MES_ProductionReportingDetailRepository.cs | 24 - .../mes/MES_ProductionReportingRepository.cs | 24 - ...S_QualityInspectionPlanDetailRepository.cs | 24 - .../MES_QualityInspectionPlanRepository.cs | 24 - .../MES_QualityInspectionRecordRepository.cs | 24 - .../mes/MES_SchedulingPlanRepository.cs | 24 - .../mes/MES_SupplierRepository.cs | 24 - .../mes/MES_WarehouseManagementRepository.cs | 24 - .../Repositories/mes/TestServiceRepository.cs | 26 - VOL.MES/Services/mes/MES_Bom_DetailService.cs | 22 - VOL.MES/Services/mes/MES_Bom_MainService.cs | 22 - VOL.MES/Services/mes/MES_CustomerService.cs | 22 - ...S_DefectiveProductDisposalRecordService.cs | 22 - .../mes/MES_DefectiveProductRecordService.cs | 22 - .../mes/MES_EquipmentFaultRecordService.cs | 22 - .../mes/MES_EquipmentMaintenanceService.cs | 22 - .../mes/MES_EquipmentManagementService.cs | 22 - .../mes/MES_EquipmentRepairService.cs | 22 - .../mes/MES_InventoryManagementService.cs | 22 - .../mes/MES_LocationManagementService.cs | 22 - .../mes/MES_MaterialCatalogService.cs | 22 - VOL.MES/Services/mes/MES_MaterialService.cs | 22 - .../Services/mes/MES_ProcessReportService.cs | 22 - .../Services/mes/MES_ProcessRouteService.cs | 22 - VOL.MES/Services/mes/MES_ProcessService.cs | 22 - .../Services/mes/MES_ProductInboundService.cs | 22 - .../mes/MES_ProductOutboundService.cs | 22 - .../mes/MES_ProductionLineDeviceService.cs | 22 - .../Services/mes/MES_ProductionLineService.cs | 22 - .../mes/MES_ProductionOrderService.cs | 22 - .../MES_ProductionPlanChangeRecordService.cs | 22 - .../mes/MES_ProductionPlanDetailService.cs | 22 - .../MES_ProductionReportingDetailService.cs | 22 - .../mes/MES_ProductionReportingService.cs | 22 - .../MES_QualityInspectionPlanDetailService.cs | 22 - .../mes/MES_QualityInspectionPlanService.cs | 22 - .../mes/MES_QualityInspectionRecordService.cs | 22 - .../Services/mes/MES_SchedulingPlanService.cs | 22 - VOL.MES/Services/mes/MES_SupplierService.cs | 22 - .../mes/MES_WarehouseManagementService.cs | 22 - .../mes/Partial/MES_Bom_DetailService.cs | 41 -- .../mes/Partial/MES_Bom_MainService.cs | 41 -- .../mes/Partial/MES_CustomerService.cs | 41 -- ...S_DefectiveProductDisposalRecordService.cs | 41 -- .../MES_DefectiveProductRecordService.cs | 41 -- .../MES_EquipmentFaultRecordService.cs | 41 -- .../MES_EquipmentMaintenanceService.cs | 41 -- .../Partial/MES_EquipmentManagementService.cs | 41 -- .../mes/Partial/MES_EquipmentRepairService.cs | 41 -- .../Partial/MES_InventoryManagementService.cs | 56 -- .../Partial/MES_LocationManagementService.cs | 41 -- .../mes/Partial/MES_MaterialCatalogService.cs | 41 -- .../mes/Partial/MES_MaterialService.cs | 41 -- .../mes/Partial/MES_ProcessReportService.cs | 57 -- .../mes/Partial/MES_ProcessRouteService.cs | 41 -- .../mes/Partial/MES_ProcessService.cs | 41 -- .../mes/Partial/MES_ProductInboundService.cs | 57 -- .../mes/Partial/MES_ProductOutboundService.cs | 57 -- .../MES_ProductionLineDeviceService.cs | 41 -- .../mes/Partial/MES_ProductionLineService.cs | 41 -- .../mes/Partial/MES_ProductionOrderService.cs | 68 -- .../MES_ProductionPlanChangeRecordService.cs | 41 -- .../MES_ProductionPlanDetailService.cs | 57 -- .../MES_ProductionReportingDetailService.cs | 41 -- .../Partial/MES_ProductionReportingService.cs | 76 --- .../MES_QualityInspectionPlanDetailService.cs | 41 -- .../MES_QualityInspectionPlanService.cs | 41 -- .../MES_QualityInspectionRecordService.cs | 41 -- .../mes/Partial/MES_SchedulingPlanService.cs | 41 -- .../mes/Partial/MES_SupplierService.cs | 41 -- .../Partial/MES_WarehouseManagementService.cs | 41 -- VOL.MES/Services/mes/TestServiceService.cs | 22 - VOL.MES/VOL.MES.csproj | 22 - .../Controllers/HR/HR_DeptShipController.cs | 21 + .../Controllers/HR/HR_DeptSyncController.cs | 21 + .../HR/Partial/HR_DeptShipController.cs | 45 ++ .../HR/Partial/HR_DeptSyncController.cs | 33 + .../HR/Partial/HR_EmployeeSyncController.cs | 37 ++ .../Controllers/OSS/AliOSSController.cs | 87 --- VOL.WebApi/Dockerfile | 2 +- .../20250925/系统日志20250925181441.xlsx | Bin 0 -> 32631 bytes .../20250925/系统日志20250925192501.xlsx | Bin 0 -> 46402 bytes .../20250925/系统日志20250925195820.xlsx | Bin 0 -> 52485 bytes .../Logger/Queue/WriteError/20250925.txt | 11 +- VOL.WebApi/Startup.cs | 4 +- VOL.WebApi/appsettings.json | 4 +- VOL.YSErp/Models/Biz/YSERPDepartment.cs | 45 ++ VOL.YSErp/Models/Biz/YSERPEmployee.cs | 35 + .../Models/Biz/YSERPEmployeeUpdateModel.cs | 613 ++++++++++++++++++ VOL.YSErp/Models/Biz/YSERPResponse.cs | 42 ++ VOL.YSErp/Models/SystemToken.cs | 21 + VOL.YSErp/Models/YSConfig.cs | 22 + VOL.YSErp/Services/Biz/YSERPService.cs | 406 ++++++++++++ VOL.YSErp/VOL.YSErp.csproj | 13 + VOL.sln | 14 +- 238 files changed, 2355 insertions(+), 4591 deletions(-) create mode 100644 VOL.DingTalk/Models/Biz/DingTalkDepartment.cs create mode 100644 VOL.DingTalk/Models/Biz/DingTalkEmployee.cs create mode 100644 VOL.DingTalk/Models/Biz/DingTalkEmployeeRsp.cs create mode 100644 VOL.DingTalk/Models/Biz/DingTalkResponse.cs create mode 100644 VOL.DingTalk/Models/DingTalkConfig.cs create mode 100644 VOL.DingTalk/Models/SystemToken.cs rename {VOL.HR/Services/DingTalk => VOL.DingTalk/Services/Biz}/DingTalkService.cs (75%) create mode 100644 VOL.DingTalk/VOL.DingTalk.csproj create mode 100644 VOL.Entity/DomainModels/DeptShip/HR_DeptShip.cs create mode 100644 VOL.Entity/DomainModels/DeptShip/partial/HR_DeptShip.cs create mode 100644 VOL.Entity/DomainModels/DeptSync/HR_DeptSync.cs create mode 100644 VOL.Entity/DomainModels/DeptSync/partial/HR_DeptSync.cs rename VOL.MES/IRepositories/mes/IMES_ProcessRepository.cs => VOL.HR/IRepositories/DeptShip/IHR_DeptShipRepository.cs (67%) rename VOL.MES/IRepositories/mes/ITestServiceRepository.cs => VOL.HR/IRepositories/DeptSync/IHR_DeptSyncRepository.cs (67%) rename VOL.MES/IServices/mes/IMES_ProcessService.cs => VOL.HR/IServices/DeptShip/IHR_DeptShipService.cs (61%) create mode 100644 VOL.HR/IServices/DeptShip/Partial/IHR_DeptShipService.cs rename VOL.MES/IServices/mes/ITestServiceService.cs => VOL.HR/IServices/DeptSync/IHR_DeptSyncService.cs (61%) rename VOL.MES/IServices/mes/Partial/IMES_ProcessService.cs => VOL.HR/IServices/DeptSync/Partial/IHR_DeptSyncService.cs (50%) create mode 100644 VOL.HR/Repositories/DeptShip/HR_DeptShipRepository.cs create mode 100644 VOL.HR/Repositories/DeptSync/HR_DeptSyncRepository.cs create mode 100644 VOL.HR/Services/DeptShip/HR_DeptShipService.cs create mode 100644 VOL.HR/Services/DeptShip/Partial/HR_DeptShipService.cs create mode 100644 VOL.HR/Services/DeptSync/HR_DeptSyncService.cs rename VOL.MES/Services/mes/Partial/TestServiceService.cs => VOL.HR/Services/DeptSync/Partial/HR_DeptSyncService.cs (74%) delete mode 100644 VOL.MES/IRepositories/mes/IMES_Bom_DetailRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_Bom_MainRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_CustomerRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_DefectiveProductDisposalRecordRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_DefectiveProductRecordRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_EquipmentFaultRecordRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_EquipmentMaintenanceRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_EquipmentManagementRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_EquipmentRepairRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_InventoryManagementRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_LocationManagementRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_MaterialCatalogRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_MaterialRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_ProcessReportRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_ProcessRouteRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_ProductInboundRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_ProductOutboundRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_ProductionLineDeviceRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_ProductionLineRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_ProductionOrderRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_ProductionPlanChangeRecordRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_ProductionPlanDetailRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_ProductionReportingDetailRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_ProductionReportingRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_QualityInspectionPlanDetailRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_QualityInspectionPlanRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_QualityInspectionRecordRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_SchedulingPlanRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_SupplierRepository.cs delete mode 100644 VOL.MES/IRepositories/mes/IMES_WarehouseManagementRepository.cs delete mode 100644 VOL.MES/IServices/mes/IMES_Bom_DetailService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_Bom_MainService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_CustomerService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_DefectiveProductDisposalRecordService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_DefectiveProductRecordService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_EquipmentFaultRecordService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_EquipmentMaintenanceService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_EquipmentManagementService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_EquipmentRepairService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_InventoryManagementService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_LocationManagementService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_MaterialCatalogService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_MaterialService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_ProcessReportService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_ProcessRouteService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_ProductInboundService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_ProductOutboundService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_ProductionLineDeviceService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_ProductionLineService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_ProductionOrderService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_ProductionPlanChangeRecordService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_ProductionPlanDetailService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_ProductionReportingDetailService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_ProductionReportingService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_QualityInspectionPlanDetailService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_QualityInspectionPlanService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_QualityInspectionRecordService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_SchedulingPlanService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_SupplierService.cs delete mode 100644 VOL.MES/IServices/mes/IMES_WarehouseManagementService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_Bom_DetailService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_Bom_MainService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_CustomerService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_DefectiveProductDisposalRecordService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_DefectiveProductRecordService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_EquipmentFaultRecordService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_EquipmentMaintenanceService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_EquipmentManagementService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_EquipmentRepairService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_InventoryManagementService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_LocationManagementService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_MaterialCatalogService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_MaterialService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_ProcessReportService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_ProcessRouteService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_ProductInboundService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_ProductOutboundService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_ProductionLineDeviceService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_ProductionLineService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_ProductionOrderService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_ProductionPlanChangeRecordService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_ProductionPlanDetailService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_ProductionReportingDetailService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_ProductionReportingService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_QualityInspectionPlanDetailService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_QualityInspectionPlanService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_QualityInspectionRecordService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_SchedulingPlanService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_SupplierService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/IMES_WarehouseManagementService.cs delete mode 100644 VOL.MES/IServices/mes/Partial/ITestServiceService.cs delete mode 100644 VOL.MES/Repositories/mes/MES_Bom_DetailRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_Bom_MainRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_CustomerRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_DefectiveProductDisposalRecordRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_DefectiveProductRecordRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_EquipmentFaultRecordRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_EquipmentMaintenanceRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_EquipmentManagementRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_EquipmentRepairRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_InventoryManagementRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_LocationManagementRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_MaterialCatalogRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_MaterialRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_ProcessReportRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_ProcessRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_ProcessRouteRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_ProductInboundRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_ProductOutboundRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_ProductionLineDeviceRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_ProductionLineRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_ProductionOrderRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_ProductionPlanChangeRecordRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_ProductionPlanDetailRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_ProductionReportingDetailRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_ProductionReportingRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_QualityInspectionPlanDetailRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_QualityInspectionPlanRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_QualityInspectionRecordRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_SchedulingPlanRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_SupplierRepository.cs delete mode 100644 VOL.MES/Repositories/mes/MES_WarehouseManagementRepository.cs delete mode 100644 VOL.MES/Repositories/mes/TestServiceRepository.cs delete mode 100644 VOL.MES/Services/mes/MES_Bom_DetailService.cs delete mode 100644 VOL.MES/Services/mes/MES_Bom_MainService.cs delete mode 100644 VOL.MES/Services/mes/MES_CustomerService.cs delete mode 100644 VOL.MES/Services/mes/MES_DefectiveProductDisposalRecordService.cs delete mode 100644 VOL.MES/Services/mes/MES_DefectiveProductRecordService.cs delete mode 100644 VOL.MES/Services/mes/MES_EquipmentFaultRecordService.cs delete mode 100644 VOL.MES/Services/mes/MES_EquipmentMaintenanceService.cs delete mode 100644 VOL.MES/Services/mes/MES_EquipmentManagementService.cs delete mode 100644 VOL.MES/Services/mes/MES_EquipmentRepairService.cs delete mode 100644 VOL.MES/Services/mes/MES_InventoryManagementService.cs delete mode 100644 VOL.MES/Services/mes/MES_LocationManagementService.cs delete mode 100644 VOL.MES/Services/mes/MES_MaterialCatalogService.cs delete mode 100644 VOL.MES/Services/mes/MES_MaterialService.cs delete mode 100644 VOL.MES/Services/mes/MES_ProcessReportService.cs delete mode 100644 VOL.MES/Services/mes/MES_ProcessRouteService.cs delete mode 100644 VOL.MES/Services/mes/MES_ProcessService.cs delete mode 100644 VOL.MES/Services/mes/MES_ProductInboundService.cs delete mode 100644 VOL.MES/Services/mes/MES_ProductOutboundService.cs delete mode 100644 VOL.MES/Services/mes/MES_ProductionLineDeviceService.cs delete mode 100644 VOL.MES/Services/mes/MES_ProductionLineService.cs delete mode 100644 VOL.MES/Services/mes/MES_ProductionOrderService.cs delete mode 100644 VOL.MES/Services/mes/MES_ProductionPlanChangeRecordService.cs delete mode 100644 VOL.MES/Services/mes/MES_ProductionPlanDetailService.cs delete mode 100644 VOL.MES/Services/mes/MES_ProductionReportingDetailService.cs delete mode 100644 VOL.MES/Services/mes/MES_ProductionReportingService.cs delete mode 100644 VOL.MES/Services/mes/MES_QualityInspectionPlanDetailService.cs delete mode 100644 VOL.MES/Services/mes/MES_QualityInspectionPlanService.cs delete mode 100644 VOL.MES/Services/mes/MES_QualityInspectionRecordService.cs delete mode 100644 VOL.MES/Services/mes/MES_SchedulingPlanService.cs delete mode 100644 VOL.MES/Services/mes/MES_SupplierService.cs delete mode 100644 VOL.MES/Services/mes/MES_WarehouseManagementService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_Bom_DetailService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_Bom_MainService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_CustomerService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_DefectiveProductDisposalRecordService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_DefectiveProductRecordService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_EquipmentFaultRecordService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_EquipmentMaintenanceService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_EquipmentManagementService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_EquipmentRepairService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_InventoryManagementService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_LocationManagementService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_MaterialCatalogService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_MaterialService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_ProcessReportService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_ProcessRouteService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_ProcessService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_ProductInboundService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_ProductOutboundService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_ProductionLineDeviceService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_ProductionLineService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_ProductionOrderService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_ProductionPlanChangeRecordService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_ProductionPlanDetailService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_ProductionReportingDetailService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_ProductionReportingService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_QualityInspectionPlanDetailService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_QualityInspectionPlanService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_QualityInspectionRecordService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_SchedulingPlanService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_SupplierService.cs delete mode 100644 VOL.MES/Services/mes/Partial/MES_WarehouseManagementService.cs delete mode 100644 VOL.MES/Services/mes/TestServiceService.cs delete mode 100644 VOL.MES/VOL.MES.csproj create mode 100644 VOL.WebApi/Controllers/HR/HR_DeptShipController.cs create mode 100644 VOL.WebApi/Controllers/HR/HR_DeptSyncController.cs create mode 100644 VOL.WebApi/Controllers/HR/Partial/HR_DeptShipController.cs create mode 100644 VOL.WebApi/Controllers/HR/Partial/HR_DeptSyncController.cs delete mode 100644 VOL.WebApi/Controllers/OSS/AliOSSController.cs create mode 100644 VOL.WebApi/Download/ExcelExport/20250925/系统日志20250925181441.xlsx create mode 100644 VOL.WebApi/Download/ExcelExport/20250925/系统日志20250925192501.xlsx create mode 100644 VOL.WebApi/Download/ExcelExport/20250925/系统日志20250925195820.xlsx create mode 100644 VOL.YSErp/Models/Biz/YSERPDepartment.cs create mode 100644 VOL.YSErp/Models/Biz/YSERPEmployee.cs create mode 100644 VOL.YSErp/Models/Biz/YSERPEmployeeUpdateModel.cs create mode 100644 VOL.YSErp/Models/Biz/YSERPResponse.cs create mode 100644 VOL.YSErp/Models/SystemToken.cs create mode 100644 VOL.YSErp/Models/YSConfig.cs create mode 100644 VOL.YSErp/Services/Biz/YSERPService.cs create mode 100644 VOL.YSErp/VOL.YSErp.csproj diff --git a/VOL.DingTalk/Models/Biz/DingTalkDepartment.cs b/VOL.DingTalk/Models/Biz/DingTalkDepartment.cs new file mode 100644 index 0000000..eb9fdf9 --- /dev/null +++ b/VOL.DingTalk/Models/Biz/DingTalkDepartment.cs @@ -0,0 +1,33 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VOL.DingTalk.Models.Biz +{ + + public class DingTalkDepartment + { + public bool auto_add_user { get; set; } + public bool create_dept_group { get; set; } + public int dept_id { get; set; } + public string name { get; set; } + public int parent_id { get; set; } + + public string ext { get; set; } + + [JsonIgnore] + public List subDepartments { get; set; } = []; + + /// + /// 递归获取部门ID列表 + /// + /// + public List GetDeptIds() + { + return [dept_id, ..subDepartments.SelectMany(i => i.GetDeptIds()).ToList()]; + } + } +} diff --git a/VOL.DingTalk/Models/Biz/DingTalkEmployee.cs b/VOL.DingTalk/Models/Biz/DingTalkEmployee.cs new file mode 100644 index 0000000..3673d93 --- /dev/null +++ b/VOL.DingTalk/Models/Biz/DingTalkEmployee.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VOL.DingTalk.Models.Biz +{ + public class DingTalkEmployee + { + + public string? UserId { get; set; } + + public string? Name { get; set; } + public string? Email { get; set; } + public string? Mobile { get; set; } + public string? JobNumber { get; set; } + public string? ReportManager { get; set; } + public string? Position { get; set; } + public string? Dept { get; set; } + + public static DingTalkEmployee TranFrom(DingTalkEmployeeRsp emp) + { + var obj = new DingTalkEmployee + { + UserId = emp.userid, + Name = emp.fieldDataList?.FirstOrDefault(f => f.fieldCode == "sys00-name")?.fieldValueList?.First()?.label, + Email = emp.fieldDataList?.FirstOrDefault(f => f.fieldCode == "sys00-email")?.fieldValueList?.First()?.label, + Mobile = emp.fieldDataList?.FirstOrDefault(f => f.fieldCode == "sys00-mobile")?.fieldValueList?.First()?.label, + JobNumber = emp.fieldDataList?.FirstOrDefault(f => f.fieldCode == "sys00-jobNumber")?.fieldValueList?.First()?.label, + ReportManager = emp.fieldDataList?.FirstOrDefault(f => f.fieldCode == "sys00-reportManager")?.fieldValueList?.First()?.label, + Position = emp.fieldDataList?.FirstOrDefault(f => f.fieldCode == "sys00-position")?.fieldValueList?.First()?.label, + Dept = emp.fieldDataList?.FirstOrDefault(f => f.fieldCode == "sys00-dept")?.fieldValueList?.First()?.label, + }; + return obj; + } + } +} diff --git a/VOL.DingTalk/Models/Biz/DingTalkEmployeeRsp.cs b/VOL.DingTalk/Models/Biz/DingTalkEmployeeRsp.cs new file mode 100644 index 0000000..b55a825 --- /dev/null +++ b/VOL.DingTalk/Models/Biz/DingTalkEmployeeRsp.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VOL.DingTalk.Models.Biz +{ + public class DingTalkEmployeeRsp + { + + public FieldDataList[] fieldDataList { get; set; } + public string corpId { get; set; } + public string userid { get; set; } + } + + public class FieldDataList + { + public string fieldCode { get; set; } + public string fieldName { get; set; } + public string groupId { get; set; } + public string label { get; set; } + public string value { get; set; } + + public List fieldValueList { get; set;} + } + + public class FieldValueList + { + public int itemIndex { get; set; } + public string label { get; set; } + public string value { get; set; } + } + + public class EmployeeQuery { + + public List data_list { get; set; } + public long? next_cursor { get; set; } + } + +} diff --git a/VOL.DingTalk/Models/Biz/DingTalkResponse.cs b/VOL.DingTalk/Models/Biz/DingTalkResponse.cs new file mode 100644 index 0000000..e1d11ef --- /dev/null +++ b/VOL.DingTalk/Models/Biz/DingTalkResponse.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VOL.DingTalk.Models.Biz +{ + internal class DingTalkResponse + { + public int errcode { get; set; } + public string errmsg { get; set; } + public T result { get; set; } + public string request_id { get; set; } + public bool? success { get; set; } + + } +} diff --git a/VOL.DingTalk/Models/DingTalkConfig.cs b/VOL.DingTalk/Models/DingTalkConfig.cs new file mode 100644 index 0000000..cdd5f5f --- /dev/null +++ b/VOL.DingTalk/Models/DingTalkConfig.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VOL.DingTalk.Models +{ + /* + "dingtalk": { + "corp_id": "dingec656045526ce9c0ee0f45d8e4f7c288", + "app_key": "dingtl9hb00ktdkguzrh", + "app_secret": "NkWagc8VEhdZyjEPkK0oYbi_ZzqVMHLelmFWdGswBjh2zGgSt0UWLj1W58xNHwfv", + "agent_id": 3973173455 + }, + */ + public class DingTalkConfig + { + public string CorpId = "dingec656045526ce9c0ee0f45d8e4f7c288"; + public string AppKey = "dingtl9hb00ktdkguzrh"; + public string AppSecret = "NkWagc8VEhdZyjEPkK0oYbi_ZzqVMHLelmFWdGswBjh2zGgSt0UWLj1W58xNHwfv"; + public long AgentId = 3973173455; + + public List fields = [ + + "sys00-name", // 姓名 + "sys00-email", // 邮箱 + "sys00-mobile", // 手机号 + "sys02-certNo", // 证件号码 + "sys02-birthTime", // 出生日期 + "sys02-sexType", // 性别 + "sys00-dept", // 部门 + "sys00-jobNumber" // 工号 + ]; + } +} diff --git a/VOL.DingTalk/Models/SystemToken.cs b/VOL.DingTalk/Models/SystemToken.cs new file mode 100644 index 0000000..cff57e0 --- /dev/null +++ b/VOL.DingTalk/Models/SystemToken.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VOL.DingTalk.Models +{ + public class SystemToken + { + public string Token { get; set; } + public int TokenExpiry { get; set; } + public DateTime TokenEndTime { get; set; } = DateTime.Now; + + public bool IsTokenExpiry() + { + //if (TokenEndTime == null) return true; + return TokenExpiry == 0 || TokenEndTime > DateTime.Now; + } + } +} diff --git a/VOL.HR/Services/DingTalk/DingTalkService.cs b/VOL.DingTalk/Services/Biz/DingTalkService.cs similarity index 75% rename from VOL.HR/Services/DingTalk/DingTalkService.cs rename to VOL.DingTalk/Services/Biz/DingTalkService.cs index 4684f90..958630a 100644 --- a/VOL.HR/Services/DingTalk/DingTalkService.cs +++ b/VOL.DingTalk/Services/Biz/DingTalkService.cs @@ -1,166 +1,164 @@ -using Microsoft.Extensions.Logging; -using Newtonsoft.Json; +using Newtonsoft.Json; using System.Globalization; +using System.Linq; using System.Net.Http.Headers; using System.Text; +using VOL.Core.Services; +using VOL.DingTalk.Models; +using VOL.DingTalk.Models.Biz; -namespace VOL.HR.Services.DingTalk +namespace VOL.DingTalk.Services.Biz { public class DingTalkService { - - private readonly string _corpId; - private readonly string _appKey; - private readonly string _appSecret; - private readonly string _agentId; - private string _accessToken; - private DateTime _tokenExpiry; - private readonly SemaphoreSlim _tokenLock = new SemaphoreSlim(1, 1); - private readonly ILogger _logger; - - // 钉钉API地址 - private readonly string _tokenUrl; private const string DepartmentSubUrl = "https://oapi.dingtalk.com/topapi/v2/department/listsub"; - private const string UserListIdUrl = "https://oapi.dingtalk.com/topapi/user/listid"; private const string RosterUrl = "https://api.dingtalk.com/v1.0/hrm/rosters/lists/query"; private const string UpdateEmployeeUrl = "https://oapi.dingtalk.com/topapi/smartwork/hrm/employee/v2/update"; - + private const string UserListIdUrl = "https://oapi.dingtalk.com/topapi/user/listid"; // 需要获取的花名册字段代码 - private readonly List _fieldCodes = new List - { - "sys00-name", // 姓名 - "sys00-email", // 邮箱 - "sys00-mobile", // 手机号 - "sys02-certNo", // 证件号码 - "sys02-birthTime", // 出生日期 - "sys02-sexType", // 性别 - "sys00-dept", // 部门 - "sys00-jobNumber" // 工号 - }; + private readonly List _fieldCodes = + [ + "sys00-name", // 姓名 + "sys00-email", // 邮箱 + "sys00-mobile", // 手机号 + "sys02-certNo", // 证件号码 + "sys02-birthTime", // 出生日期 + "sys02-sexType", // 性别 + "sys00-dept", // 部门 + "sys00-jobNumber", // 工号 + "sys00-reportManager", // 直接主管 + "sys00-position" // 职位 + ]; - public DingTalkService(string corpId, string appKey, string appSecret, string agentId, ILogger logger) + private readonly SemaphoreSlim _tokenLock = new SemaphoreSlim(1, 1); + // 钉钉API地址 + private readonly string _tokenUrl; + + private DingTalkConfig _config; + private SystemToken _token; + public DingTalkService(SystemToken token, DingTalkConfig config) { - _corpId = corpId; - _appKey = appKey; - _appSecret = appSecret; - _agentId = agentId; - _tokenUrl = $"https://api.dingtalk.com/v1.0/oauth2/{_corpId}/token"; - _logger = logger ?? throw new ArgumentNullException(nameof(logger)); + _token = token; + _config = config; + //Init(); + _tokenUrl = $"https://api.dingtalk.com/v1.0/oauth2/{_config.CorpId}/token"; } - - private async Task GetAccessTokenAsync() + public List> ExtractEmployeeData(List> rosterData) { - var payload = new Dictionary - { - { "client_id", _appKey }, - { "client_secret", _appSecret }, - { "grant_type", "client_credentials" } - }; + var employees = new List>(); - using (var client = new HttpClient()) + foreach (var userData in rosterData) { - client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); - var jsonPayload = JsonConvert.SerializeObject(payload); - var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json"); + var emp = new Dictionary { { "userid", userData["userId"].ToString() } }; - try - { - var response = await client.PostAsync(_tokenUrl, content); - response.EnsureSuccessStatusCode(); - var responseContent = await response.Content.ReadAsStringAsync(); - var data = JsonConvert.DeserializeObject>(responseContent); - return data["access_token"]; - } - catch (HttpRequestException ex) - { - _logger.LogError($"获取access_token失败: {ex.Message}"); - return null; - } - } - } + var fieldDataList = (Newtonsoft.Json.Linq.JArray)userData["fieldDataList"]; - public async Task GetValidTokenAsync() - { - await _tokenLock.WaitAsync(); - try - { - // 如果token不存在或已过期,重新获取 - if (string.IsNullOrEmpty(_accessToken) || DateTime.Now >= _tokenExpiry) + foreach (Newtonsoft.Json.Linq.JObject field in fieldDataList) { - _logger.LogInformation("钉钉access_token已过期,重新获取..."); - var token = await GetAccessTokenAsync(); - if (token != null) + string fieldCode = field["fieldCode"].ToString(); + string fieldValue = ""; + + var fieldValueList = (Newtonsoft.Json.Linq.JArray)field["fieldValueList"]; + if (fieldValueList != null && fieldValueList.Count > 0) { - _accessToken = token; - // 钉钉token有效期为7200秒,提前300秒刷新 - _tokenExpiry = DateTime.Now + TimeSpan.FromSeconds(6900); + // 处理部门信息 + if (fieldCode == "sys00-dept") + { + // 部门可能有多个,取第一个 + fieldValue = field["fieldValueList"][0]["label"].ToString(); + } + else + { + fieldValue = field["fieldValueList"][0]["label"].ToString(); + } } - else + + // 映射字段到中文名 + switch (fieldCode) { - _logger.LogError("无法获取有效的钉钉access_token"); - return null; + case "sys00-name": + emp["姓名"] = fieldValue; + break; + + case "sys00-email": + emp["邮箱"] = fieldValue; + break; + + case "sys00-dept": + emp["部门"] = fieldValue; + break; + + case "sys00-mobile": + emp["手机号"] = fieldValue; + break; + + case "sys02-certNo": + emp["证件号码"] = fieldValue; + break; + + case "sys02-birthTime": + emp["出生日期"] = fieldValue; + break; + + case "sys02-sexType": + emp["性别"] = fieldValue; + break; + + case "sys00-jobNumber": + emp["工号"] = fieldValue; + break; } } - return _accessToken; - } - finally - { - _tokenLock.Release(); + + employees.Add(emp); } + + return employees; } - public async Task>> GetSubDepartmentsAsync(long parentId = 1) + public async Task> GetAllEmployeesAsync() { + DateTime startTime = DateTime.Now; + + Logger.Info("正在获取钉钉访问凭证..."); var accessToken = await GetValidTokenAsync(); if (accessToken == null) { - return new List>(); + return new List(); } - var departments = new List>(); - var payload = new Dictionary { { "dept_id", parentId } }; - var queryParams = new Dictionary { { "access_token", accessToken } }; + Logger.Info("正在获取部门结构..."); + var departments = await GetSubDepartmentsAsync(); + Logger.Info($"共获取到 {departments.Count} 个部门"); - try + HashSet allUserIds = new HashSet(); + Logger.Info("正在获取部门用户列表..."); + foreach (var dept in departments) { - using (var client = new HttpClient()) - { - var jsonPayload = JsonConvert.SerializeObject(payload); - var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json"); - var uriBuilder = new UriBuilder(DepartmentSubUrl); - uriBuilder.Query = string.Join("&", queryParams.Select(kvp => $"{kvp.Key}={kvp.Value}")); - - var response = await client.PostAsync(uriBuilder.Uri, content); - response.EnsureSuccessStatusCode(); - var responseContent = await response.Content.ReadAsStringAsync(); - var data = JsonConvert.DeserializeObject>(responseContent); - - if (Convert.ToInt32(data["errcode"]) == 0) - { - var result = (Newtonsoft.Json.Linq.JArray)data["result"]; - foreach (Newtonsoft.Json.Linq.JObject dept in result) - { - long deptId = (long)dept["dept_id"]; - var department = new Dictionary - { - { "id", deptId }, - { "name", dept["name"].ToString() }, - { "parent_id", (long)dept["parent_id"] } - }; - departments.Add(department); - - // 递归获取子部门 - departments.AddRange(await GetSubDepartmentsAsync(deptId)); - } - } - return departments; - } + var userIds = await GetDeptUserIdsAsync(Convert.ToInt64(dept.dept_id)); + allUserIds.UnionWith(userIds); + Logger.Info($"部门 {dept.name} 有 {userIds.Count} 个用户"); } - catch (HttpRequestException ex) + + List userIdList = allUserIds.ToList(); + Logger.Info($"共获取到 {userIdList.Count} 个用户"); + + // 分批处理用户(每批100人) + var allEmployees = new List(); + int batchSize = 100; + for (int i = 0; i < userIdList.Count; i += batchSize) { - _logger.LogError($"获取部门列表失败: {ex.Message}"); - return new List>(); + var batch = userIdList.GetRange(i, Math.Min(batchSize, userIdList.Count - i)); + Logger.Info($"正在处理用户批次 {i / batchSize + 1}/{(userIdList.Count - 1) / batchSize + 1}"); + + var rosterData = await GetRosterInfoAsync(batch); + allEmployees.AddRange([.. rosterData.Select(DingTalkEmployee.TranFrom)]); } + + Logger.Info($"成功获取 {allEmployees.Count} 名员工信息"); + Logger.Info($"钉钉数据获取完成,耗时: {DateTime.Now.Subtract(startTime).TotalSeconds:.2f}秒"); + + return allEmployees; } public async Task> GetDeptUserIdsAsync(long deptId) @@ -198,30 +196,30 @@ namespace VOL.HR.Services.DingTalk } catch (HttpRequestException ex) { - _logger.LogError($"获取部门用户失败: {ex.Message}"); + Logger.Error($"获取部门用户失败: {ex.Message}"); return new List(); } } - public async Task>> GetRosterInfoAsync(List userIds) + public async Task> GetRosterInfoAsync(List userIds) { var accessToken = await GetValidTokenAsync(); if (accessToken == null) { - return new List>(); + return new List(); } var headers = new Dictionary { { "x-acs-dingtalk-access-token", accessToken }, - { "Content-Type", "application/json" } + //{ "Content-Type", "application/json" } }; var payload = new Dictionary { { "userIdList", userIds }, { "fieldFilterList", _fieldCodes }, - { "appAgentId", _agentId }, + { "appAgentId", _config.AgentId }, { "text2SelectConvert", true } }; @@ -229,6 +227,7 @@ namespace VOL.HR.Services.DingTalk { using (var client = new HttpClient()) { + client.DefaultRequestHeaders.Clear(); foreach (var header in headers) { client.DefaultRequestHeaders.Add(header.Key, header.Value); @@ -240,127 +239,111 @@ namespace VOL.HR.Services.DingTalk var response = await client.PostAsync(RosterUrl, content); response.EnsureSuccessStatusCode(); var responseContent = await response.Content.ReadAsStringAsync(); - var data = JsonConvert.DeserializeObject>(responseContent); - return ((Newtonsoft.Json.Linq.JArray)data["result"]).ToObject>>(); + //var data = JsonConvert.DeserializeObject>(responseContent); + //return ((Newtonsoft.Json.Linq.JArray)data["result"]).ToObject>(); + var rspResult = JsonConvert.DeserializeObject>>(responseContent); + return rspResult.result; } } catch (HttpRequestException ex) { - _logger.LogError($"获取花名册失败: {ex.Message}"); - return new List>(); + Logger.Error($"获取花名册失败: {ex.Message}"); + return new List(); } } - public List> ExtractEmployeeData(List> rosterData) + public async Task> GetSubDepartmentsAsync(long parentId = 1) { - var employees = new List>(); - - foreach (var userData in rosterData) - { - var emp = new Dictionary { { "userid", userData["userId"].ToString() } }; - - var fieldDataList = (Newtonsoft.Json.Linq.JArray)userData["fieldDataList"]; - - foreach (Newtonsoft.Json.Linq.JObject field in fieldDataList) - { - string fieldCode = field["fieldCode"].ToString(); - string fieldValue = ""; - - var fieldValueList = (Newtonsoft.Json.Linq.JArray)field["fieldValueList"]; - if (fieldValueList != null && fieldValueList.Count > 0) - { - // 处理部门信息 - if (fieldCode == "sys00-dept") - { - // 部门可能有多个,取第一个 - fieldValue = field["fieldValueList"][0]["label"].ToString(); - } - else - { - fieldValue = field["fieldValueList"][0]["label"].ToString(); - } - } - - // 映射字段到中文名 - switch (fieldCode) - { - case "sys00-name": - emp["姓名"] = fieldValue; - break; - case "sys00-email": - emp["邮箱"] = fieldValue; - break; - case "sys00-dept": - emp["部门"] = fieldValue; - break; - case "sys00-mobile": - emp["手机号"] = fieldValue; - break; - case "sys02-certNo": - emp["证件号码"] = fieldValue; - break; - case "sys02-birthTime": - emp["出生日期"] = fieldValue; - break; - case "sys02-sexType": - emp["性别"] = fieldValue; - break; - case "sys00-jobNumber": - emp["工号"] = fieldValue; - break; - } - } - - employees.Add(emp); - } - - return employees; - } - - public async Task<(List>, List>)> GetAllEmployeesAsync() - { - DateTime startTime = DateTime.Now; - - _logger.LogInformation("正在获取钉钉访问凭证..."); var accessToken = await GetValidTokenAsync(); if (accessToken == null) { - return (new List>(), new List>()); + return new List(); } - _logger.LogInformation("正在获取部门结构..."); - var departments = await GetSubDepartmentsAsync(); - _logger.LogInformation($"共获取到 {departments.Count} 个部门"); + var departments = new List(); + var payload = new Dictionary { { "dept_id", parentId } }; + var queryParams = new Dictionary { { "access_token", accessToken } }; - HashSet allUserIds = new HashSet(); - _logger.LogInformation("正在获取部门用户列表..."); - foreach (var dept in departments) + try { - var userIds = await GetDeptUserIdsAsync(Convert.ToInt64(dept["id"])); - allUserIds.UnionWith(userIds); - _logger.LogInformation($"部门 {dept["name"]} 有 {userIds.Count} 个用户"); + using (var client = new HttpClient()) + { + var jsonPayload = JsonConvert.SerializeObject(payload); + var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json"); + var uriBuilder = new UriBuilder(DepartmentSubUrl); + uriBuilder.Query = string.Join("&", queryParams.Select(kvp => $"{kvp.Key}={kvp.Value}")); + + var response = await client.PostAsync(uriBuilder.Uri, content); + response.EnsureSuccessStatusCode(); + var responseContent = await response.Content.ReadAsStringAsync(); + var data = JsonConvert.DeserializeObject>(responseContent); + + if (Convert.ToInt32(data["errcode"]) == 0) + { + var result = (Newtonsoft.Json.Linq.JArray)data["result"]; + foreach (Newtonsoft.Json.Linq.JObject dept in result) + { + long deptId = (long)dept["dept_id"]; + // var department = new DingTalkDepartment + //{ + // { "id", deptId }, + // { "name", dept["name"].ToString() }, + // { "parent_id", (long)dept["parent_id"] } + //}; + var department = new DingTalkDepartment + { + dept_id = (int)dept["dept_id"], + name = dept["name"].ToString(), + parent_id = (int)dept["parent_id"], + auto_add_user = (bool)dept["auto_add_user"], + create_dept_group = (bool)dept["create_dept_group"], + ext = dept["ext"]?.ToString() + }; + departments.Add(department); + + //await Task.Delay(1500); // 间隔1.5秒,避免请求过快 + // 递归获取子部门 + departments.AddRange(await GetSubDepartmentsAsync(deptId)); + } + } + return departments; + } } - - List userIdList = allUserIds.ToList(); - _logger.LogInformation($"共获取到 {userIdList.Count} 个用户"); - - // 分批处理用户(每批100人) - List> allEmployees = new List>(); - int batchSize = 100; - for (int i = 0; i < userIdList.Count; i += batchSize) + catch (HttpRequestException ex) { - var batch = userIdList.GetRange(i, Math.Min(batchSize, userIdList.Count - i)); - _logger.LogInformation($"正在处理用户批次 {i / batchSize + 1}/{(userIdList.Count - 1) / batchSize + 1}"); - - var rosterData = await GetRosterInfoAsync(batch); - var employees = ExtractEmployeeData(rosterData); - allEmployees.AddRange(employees); + Logger.Error($"获取部门列表失败: {ex.Message}"); + return new List(); } + } - _logger.LogInformation($"成功获取 {allEmployees.Count} 名员工信息"); - _logger.LogInformation($"钉钉数据获取完成,耗时: {DateTime.Now.Subtract(startTime).TotalSeconds:.2f}秒"); - - return (allEmployees, departments); + public async Task GetValidTokenAsync() + { + await _tokenLock.WaitAsync(); + try + { + // 如果token不存在或已过期,重新获取 + if (_token.IsTokenExpiry()) + { + Logger.Info("钉钉access_token已过期,重新获取..."); + var token = await GetAccessTokenAsync(); + if (token != null) + { + _token.Token = token; + // 钉钉token有效期为7200秒,提前300秒刷新 + _token.TokenExpiry = 6900; + } + else + { + Logger.Error("无法获取有效的钉钉access_token"); + return null; + } + } + return _token.Token; + } + finally + { + _tokenLock.Release(); + } } public async Task UpdateEmployeeAsync(string userId, Dictionary> fieldUpdates) @@ -421,7 +404,7 @@ namespace VOL.HR.Services.DingTalk var queryParams = new Dictionary { { "access_token", accessToken } }; var payload = new Dictionary { - { "agentid", _agentId }, + { "agentid", _config.AgentId }, { "param", new Dictionary { @@ -433,7 +416,7 @@ namespace VOL.HR.Services.DingTalk try { - _logger.LogInformation($"钉钉更新请求: {JsonConvert.SerializeObject(payload, Formatting.None)}"); + Logger.Info($"钉钉更新请求: {JsonConvert.SerializeObject(payload, Formatting.None)}"); using (var client = new HttpClient()) { @@ -444,8 +427,8 @@ namespace VOL.HR.Services.DingTalk var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json"); var response = await client.PostAsync(uriBuilder.Uri, content); - _logger.LogInformation($"钉钉更新响应状态: {response.StatusCode}"); - _logger.LogInformation($"钉钉更新响应内容: {await response.Content.ReadAsStringAsync()}"); + Logger.Info($"钉钉更新响应状态: {response.StatusCode}"); + Logger.Info($"钉钉更新响应内容: {await response.Content.ReadAsStringAsync()}"); response.EnsureSuccessStatusCode(); var responseContent = await response.Content.ReadAsStringAsync(); @@ -456,24 +439,40 @@ namespace VOL.HR.Services.DingTalk Convert.ToBoolean(data.GetValueOrDefault("result", false)) && Convert.ToBoolean(data.GetValueOrDefault("success", false))) { - _logger.LogInformation($"员工 {userId} 更新成功"); + Logger.Info($"员工 {userId} 更新成功"); return true; } else { string errorMsg = data.GetValueOrDefault("errmsg", "未知错误")?.ToString(); - _logger.LogError($"员工更新失败: {errorMsg}"); + Logger.Error($"员工更新失败: {errorMsg}"); return false; } } } catch (HttpRequestException ex) { - _logger.LogError($"更新员工信息失败: {ex.Message}"); + Logger.Error($"更新员工信息失败: {ex.Message}"); return false; } } + private string ConvertGenderForDingTalk(string gender) + { + if (gender == "男") + { + return "1"; + } + else if (gender == "女") + { + return "2"; + } + else + { + return gender; + } + } + private string FormatDate(string dateStr) { try @@ -505,21 +504,35 @@ namespace VOL.HR.Services.DingTalk } } - private string ConvertGenderForDingTalk(string gender) + private async Task GetAccessTokenAsync() { - if (gender == "男") + var payload = new Dictionary + { + { "client_id", _config.AppKey }, + { "client_secret", _config.AppSecret }, + { "grant_type", "client_credentials" } + }; + + using (var client = new HttpClient()) { - return "1"; - } - else if (gender == "女") - { - return "2"; - } - else - { - return gender; + client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + var jsonPayload = JsonConvert.SerializeObject(payload); + var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json"); + + try + { + var response = await client.PostAsync(_tokenUrl, content); + response.EnsureSuccessStatusCode(); + var responseContent = await response.Content.ReadAsStringAsync(); + var data = JsonConvert.DeserializeObject>(responseContent); + return data["access_token"]; + } + catch (HttpRequestException ex) + { + Logger.Error($"获取access_token失败: {ex.Message}"); + return null; + } } } - -} -} + } +} \ No newline at end of file diff --git a/VOL.DingTalk/VOL.DingTalk.csproj b/VOL.DingTalk/VOL.DingTalk.csproj new file mode 100644 index 0000000..4d4b247 --- /dev/null +++ b/VOL.DingTalk/VOL.DingTalk.csproj @@ -0,0 +1,13 @@ + + + + net8.0 + enable + enable + + + + + + + diff --git a/VOL.Entity/DomainModels/DeptShip/HR_DeptShip.cs b/VOL.Entity/DomainModels/DeptShip/HR_DeptShip.cs new file mode 100644 index 0000000..b409485 --- /dev/null +++ b/VOL.Entity/DomainModels/DeptShip/HR_DeptShip.cs @@ -0,0 +1,69 @@ +/* + *代码由框架生成,任何更改都可能导致被代码生成器覆盖 + *如果数据库字段发生变化,请在代码生器重新生成此Model + */ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using SqlSugar; +using VOL.Entity.SystemModels; + +namespace VOL.Entity.DomainModels +{ + [Entity(TableCnName = "跨系统部门关联",TableName = "HR_DeptShip")] + public partial class HR_DeptShip:BaseEntity + { + /// + ///关联关系ID + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + [Key] + [Display(Name ="关联关系ID")] + [Column(TypeName="int")] + [Editable(true)] + [Required(AllowEmptyStrings=false)] + public int ShipId { get; set; } + + /// + ///YSERP部门ID + /// + [Display(Name ="YSERP部门ID")] + [MaxLength(100)] + [Column(TypeName="nvarchar(100)")] + [Editable(true)] + public string YSDeptId { get; set; } + + /// + ///YS部门名称 + /// + [Display(Name ="YS部门名称")] + [MaxLength(100)] + [Column(TypeName="nvarchar(100)")] + [Editable(true)] + public string YSDeptName { get; set; } + + /// + ///钉钉部门ID + /// + [Display(Name ="钉钉部门ID")] + [MaxLength(100)] + [Column(TypeName="nvarchar(100)")] + [Editable(true)] + public string DingTalkDeptId { get; set; } + + /// + ///钉钉部门名称 + /// + [Display(Name ="钉钉部门名称")] + [MaxLength(100)] + [Column(TypeName="nvarchar(100)")] + [Editable(true)] + public string DingTalkDeptName { get; set; } + + + } +} \ No newline at end of file diff --git a/VOL.Entity/DomainModels/DeptShip/partial/HR_DeptShip.cs b/VOL.Entity/DomainModels/DeptShip/partial/HR_DeptShip.cs new file mode 100644 index 0000000..bd37a63 --- /dev/null +++ b/VOL.Entity/DomainModels/DeptShip/partial/HR_DeptShip.cs @@ -0,0 +1,22 @@ +/* + *代码由框架生成,任何更改都可能导致被代码生成器覆盖 + *如果数据库字段发生变化,请在代码生器重新生成此Model + */ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using SqlSugar; +using VOL.Entity.SystemModels; + +namespace VOL.Entity.DomainModels +{ + + public partial class HR_DeptShip + { + //此处配置字段(字段配置见此model的另一个partial),如果表中没有此字段请加上 [NotMapped]属性,否则会异常 + } +} \ No newline at end of file diff --git a/VOL.Entity/DomainModels/DeptSync/HR_DeptSync.cs b/VOL.Entity/DomainModels/DeptSync/HR_DeptSync.cs new file mode 100644 index 0000000..235598e --- /dev/null +++ b/VOL.Entity/DomainModels/DeptSync/HR_DeptSync.cs @@ -0,0 +1,64 @@ +/* + *代码由框架生成,任何更改都可能导致被代码生成器覆盖 + *如果数据库字段发生变化,请在代码生器重新生成此Model + */ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using SqlSugar; +using VOL.Entity.SystemModels; + +namespace VOL.Entity.DomainModels +{ + [Entity(TableCnName = "部门信息同步",TableName = "HR_DeptSync")] + public partial class HR_DeptSync:BaseEntity + { + /// + ///同步ID + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + [Key] + [Display(Name ="同步ID")] + [Column(TypeName="int")] + [Required(AllowEmptyStrings=false)] + public int DeptSyncId { get; set; } + + /// + ///YS部门ID + /// + [Display(Name ="YS部门ID")] + [MaxLength(100)] + [Column(TypeName="nvarchar(100)")] + public string YSDeptId { get; set; } + + /// + ///YS部门名称 + /// + [Display(Name ="YS部门名称")] + [MaxLength(100)] + [Column(TypeName="nvarchar(100)")] + public string YSDeptName { get; set; } + + /// + ///钉钉部门ID + /// + [Display(Name ="钉钉部门ID")] + [MaxLength(100)] + [Column(TypeName="nvarchar(100)")] + public string DingTalkDeptId { get; set; } + + /// + ///钉钉部门名称 + /// + [Display(Name ="钉钉部门名称")] + [MaxLength(100)] + [Column(TypeName="nvarchar(100)")] + public string DingTalkDeptName { get; set; } + + + } +} \ No newline at end of file diff --git a/VOL.Entity/DomainModels/DeptSync/partial/HR_DeptSync.cs b/VOL.Entity/DomainModels/DeptSync/partial/HR_DeptSync.cs new file mode 100644 index 0000000..fedf391 --- /dev/null +++ b/VOL.Entity/DomainModels/DeptSync/partial/HR_DeptSync.cs @@ -0,0 +1,22 @@ +/* + *代码由框架生成,任何更改都可能导致被代码生成器覆盖 + *如果数据库字段发生变化,请在代码生器重新生成此Model + */ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using SqlSugar; +using VOL.Entity.SystemModels; + +namespace VOL.Entity.DomainModels +{ + + public partial class HR_DeptSync + { + //此处配置字段(字段配置见此model的另一个partial),如果表中没有此字段请加上 [NotMapped]属性,否则会异常 + } +} \ No newline at end of file diff --git a/VOL.Entity/DomainModels/EmployeeSync/HR_EmployeeSync.cs b/VOL.Entity/DomainModels/EmployeeSync/HR_EmployeeSync.cs index 54179b4..fe6cc0f 100644 --- a/VOL.Entity/DomainModels/EmployeeSync/HR_EmployeeSync.cs +++ b/VOL.Entity/DomainModels/EmployeeSync/HR_EmployeeSync.cs @@ -15,6 +15,7 @@ using VOL.Entity.SystemModels; namespace VOL.Entity.DomainModels { [Entity(TableCnName = "员工信息同步",TableName = "HR_EmployeeSync")] + [SugarTable("HR_EmployeeSync")] public partial class HR_EmployeeSync:BaseEntity { /// diff --git a/VOL.MES/IRepositories/mes/IMES_ProcessRepository.cs b/VOL.HR/IRepositories/DeptShip/IHR_DeptShipRepository.cs similarity index 67% rename from VOL.MES/IRepositories/mes/IMES_ProcessRepository.cs rename to VOL.HR/IRepositories/DeptShip/IHR_DeptShipRepository.cs index 6c5eded..afd0276 100644 --- a/VOL.MES/IRepositories/mes/IMES_ProcessRepository.cs +++ b/VOL.HR/IRepositories/DeptShip/IHR_DeptShipRepository.cs @@ -1,6 +1,6 @@ /* *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_ProcessRepository编写接口 + *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IHR_DeptShipRepository编写接口 */ using System; using System.Collections.Generic; @@ -10,9 +10,9 @@ using System.Threading.Tasks; using VOL.Core.BaseProvider; using VOL.Entity.DomainModels; using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories +namespace VOL.HR.IRepositories { - public partial interface IMES_ProcessRepository : IDependency,IRepository + public partial interface IHR_DeptShipRepository : IDependency,IRepository { } } diff --git a/VOL.MES/IRepositories/mes/ITestServiceRepository.cs b/VOL.HR/IRepositories/DeptSync/IHR_DeptSyncRepository.cs similarity index 67% rename from VOL.MES/IRepositories/mes/ITestServiceRepository.cs rename to VOL.HR/IRepositories/DeptSync/IHR_DeptSyncRepository.cs index 0115960..daed029 100644 --- a/VOL.MES/IRepositories/mes/ITestServiceRepository.cs +++ b/VOL.HR/IRepositories/DeptSync/IHR_DeptSyncRepository.cs @@ -1,6 +1,6 @@ /* *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹ITestServiceRepository编写接口 + *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IHR_DeptSyncRepository编写接口 */ using System; using System.Collections.Generic; @@ -10,9 +10,9 @@ using System.Threading.Tasks; using VOL.Core.BaseProvider; using VOL.Entity.DomainModels; using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories +namespace VOL.HR.IRepositories { - public partial interface ITestServiceRepository : IDependency,IRepository + public partial interface IHR_DeptSyncRepository : IDependency,IRepository { } } diff --git a/VOL.MES/IServices/mes/IMES_ProcessService.cs b/VOL.HR/IServices/DeptShip/IHR_DeptShipService.cs similarity index 61% rename from VOL.MES/IServices/mes/IMES_ProcessService.cs rename to VOL.HR/IServices/DeptShip/IHR_DeptShipService.cs index 04e21c0..e70ab7d 100644 --- a/VOL.MES/IServices/mes/IMES_ProcessService.cs +++ b/VOL.HR/IServices/DeptShip/IHR_DeptShipService.cs @@ -4,9 +4,9 @@ using VOL.Core.BaseProvider; using VOL.Entity.DomainModels; -namespace VOL.MES.IServices +namespace VOL.HR.IServices { - public partial interface IMES_ProcessService : IService + public partial interface IHR_DeptShipService : IService { } } diff --git a/VOL.HR/IServices/DeptShip/Partial/IHR_DeptShipService.cs b/VOL.HR/IServices/DeptShip/Partial/IHR_DeptShipService.cs new file mode 100644 index 0000000..afb65b0 --- /dev/null +++ b/VOL.HR/IServices/DeptShip/Partial/IHR_DeptShipService.cs @@ -0,0 +1,15 @@ +/* +*所有关于HR_DeptShip类的业务代码接口应在此处编写 +*/ +using VOL.Core.BaseProvider; +using VOL.Entity.DomainModels; +using VOL.Core.Utilities; +using System.Linq.Expressions; +using VOL.YSErp.Models.Biz; +namespace VOL.HR.IServices +{ + public partial interface IHR_DeptShipService + { + Task> GetYSERPDepartments(); + } + } diff --git a/VOL.MES/IServices/mes/ITestServiceService.cs b/VOL.HR/IServices/DeptSync/IHR_DeptSyncService.cs similarity index 61% rename from VOL.MES/IServices/mes/ITestServiceService.cs rename to VOL.HR/IServices/DeptSync/IHR_DeptSyncService.cs index efc045f..985851d 100644 --- a/VOL.MES/IServices/mes/ITestServiceService.cs +++ b/VOL.HR/IServices/DeptSync/IHR_DeptSyncService.cs @@ -4,9 +4,9 @@ using VOL.Core.BaseProvider; using VOL.Entity.DomainModels; -namespace VOL.MES.IServices +namespace VOL.HR.IServices { - public partial interface ITestServiceService : IService + public partial interface IHR_DeptSyncService : IService { } } diff --git a/VOL.MES/IServices/mes/Partial/IMES_ProcessService.cs b/VOL.HR/IServices/DeptSync/Partial/IHR_DeptSyncService.cs similarity index 50% rename from VOL.MES/IServices/mes/Partial/IMES_ProcessService.cs rename to VOL.HR/IServices/DeptSync/Partial/IHR_DeptSyncService.cs index 1732f6f..0b13c3c 100644 --- a/VOL.MES/IServices/mes/Partial/IMES_ProcessService.cs +++ b/VOL.HR/IServices/DeptSync/Partial/IHR_DeptSyncService.cs @@ -1,13 +1,13 @@ /* -*所有关于MES_Process类的业务代码接口应在此处编写 +*所有关于HR_DeptSync类的业务代码接口应在此处编写 */ using VOL.Core.BaseProvider; using VOL.Entity.DomainModels; using VOL.Core.Utilities; using System.Linq.Expressions; -namespace VOL.MES.IServices +namespace VOL.HR.IServices { - public partial interface IMES_ProcessService + public partial interface IHR_DeptSyncService { } } diff --git a/VOL.HR/IServices/EmployeeSync/Partial/IHR_EmployeeSyncService.cs b/VOL.HR/IServices/EmployeeSync/Partial/IHR_EmployeeSyncService.cs index 67b8b89..47ac72f 100644 --- a/VOL.HR/IServices/EmployeeSync/Partial/IHR_EmployeeSyncService.cs +++ b/VOL.HR/IServices/EmployeeSync/Partial/IHR_EmployeeSyncService.cs @@ -5,9 +5,18 @@ using VOL.Core.BaseProvider; using VOL.Entity.DomainModels; using VOL.Core.Utilities; using System.Linq.Expressions; +using VOL.YSErp.Models.Biz; +using VOL.DingTalk.Models.Biz; namespace VOL.HR.IServices { public partial interface IHR_EmployeeSyncService { + Task> GetAllYSEmployees(); + + + Task> GetAllDingTalkEmployees(); + + + Task GenEmpSystemShip(); } } diff --git a/VOL.HR/Repositories/DeptShip/HR_DeptShipRepository.cs b/VOL.HR/Repositories/DeptShip/HR_DeptShipRepository.cs new file mode 100644 index 0000000..ad028c8 --- /dev/null +++ b/VOL.HR/Repositories/DeptShip/HR_DeptShipRepository.cs @@ -0,0 +1,26 @@ +/* + *代码由框架生成,任何更改都可能导致被代码生成器覆盖 + *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹HR_DeptShipRepository编写代码 + */ +using VOL.HR.IRepositories; +using VOL.Core.BaseProvider; +using VOL.Core.DbContext; +using VOL.Core.Extensions.AutofacManager; +using VOL.Entity.DomainModels; + +namespace VOL.HR.Repositories +{ + public partial class HR_DeptShipRepository : RepositoryBase + , IHR_DeptShipRepository + { + public HR_DeptShipRepository(VOLContext dbContext) + : base(dbContext) + { + + } + public static IHR_DeptShipRepository Instance + { + get { return AutofacContainerModule.GetService + (); } } + } + } diff --git a/VOL.HR/Repositories/DeptSync/HR_DeptSyncRepository.cs b/VOL.HR/Repositories/DeptSync/HR_DeptSyncRepository.cs new file mode 100644 index 0000000..270cf50 --- /dev/null +++ b/VOL.HR/Repositories/DeptSync/HR_DeptSyncRepository.cs @@ -0,0 +1,26 @@ +/* + *代码由框架生成,任何更改都可能导致被代码生成器覆盖 + *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹HR_DeptSyncRepository编写代码 + */ +using VOL.HR.IRepositories; +using VOL.Core.BaseProvider; +using VOL.Core.DbContext; +using VOL.Core.Extensions.AutofacManager; +using VOL.Entity.DomainModels; + +namespace VOL.HR.Repositories +{ + public partial class HR_DeptSyncRepository : RepositoryBase + , IHR_DeptSyncRepository + { + public HR_DeptSyncRepository(VOLContext dbContext) + : base(dbContext) + { + + } + public static IHR_DeptSyncRepository Instance + { + get { return AutofacContainerModule.GetService + (); } } + } + } diff --git a/VOL.HR/Services/DeptShip/HR_DeptShipService.cs b/VOL.HR/Services/DeptShip/HR_DeptShipService.cs new file mode 100644 index 0000000..dfb1c41 --- /dev/null +++ b/VOL.HR/Services/DeptShip/HR_DeptShipService.cs @@ -0,0 +1,22 @@ +/* + *Author:jxx + *Contact:283591387@qq.com + *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 + *所有业务编写全部应在Partial文件夹下HR_DeptShipService与IHR_DeptShipService中编写 + */ +using VOL.HR.IRepositories; +using VOL.HR.IServices; +using VOL.Core.BaseProvider; +using VOL.Core.Extensions.AutofacManager; +using VOL.Entity.DomainModels; + +namespace VOL.HR.Services +{ + public partial class HR_DeptShipService : ServiceBase + , IHR_DeptShipService, IDependency + { + public static IHR_DeptShipService Instance + { + get { return AutofacContainerModule.GetService(); } } + } + } diff --git a/VOL.HR/Services/DeptShip/Partial/HR_DeptShipService.cs b/VOL.HR/Services/DeptShip/Partial/HR_DeptShipService.cs new file mode 100644 index 0000000..03f6ef8 --- /dev/null +++ b/VOL.HR/Services/DeptShip/Partial/HR_DeptShipService.cs @@ -0,0 +1,67 @@ +/* + *所有关于HR_DeptShip类的业务代码应在此处编写 +*可使用repository.调用常用方法,获取EF/Dapper等信息 +*如果需要事务请使用repository.DbContextBeginTransaction +*也可使用DBServerProvider.手动获取数据库相关信息 +*用户信息、权限、角色等使用UserContext.Current操作 +*HR_DeptShipService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter +*/ +using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.DependencyInjection; +using Newtonsoft.Json; +using VOL.DingTalk.Models.Biz; +using VOL.DingTalk.Services.Biz; +using VOL.HR.IRepositories; +using VOL.YSErp.Models.Biz; +using VOL.YSErp.Services.Biz; + +namespace VOL.HR.Services +{ + public partial class HR_DeptShipService + { + private readonly IHttpContextAccessor _httpContextAccessor; + private readonly IHR_DeptShipRepository _repository;//访问数据库 + + private readonly DingTalkService _dingTalkService; + private readonly YSERPService _ysService; + [ActivatorUtilitiesConstructor] + private readonly Core.CacheManager.ICacheService _cacheService; + + [ActivatorUtilitiesConstructor] + public HR_DeptShipService( + IHR_DeptShipRepository dbRepository, + IHttpContextAccessor httpContextAccessor, + Core.CacheManager.ICacheService cacheService + ) + : base(dbRepository) + { + _httpContextAccessor = httpContextAccessor; + _repository = dbRepository; + //多租户会用到这init代码,其他情况可以不用 + //base.Init(dbRepository); + _cacheService = cacheService; + + _dingTalkService = new DingTalkService(new DingTalk.Models.SystemToken(), new DingTalk.Models.DingTalkConfig()); + _ysService = new YSERPService(new YSErp.Models.SystemToken(), new YSErp.Models.YSConfig()); + } + + + public Task> GetYSERPDepartments() + { + + if (_cacheService.Exists("YS_DEPT_CACHE")) + { + return Task.FromResult(_cacheService.Get>("YS_DEPT_CACHE")); + } + else + { + var depts = _ysService.GetAllDepartmentsAsync(); + if (depts != null) + { + _cacheService.Add("YS_DEPT_CACHE", JsonConvert.SerializeObject(depts.Result), 600); + } + return depts; + } + } + } +} diff --git a/VOL.HR/Services/DeptSync/HR_DeptSyncService.cs b/VOL.HR/Services/DeptSync/HR_DeptSyncService.cs new file mode 100644 index 0000000..348ae73 --- /dev/null +++ b/VOL.HR/Services/DeptSync/HR_DeptSyncService.cs @@ -0,0 +1,22 @@ +/* + *Author:jxx + *Contact:283591387@qq.com + *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 + *所有业务编写全部应在Partial文件夹下HR_DeptSyncService与IHR_DeptSyncService中编写 + */ +using VOL.HR.IRepositories; +using VOL.HR.IServices; +using VOL.Core.BaseProvider; +using VOL.Core.Extensions.AutofacManager; +using VOL.Entity.DomainModels; + +namespace VOL.HR.Services +{ + public partial class HR_DeptSyncService : ServiceBase + , IHR_DeptSyncService, IDependency + { + public static IHR_DeptSyncService Instance + { + get { return AutofacContainerModule.GetService(); } } + } + } diff --git a/VOL.MES/Services/mes/Partial/TestServiceService.cs b/VOL.HR/Services/DeptSync/Partial/HR_DeptSyncService.cs similarity index 74% rename from VOL.MES/Services/mes/Partial/TestServiceService.cs rename to VOL.HR/Services/DeptSync/Partial/HR_DeptSyncService.cs index 2f697dd..7133f30 100644 --- a/VOL.MES/Services/mes/Partial/TestServiceService.cs +++ b/VOL.HR/Services/DeptSync/Partial/HR_DeptSyncService.cs @@ -1,10 +1,10 @@ /* - *所有关于TestService类的业务代码应在此处编写 + *所有关于HR_DeptSync类的业务代码应在此处编写 *可使用repository.调用常用方法,获取EF/Dapper等信息 *如果需要事务请使用repository.DbContextBeginTransaction *也可使用DBServerProvider.手动获取数据库相关信息 *用户信息、权限、角色等使用UserContext.Current操作 -*TestServiceService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter +*HR_DeptSyncService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter */ using VOL.Core.BaseProvider; using VOL.Core.Extensions.AutofacManager; @@ -16,18 +16,18 @@ using VOL.Core.Extensions; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; +using VOL.HR.IRepositories; -namespace VOL.MES.Services +namespace VOL.HR.Services { - public partial class TestServiceService + public partial class HR_DeptSyncService { private readonly IHttpContextAccessor _httpContextAccessor; - private readonly ITestServiceRepository _repository;//访问数据库 + private readonly IHR_DeptSyncRepository _repository;//访问数据库 [ActivatorUtilitiesConstructor] - public TestServiceService( - ITestServiceRepository dbRepository, + public HR_DeptSyncService( + IHR_DeptSyncRepository dbRepository, IHttpContextAccessor httpContextAccessor ) : base(dbRepository) diff --git a/VOL.HR/Services/EmployeeSync/HR_EmployeeSyncService.cs b/VOL.HR/Services/EmployeeSync/HR_EmployeeSyncService.cs index 656f380..04d2989 100644 --- a/VOL.HR/Services/EmployeeSync/HR_EmployeeSyncService.cs +++ b/VOL.HR/Services/EmployeeSync/HR_EmployeeSyncService.cs @@ -18,5 +18,7 @@ namespace VOL.HR.Services public static IHR_EmployeeSyncService Instance { get { return AutofacContainerModule.GetService(); } } + + } } diff --git a/VOL.HR/Services/EmployeeSync/Partial/HR_EmployeeSyncService.cs b/VOL.HR/Services/EmployeeSync/Partial/HR_EmployeeSyncService.cs index 5bfa11e..7741158 100644 --- a/VOL.HR/Services/EmployeeSync/Partial/HR_EmployeeSyncService.cs +++ b/VOL.HR/Services/EmployeeSync/Partial/HR_EmployeeSyncService.cs @@ -6,17 +6,29 @@ *用户信息、权限、角色等使用UserContext.Current操作 *HR_EmployeeSyncService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter */ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; +using Microsoft.AspNetCore.Http; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.Logging; +using Newtonsoft.Json; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Linq.Expressions; +using System.Net.Http.Headers; +using System.Text; +using VOL.Core.BaseProvider; +using VOL.Core.CacheManager; +using VOL.Core.DBManager; +using VOL.Core.Extensions; +using VOL.Core.Extensions.AutofacManager; +using VOL.Core.Utilities; +using VOL.DingTalk.Models.Biz; +using VOL.DingTalk.Services.Biz; +using VOL.Entity.DomainModels; using VOL.HR.IRepositories; +using VOL.YSErp.Models.Biz; +using VOL.YSErp.Services.Biz; namespace VOL.HR.Services { @@ -24,11 +36,16 @@ namespace VOL.HR.Services { private readonly IHttpContextAccessor _httpContextAccessor; private readonly IHR_EmployeeSyncRepository _repository;//访问数据库 + private readonly DingTalkService _dingTalkService; + private readonly YSERPService _ysService; + [ActivatorUtilitiesConstructor] + private ICacheService _cacheService; [ActivatorUtilitiesConstructor] public HR_EmployeeSyncService( IHR_EmployeeSyncRepository dbRepository, - IHttpContextAccessor httpContextAccessor + IHttpContextAccessor httpContextAccessor, + ICacheService cacheService ) : base(dbRepository) { @@ -36,6 +53,98 @@ namespace VOL.HR.Services _repository = dbRepository; //多租户会用到这init代码,其他情况可以不用 //base.Init(dbRepository); + + _cacheService = cacheService; + + _dingTalkService = new DingTalkService(new DingTalk.Models.SystemToken(),new DingTalk.Models.DingTalkConfig()); + _ysService = new YSERPService(new YSErp.Models.SystemToken(), new YSErp.Models.YSConfig()); } - } + public Task> GetAllYSEmployees() + { + if (_cacheService.Exists("YS_EMP_CACHE")) + { + return Task.FromResult(_cacheService.Get>("YS_EMP_CACHE")); + } + else + { + var emps = _ysService.GetAllEmployeesAsync(); + if(emps != null) + { + _cacheService.Add("YS_EMP_CACHE", JsonConvert.SerializeObject(emps.Result), 600); + } + return emps; + } + } + public Task> GetAllDingTalkEmployees() + { + if (_cacheService.Exists("DingTalk_EMP_CACHE")) + { + return Task.FromResult(_cacheService.Get>("DingTalk_EMP_CACHE")); + } + else + { + var emps = _dingTalkService.GetAllEmployeesAsync(); + if(emps != null) + { + _cacheService.Add("DingTalk_EMP_CACHE", JsonConvert.SerializeObject(emps.Result), 600); + } + return emps; + } + } + + public Task GenEmpSystemShip() + { + List dingTalkEmployees = []; + List ysERPEmployees = []; + + var ysTask = GetAllYSEmployees().ContinueWith(x => + { + ysERPEmployees = x.Result; + }); + var dingTalkTask = GetAllDingTalkEmployees().ContinueWith(x => + { + dingTalkEmployees = x.Result; + }); + Task.WaitAll(ysTask, dingTalkTask); + if (ysERPEmployees.Count != 0) + { + var newList = new List(); + ysERPEmployees.ForEach(emp => + { + var dingTalkInfo = dingTalkEmployees?.FirstOrDefault(e => e.Mobile == emp.mobile); + if (dingTalkInfo != null) + { + //_repository.AddRange() + newList.Add(new HR_EmployeeSync + { + EmpYSID = emp.id, + EmpYSMobile = emp.mobile, + EmpYSDeptID = emp.dept_id, + EmpJobNumber = emp.code, + + EmpDingDingID = dingTalkInfo.UserId, + EmpDingDingMobile = dingTalkInfo.Mobile, + EmpLastSyncInfo = "Init generate for system.", + }); + } + }); + //_repository.AddRange(newList) + var db = DBServerProvider.SqlSugarClient; + try + { + db.BeginTran(); + // 清空重新生成 + db.Deleteable(); + db.Fastest().BulkCopy(newList); + db.CommitTran(); + } + catch (Exception) + { + db.RollbackTran(); + } + } + return Task.CompletedTask; + } + } + } diff --git a/VOL.HR/VOL.HR.csproj b/VOL.HR/VOL.HR.csproj index b248d49..d744867 100644 --- a/VOL.HR/VOL.HR.csproj +++ b/VOL.HR/VOL.HR.csproj @@ -8,11 +8,13 @@ + + - + diff --git a/VOL.MES/IRepositories/mes/IMES_Bom_DetailRepository.cs b/VOL.MES/IRepositories/mes/IMES_Bom_DetailRepository.cs deleted file mode 100644 index a823555..0000000 --- a/VOL.MES/IRepositories/mes/IMES_Bom_DetailRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_Bom_DetailRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_Bom_DetailRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_Bom_MainRepository.cs b/VOL.MES/IRepositories/mes/IMES_Bom_MainRepository.cs deleted file mode 100644 index c5fb2d4..0000000 --- a/VOL.MES/IRepositories/mes/IMES_Bom_MainRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_Bom_MainRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_Bom_MainRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_CustomerRepository.cs b/VOL.MES/IRepositories/mes/IMES_CustomerRepository.cs deleted file mode 100644 index 8ee8300..0000000 --- a/VOL.MES/IRepositories/mes/IMES_CustomerRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_CustomerRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_CustomerRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_DefectiveProductDisposalRecordRepository.cs b/VOL.MES/IRepositories/mes/IMES_DefectiveProductDisposalRecordRepository.cs deleted file mode 100644 index 767738b..0000000 --- a/VOL.MES/IRepositories/mes/IMES_DefectiveProductDisposalRecordRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_DefectiveProductDisposalRecordRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_DefectiveProductDisposalRecordRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_DefectiveProductRecordRepository.cs b/VOL.MES/IRepositories/mes/IMES_DefectiveProductRecordRepository.cs deleted file mode 100644 index 3eab781..0000000 --- a/VOL.MES/IRepositories/mes/IMES_DefectiveProductRecordRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_DefectiveProductRecordRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_DefectiveProductRecordRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_EquipmentFaultRecordRepository.cs b/VOL.MES/IRepositories/mes/IMES_EquipmentFaultRecordRepository.cs deleted file mode 100644 index 2c84de1..0000000 --- a/VOL.MES/IRepositories/mes/IMES_EquipmentFaultRecordRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_EquipmentFaultRecordRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_EquipmentFaultRecordRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_EquipmentMaintenanceRepository.cs b/VOL.MES/IRepositories/mes/IMES_EquipmentMaintenanceRepository.cs deleted file mode 100644 index e5027eb..0000000 --- a/VOL.MES/IRepositories/mes/IMES_EquipmentMaintenanceRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_EquipmentMaintenanceRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_EquipmentMaintenanceRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_EquipmentManagementRepository.cs b/VOL.MES/IRepositories/mes/IMES_EquipmentManagementRepository.cs deleted file mode 100644 index e5d2cd9..0000000 --- a/VOL.MES/IRepositories/mes/IMES_EquipmentManagementRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_EquipmentManagementRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_EquipmentManagementRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_EquipmentRepairRepository.cs b/VOL.MES/IRepositories/mes/IMES_EquipmentRepairRepository.cs deleted file mode 100644 index acb8dc5..0000000 --- a/VOL.MES/IRepositories/mes/IMES_EquipmentRepairRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_EquipmentRepairRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_EquipmentRepairRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_InventoryManagementRepository.cs b/VOL.MES/IRepositories/mes/IMES_InventoryManagementRepository.cs deleted file mode 100644 index cda2e53..0000000 --- a/VOL.MES/IRepositories/mes/IMES_InventoryManagementRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_InventoryManagementRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_InventoryManagementRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_LocationManagementRepository.cs b/VOL.MES/IRepositories/mes/IMES_LocationManagementRepository.cs deleted file mode 100644 index 619c316..0000000 --- a/VOL.MES/IRepositories/mes/IMES_LocationManagementRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_LocationManagementRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_LocationManagementRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_MaterialCatalogRepository.cs b/VOL.MES/IRepositories/mes/IMES_MaterialCatalogRepository.cs deleted file mode 100644 index e4f4dc2..0000000 --- a/VOL.MES/IRepositories/mes/IMES_MaterialCatalogRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_MaterialCatalogRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_MaterialCatalogRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_MaterialRepository.cs b/VOL.MES/IRepositories/mes/IMES_MaterialRepository.cs deleted file mode 100644 index d42a6a6..0000000 --- a/VOL.MES/IRepositories/mes/IMES_MaterialRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_MaterialRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_MaterialRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_ProcessReportRepository.cs b/VOL.MES/IRepositories/mes/IMES_ProcessReportRepository.cs deleted file mode 100644 index 33c41a9..0000000 --- a/VOL.MES/IRepositories/mes/IMES_ProcessReportRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_ProcessReportRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_ProcessReportRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_ProcessRouteRepository.cs b/VOL.MES/IRepositories/mes/IMES_ProcessRouteRepository.cs deleted file mode 100644 index 74d5899..0000000 --- a/VOL.MES/IRepositories/mes/IMES_ProcessRouteRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_ProcessRouteRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_ProcessRouteRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_ProductInboundRepository.cs b/VOL.MES/IRepositories/mes/IMES_ProductInboundRepository.cs deleted file mode 100644 index 5aeb5d5..0000000 --- a/VOL.MES/IRepositories/mes/IMES_ProductInboundRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_ProductInboundRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_ProductInboundRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_ProductOutboundRepository.cs b/VOL.MES/IRepositories/mes/IMES_ProductOutboundRepository.cs deleted file mode 100644 index 3419840..0000000 --- a/VOL.MES/IRepositories/mes/IMES_ProductOutboundRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_ProductOutboundRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_ProductOutboundRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_ProductionLineDeviceRepository.cs b/VOL.MES/IRepositories/mes/IMES_ProductionLineDeviceRepository.cs deleted file mode 100644 index 3353f3f..0000000 --- a/VOL.MES/IRepositories/mes/IMES_ProductionLineDeviceRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_ProductionLineDeviceRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_ProductionLineDeviceRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_ProductionLineRepository.cs b/VOL.MES/IRepositories/mes/IMES_ProductionLineRepository.cs deleted file mode 100644 index d38427b..0000000 --- a/VOL.MES/IRepositories/mes/IMES_ProductionLineRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_ProductionLineRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_ProductionLineRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_ProductionOrderRepository.cs b/VOL.MES/IRepositories/mes/IMES_ProductionOrderRepository.cs deleted file mode 100644 index 63a711d..0000000 --- a/VOL.MES/IRepositories/mes/IMES_ProductionOrderRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_ProductionOrderRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_ProductionOrderRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_ProductionPlanChangeRecordRepository.cs b/VOL.MES/IRepositories/mes/IMES_ProductionPlanChangeRecordRepository.cs deleted file mode 100644 index 858223b..0000000 --- a/VOL.MES/IRepositories/mes/IMES_ProductionPlanChangeRecordRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_ProductionPlanChangeRecordRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_ProductionPlanChangeRecordRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_ProductionPlanDetailRepository.cs b/VOL.MES/IRepositories/mes/IMES_ProductionPlanDetailRepository.cs deleted file mode 100644 index dfa1b0f..0000000 --- a/VOL.MES/IRepositories/mes/IMES_ProductionPlanDetailRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_ProductionPlanDetailRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_ProductionPlanDetailRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_ProductionReportingDetailRepository.cs b/VOL.MES/IRepositories/mes/IMES_ProductionReportingDetailRepository.cs deleted file mode 100644 index 77683e5..0000000 --- a/VOL.MES/IRepositories/mes/IMES_ProductionReportingDetailRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_ProductionReportingDetailRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_ProductionReportingDetailRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_ProductionReportingRepository.cs b/VOL.MES/IRepositories/mes/IMES_ProductionReportingRepository.cs deleted file mode 100644 index 02f1e18..0000000 --- a/VOL.MES/IRepositories/mes/IMES_ProductionReportingRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_ProductionReportingRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_ProductionReportingRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_QualityInspectionPlanDetailRepository.cs b/VOL.MES/IRepositories/mes/IMES_QualityInspectionPlanDetailRepository.cs deleted file mode 100644 index c3f4474..0000000 --- a/VOL.MES/IRepositories/mes/IMES_QualityInspectionPlanDetailRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_QualityInspectionPlanDetailRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_QualityInspectionPlanDetailRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_QualityInspectionPlanRepository.cs b/VOL.MES/IRepositories/mes/IMES_QualityInspectionPlanRepository.cs deleted file mode 100644 index b803186..0000000 --- a/VOL.MES/IRepositories/mes/IMES_QualityInspectionPlanRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_QualityInspectionPlanRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_QualityInspectionPlanRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_QualityInspectionRecordRepository.cs b/VOL.MES/IRepositories/mes/IMES_QualityInspectionRecordRepository.cs deleted file mode 100644 index f65de71..0000000 --- a/VOL.MES/IRepositories/mes/IMES_QualityInspectionRecordRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_QualityInspectionRecordRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_QualityInspectionRecordRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_SchedulingPlanRepository.cs b/VOL.MES/IRepositories/mes/IMES_SchedulingPlanRepository.cs deleted file mode 100644 index a868691..0000000 --- a/VOL.MES/IRepositories/mes/IMES_SchedulingPlanRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_SchedulingPlanRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_SchedulingPlanRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_SupplierRepository.cs b/VOL.MES/IRepositories/mes/IMES_SupplierRepository.cs deleted file mode 100644 index f7e5aa8..0000000 --- a/VOL.MES/IRepositories/mes/IMES_SupplierRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_SupplierRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_SupplierRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IRepositories/mes/IMES_WarehouseManagementRepository.cs b/VOL.MES/IRepositories/mes/IMES_WarehouseManagementRepository.cs deleted file mode 100644 index 6c6a4af..0000000 --- a/VOL.MES/IRepositories/mes/IMES_WarehouseManagementRepository.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹IMES_WarehouseManagementRepository编写接口 - */ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Extensions.AutofacManager; -namespace VOL.MES.IRepositories -{ - public partial interface IMES_WarehouseManagementRepository : IDependency,IRepository - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_Bom_DetailService.cs b/VOL.MES/IServices/mes/IMES_Bom_DetailService.cs deleted file mode 100644 index 6c33252..0000000 --- a/VOL.MES/IServices/mes/IMES_Bom_DetailService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_Bom_DetailService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_Bom_MainService.cs b/VOL.MES/IServices/mes/IMES_Bom_MainService.cs deleted file mode 100644 index 11b5bf5..0000000 --- a/VOL.MES/IServices/mes/IMES_Bom_MainService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_Bom_MainService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_CustomerService.cs b/VOL.MES/IServices/mes/IMES_CustomerService.cs deleted file mode 100644 index 6ad7587..0000000 --- a/VOL.MES/IServices/mes/IMES_CustomerService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_CustomerService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_DefectiveProductDisposalRecordService.cs b/VOL.MES/IServices/mes/IMES_DefectiveProductDisposalRecordService.cs deleted file mode 100644 index 95bba09..0000000 --- a/VOL.MES/IServices/mes/IMES_DefectiveProductDisposalRecordService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_DefectiveProductDisposalRecordService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_DefectiveProductRecordService.cs b/VOL.MES/IServices/mes/IMES_DefectiveProductRecordService.cs deleted file mode 100644 index 5bda540..0000000 --- a/VOL.MES/IServices/mes/IMES_DefectiveProductRecordService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_DefectiveProductRecordService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_EquipmentFaultRecordService.cs b/VOL.MES/IServices/mes/IMES_EquipmentFaultRecordService.cs deleted file mode 100644 index 63e8358..0000000 --- a/VOL.MES/IServices/mes/IMES_EquipmentFaultRecordService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_EquipmentFaultRecordService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_EquipmentMaintenanceService.cs b/VOL.MES/IServices/mes/IMES_EquipmentMaintenanceService.cs deleted file mode 100644 index f2cc40f..0000000 --- a/VOL.MES/IServices/mes/IMES_EquipmentMaintenanceService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_EquipmentMaintenanceService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_EquipmentManagementService.cs b/VOL.MES/IServices/mes/IMES_EquipmentManagementService.cs deleted file mode 100644 index 3924ff9..0000000 --- a/VOL.MES/IServices/mes/IMES_EquipmentManagementService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_EquipmentManagementService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_EquipmentRepairService.cs b/VOL.MES/IServices/mes/IMES_EquipmentRepairService.cs deleted file mode 100644 index fa5f7b3..0000000 --- a/VOL.MES/IServices/mes/IMES_EquipmentRepairService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_EquipmentRepairService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_InventoryManagementService.cs b/VOL.MES/IServices/mes/IMES_InventoryManagementService.cs deleted file mode 100644 index ce1a9ce..0000000 --- a/VOL.MES/IServices/mes/IMES_InventoryManagementService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_InventoryManagementService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_LocationManagementService.cs b/VOL.MES/IServices/mes/IMES_LocationManagementService.cs deleted file mode 100644 index 9cb492b..0000000 --- a/VOL.MES/IServices/mes/IMES_LocationManagementService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_LocationManagementService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_MaterialCatalogService.cs b/VOL.MES/IServices/mes/IMES_MaterialCatalogService.cs deleted file mode 100644 index d5e0cfc..0000000 --- a/VOL.MES/IServices/mes/IMES_MaterialCatalogService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_MaterialCatalogService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_MaterialService.cs b/VOL.MES/IServices/mes/IMES_MaterialService.cs deleted file mode 100644 index 25bf47d..0000000 --- a/VOL.MES/IServices/mes/IMES_MaterialService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_MaterialService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_ProcessReportService.cs b/VOL.MES/IServices/mes/IMES_ProcessReportService.cs deleted file mode 100644 index 921b6fd..0000000 --- a/VOL.MES/IServices/mes/IMES_ProcessReportService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_ProcessReportService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_ProcessRouteService.cs b/VOL.MES/IServices/mes/IMES_ProcessRouteService.cs deleted file mode 100644 index 8312397..0000000 --- a/VOL.MES/IServices/mes/IMES_ProcessRouteService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_ProcessRouteService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_ProductInboundService.cs b/VOL.MES/IServices/mes/IMES_ProductInboundService.cs deleted file mode 100644 index 3f540d9..0000000 --- a/VOL.MES/IServices/mes/IMES_ProductInboundService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_ProductInboundService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_ProductOutboundService.cs b/VOL.MES/IServices/mes/IMES_ProductOutboundService.cs deleted file mode 100644 index 0abe510..0000000 --- a/VOL.MES/IServices/mes/IMES_ProductOutboundService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_ProductOutboundService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_ProductionLineDeviceService.cs b/VOL.MES/IServices/mes/IMES_ProductionLineDeviceService.cs deleted file mode 100644 index 2139208..0000000 --- a/VOL.MES/IServices/mes/IMES_ProductionLineDeviceService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_ProductionLineDeviceService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_ProductionLineService.cs b/VOL.MES/IServices/mes/IMES_ProductionLineService.cs deleted file mode 100644 index d1397c4..0000000 --- a/VOL.MES/IServices/mes/IMES_ProductionLineService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_ProductionLineService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_ProductionOrderService.cs b/VOL.MES/IServices/mes/IMES_ProductionOrderService.cs deleted file mode 100644 index 10daddb..0000000 --- a/VOL.MES/IServices/mes/IMES_ProductionOrderService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_ProductionOrderService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_ProductionPlanChangeRecordService.cs b/VOL.MES/IServices/mes/IMES_ProductionPlanChangeRecordService.cs deleted file mode 100644 index 88b2acb..0000000 --- a/VOL.MES/IServices/mes/IMES_ProductionPlanChangeRecordService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_ProductionPlanChangeRecordService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_ProductionPlanDetailService.cs b/VOL.MES/IServices/mes/IMES_ProductionPlanDetailService.cs deleted file mode 100644 index 9ec969c..0000000 --- a/VOL.MES/IServices/mes/IMES_ProductionPlanDetailService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_ProductionPlanDetailService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_ProductionReportingDetailService.cs b/VOL.MES/IServices/mes/IMES_ProductionReportingDetailService.cs deleted file mode 100644 index dfc6b57..0000000 --- a/VOL.MES/IServices/mes/IMES_ProductionReportingDetailService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_ProductionReportingDetailService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_ProductionReportingService.cs b/VOL.MES/IServices/mes/IMES_ProductionReportingService.cs deleted file mode 100644 index 766bd00..0000000 --- a/VOL.MES/IServices/mes/IMES_ProductionReportingService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_ProductionReportingService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_QualityInspectionPlanDetailService.cs b/VOL.MES/IServices/mes/IMES_QualityInspectionPlanDetailService.cs deleted file mode 100644 index 4b1fdfe..0000000 --- a/VOL.MES/IServices/mes/IMES_QualityInspectionPlanDetailService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_QualityInspectionPlanDetailService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_QualityInspectionPlanService.cs b/VOL.MES/IServices/mes/IMES_QualityInspectionPlanService.cs deleted file mode 100644 index ce4ecb1..0000000 --- a/VOL.MES/IServices/mes/IMES_QualityInspectionPlanService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_QualityInspectionPlanService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_QualityInspectionRecordService.cs b/VOL.MES/IServices/mes/IMES_QualityInspectionRecordService.cs deleted file mode 100644 index 477a7cd..0000000 --- a/VOL.MES/IServices/mes/IMES_QualityInspectionRecordService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_QualityInspectionRecordService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_SchedulingPlanService.cs b/VOL.MES/IServices/mes/IMES_SchedulingPlanService.cs deleted file mode 100644 index d7455c5..0000000 --- a/VOL.MES/IServices/mes/IMES_SchedulingPlanService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_SchedulingPlanService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_SupplierService.cs b/VOL.MES/IServices/mes/IMES_SupplierService.cs deleted file mode 100644 index 2d3a60d..0000000 --- a/VOL.MES/IServices/mes/IMES_SupplierService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_SupplierService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/IMES_WarehouseManagementService.cs b/VOL.MES/IServices/mes/IMES_WarehouseManagementService.cs deleted file mode 100644 index 3cf2736..0000000 --- a/VOL.MES/IServices/mes/IMES_WarehouseManagementService.cs +++ /dev/null @@ -1,12 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - */ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; - -namespace VOL.MES.IServices -{ - public partial interface IMES_WarehouseManagementService : IService - { - } -} diff --git a/VOL.MES/IServices/mes/Partial/IMES_Bom_DetailService.cs b/VOL.MES/IServices/mes/Partial/IMES_Bom_DetailService.cs deleted file mode 100644 index 67de39e..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_Bom_DetailService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_Bom_Detail类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_Bom_DetailService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_Bom_MainService.cs b/VOL.MES/IServices/mes/Partial/IMES_Bom_MainService.cs deleted file mode 100644 index c7247a2..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_Bom_MainService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_Bom_Main类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_Bom_MainService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_CustomerService.cs b/VOL.MES/IServices/mes/Partial/IMES_CustomerService.cs deleted file mode 100644 index b819dbd..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_CustomerService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_Customer类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_CustomerService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_DefectiveProductDisposalRecordService.cs b/VOL.MES/IServices/mes/Partial/IMES_DefectiveProductDisposalRecordService.cs deleted file mode 100644 index fae4140..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_DefectiveProductDisposalRecordService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_DefectiveProductDisposalRecord类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_DefectiveProductDisposalRecordService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_DefectiveProductRecordService.cs b/VOL.MES/IServices/mes/Partial/IMES_DefectiveProductRecordService.cs deleted file mode 100644 index 289b5c3..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_DefectiveProductRecordService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_DefectiveProductRecord类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_DefectiveProductRecordService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_EquipmentFaultRecordService.cs b/VOL.MES/IServices/mes/Partial/IMES_EquipmentFaultRecordService.cs deleted file mode 100644 index 7e0416b..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_EquipmentFaultRecordService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_EquipmentFaultRecord类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_EquipmentFaultRecordService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_EquipmentMaintenanceService.cs b/VOL.MES/IServices/mes/Partial/IMES_EquipmentMaintenanceService.cs deleted file mode 100644 index 3b37296..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_EquipmentMaintenanceService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_EquipmentMaintenance类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_EquipmentMaintenanceService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_EquipmentManagementService.cs b/VOL.MES/IServices/mes/Partial/IMES_EquipmentManagementService.cs deleted file mode 100644 index 17bcb40..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_EquipmentManagementService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_EquipmentManagement类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_EquipmentManagementService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_EquipmentRepairService.cs b/VOL.MES/IServices/mes/Partial/IMES_EquipmentRepairService.cs deleted file mode 100644 index 0fcf334..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_EquipmentRepairService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_EquipmentRepair类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_EquipmentRepairService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_InventoryManagementService.cs b/VOL.MES/IServices/mes/Partial/IMES_InventoryManagementService.cs deleted file mode 100644 index 6cc901a..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_InventoryManagementService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_InventoryManagement类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_InventoryManagementService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_LocationManagementService.cs b/VOL.MES/IServices/mes/Partial/IMES_LocationManagementService.cs deleted file mode 100644 index 9ca8a78..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_LocationManagementService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_LocationManagement类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_LocationManagementService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_MaterialCatalogService.cs b/VOL.MES/IServices/mes/Partial/IMES_MaterialCatalogService.cs deleted file mode 100644 index 14cad64..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_MaterialCatalogService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_MaterialCatalog类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_MaterialCatalogService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_MaterialService.cs b/VOL.MES/IServices/mes/Partial/IMES_MaterialService.cs deleted file mode 100644 index 97064ea..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_MaterialService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_Material类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_MaterialService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_ProcessReportService.cs b/VOL.MES/IServices/mes/Partial/IMES_ProcessReportService.cs deleted file mode 100644 index 5158f69..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_ProcessReportService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_ProcessReport类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_ProcessReportService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_ProcessRouteService.cs b/VOL.MES/IServices/mes/Partial/IMES_ProcessRouteService.cs deleted file mode 100644 index 9a72887..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_ProcessRouteService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_ProcessRoute类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_ProcessRouteService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_ProductInboundService.cs b/VOL.MES/IServices/mes/Partial/IMES_ProductInboundService.cs deleted file mode 100644 index 0207262..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_ProductInboundService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_ProductInbound类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_ProductInboundService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_ProductOutboundService.cs b/VOL.MES/IServices/mes/Partial/IMES_ProductOutboundService.cs deleted file mode 100644 index fb397d7..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_ProductOutboundService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_ProductOutbound类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_ProductOutboundService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_ProductionLineDeviceService.cs b/VOL.MES/IServices/mes/Partial/IMES_ProductionLineDeviceService.cs deleted file mode 100644 index f91688c..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_ProductionLineDeviceService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_ProductionLineDevice类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_ProductionLineDeviceService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_ProductionLineService.cs b/VOL.MES/IServices/mes/Partial/IMES_ProductionLineService.cs deleted file mode 100644 index d1b1ea7..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_ProductionLineService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_ProductionLine类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_ProductionLineService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_ProductionOrderService.cs b/VOL.MES/IServices/mes/Partial/IMES_ProductionOrderService.cs deleted file mode 100644 index 4c382e9..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_ProductionOrderService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_ProductionOrder类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_ProductionOrderService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_ProductionPlanChangeRecordService.cs b/VOL.MES/IServices/mes/Partial/IMES_ProductionPlanChangeRecordService.cs deleted file mode 100644 index 4b21776..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_ProductionPlanChangeRecordService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_ProductionPlanChangeRecord类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_ProductionPlanChangeRecordService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_ProductionPlanDetailService.cs b/VOL.MES/IServices/mes/Partial/IMES_ProductionPlanDetailService.cs deleted file mode 100644 index 52ccc5d..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_ProductionPlanDetailService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_ProductionPlanDetail类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_ProductionPlanDetailService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_ProductionReportingDetailService.cs b/VOL.MES/IServices/mes/Partial/IMES_ProductionReportingDetailService.cs deleted file mode 100644 index 2c58766..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_ProductionReportingDetailService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_ProductionReportingDetail类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_ProductionReportingDetailService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_ProductionReportingService.cs b/VOL.MES/IServices/mes/Partial/IMES_ProductionReportingService.cs deleted file mode 100644 index a342bb2..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_ProductionReportingService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_ProductionReporting类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_ProductionReportingService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_QualityInspectionPlanDetailService.cs b/VOL.MES/IServices/mes/Partial/IMES_QualityInspectionPlanDetailService.cs deleted file mode 100644 index ac39cd1..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_QualityInspectionPlanDetailService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_QualityInspectionPlanDetail类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_QualityInspectionPlanDetailService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_QualityInspectionPlanService.cs b/VOL.MES/IServices/mes/Partial/IMES_QualityInspectionPlanService.cs deleted file mode 100644 index c3df2b1..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_QualityInspectionPlanService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_QualityInspectionPlan类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_QualityInspectionPlanService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_QualityInspectionRecordService.cs b/VOL.MES/IServices/mes/Partial/IMES_QualityInspectionRecordService.cs deleted file mode 100644 index 1bf4ed7..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_QualityInspectionRecordService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_QualityInspectionRecord类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_QualityInspectionRecordService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_SchedulingPlanService.cs b/VOL.MES/IServices/mes/Partial/IMES_SchedulingPlanService.cs deleted file mode 100644 index c55e936..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_SchedulingPlanService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_SchedulingPlan类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_SchedulingPlanService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_SupplierService.cs b/VOL.MES/IServices/mes/Partial/IMES_SupplierService.cs deleted file mode 100644 index c8dd3f1..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_SupplierService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_Supplier类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_SupplierService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/IMES_WarehouseManagementService.cs b/VOL.MES/IServices/mes/Partial/IMES_WarehouseManagementService.cs deleted file mode 100644 index 3c524a2..0000000 --- a/VOL.MES/IServices/mes/Partial/IMES_WarehouseManagementService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于MES_WarehouseManagement类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface IMES_WarehouseManagementService - { - } - } diff --git a/VOL.MES/IServices/mes/Partial/ITestServiceService.cs b/VOL.MES/IServices/mes/Partial/ITestServiceService.cs deleted file mode 100644 index 3301573..0000000 --- a/VOL.MES/IServices/mes/Partial/ITestServiceService.cs +++ /dev/null @@ -1,13 +0,0 @@ -/* -*所有关于TestService类的业务代码接口应在此处编写 -*/ -using VOL.Core.BaseProvider; -using VOL.Entity.DomainModels; -using VOL.Core.Utilities; -using System.Linq.Expressions; -namespace VOL.MES.IServices -{ - public partial interface ITestServiceService - { - } - } diff --git a/VOL.MES/Repositories/mes/MES_Bom_DetailRepository.cs b/VOL.MES/Repositories/mes/MES_Bom_DetailRepository.cs deleted file mode 100644 index 2afc04f..0000000 --- a/VOL.MES/Repositories/mes/MES_Bom_DetailRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_Bom_DetailRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using VOL.Core.DbContext; - -namespace VOL.MES.Repositories -{ - public partial class MES_Bom_DetailRepository : RepositoryBase , IMES_Bom_DetailRepository - { - public MES_Bom_DetailRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_Bom_DetailRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_Bom_MainRepository.cs b/VOL.MES/Repositories/mes/MES_Bom_MainRepository.cs deleted file mode 100644 index d302e6b..0000000 --- a/VOL.MES/Repositories/mes/MES_Bom_MainRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_Bom_MainRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_Bom_MainRepository : RepositoryBase , IMES_Bom_MainRepository - { - public MES_Bom_MainRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_Bom_MainRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_CustomerRepository.cs b/VOL.MES/Repositories/mes/MES_CustomerRepository.cs deleted file mode 100644 index 3e4d863..0000000 --- a/VOL.MES/Repositories/mes/MES_CustomerRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_CustomerRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_CustomerRepository : RepositoryBase , IMES_CustomerRepository - { - public MES_CustomerRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_CustomerRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_DefectiveProductDisposalRecordRepository.cs b/VOL.MES/Repositories/mes/MES_DefectiveProductDisposalRecordRepository.cs deleted file mode 100644 index c264a79..0000000 --- a/VOL.MES/Repositories/mes/MES_DefectiveProductDisposalRecordRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_DefectiveProductDisposalRecordRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_DefectiveProductDisposalRecordRepository : RepositoryBase , IMES_DefectiveProductDisposalRecordRepository - { - public MES_DefectiveProductDisposalRecordRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_DefectiveProductDisposalRecordRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_DefectiveProductRecordRepository.cs b/VOL.MES/Repositories/mes/MES_DefectiveProductRecordRepository.cs deleted file mode 100644 index 6a466b8..0000000 --- a/VOL.MES/Repositories/mes/MES_DefectiveProductRecordRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_DefectiveProductRecordRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_DefectiveProductRecordRepository : RepositoryBase , IMES_DefectiveProductRecordRepository - { - public MES_DefectiveProductRecordRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_DefectiveProductRecordRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_EquipmentFaultRecordRepository.cs b/VOL.MES/Repositories/mes/MES_EquipmentFaultRecordRepository.cs deleted file mode 100644 index d1b9d8f..0000000 --- a/VOL.MES/Repositories/mes/MES_EquipmentFaultRecordRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_EquipmentFaultRecordRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_EquipmentFaultRecordRepository : RepositoryBase , IMES_EquipmentFaultRecordRepository - { - public MES_EquipmentFaultRecordRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_EquipmentFaultRecordRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_EquipmentMaintenanceRepository.cs b/VOL.MES/Repositories/mes/MES_EquipmentMaintenanceRepository.cs deleted file mode 100644 index 3b2cb25..0000000 --- a/VOL.MES/Repositories/mes/MES_EquipmentMaintenanceRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_EquipmentMaintenanceRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_EquipmentMaintenanceRepository : RepositoryBase , IMES_EquipmentMaintenanceRepository - { - public MES_EquipmentMaintenanceRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_EquipmentMaintenanceRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_EquipmentManagementRepository.cs b/VOL.MES/Repositories/mes/MES_EquipmentManagementRepository.cs deleted file mode 100644 index 0fad6ac..0000000 --- a/VOL.MES/Repositories/mes/MES_EquipmentManagementRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_EquipmentManagementRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_EquipmentManagementRepository : RepositoryBase , IMES_EquipmentManagementRepository - { - public MES_EquipmentManagementRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_EquipmentManagementRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_EquipmentRepairRepository.cs b/VOL.MES/Repositories/mes/MES_EquipmentRepairRepository.cs deleted file mode 100644 index b31c9bb..0000000 --- a/VOL.MES/Repositories/mes/MES_EquipmentRepairRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_EquipmentRepairRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_EquipmentRepairRepository : RepositoryBase , IMES_EquipmentRepairRepository - { - public MES_EquipmentRepairRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_EquipmentRepairRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_InventoryManagementRepository.cs b/VOL.MES/Repositories/mes/MES_InventoryManagementRepository.cs deleted file mode 100644 index 966d676..0000000 --- a/VOL.MES/Repositories/mes/MES_InventoryManagementRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_InventoryManagementRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_InventoryManagementRepository : RepositoryBase , IMES_InventoryManagementRepository - { - public MES_InventoryManagementRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_InventoryManagementRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_LocationManagementRepository.cs b/VOL.MES/Repositories/mes/MES_LocationManagementRepository.cs deleted file mode 100644 index a6acbd5..0000000 --- a/VOL.MES/Repositories/mes/MES_LocationManagementRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_LocationManagementRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using VOL.Core.DbContext; - -namespace VOL.MES.Repositories -{ - public partial class MES_LocationManagementRepository : RepositoryBase , IMES_LocationManagementRepository - { - public MES_LocationManagementRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_LocationManagementRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_MaterialCatalogRepository.cs b/VOL.MES/Repositories/mes/MES_MaterialCatalogRepository.cs deleted file mode 100644 index 37ac280..0000000 --- a/VOL.MES/Repositories/mes/MES_MaterialCatalogRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_MaterialCatalogRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_MaterialCatalogRepository : RepositoryBase , IMES_MaterialCatalogRepository - { - public MES_MaterialCatalogRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_MaterialCatalogRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_MaterialRepository.cs b/VOL.MES/Repositories/mes/MES_MaterialRepository.cs deleted file mode 100644 index 812dbd0..0000000 --- a/VOL.MES/Repositories/mes/MES_MaterialRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_MaterialRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_MaterialRepository : RepositoryBase , IMES_MaterialRepository - { - public MES_MaterialRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_MaterialRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_ProcessReportRepository.cs b/VOL.MES/Repositories/mes/MES_ProcessReportRepository.cs deleted file mode 100644 index 64b3880..0000000 --- a/VOL.MES/Repositories/mes/MES_ProcessReportRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_ProcessReportRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_ProcessReportRepository : RepositoryBase , IMES_ProcessReportRepository - { - public MES_ProcessReportRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_ProcessReportRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_ProcessRepository.cs b/VOL.MES/Repositories/mes/MES_ProcessRepository.cs deleted file mode 100644 index 2d5d68e..0000000 --- a/VOL.MES/Repositories/mes/MES_ProcessRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_ProcessRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_ProcessRepository : RepositoryBase , IMES_ProcessRepository - { - public MES_ProcessRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_ProcessRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_ProcessRouteRepository.cs b/VOL.MES/Repositories/mes/MES_ProcessRouteRepository.cs deleted file mode 100644 index 283755c..0000000 --- a/VOL.MES/Repositories/mes/MES_ProcessRouteRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_ProcessRouteRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_ProcessRouteRepository : RepositoryBase , IMES_ProcessRouteRepository - { - public MES_ProcessRouteRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_ProcessRouteRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_ProductInboundRepository.cs b/VOL.MES/Repositories/mes/MES_ProductInboundRepository.cs deleted file mode 100644 index 9f1a755..0000000 --- a/VOL.MES/Repositories/mes/MES_ProductInboundRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_ProductInboundRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_ProductInboundRepository : RepositoryBase , IMES_ProductInboundRepository - { - public MES_ProductInboundRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_ProductInboundRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_ProductOutboundRepository.cs b/VOL.MES/Repositories/mes/MES_ProductOutboundRepository.cs deleted file mode 100644 index 070e6d3..0000000 --- a/VOL.MES/Repositories/mes/MES_ProductOutboundRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_ProductOutboundRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_ProductOutboundRepository : RepositoryBase , IMES_ProductOutboundRepository - { - public MES_ProductOutboundRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_ProductOutboundRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_ProductionLineDeviceRepository.cs b/VOL.MES/Repositories/mes/MES_ProductionLineDeviceRepository.cs deleted file mode 100644 index b78c2a5..0000000 --- a/VOL.MES/Repositories/mes/MES_ProductionLineDeviceRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_ProductionLineDeviceRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_ProductionLineDeviceRepository : RepositoryBase , IMES_ProductionLineDeviceRepository - { - public MES_ProductionLineDeviceRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_ProductionLineDeviceRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_ProductionLineRepository.cs b/VOL.MES/Repositories/mes/MES_ProductionLineRepository.cs deleted file mode 100644 index dbd1374..0000000 --- a/VOL.MES/Repositories/mes/MES_ProductionLineRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_ProductionLineRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_ProductionLineRepository : RepositoryBase , IMES_ProductionLineRepository - { - public MES_ProductionLineRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_ProductionLineRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_ProductionOrderRepository.cs b/VOL.MES/Repositories/mes/MES_ProductionOrderRepository.cs deleted file mode 100644 index cbce1f0..0000000 --- a/VOL.MES/Repositories/mes/MES_ProductionOrderRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_ProductionOrderRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_ProductionOrderRepository : RepositoryBase , IMES_ProductionOrderRepository - { - public MES_ProductionOrderRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_ProductionOrderRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_ProductionPlanChangeRecordRepository.cs b/VOL.MES/Repositories/mes/MES_ProductionPlanChangeRecordRepository.cs deleted file mode 100644 index 586c638..0000000 --- a/VOL.MES/Repositories/mes/MES_ProductionPlanChangeRecordRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_ProductionPlanChangeRecordRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_ProductionPlanChangeRecordRepository : RepositoryBase , IMES_ProductionPlanChangeRecordRepository - { - public MES_ProductionPlanChangeRecordRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_ProductionPlanChangeRecordRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_ProductionPlanDetailRepository.cs b/VOL.MES/Repositories/mes/MES_ProductionPlanDetailRepository.cs deleted file mode 100644 index 4c052f0..0000000 --- a/VOL.MES/Repositories/mes/MES_ProductionPlanDetailRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_ProductionPlanDetailRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_ProductionPlanDetailRepository : RepositoryBase , IMES_ProductionPlanDetailRepository - { - public MES_ProductionPlanDetailRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_ProductionPlanDetailRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_ProductionReportingDetailRepository.cs b/VOL.MES/Repositories/mes/MES_ProductionReportingDetailRepository.cs deleted file mode 100644 index 7741fec..0000000 --- a/VOL.MES/Repositories/mes/MES_ProductionReportingDetailRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_ProductionReportingDetailRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_ProductionReportingDetailRepository : RepositoryBase , IMES_ProductionReportingDetailRepository - { - public MES_ProductionReportingDetailRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_ProductionReportingDetailRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_ProductionReportingRepository.cs b/VOL.MES/Repositories/mes/MES_ProductionReportingRepository.cs deleted file mode 100644 index e28d133..0000000 --- a/VOL.MES/Repositories/mes/MES_ProductionReportingRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_ProductionReportingRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_ProductionReportingRepository : RepositoryBase , IMES_ProductionReportingRepository - { - public MES_ProductionReportingRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_ProductionReportingRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_QualityInspectionPlanDetailRepository.cs b/VOL.MES/Repositories/mes/MES_QualityInspectionPlanDetailRepository.cs deleted file mode 100644 index 7c707a8..0000000 --- a/VOL.MES/Repositories/mes/MES_QualityInspectionPlanDetailRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_QualityInspectionPlanDetailRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_QualityInspectionPlanDetailRepository : RepositoryBase , IMES_QualityInspectionPlanDetailRepository - { - public MES_QualityInspectionPlanDetailRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_QualityInspectionPlanDetailRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_QualityInspectionPlanRepository.cs b/VOL.MES/Repositories/mes/MES_QualityInspectionPlanRepository.cs deleted file mode 100644 index 05236ad..0000000 --- a/VOL.MES/Repositories/mes/MES_QualityInspectionPlanRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_QualityInspectionPlanRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_QualityInspectionPlanRepository : RepositoryBase , IMES_QualityInspectionPlanRepository - { - public MES_QualityInspectionPlanRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_QualityInspectionPlanRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_QualityInspectionRecordRepository.cs b/VOL.MES/Repositories/mes/MES_QualityInspectionRecordRepository.cs deleted file mode 100644 index b845b61..0000000 --- a/VOL.MES/Repositories/mes/MES_QualityInspectionRecordRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_QualityInspectionRecordRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_QualityInspectionRecordRepository : RepositoryBase , IMES_QualityInspectionRecordRepository - { - public MES_QualityInspectionRecordRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_QualityInspectionRecordRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_SchedulingPlanRepository.cs b/VOL.MES/Repositories/mes/MES_SchedulingPlanRepository.cs deleted file mode 100644 index 0c8e44b..0000000 --- a/VOL.MES/Repositories/mes/MES_SchedulingPlanRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_SchedulingPlanRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_SchedulingPlanRepository : RepositoryBase , IMES_SchedulingPlanRepository - { - public MES_SchedulingPlanRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_SchedulingPlanRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_SupplierRepository.cs b/VOL.MES/Repositories/mes/MES_SupplierRepository.cs deleted file mode 100644 index 47fb864..0000000 --- a/VOL.MES/Repositories/mes/MES_SupplierRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_SupplierRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_SupplierRepository : RepositoryBase , IMES_SupplierRepository - { - public MES_SupplierRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_SupplierRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/MES_WarehouseManagementRepository.cs b/VOL.MES/Repositories/mes/MES_WarehouseManagementRepository.cs deleted file mode 100644 index 1f7a333..0000000 --- a/VOL.MES/Repositories/mes/MES_WarehouseManagementRepository.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹MES_WarehouseManagementRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class MES_WarehouseManagementRepository : RepositoryBase , IMES_WarehouseManagementRepository - { - public MES_WarehouseManagementRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static IMES_WarehouseManagementRepository Instance - { - get { return AutofacContainerModule.GetService(); } } - } -} diff --git a/VOL.MES/Repositories/mes/TestServiceRepository.cs b/VOL.MES/Repositories/mes/TestServiceRepository.cs deleted file mode 100644 index 8c16fa8..0000000 --- a/VOL.MES/Repositories/mes/TestServiceRepository.cs +++ /dev/null @@ -1,26 +0,0 @@ -/* - *代码由框架生成,任何更改都可能导致被代码生成器覆盖 - *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹TestServiceRepository编写代码 - */ -using VOL.MES.IRepositories; -using VOL.Core.BaseProvider; -using VOL.Core.DbContext; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Repositories -{ - public partial class TestServiceRepository : RepositoryBase - , ITestServiceRepository - { - public TestServiceRepository(VOLContext dbContext) - : base(dbContext) - { - - } - public static ITestServiceRepository Instance - { - get { return AutofacContainerModule.GetService - (); } } - } - } diff --git a/VOL.MES/Services/mes/MES_Bom_DetailService.cs b/VOL.MES/Services/mes/MES_Bom_DetailService.cs deleted file mode 100644 index b6e57ce..0000000 --- a/VOL.MES/Services/mes/MES_Bom_DetailService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_Bom_DetailService与IMES_Bom_DetailService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_Bom_DetailService : ServiceBase - , IMES_Bom_DetailService, IDependency - { - public static IMES_Bom_DetailService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_Bom_MainService.cs b/VOL.MES/Services/mes/MES_Bom_MainService.cs deleted file mode 100644 index 2d78fd3..0000000 --- a/VOL.MES/Services/mes/MES_Bom_MainService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_Bom_MainService与IMES_Bom_MainService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_Bom_MainService : ServiceBase - , IMES_Bom_MainService, IDependency - { - public static IMES_Bom_MainService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_CustomerService.cs b/VOL.MES/Services/mes/MES_CustomerService.cs deleted file mode 100644 index 6515d1e..0000000 --- a/VOL.MES/Services/mes/MES_CustomerService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_CustomerService与IMES_CustomerService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_CustomerService : ServiceBase - , IMES_CustomerService, IDependency - { - public static IMES_CustomerService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_DefectiveProductDisposalRecordService.cs b/VOL.MES/Services/mes/MES_DefectiveProductDisposalRecordService.cs deleted file mode 100644 index bf2028f..0000000 --- a/VOL.MES/Services/mes/MES_DefectiveProductDisposalRecordService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_DefectiveProductDisposalRecordService与IMES_DefectiveProductDisposalRecordService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_DefectiveProductDisposalRecordService : ServiceBase - , IMES_DefectiveProductDisposalRecordService, IDependency - { - public static IMES_DefectiveProductDisposalRecordService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_DefectiveProductRecordService.cs b/VOL.MES/Services/mes/MES_DefectiveProductRecordService.cs deleted file mode 100644 index 0ba93fe..0000000 --- a/VOL.MES/Services/mes/MES_DefectiveProductRecordService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_DefectiveProductRecordService与IMES_DefectiveProductRecordService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_DefectiveProductRecordService : ServiceBase - , IMES_DefectiveProductRecordService, IDependency - { - public static IMES_DefectiveProductRecordService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_EquipmentFaultRecordService.cs b/VOL.MES/Services/mes/MES_EquipmentFaultRecordService.cs deleted file mode 100644 index 36dcb73..0000000 --- a/VOL.MES/Services/mes/MES_EquipmentFaultRecordService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_EquipmentFaultRecordService与IMES_EquipmentFaultRecordService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_EquipmentFaultRecordService : ServiceBase - , IMES_EquipmentFaultRecordService, IDependency - { - public static IMES_EquipmentFaultRecordService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_EquipmentMaintenanceService.cs b/VOL.MES/Services/mes/MES_EquipmentMaintenanceService.cs deleted file mode 100644 index c4ce069..0000000 --- a/VOL.MES/Services/mes/MES_EquipmentMaintenanceService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_EquipmentMaintenanceService与IMES_EquipmentMaintenanceService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_EquipmentMaintenanceService : ServiceBase - , IMES_EquipmentMaintenanceService, IDependency - { - public static IMES_EquipmentMaintenanceService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_EquipmentManagementService.cs b/VOL.MES/Services/mes/MES_EquipmentManagementService.cs deleted file mode 100644 index e321427..0000000 --- a/VOL.MES/Services/mes/MES_EquipmentManagementService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_EquipmentManagementService与IMES_EquipmentManagementService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_EquipmentManagementService : ServiceBase - , IMES_EquipmentManagementService, IDependency - { - public static IMES_EquipmentManagementService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_EquipmentRepairService.cs b/VOL.MES/Services/mes/MES_EquipmentRepairService.cs deleted file mode 100644 index a379252..0000000 --- a/VOL.MES/Services/mes/MES_EquipmentRepairService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_EquipmentRepairService与IMES_EquipmentRepairService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_EquipmentRepairService : ServiceBase - , IMES_EquipmentRepairService, IDependency - { - public static IMES_EquipmentRepairService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_InventoryManagementService.cs b/VOL.MES/Services/mes/MES_InventoryManagementService.cs deleted file mode 100644 index eacedae..0000000 --- a/VOL.MES/Services/mes/MES_InventoryManagementService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_InventoryManagementService与IMES_InventoryManagementService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_InventoryManagementService : ServiceBase - , IMES_InventoryManagementService, IDependency - { - public static IMES_InventoryManagementService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_LocationManagementService.cs b/VOL.MES/Services/mes/MES_LocationManagementService.cs deleted file mode 100644 index f98700c..0000000 --- a/VOL.MES/Services/mes/MES_LocationManagementService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_LocationManagementService与IMES_LocationManagementService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_LocationManagementService : ServiceBase - , IMES_LocationManagementService, IDependency - { - public static IMES_LocationManagementService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_MaterialCatalogService.cs b/VOL.MES/Services/mes/MES_MaterialCatalogService.cs deleted file mode 100644 index e0fe3a7..0000000 --- a/VOL.MES/Services/mes/MES_MaterialCatalogService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_MaterialCatalogService与IMES_MaterialCatalogService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_MaterialCatalogService : ServiceBase - , IMES_MaterialCatalogService, IDependency - { - public static IMES_MaterialCatalogService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_MaterialService.cs b/VOL.MES/Services/mes/MES_MaterialService.cs deleted file mode 100644 index 0ee3625..0000000 --- a/VOL.MES/Services/mes/MES_MaterialService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_MaterialService与IMES_MaterialService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_MaterialService : ServiceBase - , IMES_MaterialService, IDependency - { - public static IMES_MaterialService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_ProcessReportService.cs b/VOL.MES/Services/mes/MES_ProcessReportService.cs deleted file mode 100644 index 28ddeff..0000000 --- a/VOL.MES/Services/mes/MES_ProcessReportService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_ProcessReportService与IMES_ProcessReportService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_ProcessReportService : ServiceBase - , IMES_ProcessReportService, IDependency - { - public static IMES_ProcessReportService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_ProcessRouteService.cs b/VOL.MES/Services/mes/MES_ProcessRouteService.cs deleted file mode 100644 index 768a367..0000000 --- a/VOL.MES/Services/mes/MES_ProcessRouteService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_ProcessRouteService与IMES_ProcessRouteService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_ProcessRouteService : ServiceBase - , IMES_ProcessRouteService, IDependency - { - public static IMES_ProcessRouteService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_ProcessService.cs b/VOL.MES/Services/mes/MES_ProcessService.cs deleted file mode 100644 index 7c4a465..0000000 --- a/VOL.MES/Services/mes/MES_ProcessService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_ProcessService与IMES_ProcessService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_ProcessService : ServiceBase - , IMES_ProcessService, IDependency - { - public static IMES_ProcessService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_ProductInboundService.cs b/VOL.MES/Services/mes/MES_ProductInboundService.cs deleted file mode 100644 index a84436a..0000000 --- a/VOL.MES/Services/mes/MES_ProductInboundService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_ProductInboundService与IMES_ProductInboundService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_ProductInboundService : ServiceBase - , IMES_ProductInboundService, IDependency - { - public static IMES_ProductInboundService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_ProductOutboundService.cs b/VOL.MES/Services/mes/MES_ProductOutboundService.cs deleted file mode 100644 index 84bec45..0000000 --- a/VOL.MES/Services/mes/MES_ProductOutboundService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_ProductOutboundService与IMES_ProductOutboundService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_ProductOutboundService : ServiceBase - , IMES_ProductOutboundService, IDependency - { - public static IMES_ProductOutboundService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_ProductionLineDeviceService.cs b/VOL.MES/Services/mes/MES_ProductionLineDeviceService.cs deleted file mode 100644 index e975f1d..0000000 --- a/VOL.MES/Services/mes/MES_ProductionLineDeviceService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_ProductionLineDeviceService与IMES_ProductionLineDeviceService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_ProductionLineDeviceService : ServiceBase - , IMES_ProductionLineDeviceService, IDependency - { - public static IMES_ProductionLineDeviceService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_ProductionLineService.cs b/VOL.MES/Services/mes/MES_ProductionLineService.cs deleted file mode 100644 index 073db42..0000000 --- a/VOL.MES/Services/mes/MES_ProductionLineService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_ProductionLineService与IMES_ProductionLineService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_ProductionLineService : ServiceBase - , IMES_ProductionLineService, IDependency - { - public static IMES_ProductionLineService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_ProductionOrderService.cs b/VOL.MES/Services/mes/MES_ProductionOrderService.cs deleted file mode 100644 index 7370bb7..0000000 --- a/VOL.MES/Services/mes/MES_ProductionOrderService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_ProductionOrderService与IMES_ProductionOrderService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_ProductionOrderService : ServiceBase - , IMES_ProductionOrderService, IDependency - { - public static IMES_ProductionOrderService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_ProductionPlanChangeRecordService.cs b/VOL.MES/Services/mes/MES_ProductionPlanChangeRecordService.cs deleted file mode 100644 index cdc8b43..0000000 --- a/VOL.MES/Services/mes/MES_ProductionPlanChangeRecordService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_ProductionPlanChangeRecordService与IMES_ProductionPlanChangeRecordService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_ProductionPlanChangeRecordService : ServiceBase - , IMES_ProductionPlanChangeRecordService, IDependency - { - public static IMES_ProductionPlanChangeRecordService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_ProductionPlanDetailService.cs b/VOL.MES/Services/mes/MES_ProductionPlanDetailService.cs deleted file mode 100644 index 409d311..0000000 --- a/VOL.MES/Services/mes/MES_ProductionPlanDetailService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_ProductionPlanDetailService与IMES_ProductionPlanDetailService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_ProductionPlanDetailService : ServiceBase - , IMES_ProductionPlanDetailService, IDependency - { - public static IMES_ProductionPlanDetailService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_ProductionReportingDetailService.cs b/VOL.MES/Services/mes/MES_ProductionReportingDetailService.cs deleted file mode 100644 index 3a50e72..0000000 --- a/VOL.MES/Services/mes/MES_ProductionReportingDetailService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_ProductionReportingDetailService与IMES_ProductionReportingDetailService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_ProductionReportingDetailService : ServiceBase - , IMES_ProductionReportingDetailService, IDependency - { - public static IMES_ProductionReportingDetailService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_ProductionReportingService.cs b/VOL.MES/Services/mes/MES_ProductionReportingService.cs deleted file mode 100644 index ae3d23d..0000000 --- a/VOL.MES/Services/mes/MES_ProductionReportingService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_ProductionReportingService与IMES_ProductionReportingService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_ProductionReportingService : ServiceBase - , IMES_ProductionReportingService, IDependency - { - public static IMES_ProductionReportingService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_QualityInspectionPlanDetailService.cs b/VOL.MES/Services/mes/MES_QualityInspectionPlanDetailService.cs deleted file mode 100644 index c46cbdc..0000000 --- a/VOL.MES/Services/mes/MES_QualityInspectionPlanDetailService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_QualityInspectionPlanDetailService与IMES_QualityInspectionPlanDetailService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_QualityInspectionPlanDetailService : ServiceBase - , IMES_QualityInspectionPlanDetailService, IDependency - { - public static IMES_QualityInspectionPlanDetailService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_QualityInspectionPlanService.cs b/VOL.MES/Services/mes/MES_QualityInspectionPlanService.cs deleted file mode 100644 index a0e4f3d..0000000 --- a/VOL.MES/Services/mes/MES_QualityInspectionPlanService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_QualityInspectionPlanService与IMES_QualityInspectionPlanService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_QualityInspectionPlanService : ServiceBase - , IMES_QualityInspectionPlanService, IDependency - { - public static IMES_QualityInspectionPlanService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_QualityInspectionRecordService.cs b/VOL.MES/Services/mes/MES_QualityInspectionRecordService.cs deleted file mode 100644 index 056106c..0000000 --- a/VOL.MES/Services/mes/MES_QualityInspectionRecordService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_QualityInspectionRecordService与IMES_QualityInspectionRecordService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_QualityInspectionRecordService : ServiceBase - , IMES_QualityInspectionRecordService, IDependency - { - public static IMES_QualityInspectionRecordService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_SchedulingPlanService.cs b/VOL.MES/Services/mes/MES_SchedulingPlanService.cs deleted file mode 100644 index e6bfd3f..0000000 --- a/VOL.MES/Services/mes/MES_SchedulingPlanService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_SchedulingPlanService与IMES_SchedulingPlanService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_SchedulingPlanService : ServiceBase - , IMES_SchedulingPlanService, IDependency - { - public static IMES_SchedulingPlanService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_SupplierService.cs b/VOL.MES/Services/mes/MES_SupplierService.cs deleted file mode 100644 index 1499a48..0000000 --- a/VOL.MES/Services/mes/MES_SupplierService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_SupplierService与IMES_SupplierService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_SupplierService : ServiceBase - , IMES_SupplierService, IDependency - { - public static IMES_SupplierService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/MES_WarehouseManagementService.cs b/VOL.MES/Services/mes/MES_WarehouseManagementService.cs deleted file mode 100644 index 33e6f90..0000000 --- a/VOL.MES/Services/mes/MES_WarehouseManagementService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下MES_WarehouseManagementService与IMES_WarehouseManagementService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class MES_WarehouseManagementService : ServiceBase - , IMES_WarehouseManagementService, IDependency - { - public static IMES_WarehouseManagementService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/Services/mes/Partial/MES_Bom_DetailService.cs b/VOL.MES/Services/mes/Partial/MES_Bom_DetailService.cs deleted file mode 100644 index 0c3163c..0000000 --- a/VOL.MES/Services/mes/Partial/MES_Bom_DetailService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_Bom_Detail类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_Bom_DetailService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_Bom_DetailService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_Bom_DetailRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_Bom_DetailService( - IMES_Bom_DetailRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_Bom_MainService.cs b/VOL.MES/Services/mes/Partial/MES_Bom_MainService.cs deleted file mode 100644 index b2b339b..0000000 --- a/VOL.MES/Services/mes/Partial/MES_Bom_MainService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_Bom_Main类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_Bom_MainService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_Bom_MainService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_Bom_MainRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_Bom_MainService( - IMES_Bom_MainRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_CustomerService.cs b/VOL.MES/Services/mes/Partial/MES_CustomerService.cs deleted file mode 100644 index f25ec56..0000000 --- a/VOL.MES/Services/mes/Partial/MES_CustomerService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_Customer类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_CustomerService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_CustomerService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_CustomerRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_CustomerService( - IMES_CustomerRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_DefectiveProductDisposalRecordService.cs b/VOL.MES/Services/mes/Partial/MES_DefectiveProductDisposalRecordService.cs deleted file mode 100644 index b321ff6..0000000 --- a/VOL.MES/Services/mes/Partial/MES_DefectiveProductDisposalRecordService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_DefectiveProductDisposalRecord类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_DefectiveProductDisposalRecordService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_DefectiveProductDisposalRecordService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_DefectiveProductDisposalRecordRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_DefectiveProductDisposalRecordService( - IMES_DefectiveProductDisposalRecordRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_DefectiveProductRecordService.cs b/VOL.MES/Services/mes/Partial/MES_DefectiveProductRecordService.cs deleted file mode 100644 index 49dd64f..0000000 --- a/VOL.MES/Services/mes/Partial/MES_DefectiveProductRecordService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_DefectiveProductRecord类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_DefectiveProductRecordService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_DefectiveProductRecordService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_DefectiveProductRecordRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_DefectiveProductRecordService( - IMES_DefectiveProductRecordRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_EquipmentFaultRecordService.cs b/VOL.MES/Services/mes/Partial/MES_EquipmentFaultRecordService.cs deleted file mode 100644 index 55b06dd..0000000 --- a/VOL.MES/Services/mes/Partial/MES_EquipmentFaultRecordService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_EquipmentFaultRecord类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_EquipmentFaultRecordService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_EquipmentFaultRecordService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_EquipmentFaultRecordRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_EquipmentFaultRecordService( - IMES_EquipmentFaultRecordRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_EquipmentMaintenanceService.cs b/VOL.MES/Services/mes/Partial/MES_EquipmentMaintenanceService.cs deleted file mode 100644 index 7bd841b..0000000 --- a/VOL.MES/Services/mes/Partial/MES_EquipmentMaintenanceService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_EquipmentMaintenance类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_EquipmentMaintenanceService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_EquipmentMaintenanceService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_EquipmentMaintenanceRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_EquipmentMaintenanceService( - IMES_EquipmentMaintenanceRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_EquipmentManagementService.cs b/VOL.MES/Services/mes/Partial/MES_EquipmentManagementService.cs deleted file mode 100644 index c4cc9f4..0000000 --- a/VOL.MES/Services/mes/Partial/MES_EquipmentManagementService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_EquipmentManagement类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_EquipmentManagementService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_EquipmentManagementService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_EquipmentManagementRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_EquipmentManagementService( - IMES_EquipmentManagementRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_EquipmentRepairService.cs b/VOL.MES/Services/mes/Partial/MES_EquipmentRepairService.cs deleted file mode 100644 index d3498da..0000000 --- a/VOL.MES/Services/mes/Partial/MES_EquipmentRepairService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_EquipmentRepair类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_EquipmentRepairService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_EquipmentRepairService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_EquipmentRepairRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_EquipmentRepairService( - IMES_EquipmentRepairRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_InventoryManagementService.cs b/VOL.MES/Services/mes/Partial/MES_InventoryManagementService.cs deleted file mode 100644 index c10e243..0000000 --- a/VOL.MES/Services/mes/Partial/MES_InventoryManagementService.cs +++ /dev/null @@ -1,56 +0,0 @@ -/* - *所有关于MES_InventoryManagement类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_InventoryManagementService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; -using SqlSugar; -using VOL.Core.DbSqlSugar; -using VOL.Core.DBManager; - -namespace VOL.MES.Services -{ - public partial class MES_InventoryManagementService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_InventoryManagementRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_InventoryManagementService( - IMES_InventoryManagementRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - public override PageGridData GetPageData(PageDataOptions options) - { - SummaryExpress = (ISugarQueryable queryable) => - { - return queryable.Select(x => new - { - InventoryQuantity = SqlFunc.AggregateSum(x.InventoryQuantity).ToString("f2") - }) - .FirstOrDefault(); - }; - return base.GetPageData(options); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_LocationManagementService.cs b/VOL.MES/Services/mes/Partial/MES_LocationManagementService.cs deleted file mode 100644 index de75221..0000000 --- a/VOL.MES/Services/mes/Partial/MES_LocationManagementService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_LocationManagement类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_LocationManagementService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_LocationManagementService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_LocationManagementRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_LocationManagementService( - IMES_LocationManagementRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_MaterialCatalogService.cs b/VOL.MES/Services/mes/Partial/MES_MaterialCatalogService.cs deleted file mode 100644 index e7ae655..0000000 --- a/VOL.MES/Services/mes/Partial/MES_MaterialCatalogService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_MaterialCatalog类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_MaterialCatalogService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_MaterialCatalogService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_MaterialCatalogRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_MaterialCatalogService( - IMES_MaterialCatalogRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_MaterialService.cs b/VOL.MES/Services/mes/Partial/MES_MaterialService.cs deleted file mode 100644 index 1139e11..0000000 --- a/VOL.MES/Services/mes/Partial/MES_MaterialService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_Material类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_MaterialService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_MaterialService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_MaterialRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_MaterialService( - IMES_MaterialRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_ProcessReportService.cs b/VOL.MES/Services/mes/Partial/MES_ProcessReportService.cs deleted file mode 100644 index 849615c..0000000 --- a/VOL.MES/Services/mes/Partial/MES_ProcessReportService.cs +++ /dev/null @@ -1,57 +0,0 @@ -/* - *所有关于MES_ProcessReport类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_ProcessReportService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; -using SqlSugar; -using VOL.Core.DbSqlSugar; -using VOL.Core.DBManager; - -namespace VOL.MES.Services -{ - public partial class MES_ProcessReportService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_ProcessReportRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_ProcessReportService( - IMES_ProcessReportRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - - public override PageGridData GetPageData(PageDataOptions options) - { - SummaryExpress = (ISugarQueryable queryable) => - { - return queryable.Select(x => new - { - CompletedQuantity = SqlFunc.AggregateSum(x.CompletedQuantity).ToString("f2"), - DefectiveQuantity = SqlFunc.AggregateSum(x.DefectiveQuantity).ToString("f2") - }).FirstOrDefault(); - }; - return base.GetPageData(options); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_ProcessRouteService.cs b/VOL.MES/Services/mes/Partial/MES_ProcessRouteService.cs deleted file mode 100644 index 6efb54c..0000000 --- a/VOL.MES/Services/mes/Partial/MES_ProcessRouteService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_ProcessRoute类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_ProcessRouteService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_ProcessRouteService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_ProcessRouteRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_ProcessRouteService( - IMES_ProcessRouteRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_ProcessService.cs b/VOL.MES/Services/mes/Partial/MES_ProcessService.cs deleted file mode 100644 index 0191252..0000000 --- a/VOL.MES/Services/mes/Partial/MES_ProcessService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_Process类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_ProcessService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_ProcessService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_ProcessRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_ProcessService( - IMES_ProcessRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_ProductInboundService.cs b/VOL.MES/Services/mes/Partial/MES_ProductInboundService.cs deleted file mode 100644 index 6baa920..0000000 --- a/VOL.MES/Services/mes/Partial/MES_ProductInboundService.cs +++ /dev/null @@ -1,57 +0,0 @@ -/* - *所有关于MES_ProductInbound类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_ProductInboundService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; -using SqlSugar; -using VOL.Core.DbSqlSugar; -using VOL.Core.DBManager; - -namespace VOL.MES.Services -{ - public partial class MES_ProductInboundService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_ProductInboundRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_ProductInboundService( - IMES_ProductInboundRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - - public override PageGridData GetPageData(PageDataOptions options) - { - SummaryExpress = (ISugarQueryable queryable) => - { - return queryable.Select(x => new - { - InboundQuantity = SqlFunc.AggregateSum(x.InboundQuantity).ToString("f2") - }) - .FirstOrDefault(); - }; - return base.GetPageData(options); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_ProductOutboundService.cs b/VOL.MES/Services/mes/Partial/MES_ProductOutboundService.cs deleted file mode 100644 index a1a03d4..0000000 --- a/VOL.MES/Services/mes/Partial/MES_ProductOutboundService.cs +++ /dev/null @@ -1,57 +0,0 @@ -/* - *所有关于MES_ProductOutbound类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_ProductOutboundService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; -using SqlSugar; -using VOL.Core.DbSqlSugar; -using VOL.Core.DBManager; - -namespace VOL.MES.Services -{ - public partial class MES_ProductOutboundService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_ProductOutboundRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_ProductOutboundService( - IMES_ProductOutboundRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - - public override PageGridData GetPageData(PageDataOptions options) - { - SummaryExpress = (ISugarQueryable queryable) => - { - return queryable.Select(x => new - { - OutboundQuantity = SqlFunc.AggregateSum(x.OutboundQuantity).ToString("f2") - }) - .FirstOrDefault(); - }; - return base.GetPageData(options); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_ProductionLineDeviceService.cs b/VOL.MES/Services/mes/Partial/MES_ProductionLineDeviceService.cs deleted file mode 100644 index e0764ec..0000000 --- a/VOL.MES/Services/mes/Partial/MES_ProductionLineDeviceService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_ProductionLineDevice类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_ProductionLineDeviceService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_ProductionLineDeviceService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_ProductionLineDeviceRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_ProductionLineDeviceService( - IMES_ProductionLineDeviceRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_ProductionLineService.cs b/VOL.MES/Services/mes/Partial/MES_ProductionLineService.cs deleted file mode 100644 index 9d3afb7..0000000 --- a/VOL.MES/Services/mes/Partial/MES_ProductionLineService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_ProductionLine类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_ProductionLineService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_ProductionLineService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_ProductionLineRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_ProductionLineService( - IMES_ProductionLineRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_ProductionOrderService.cs b/VOL.MES/Services/mes/Partial/MES_ProductionOrderService.cs deleted file mode 100644 index 6669bc5..0000000 --- a/VOL.MES/Services/mes/Partial/MES_ProductionOrderService.cs +++ /dev/null @@ -1,68 +0,0 @@ -/* - *所有关于MES_ProductionOrder类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_ProductionOrderService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; -using SqlSugar; -using VOL.Core.DbSqlSugar; -using VOL.Core.DBManager; - -namespace VOL.MES.Services -{ - public partial class MES_ProductionOrderService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_ProductionOrderRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_ProductionOrderService( - IMES_ProductionOrderRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - public override PageGridData GetPageData(PageDataOptions options) - { - - SummaryExpress = (ISugarQueryable queryable) => - { - return queryable.Select(x => new - { - OrderQty = SqlFunc.AggregateSum(x.OrderQty) - }) - .FirstOrDefault(); - }; - return base.GetPageData(options); - } - protected override object GetDetailSummary(ISugarQueryable queryeable) - { - - //ef写法(需要与前端开发文档上的【table显示合计】一起使用) - return ((ISugarQueryable)queryeable) - .Select(x => new - { - PlanQuantity = SqlFunc.AggregateSum(x.PlanQuantity) - - }).FirstOrDefault(); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_ProductionPlanChangeRecordService.cs b/VOL.MES/Services/mes/Partial/MES_ProductionPlanChangeRecordService.cs deleted file mode 100644 index 4cdf515..0000000 --- a/VOL.MES/Services/mes/Partial/MES_ProductionPlanChangeRecordService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_ProductionPlanChangeRecord类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_ProductionPlanChangeRecordService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_ProductionPlanChangeRecordService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_ProductionPlanChangeRecordRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_ProductionPlanChangeRecordService( - IMES_ProductionPlanChangeRecordRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_ProductionPlanDetailService.cs b/VOL.MES/Services/mes/Partial/MES_ProductionPlanDetailService.cs deleted file mode 100644 index c442d18..0000000 --- a/VOL.MES/Services/mes/Partial/MES_ProductionPlanDetailService.cs +++ /dev/null @@ -1,57 +0,0 @@ -/* - *所有关于MES_ProductionPlanDetail类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_ProductionPlanDetailService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; -using SqlSugar; -using VOL.Core.DbSqlSugar; -using VOL.Core.DBManager; - -namespace VOL.MES.Services -{ - public partial class MES_ProductionPlanDetailService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_ProductionPlanDetailRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_ProductionPlanDetailService( - IMES_ProductionPlanDetailRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - public override PageGridData GetPageData(PageDataOptions options) - { - SummaryExpress = (ISugarQueryable queryable) => - { - return queryable.Select(x => new - { - //AvgPrice注意大小写和数据库字段大小写一样 - PlanQuantity = SqlFunc.AggregateSum(x.PlanQuantity) - }) - .FirstOrDefault(); - }; - return base.GetPageData(options); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_ProductionReportingDetailService.cs b/VOL.MES/Services/mes/Partial/MES_ProductionReportingDetailService.cs deleted file mode 100644 index 64a4877..0000000 --- a/VOL.MES/Services/mes/Partial/MES_ProductionReportingDetailService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_ProductionReportingDetail类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_ProductionReportingDetailService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_ProductionReportingDetailService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_ProductionReportingDetailRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_ProductionReportingDetailService( - IMES_ProductionReportingDetailRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_ProductionReportingService.cs b/VOL.MES/Services/mes/Partial/MES_ProductionReportingService.cs deleted file mode 100644 index e5cc408..0000000 --- a/VOL.MES/Services/mes/Partial/MES_ProductionReportingService.cs +++ /dev/null @@ -1,76 +0,0 @@ -/* - *所有关于MES_ProductionReporting类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_ProductionReportingService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; -using SqlSugar; -using VOL.Core.DbSqlSugar; -using VOL.Core.DBManager; - -namespace VOL.MES.Services -{ - public partial class MES_ProductionReportingService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_ProductionReportingRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_ProductionReportingService( - IMES_ProductionReportingRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - - public override PageGridData GetPageData(PageDataOptions options) - { - SummaryExpress = (ISugarQueryable queryable) => - { - return queryable.Select(o => new - { - //注意大小写和数据库字段大小写一样 - AcceptedQuantity = SqlFunc.AggregateSum(o.AcceptedQuantity), - RejectedQuantity = SqlFunc.AggregateSum(o.RejectedQuantity), - Total = SqlFunc.AggregateSum(o.Total), - ReportHour = SqlFunc.AggregateSum(o.ReportHour) - }) - .FirstOrDefault(); - }; - return base.GetPageData(options); - } - - protected override object GetDetailSummary(ISugarQueryable queryeable) - { - - //ef写法(需要与前端开发文档上的【table显示合计】一起使用) - return ((ISugarQueryable)queryeable).Select(o => new - { - //Weight/Qty注意大小写和数据库字段大小写一样 - AcceptedQuantity = SqlFunc.AggregateSum(o.AcceptedQuantity), - RejectedQuantity = SqlFunc.AggregateSum(o.RejectedQuantity), - ReportedQuantity = SqlFunc.AggregateSum(o.ReportedQuantity), - ReportHour = SqlFunc.AggregateSum(o.ReportHour) - - }).FirstOrDefault(); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_QualityInspectionPlanDetailService.cs b/VOL.MES/Services/mes/Partial/MES_QualityInspectionPlanDetailService.cs deleted file mode 100644 index 71c5ef7..0000000 --- a/VOL.MES/Services/mes/Partial/MES_QualityInspectionPlanDetailService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_QualityInspectionPlanDetail类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_QualityInspectionPlanDetailService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_QualityInspectionPlanDetailService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_QualityInspectionPlanDetailRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_QualityInspectionPlanDetailService( - IMES_QualityInspectionPlanDetailRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_QualityInspectionPlanService.cs b/VOL.MES/Services/mes/Partial/MES_QualityInspectionPlanService.cs deleted file mode 100644 index db70fb0..0000000 --- a/VOL.MES/Services/mes/Partial/MES_QualityInspectionPlanService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_QualityInspectionPlan类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_QualityInspectionPlanService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_QualityInspectionPlanService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_QualityInspectionPlanRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_QualityInspectionPlanService( - IMES_QualityInspectionPlanRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_QualityInspectionRecordService.cs b/VOL.MES/Services/mes/Partial/MES_QualityInspectionRecordService.cs deleted file mode 100644 index 20bd267..0000000 --- a/VOL.MES/Services/mes/Partial/MES_QualityInspectionRecordService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_QualityInspectionRecord类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_QualityInspectionRecordService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_QualityInspectionRecordService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_QualityInspectionRecordRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_QualityInspectionRecordService( - IMES_QualityInspectionRecordRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_SchedulingPlanService.cs b/VOL.MES/Services/mes/Partial/MES_SchedulingPlanService.cs deleted file mode 100644 index 4a41e2d..0000000 --- a/VOL.MES/Services/mes/Partial/MES_SchedulingPlanService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_SchedulingPlan类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_SchedulingPlanService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_SchedulingPlanService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_SchedulingPlanRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_SchedulingPlanService( - IMES_SchedulingPlanRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_SupplierService.cs b/VOL.MES/Services/mes/Partial/MES_SupplierService.cs deleted file mode 100644 index 40ff323..0000000 --- a/VOL.MES/Services/mes/Partial/MES_SupplierService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_Supplier类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_SupplierService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_SupplierService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_SupplierRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_SupplierService( - IMES_SupplierRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/Partial/MES_WarehouseManagementService.cs b/VOL.MES/Services/mes/Partial/MES_WarehouseManagementService.cs deleted file mode 100644 index 6e89d54..0000000 --- a/VOL.MES/Services/mes/Partial/MES_WarehouseManagementService.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - *所有关于MES_WarehouseManagement类的业务代码应在此处编写 -*可使用repository.调用常用方法,获取EF/Dapper等信息 -*如果需要事务请使用repository.DbContextBeginTransaction -*也可使用DBServerProvider.手动获取数据库相关信息 -*用户信息、权限、角色等使用UserContext.Current操作 -*MES_WarehouseManagementService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter -*/ -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; -using System.Linq; -using VOL.Core.Utilities; -using System.Linq.Expressions; -using VOL.Core.Extensions; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Http; -using VOL.MES.IRepositories; - -namespace VOL.MES.Services -{ - public partial class MES_WarehouseManagementService - { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IMES_WarehouseManagementRepository _repository;//访问数据库 - - [ActivatorUtilitiesConstructor] - public MES_WarehouseManagementService( - IMES_WarehouseManagementRepository dbRepository, - IHttpContextAccessor httpContextAccessor - ) - : base(dbRepository) - { - _httpContextAccessor = httpContextAccessor; - _repository = dbRepository; - //多租户会用到这init代码,其他情况可以不用 - //base.Init(dbRepository); - } - } -} diff --git a/VOL.MES/Services/mes/TestServiceService.cs b/VOL.MES/Services/mes/TestServiceService.cs deleted file mode 100644 index b95da34..0000000 --- a/VOL.MES/Services/mes/TestServiceService.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - *Author:jxx - *Contact:283591387@qq.com - *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖 - *所有业务编写全部应在Partial文件夹下TestServiceService与ITestServiceService中编写 - */ -using VOL.MES.IRepositories; -using VOL.MES.IServices; -using VOL.Core.BaseProvider; -using VOL.Core.Extensions.AutofacManager; -using VOL.Entity.DomainModels; - -namespace VOL.MES.Services -{ - public partial class TestServiceService : ServiceBase - , ITestServiceService, IDependency - { - public static ITestServiceService Instance - { - get { return AutofacContainerModule.GetService(); } } - } - } diff --git a/VOL.MES/VOL.MES.csproj b/VOL.MES/VOL.MES.csproj deleted file mode 100644 index 3399a2f..0000000 --- a/VOL.MES/VOL.MES.csproj +++ /dev/null @@ -1,22 +0,0 @@ - - - - net8.0 - enable - enable - - - - 1701;1702;NU1902;NU1903;NU1904; - - - - 1701;1702;NU1902;NU1903;NU1904; - - - - - - - - diff --git a/VOL.WebApi/Controllers/HR/HR_DeptShipController.cs b/VOL.WebApi/Controllers/HR/HR_DeptShipController.cs new file mode 100644 index 0000000..bd1be2b --- /dev/null +++ b/VOL.WebApi/Controllers/HR/HR_DeptShipController.cs @@ -0,0 +1,21 @@ +/* + *代码由框架生成,任何更改都可能导致被代码生成器覆盖 + *如果要增加方法请在当前目录下Partial文件夹HR_DeptShipController编写 + */ +using Microsoft.AspNetCore.Mvc; +using VOL.Core.Controllers.Basic; +using VOL.Entity.AttributeManager; +using VOL.HR.IServices; +namespace VOL.HR.Controllers +{ + [Route("api/HR_DeptShip")] + [PermissionTable(Name = "HR_DeptShip")] + public partial class HR_DeptShipController : ApiBaseController + { + public HR_DeptShipController(IHR_DeptShipService service) + : base(service) + { + } + } +} + diff --git a/VOL.WebApi/Controllers/HR/HR_DeptSyncController.cs b/VOL.WebApi/Controllers/HR/HR_DeptSyncController.cs new file mode 100644 index 0000000..21d9613 --- /dev/null +++ b/VOL.WebApi/Controllers/HR/HR_DeptSyncController.cs @@ -0,0 +1,21 @@ +/* + *代码由框架生成,任何更改都可能导致被代码生成器覆盖 + *如果要增加方法请在当前目录下Partial文件夹HR_DeptSyncController编写 + */ +using Microsoft.AspNetCore.Mvc; +using VOL.Core.Controllers.Basic; +using VOL.Entity.AttributeManager; +using VOL.HR.IServices; +namespace VOL.HR.Controllers +{ + [Route("api/HR_DeptSync")] + [PermissionTable(Name = "HR_DeptSync")] + public partial class HR_DeptSyncController : ApiBaseController + { + public HR_DeptSyncController(IHR_DeptSyncService service) + : base(service) + { + } + } +} + diff --git a/VOL.WebApi/Controllers/HR/Partial/HR_DeptShipController.cs b/VOL.WebApi/Controllers/HR/Partial/HR_DeptShipController.cs new file mode 100644 index 0000000..b92b458 --- /dev/null +++ b/VOL.WebApi/Controllers/HR/Partial/HR_DeptShipController.cs @@ -0,0 +1,45 @@ +/* + *接口编写处... +*如果接口需要做Action的权限验证,请在Action上使用属性 +*如: [ApiActionPermission("HR_DeptShip",Enums.ActionPermissionOptions.Search)] + */ +using Microsoft.AspNetCore.Mvc; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.AspNetCore.Http; +using VOL.Entity.DomainModels; +using VOL.HR.IServices; + +namespace VOL.HR.Controllers +{ + public partial class HR_DeptShipController + { + private readonly IHR_DeptShipService _service;//访问业务代码 + private readonly IHttpContextAccessor _httpContextAccessor; + + [ActivatorUtilitiesConstructor] + public HR_DeptShipController( + IHR_DeptShipService service, + IHttpContextAccessor httpContextAccessor + ) + : base(service) + { + _service = service; + _httpContextAccessor = httpContextAccessor; + } + + /// + /// table加载数据后刷新当前table数据的字典项(适用字典数据量比较大的情况) + /// + /// + /// + [HttpPost, Route("/api/HR_YSDepartments/getPageData")] + public async Task GetYSERPDepartments() + { + var depts = await Service.GetYSERPDepartments(); + return Json(depts); + } + } +} diff --git a/VOL.WebApi/Controllers/HR/Partial/HR_DeptSyncController.cs b/VOL.WebApi/Controllers/HR/Partial/HR_DeptSyncController.cs new file mode 100644 index 0000000..f4f4335 --- /dev/null +++ b/VOL.WebApi/Controllers/HR/Partial/HR_DeptSyncController.cs @@ -0,0 +1,33 @@ +/* + *接口编写处... +*如果接口需要做Action的权限验证,请在Action上使用属性 +*如: [ApiActionPermission("HR_DeptSync",Enums.ActionPermissionOptions.Search)] + */ +using Microsoft.AspNetCore.Mvc; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.AspNetCore.Http; +using VOL.Entity.DomainModels; +using VOL.HR.IServices; + +namespace VOL.HR.Controllers +{ + public partial class HR_DeptSyncController + { + private readonly IHR_DeptSyncService _service;//访问业务代码 + private readonly IHttpContextAccessor _httpContextAccessor; + + [ActivatorUtilitiesConstructor] + public HR_DeptSyncController( + IHR_DeptSyncService service, + IHttpContextAccessor httpContextAccessor + ) + : base(service) + { + _service = service; + _httpContextAccessor = httpContextAccessor; + } + } +} diff --git a/VOL.WebApi/Controllers/HR/Partial/HR_EmployeeSyncController.cs b/VOL.WebApi/Controllers/HR/Partial/HR_EmployeeSyncController.cs index 9f4f11a..8d545f6 100644 --- a/VOL.WebApi/Controllers/HR/Partial/HR_EmployeeSyncController.cs +++ b/VOL.WebApi/Controllers/HR/Partial/HR_EmployeeSyncController.cs @@ -30,5 +30,42 @@ namespace VOL.HR.Controllers _service = service; _httpContextAccessor = httpContextAccessor; } + + + /// + /// + /// + /// + /// + [HttpPost, Route("/api/HR_YSEmployees/getPageData")] + public async Task GetYSAllEmployees() + { + var emps = await Service.GetAllYSEmployees(); + return Json(emps); + } + + /// + /// + /// + /// + /// + [HttpPost, Route("/api/HR_DingTalkEmployees/getPageData")] + public async Task GetAllDingTalkEmployees() + { + var emps = await Service.GetAllDingTalkEmployees(); + return Json(emps); + } + + /// + /// + /// + /// + /// + [HttpPost, Route("GenEmpSystemShip")] + public async Task GenEmpSystemShip() + { + await Service.GenEmpSystemShip(); + return Json(new { }); + } } } diff --git a/VOL.WebApi/Controllers/OSS/AliOSSController.cs b/VOL.WebApi/Controllers/OSS/AliOSSController.cs deleted file mode 100644 index f4f82ea..0000000 --- a/VOL.WebApi/Controllers/OSS/AliOSSController.cs +++ /dev/null @@ -1,87 +0,0 @@ -//using Aliyun.Acs.Core; -//using Aliyun.Acs.Core.Auth.Sts; -//using Aliyun.Acs.Core.Exceptions; -//using Aliyun.Acs.Core.Profile; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using VOL.Core.CacheManager; -using VOL.Core.Filters; -using VOL.Core.Services; -using VOL.Core.Utilities; - -namespace VOL.WebApi.Controllers.OSS -{ - /// - /// neuget包aliyun-net-sdk-core - /// - [JWTAuthorize, ApiController] - [Route("api/alioss")] - public class AliOSSController : Controller - { - private ICacheService _cache { get; set; } - public AliOSSController(ICacheService cache) - { - _cache = cache; - } - - [Route("getAccessToken"), HttpGet] - public object GetAccessToken() - { - - // //Region对照(创建创建 Bucket时选择的地域)https://oss.console.aliyun.com/bucket列表中的【地域】列,根据地域在下面的链接里面【Region ID】值 - // //https://help.aliyun.com/document_detail/31837.htm?spm=a2c4g.11186623.0.0.57a8396cwRnyQV#section-plb-2vy-5db - // string region = "oss-cn-beijing"; - - - ////https://ram.console.aliyun.com/users 用户点击进去里面找 - // string accessKeyID = "LTAI5tR4bQnBZqF8ruGiw123"; - // string accessKeySecret = "gZUwXdy1mVsPvROfNCsvmVWOeqi123"; - - //// https://ram.console.aliyun.com/roles/AliyunServiceRoleForSLSAudit 角色点进去找ARN - // string ARN = "acs:ram::1807122303681234:role/vol-role"; - // WebResponseContent webResponse = new WebResponseContent(); - - // //下面这些引用的neuget包aliyun-net-sdk-core - - // //获取sts凭证 - // IClientProfile profile = DefaultProfile.GetProfile(region, accessKeyID, accessKeySecret); - // DefaultAcsClient client = new DefaultAcsClient(profile); - // var request = new AssumeRoleRequest() - // { - // RoleArn = ARN, - // //这个 随便填写 - // RoleSessionName = "oss" - // }; - // try - // { - // var response = client.GetAcsResponse(request); - - // return Json(webResponse.OK(null, new - // { - // region, - // response.Credentials.AccessKeyId, - // response.Credentials.AccessKeySecret, - // response.Credentials.SecurityToken, - // Bucket= "vol-2023",//阿里云控制台创建的bucket名称 - // //Bucket所在具体文件夹 - // BucketFolder = "/" + DateTime.Now.ToString("yyyyMMdd"), - // //生成一个唯一标识防止文件重复 - // unique = DateTime.Now.ToString("HHmmsss") - // })); - - // } - // catch (ServerException e) - // { - // string message = $"获取sts异常:{e.Message + e.StackTrace}"; - // Console.WriteLine(message); - // Logger.Error(message); - // return Json(webResponse.Error(message)); - // } - return Content(""); - } - } -} diff --git a/VOL.WebApi/Dockerfile b/VOL.WebApi/Dockerfile index 781c706..f341e0e 100644 --- a/VOL.WebApi/Dockerfile +++ b/VOL.WebApi/Dockerfile @@ -16,7 +16,7 @@ COPY ["VOL.WebApi/VOL.WebApi.csproj", "VOL.WebApi/"] COPY ["VOL.Builder/VOL.Builder.csproj", "VOL.Builder/"] COPY ["VOL.Core/VOL.Core.csproj", "VOL.Core/"] COPY ["VOL.Entity/VOL.Entity.csproj", "VOL.Entity/"] -COPY ["VOL.MES/VOL.MES.csproj", "VOL.MES/"] +COPY ["VOL.HR/VOL.HR.csproj", "VOL.HR/"] COPY ["VOL.Sys/VOL.Sys.csproj", "VOL.Sys/"] RUN dotnet restore "./VOL.WebApi/VOL.WebApi.csproj" COPY . . diff --git a/VOL.WebApi/Download/ExcelExport/20250925/系统日志20250925181441.xlsx b/VOL.WebApi/Download/ExcelExport/20250925/系统日志20250925181441.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..84125eff17e968df0f125e1fd9be0e22ba013af5 GIT binary patch literal 32631 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 literal 0 HcmV?d00001 diff --git a/VOL.WebApi/Download/ExcelExport/20250925/系统日志20250925192501.xlsx b/VOL.WebApi/Download/ExcelExport/20250925/系统日志20250925192501.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..206cdff5edcc602682d563e66ee7e242bdfd189a GIT binary patch literal 46402 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 kDVx^FNmjD0& literal 0 HcmV?d00001 diff --git a/VOL.WebApi/Download/ExcelExport/20250925/系统日志20250925195820.xlsx b/VOL.WebApi/Download/ExcelExport/20250925/系统日志20250925195820.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a7f05d0b9232b0992290d993caef34d5f507cb32 GIT binary patch literal 52485 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 literal 0 HcmV?d00001 diff --git a/VOL.WebApi/Download/Logger/Queue/WriteError/20250925.txt b/VOL.WebApi/Download/Logger/Queue/WriteError/20250925.txt index 802fc1e..26ce027 100644 --- a/VOL.WebApi/Download/Logger/Queue/WriteError/20250925.txt +++ b/VOL.WebApi/Download/Logger/Queue/WriteError/20250925.txt @@ -1,7 +1,12 @@ -中文提示 : 检测到你没有开启文件,AllowLoadLocalInfile=true加到自符串上,已自动执行 SET GLOBAL local_infile=1 在试一次 -English Message : Loading local data is disabled; this must be enabled on both the client and server sides at SqlSugar.Check.ExceptionEasy(String enMessage, String cnMessage) +Got timeout reading communication packets at MySqlConnector.Core.ServerSession.ReceiveReplyAsyncAwaited(ValueTask`1 task) in /_/src/MySqlConnector/Core/ServerSession.cs:line 962 + at MySqlConnector.Core.ResultSet.ReadResultSetHeaderAsync(IOBehavior ioBehavior) in /_/src/MySqlConnector/Core/ResultSet.cs:line 43 + at MySqlConnector.MySqlDataReader.ActivateResultSet(CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlDataReader.cs:line 130 + at MySqlConnector.MySqlDataReader.CreateAsync(CommandListPosition commandListPosition, ICommandPayloadCreator payloadCreator, IDictionary`2 cachedProcedures, IMySqlCommand command, CommandBehavior behavior, Activity activity, IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlDataReader.cs:line 468 + at MySqlConnector.Core.CommandExecutor.ExecuteReaderAsync(IReadOnlyList`1 commands, ICommandPayloadCreator payloadCreator, CommandBehavior behavior, Activity activity, IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/Core/CommandExecutor.cs:line 56 + at MySqlConnector.MySqlCommand.ExecuteNonQueryAsync(IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlCommand.cs:line 296 + at MySqlConnector.MySqlBulkLoader.LoadAsync(IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlBulkLoader.cs:line 213 at SqlSugar.MySqlFastBuilder.ExecuteBulkCopyAsync(DataTable dt) at SqlSugar.FastestProvider`1._BulkCopy(List`1 datas) at SqlSugar.FastestProvider`1.BulkCopyAsync(List`1 datas) at SqlSugar.FastestProvider`1.BulkCopy(List`1 datas) - at VOL.Core.Services.Logger.Start() in D:\Code\Laservall-Data-Center\vol.api.sqlsugar\VOL.Core\Services\Logger.cs:line 183SqlSugar + at VOL.Core.Services.Logger.Start() in D:\Code\Laservall-Data-Center\vol.api.sqlsugar\VOL.Core\Services\Logger.cs:line 183MySqlConnector diff --git a/VOL.WebApi/Startup.cs b/VOL.WebApi/Startup.cs index d6d20b1..8abaa49 100644 --- a/VOL.WebApi/Startup.cs +++ b/VOL.WebApi/Startup.cs @@ -123,8 +123,8 @@ namespace VOL.WebApi services.AddSwaggerGen(c => { //分为2份接口文档 - c.SwaggerDoc("v1", new OpenApiInfo { Title = "VOL.Core后台Api", Version = "v1", Description = "这是对文档的描述。。" }); - c.SwaggerDoc("v2", new OpenApiInfo { Title = "VOL.Core对外三方Api", Version = "v2", Description = "xxx接口文档" }); //控制器里使用[ApiExplorerSettings(GroupName = "v2")] + c.SwaggerDoc("v1", new OpenApiInfo { Title = "后台Api", Version = "v1", Description = "框架API组" }); + c.SwaggerDoc("v2", new OpenApiInfo { Title = "其余业务Api", Version = "v2", Description = "业务API组" }); //控制器里使用[ApiExplorerSettings(GroupName = "v2")] //启用中文注释功能 // var basePath = PlatformServices.Default.Application.ApplicationBasePath; // var xmlPath = Path.Combine(basePath, "VOL.WebApi.xml"); diff --git a/VOL.WebApi/appsettings.json b/VOL.WebApi/appsettings.json index 1559a95..ff98603 100644 --- a/VOL.WebApi/appsettings.json +++ b/VOL.WebApi/appsettings.json @@ -30,8 +30,8 @@ //Oracle连接字符串 //"DbConnectionString": "user id=C##NETCOREDEV;data source=127.0.0.1/ORCL;password=123456;", - "RedisConnectionString": "127.0.0.1,Password=123456,SyncTimeout=15000", //redis连接字符串(最好加密) - "UseRedis": "false", //是否使用redis,如果不使用,默认使用Memory内置缓存 + "RedisConnectionString": "127.0.0.1,SyncTimeout=15000", //redis连接字符串(最好加密) + "UseRedis": "true", //是否使用redis,如果不使用,默认使用Memory内置缓存 "UseSignalR": "true" //是否使用SignalR,注意需要将端的地址配置到下面的CorsUrls属性中 }, "Secret": { //秘钥配置 diff --git a/VOL.YSErp/Models/Biz/YSERPDepartment.cs b/VOL.YSErp/Models/Biz/YSERPDepartment.cs new file mode 100644 index 0000000..2b42a76 --- /dev/null +++ b/VOL.YSErp/Models/Biz/YSERPDepartment.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VOL.YSErp.Models.Biz +{ + public class YSERPDepartment + { + /* + * + 名称 类型 数组 描述 + orgtype int 否 组织类型,1组织 2部门 + code string 否 编码 + sysid string 否 系统标识 + displayorder int 否 排序 + parentid string 否 上级节点主键 + dr int 否 删除标识,0未删除 1已删除 + parentCode string 否 上级节点编码 + parentorgid string 否 所属组织主键 + enable long 否 启用状态,0初始化 1启用 2停用 + is_biz_unit int 否 是否为业务单元,0否 1是 + tenantid string 否 租户标识 + name string 否 名称 + id string 否 主键ID + pubts string 否 时间戳,格式yyyy-MM-dd HH:mm:ss + */ + public int orgtype { get; set; } + public string code { get; set; } + public string sysid { get; set; } + public int displayorder { get; set; } + public string parentid { get; set; } + public int dr { get; set; } + public string parentCode { get; set; } + public string parentorgid { get; set; } + public int enable { get; set; } + public int is_biz_unit { get; set; } + public string tenantid { get; set; } + public string name { get; set; } + public string id { get; set; } + public string pubts { get; set; } + + } +} diff --git a/VOL.YSErp/Models/Biz/YSERPEmployee.cs b/VOL.YSErp/Models/Biz/YSERPEmployee.cs new file mode 100644 index 0000000..31e25bf --- /dev/null +++ b/VOL.YSErp/Models/Biz/YSERPEmployee.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VOL.YSErp.Models.Biz +{ + public class YSERPEmployee + { + + public string code { get; set; } + public int dr { get; set; } + public string modifiedtime { get; set; } + public int enable { get; set; } + public int ordernumber { get; set; } + public string staffJob_deptPath { get; set; } + public string staffJobId { get; set; } + public string id { get; set; } + public string pubts { get; set; } + public string email { get; set; } + public string org_id_name { get; set; } + public string dept_id_name { get; set; } + public int sex { get; set; } + public string mobile { get; set; } + public string orgVid { get; set; } + public string staffJobCode { get; set; } + public string beginDate { get; set; } + public string user_id { get; set; } + public string org_id { get; set; } + public string name { get; set; } + public string staffJob_orgPath { get; set; } + public string dept_id { get; set; } + } +} diff --git a/VOL.YSErp/Models/Biz/YSERPEmployeeUpdateModel.cs b/VOL.YSErp/Models/Biz/YSERPEmployeeUpdateModel.cs new file mode 100644 index 0000000..c5c9e04 --- /dev/null +++ b/VOL.YSErp/Models/Biz/YSERPEmployeeUpdateModel.cs @@ -0,0 +1,613 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VOL.YSErp.Models.Biz +{ + public class YSERPEmployeeUpdateModel + { + + public string code { get; set; } + public string name { get; set; } + public string certType { get; set; } + public string certNo { get; set; } + public string sex { get; set; } + public string birthDate { get; set; } + public string mobile { get; set; } + public string officeTel { get; set; } + public string email { get; set; } + public string selfEmail { get; set; } + public string joinWorkDate { get; set; } + public string linkAddr { get; set; } + public string education { get; set; } + public string degree { get; set; } + public string marital { get; set; } + public string bloodType { get; set; } + public bool isOnlyChild { get; set; } + public string characterrpr { get; set; } + public string permanreside { get; set; } + public string political { get; set; } + public string joinPolityDate { get; set; } + public string nationality { get; set; } + public string country { get; set; } + public string origin { get; set; } + public string qq { get; set; } + public string linkedIn { get; set; } + public string formerName { get; set; } + public string englishName { get; set; } + public string documentValidity { get; set; } + public string height { get; set; } + public string weight { get; set; } + public string postcode { get; set; } + public string birthPlace { get; set; } + public string religion { get; set; } + public string hobby { get; set; } + public string bizManTag { get; set; } + public string shopAssisTag { get; set; } + public string attachlist { get; set; } + public string weiXin { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + public string workAgeAdjType { get; set; } + public int workAgeAdjYea { get; set; } + public int workAgeAdjMon { get; set; } + public int workAgeAdjDay { get; set; } + public Stafflangability[] staffLangAbility { get; set; } + public Stafftechpost[] staffTechPost { get; set; } + public Staffass[] staffAss { get; set; } + public Staffcertificate[] staffCertificate { get; set; } + public Staffdotline[] staffDotline { get; set; } + public Staffbankacct[] staffBankAcct { get; set; } + public Staffpart[] staffPart { get; set; } + public Staffcert[] staffCert { get; set; } + public Staffsocialrel[] staffSocialRel { get; set; } + public Staffjob[] staffJob { get; set; } + public Stafftitle[] staffTitle { get; set; } + public Staffreward[] staffReward { get; set; } + public Staffprobation[] staffProbation { get; set; } + public Stafftrain[] staffTrain { get; set; } + public Staffresume[] staffResume { get; set; } + public Staffedu[] staffEdu { get; set; } + public Staffproqualify[] staffProqualify { get; set; } + public Staffctrt[] staffCtrt { get; set; } + public Defineset[] defineSet { get; set; } + public Dictionary staffDefines { get; set; } + public bool isReturn { get; set; } + public bool isUseNewCode { get; set; } + public string id { get; set; } + public Staffcadre[] staffCadre { get; set; } + public Staffpunishment[] staffPunishment { get; set; } + public Staffhealthsituation[] staffHealthSituation { get; set; } + public Staffsocietyemployment[] staffSocietyEmployment { get; set; } + public Staffdirectiorsupervisor[] staffDirectiorSupervisor { get; set; } + public Staffleadershiptrade[] staffLeadershipTrade { get; set; } + public Stafftrialevaluation[] staffTrialEvaluation { get; set; } + + + + } + + public class Stafflangability + { + public string proLevel { get; set; } + public string language { get; set; } + public string certNo { get; set; } + public string langLevel { get; set; } + public string memo { get; set; } + public string getDate { get; set; } + public string _status { get; set; } + public string certName { get; set; } + public Dictionary langDefines { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + } + + + public class Stafftechpost + { + public string beginDate { get; set; } + public string endDate { get; set; } + public string title { get; set; } + public string ratingOrg { get; set; } + public bool isPrefs { get; set; } + public string certNo { get; set; } + public string memo { get; set; } + public string channel { get; set; } + public string level { get; set; } + public string professionalTitleSeries { get; set; } + public string subseries { get; set; } + public string qualificationNumber { get; set; } + public string professionSpecialties { get; set; } + public string acquisitionMethod { get; set; } + public string _status { get; set; } + public Dictionary tecDefines { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + } + + + public class Staffass + { + public string beginDate { get; set; } + public string endDate { get; set; } + public string score { get; set; } + public string assDoc { get; set; } + public string rank { get; set; } + public string assPeriod { get; set; } + public string _status { get; set; } + public string memo { get; set; } + public Dictionary assDefines { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + } + + + public class Staffcertificate + { + public string beginDate { get; set; } + public string certificateCode { get; set; } + public string endDate { get; set; } + public string authority { get; set; } + public string _status { get; set; } + public string certificateName { get; set; } + public Dictionary certificateDefines { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + } + + public class Staffdotline + { + public string endDate { get; set; } + public string lineName { get; set; } + public string beginDate { get; set; } + public string lineType { get; set; } + public string memo { get; set; } + public string _status { get; set; } + public Dictionary dotlineDefines { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + } + + + public class Staffbankacct + { + public string openBank { get; set; } + public string sysid { get; set; } + public int isDefaultCard { get; set; } + public string bank { get; set; } + public string acctType { get; set; } + public string currency { get; set; } + public string account { get; set; } + public string accountName { get; set; } + public string _status { get; set; } + public Dictionary bankDefines { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + } + + + public class Staffpart + { + public string endDate { get; set; } + public string deptId { get; set; } + public bool endFlag { get; set; } + public string orgId { get; set; } + public string beginDate { get; set; } + public string postId { get; set; } + public string jobId { get; set; } + public string jobTypeId { get; set; } + public string memo { get; set; } + public string jobGradeId { get; set; } + public string director { get; set; } + public string addrId { get; set; } + public string staffFte { get; set; } + public string _status { get; set; } + public Dictionary staffPtJobDefines { get; set; } + public bool isweaken { get; set; } + public int trnsEvent { get; set; } + public string trnsType { get; set; } + public string trnsReason { get; set; } + public int effectiveNumber { get; set; } + public string partType { get; set; } + public string psnclId { get; set; } + public string empform { get; set; } + public string jobRankId { get; set; } + public string planEndDate { get; set; } + public string newPostId { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + public string otherJobType { get; set; } + } + + public class Staffcert + { + public string certNo { get; set; } + public string certType { get; set; } + public string endDate { get; set; } + public string memo { get; set; } + public string beginDate { get; set; } + public string extendOrg { get; set; } + public string _status { get; set; } + public Dictionary certDefines { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + } + + + public class Staffsocialrel + { + public string relName { get; set; } + public string linkTel { get; set; } + public string relation { get; set; } + public string linkAddr { get; set; } + public string workCorp { get; set; } + public bool isUrgent { get; set; } + public string workDuty { get; set; } + public string certType { get; set; } + public string certNo { get; set; } + public string isRelocate { get; set; } + public Dictionary relationDefines { get; set; } + public string _status { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + public string certIssuePlace { get; set; } + } + + public class Staffjob + { + public string endDate { get; set; } + public string orgId { get; set; } + public string newAttachment { get; set; } + public string staffFte { get; set; } + public string psnclId { get; set; } + public string trnsType { get; set; } + public int trnsEvent { get; set; } + public string deptId { get; set; } + public string beginDate { get; set; } + public string memo { get; set; } + public string jobId { get; set; } + public string jobTypeId { get; set; } + public string postStatus { get; set; } + public string addrId { get; set; } + public string trnsReason { get; set; } + public string director { get; set; } + public string jobRankId { get; set; } + public string jobGradeId { get; set; } + public string postId { get; set; } + public string disexplain { get; set; } + public string dispositon { get; set; } + public string _status { get; set; } + public Dictionary staffJobDefines { get; set; } + public bool isweaken { get; set; } + public int effectiveNumber { get; set; } + public string newPostId { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + } + + public class Stafftitle + { + public string certType { get; set; } + public string certCode { get; set; } + public string endDate { get; set; } + public string certRank { get; set; } + public bool isPrint { get; set; } + public string beginDate { get; set; } + public string assOrg { get; set; } + public string memo { get; set; } + public string proField { get; set; } + public string _status { get; set; } + public Dictionary titleDefines { get; set; } + public string dataCreateSource { get; set; } + } + + + public class Staffreward + { + public string rewardReason { get; set; } + public string rewardOrg { get; set; } + public string rewardDate { get; set; } + public string rewardItem { get; set; } + public string memo { get; set; } + public string _status { get; set; } + public Dictionary rewardDefines { get; set; } + public string rewardItem_supplement { get; set; } + public string rewardCategory { get; set; } + public string awardLevel { get; set; } + public string awardYear { get; set; } + public string awardGrade { get; set; } + public string approvalNo { get; set; } + public string certificateNo { get; set; } + public string rewardNature { get; set; } + public string incentives { get; set; } + public string approverCode { get; set; } + public string approverLevel { get; set; } + public string approvalTime { get; set; } + public string awardCancellation { get; set; } + public string awardCancellationTime { get; set; } + public string cancellationReason { get; set; } + public string newAttachment { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + } + + + public class Staffprobation + { + public int result { get; set; } + public string beginDate { get; set; } + public string positiveDate { get; set; } + public string endDate { get; set; } + public bool endFlag { get; set; } + public int type { get; set; } + public string memo { get; set; } + public string _status { get; set; } + public Dictionary probationDefines { get; set; } + public int promonth { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + } + + public class Stafftrain + { + public string beginDate { get; set; } + public string endDate { get; set; } + public string content { get; set; } + public string status { get; set; } + public string earnHours { get; set; } + public string earnCredit { get; set; } + public string courseId { get; set; } + public string classifiCation { get; set; } + public string hours { get; set; } + public string memo { get; set; } + public string protocolNo { get; set; } + public string fee { get; set; } + public string score { get; set; } + public string dayOrHours { get; set; } + public string _status { get; set; } + public Dictionary trainDefines { get; set; } + public string trainProjectName { get; set; } + public string trainProjectCode { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + public string trainingChannels { get; set; } + public string trainingType { get; set; } + public string trainingLocation { get; set; } + } + + + public class Staffresume + { + public string workCorp { get; set; } + public string beginDate { get; set; } + public string workDept { get; set; } + public string endDate { get; set; } + public string memo { get; set; } + public string workDuty { get; set; } + public string workPost { get; set; } + public string workJob { get; set; } + public string certifier { get; set; } + public string _status { get; set; } + public Dictionary resumeDefines { get; set; } + public int resumeType { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + } + + public class Staffedu + { + public string education { get; set; } + public string endDate { get; set; } + public string degree { get; set; } + public string beginDate { get; set; } + public string newAttachment { get; set; } + public string studyMode { get; set; } + public string major { get; set; } + public string memo { get; set; } + public string eduSystem { get; set; } + public string certifCode { get; set; } + public string educationCtifCode { get; set; } + public string isPrefs { get; set; } + public string school { get; set; } + public string _status { get; set; } + public Dictionary eduDefines { get; set; } + public string isHighestDegree { get; set; } + public string isHighestFullDegree { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + } + + + public class Staffproqualify + { + public string beginDate { get; set; } + public string getDate { get; set; } + public string title { get; set; } + public string memo { get; set; } + public string certNo { get; set; } + public string ratingOrg { get; set; } + public string isPrefs { get; set; } + public string endDate { get; set; } + public string _status { get; set; } + public Dictionary proqualifyDefines { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + } + + + public class Staffctrt + { + public int continueTime { get; set; } + public string endDate { get; set; } + public int termType { get; set; } + public string signDate { get; set; } + public string probEndDate { get; set; } + public string newAttachment { get; set; } + public int termMonth { get; set; } + public string majorCorpId { get; set; } + public string workAddr { get; set; } + public bool isReceive { get; set; } + public int contType { get; set; } + public string beginDate { get; set; } + public int probSalary { get; set; } + public int proMonth { get; set; } + public string contractNum { get; set; } + public string neconomy { get; set; } + public string startSalary { get; set; } + public string unchReason { get; set; } + public string memo { get; set; } + public string contractCode { get; set; } + public string presenter { get; set; } + public string breachMoney { get; set; } + public string proBeginDate { get; set; } + public string _status { get; set; } + public Dictionary ctrtDefines { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + } + + + public class Defineset + { + public string _status { get; set; } + } + + public class Staffcadre + { + public string FormOfAppointment { get; set; } + public string appointmentApprovalUnit { get; set; } + public string appointmentDeadline { get; set; } + public string appointmentNumber { get; set; } + public string appointmentReason { get; set; } + public string department { get; set; } + public string dismissalApprovalUnit { get; set; } + public string dismissalNumber { get; set; } + public string dismissalReason { get; set; } + public string jobAttributes { get; set; } + public string jobCategory { get; set; } + public string jobGrade { get; set; } + public string jobTitle { get; set; } + public string remarks { get; set; } + public string removalTime { get; set; } + public string selectionMethod { get; set; } + public string staffId { get; set; } + public string workingTime { get; set; } + public string workingUnit { get; set; } + public string _status { get; set; } + public Dictionary staffCadreTZDefines { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + } + + + public class Staffpunishment + { + public string approvalCancellationDocumentNo { get; set; } + public string approvalOfDissolutionUnit { get; set; } + public string approvalOfDissolutionUnitCode { get; set; } + public string approvalOfDissolutionUnitLevel { get; set; } + public string approvalReleaseTime { get; set; } + public string dismissalOfPunishmentDocumentNo { get; set; } + public string dismissalofpunishmentReason { get; set; } + public bool isTerminate { get; set; } + public string punishedUnit { get; set; } + public string punishedUnitCode { get; set; } + public string punishedUnitLevel { get; set; } + public string punishmentCancellationEffectiveTime { get; set; } + public string punishmentMeasures { get; set; } + public string punishmentName { get; set; } + public string punishmentNameSupplement { get; set; } + public string punishmentNo { get; set; } + public string punishmentReason { get; set; } + public string punishmentTime { get; set; } + public string punishmentType { get; set; } + public string remarks { get; set; } + public string staffId { get; set; } + public string _status { get; set; } + public Dictionary staffPunishmentTZDefines { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + } + + + public class Staffhealthsituation + { + public bool deformity { get; set; } + public string deformityCertDate { get; set; } + public string deformityCertNo { get; set; } + public string deformityLevel { get; set; } + public string healthCondition { get; set; } + public string pastHistory { get; set; } + public string _status { get; set; } + public Dictionary healthSituationDefine { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + } + + + public class Staffsocietyemployment + { + public string beginDate { get; set; } + public string certifier { get; set; } + public string certifierMobile { get; set; } + public string duties { get; set; } + public string memo { get; set; } + public string organization { get; set; } + public string _status { get; set; } + public Dictionary societyEmploymentDefine { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + } + + + public class Staffdirectiorsupervisor + { + public string beginDate { get; set; } + public string endDate { get; set; } + public string duties { get; set; } + public bool independentDirector { get; set; } + public string organization { get; set; } + public int termOfOffice { get; set; } + public string _status { get; set; } + public Dictionary societyEmploymentDefine { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + public string positionType { get; set; } + public string configurationMethod { get; set; } + public bool employeeDirector { get; set; } + public bool interPartDirector { get; set; } + public bool employeeSupervisor { get; set; } + public bool externalSupervisor { get; set; } + } + public class Staffleadershiptrade + { + public string commissionBeginDate { get; set; } + public string commissionEndDate { get; set; } + public string leadershipDuties { get; set; } + public string leadershipName { get; set; } + public string memo { get; set; } + public string staffId { get; set; } + public string _status { get; set; } + public Dictionary leadershipTradeDefine { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + } + + public class Stafftrialevaluation + { + public string beginDate { get; set; } + public string endDate { get; set; } + public string devaluationLevel { get; set; } + public string evaluationScore { get; set; } + public string overallEvaluation { get; set; } + public string memo { get; set; } + public string electronicSignature { get; set; } + public string _status { get; set; } + public Dictionary trialEvaluationDefine { get; set; } + public string dataCreateSource { get; set; } + public string dataCreateBillid { get; set; } + } + +} diff --git a/VOL.YSErp/Models/Biz/YSERPResponse.cs b/VOL.YSErp/Models/Biz/YSERPResponse.cs new file mode 100644 index 0000000..fd989dd --- /dev/null +++ b/VOL.YSErp/Models/Biz/YSERPResponse.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VOL.YSErp.Models.Biz +{ + public class YSERPResponse + { + + public string code { get; set; } + public string message { get; set; } + public Data data { get; set; } + + public string? displayCode { get; set; } + + public int? level { get; set; } + } + + public class Data + { + public int recordCount { get; set; } + public int pageIndex { get; set; } + public int pageSize { get; set; } + public int pageCount { get; set; } + public bool haveNextPage { get; set; } + public List recordList { get; set; } + } + public class YSERPListResponse + { + + public string code { get; set; } + public string message { get; set; } + public List data { get; set; } + + public string? displayCode { get; set; } + + public int? level { get; set; } + } + +} diff --git a/VOL.YSErp/Models/SystemToken.cs b/VOL.YSErp/Models/SystemToken.cs new file mode 100644 index 0000000..a0954f0 --- /dev/null +++ b/VOL.YSErp/Models/SystemToken.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VOL.YSErp.Models +{ + public class SystemToken + { + public string Token { get; set; } + public int TokenExpiry { get; set; } + public DateTime TokenEndTime { get; set; } + + public bool IsTokenExpiry() + { + //if (TokenEndTime == null) return true; + return TokenEndTime > DateTime.Now; + } + } +} diff --git a/VOL.YSErp/Models/YSConfig.cs b/VOL.YSErp/Models/YSConfig.cs new file mode 100644 index 0000000..69424a8 --- /dev/null +++ b/VOL.YSErp/Models/YSConfig.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VOL.YSErp.Models +{ + /* + "ys": { + "api_url": "https://c4.yonyoucloud.com", + "app_key": "99355863c0ed4363b09f8511d48f67e4", + "app_secret": "3ca452060b684ccc982836cd5f0b6116811cb8ce" + }, + */ + public class YSConfig + { + public string ApiUrl = "https://c4.yonyoucloud.com"; // 正式环境 -> c4, 测试环境 -> c1 + public string Appkey = "6fe5b0b6163e45c081cc9a40848d5840";//"08f9377fd9ae45219e7dd3fbebb9858a";//"99355863c0ed4363b09f8511d48f67e4"; + public string AppSecret = "ceeca798e84268a2d59f97c860e4c1223bf786df";//"8f4b0bf535fcdb6fa5b8ce5c630b740ddaa3b3be";//"3ca452060b684ccc982836cd5f0b6116811cb8ce"; + } +} diff --git a/VOL.YSErp/Services/Biz/YSERPService.cs b/VOL.YSErp/Services/Biz/YSERPService.cs new file mode 100644 index 0000000..624f1b8 --- /dev/null +++ b/VOL.YSErp/Services/Biz/YSERPService.cs @@ -0,0 +1,406 @@ +using SqlSugar; +using System.Collections.Generic; +using System.Security.Cryptography; +using System.Text; +using System.Text.Json; +using System.Web; +using VOL.Core.Services; +using VOL.YSErp.Models; +using VOL.YSErp.Models.Biz; +using static Dm.net.buffer.ByteArrayBuffer; + +namespace VOL.YSErp.Services.Biz +{ + public class YSERPService + { + private readonly string _apiUrl; + private readonly string _appKey; + private readonly string _appSecret; + private string _accessToken; + private DateTime? _tokenExpiry; + private readonly SemaphoreSlim _tokenLock = new SemaphoreSlim(1, 1); + private SystemToken _token; + private readonly HttpClient _httpClient; + + // YS API URLs + private readonly string _tokenUrl; + private readonly string _employeeListUrl; + private readonly string _updateEmployeeUrl; + private readonly string _deptListUrl; + + public YSERPService(SystemToken token, YSConfig config) + { + _token = token; + _apiUrl = config.ApiUrl.TrimEnd('/'); + _appKey = config.Appkey; + _appSecret = config.AppSecret; + _httpClient = new HttpClient(); + + _tokenUrl = $"{_apiUrl}/iuap-api-auth/open-auth/selfAppAuth/getAccessToken"; + _employeeListUrl = $"{_apiUrl}/iuap-api-gateway/yonbip/hrcloud/staff/listdetailmdd"; + _updateEmployeeUrl = $"{_apiUrl}/iuap-api-gateway/yonbip/hrcloud/batchInsertOrUpdateDetailNew"; + _deptListUrl = $"{_apiUrl}/iuap-api-gateway/yonbip/digitalModel/basedoc/dept/list"; + } + + + private string GenerateSignature(Dictionary parameters) + { + try + { + var filteredParams = new Dictionary(); + foreach (var param in parameters) + { + if (param.Key != "signature") + { + filteredParams[param.Key] = param.Value; + } + } + + var sortedParams = new SortedDictionary(filteredParams); + var paramStr = string.Join("", sortedParams.Select(p => p.Key + p.Value)); + + using (var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(_appSecret))) + { + var signatureBytes = hmac.ComputeHash(Encoding.UTF8.GetBytes(paramStr)); + return Convert.ToBase64String(signatureBytes); + } + } + catch (Exception ex) + { + //_logger.LogError(ex, "生成签名时出错"); + return null; + } + } + + private async Task<(string Token, DateTime Expiry)?> GetAccessTokenAsync() + { + try + { + var timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString(); + var parameters = new Dictionary + { + ["appKey"] = _appKey, + ["timestamp"] = timestamp + }; + + var signature = GenerateSignature(parameters); + if (string.IsNullOrEmpty(signature)) + { + return null; + } + + parameters["signature"] = signature; + + var queryString = string.Join("&", parameters.Select(p => + $"{p.Key}={HttpUtility.UrlEncode(p.Value)}")); + var fullUrl = $"{_tokenUrl}?{queryString}"; + + var response = await _httpClient.GetAsync(fullUrl); + if (!response.IsSuccessStatusCode) + { + //_logger.LogError($"获取access_token失败: HTTP {response.StatusCode}"); + return null; + } + + var content = await response.Content.ReadAsStringAsync(); + var data = JsonSerializer.Deserialize(content); + + if (data.GetProperty("code").GetString() != "00000") + { + var errorMsg = data.GetProperty("message").GetString(); + //_logger.LogError($"获取access_token失败: {errorMsg}"); + return null; + } + + var tokenData = data.GetProperty("data"); + var accessToken = tokenData.GetProperty("access_token").GetString(); + var expireSeconds = tokenData.GetProperty("expire").GetInt32(); + + return (accessToken, DateTime.Now.AddSeconds(expireSeconds - 300)); + } + catch (Exception ex) + { + //_logger.LogError(ex, "获取access_token时出错"); + return null; + } + } + + private async Task GetValidTokenAsync() + { + await _tokenLock.WaitAsync(); + try + { + if (string.IsNullOrEmpty(_token.Token) || !_token.IsTokenExpiry()) + { + //_logger.LogInformation("YS access_token已过期,重新获取..."); + var result = await GetAccessTokenAsync(); + if (result.HasValue) + { + (_accessToken, _tokenExpiry) = result.Value; + _token.Token = _accessToken; + _token.TokenEndTime = _tokenExpiry ?? DateTime.Now; + } + else + { + //_logger.LogError("无法获取有效的YS access_token"); + return null; + } + } + return _token.Token; + } + finally + { + _tokenLock.Release(); + } + } + + public async Task> GetAllEmployeesAsync() + { + var token = await GetValidTokenAsync(); + if (string.IsNullOrEmpty(token)) + { + return new List(); + } + + var allEmployees = new List(); + var pageIndex = 1; + const int pageSize = 50; + + Logger.Info($"员工信息API: {_employeeListUrl}"); + + while (true) + { + try + { + Logger.Info($"获取YS员工数据,第 {pageIndex} 页..."); + + var payload = new + { + pageIndex, + pageSize, + }; + + var request = new HttpRequestMessage(HttpMethod.Post, $"{_employeeListUrl}?access_token={token}") + { + Content = new StringContent( + JsonSerializer.Serialize(payload), + Encoding.UTF8, + "application/json") + }; + + var response = await _httpClient.SendAsync(request); + + if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized) + { + Logger.Error("认证失败: 无效的API令牌或权限不足"); + _accessToken = null; + return []; + } + + response.EnsureSuccessStatusCode(); + var content = await response.Content.ReadAsStringAsync(); + var data = JsonSerializer.Deserialize>(content); + if (!new[] { "200", "00000" }.Contains(data.code)) + { + var errorMsg = data.message; + Logger.Error($"API业务错误: {errorMsg}"); + throw new Exception(errorMsg); + } + + + var recordList = data.data.recordList; + if (recordList?.Count == 0) + { + Logger.Info("没有更多员工记录"); + break; + } + + allEmployees.AddRange(data.data.recordList); + + var haveNext = data.data.haveNextPage; + var pageCount = data.data.pageCount; + + if (!haveNext || pageIndex >= pageCount) + { + break; + } + Logger.Info($"第 {pageIndex}/{pageCount} 页,获取 {recordList.Count} 条员工记录"); + pageIndex++; + await Task.Delay(500); // 避免请求过快 + } + catch (Exception ex) + { + Logger.Error($"获取员工数据失败,{ex}"); + throw; + } + } + + //_logger.LogInformation($"共获取 {allEmployees.Count} 条YS员工记录"); + return allEmployees; + } + + public async Task UpdateEmployeesAsync(List> employeeUpdates) + { + var token = await GetValidTokenAsync(); + if (string.IsNullOrEmpty(token)) + { + return false; + } + + //_logger.LogInformation($"YS更新内容: {JsonSerializer.Serialize(employeeUpdates)}"); + + try + { + var request = new HttpRequestMessage(HttpMethod.Post, $"{_updateEmployeeUrl}?access_token={token}") + { + Content = new StringContent( + JsonSerializer.Serialize(new { data = employeeUpdates }), + Encoding.UTF8, + "application/json") + }; + + var response = await _httpClient.SendAsync(request); + //_logger.LogInformation($"YS更新响应状态: {response.StatusCode}"); + + var content = await response.Content.ReadAsStringAsync(); + //_logger.LogInformation($"YS更新响应内容: {content}"); + + response.EnsureSuccessStatusCode(); + var data = JsonSerializer.Deserialize(content); + + if (data.GetProperty("code").GetString() == "00000") + { + //_logger.LogInformation($"成功更新 {employeeUpdates.Count} 名员工信息"); + + if (data.TryGetProperty("data", out var resultData)) + { + //_logger.LogInformation($"处理总数: {GetPropertyValueOrDefault(resultData, "count", 0)}"); + //_logger.LogInformation($"成功数: {GetPropertyValueOrDefault(resultData, "successCount", 0)}"); + //_logger.LogInformation($"失败数: {GetPropertyValueOrDefault(resultData, "failCount", 0)}"); + + if (resultData.TryGetProperty("messages", out var messages)) + { + foreach (var msg in messages.EnumerateArray()) + { + //_logger.LogWarning($"失败信息: {msg}"); + } + } + } + + return true; + } + else + { + var errorMsg = data.GetProperty("message").GetString(); + Logger.Error($"更新失败: {errorMsg}"); + return false; + } + } + catch (Exception ex) + { + Logger.Error( $"更新员工信息失败,{ex}"); + return false; + } + } + + + + public async Task> GetAllDepartmentsAsync() + { + var token = await GetValidTokenAsync(); + if (string.IsNullOrEmpty(token)) + { + return []; + } + var allDepts = new List(); + + //Logger.Info($"员工信息API: {_employeeListUrl}"); + + try + { + var payload = new + { + data = new + { + code = new List(), + pubts = new List() { "1900-01-01 00:00:00" }, // 必须带一个参数,不然接口返回的数据格式有问题 2025年9月26日 + } + }; + + var request = new HttpRequestMessage(HttpMethod.Post, $"{_deptListUrl}?access_token={token}") + { + Content = new StringContent( + JsonSerializer.Serialize(payload), + Encoding.UTF8, + "application/json") + }; + + var response = await _httpClient.SendAsync(request); + + if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized) + { + Logger.Error("认证失败: 无效的API令牌或权限不足"); + _accessToken = null; + return []; + } + + response.EnsureSuccessStatusCode(); + var content = await response.Content.ReadAsStringAsync(); + var data = JsonSerializer.Deserialize>(content); + if (!new[] { "200", "00000" }.Contains(data.code)) + { + var errorMsg = data.message; + Logger.Error($"API业务错误: {errorMsg}"); + throw new Exception(errorMsg); + } + + + var recordList = data.data; + + if(recordList?.Count == 0) + { + Logger.Info("没有更多部门记录"); + return allDepts; + } + else + { + allDepts.AddRange(recordList ?? []); + } + + } + catch (Exception ex) + { + Logger.Error($"获取部门数据失败,{ex}"); + throw; + } + //_logger.LogInformation($"共获取 {allEmployees.Count} 条YS员工记录"); + return allDepts; + } + + private string ConvertGender(string gender) + { + return gender switch + { + "男" => "1", + "女" => "2", + _ => gender + }; + } + + private static string GetPropertyValueOrEmpty(JsonElement element, string propertyName) + { + return element.TryGetProperty(propertyName, out var property) ? property.GetString() ?? "" : ""; + } + + private static int GetPropertyValueOrDefault(JsonElement element, string propertyName, int defaultValue) + { + return element.TryGetProperty(propertyName, out var property) ? property.GetInt32() : defaultValue; + } + + public void Dispose() + { + _tokenLock?.Dispose(); + _httpClient?.Dispose(); + } + } +} diff --git a/VOL.YSErp/VOL.YSErp.csproj b/VOL.YSErp/VOL.YSErp.csproj new file mode 100644 index 0000000..4d4b247 --- /dev/null +++ b/VOL.YSErp/VOL.YSErp.csproj @@ -0,0 +1,13 @@ + + + + net8.0 + enable + enable + + + + + + + diff --git a/VOL.sln b/VOL.sln index e7d0286..5c249f0 100644 --- a/VOL.sln +++ b/VOL.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 18 -VisualStudioVersion = 18.0.11018.127 d18.0 +VisualStudioVersion = 18.0.11018.127 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VOL.Core", "VOL.Core\VOL.Core.csproj", "{9F72743E-647E-4D37-85D1-07EC9CD0AB71}" EndProject @@ -15,6 +15,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VOL.WebApi", "VOL.WebApi\VO EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VOL.HR", "VOL.HR\VOL.HR.csproj", "{71939963-532C-452F-956E-D04D51EB311E}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VOL.YSErp", "VOL.YSErp\VOL.YSErp.csproj", "{CDEFC727-9788-4329-8201-6527B36B1A73}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VOL.DingTalk", "VOL.DingTalk\VOL.DingTalk.csproj", "{692CF3EB-A61E-49FB-8151-5C1F62BE6BBF}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -45,6 +49,14 @@ Global {71939963-532C-452F-956E-D04D51EB311E}.Debug|Any CPU.Build.0 = Debug|Any CPU {71939963-532C-452F-956E-D04D51EB311E}.Release|Any CPU.ActiveCfg = Release|Any CPU {71939963-532C-452F-956E-D04D51EB311E}.Release|Any CPU.Build.0 = Release|Any CPU + {CDEFC727-9788-4329-8201-6527B36B1A73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CDEFC727-9788-4329-8201-6527B36B1A73}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CDEFC727-9788-4329-8201-6527B36B1A73}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CDEFC727-9788-4329-8201-6527B36B1A73}.Release|Any CPU.Build.0 = Release|Any CPU + {692CF3EB-A61E-49FB-8151-5C1F62BE6BBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {692CF3EB-A61E-49FB-8151-5C1F62BE6BBF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {692CF3EB-A61E-49FB-8151-5C1F62BE6BBF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {692CF3EB-A61E-49FB-8151-5C1F62BE6BBF}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE