package com.ruoyi.home.controller;
|
|
import com.ruoyi.approve.pojo.ApproveProcess;
|
import com.ruoyi.dto.MapDto;
|
import com.ruoyi.framework.aspectj.lang.annotation.Log;
|
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
|
import com.ruoyi.framework.web.controller.BaseController;
|
import com.ruoyi.framework.web.domain.R;
|
import com.ruoyi.home.annotation.DefaultType;
|
import com.ruoyi.home.dto.*;
|
import com.ruoyi.home.service.HomeService;
|
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
import lombok.AllArgsConstructor;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.text.ParseException;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @author :yys
|
* @date : 2025/7/25 9:15
|
*/
|
@RestController
|
@Tag(name = "首页统计")
|
@RequestMapping("/home")
|
@AllArgsConstructor
|
public class HomeController extends BaseController {
|
|
private final HomeService homeService;
|
|
/********************************************************基础类*****************************************************/
|
@GetMapping("/todos")
|
@Log(title = "待办事项", businessType = BusinessType.OTHER)
|
@Operation(summary = "待办事项")
|
public R todos(ApproveProcess req) throws ParseException {
|
List<ApproveProcess> approveProcessList = homeService.todos();
|
return R.ok(approveProcessList);
|
}
|
|
@GetMapping("/approveAndDeviceTodos")
|
@Operation(summary = "审批协同,设备报修待办事项")
|
public R approveAndDeviceTodos(){
|
Map<String, Object> map = homeService.approveAndDeviceTodos();
|
return R.ok(map);
|
}
|
|
@GetMapping("/noticesCount")
|
@Operation(summary = "未过期的公告数量")
|
public R noticesCount(){
|
Long count = homeService.noticesCount();
|
return R.ok(count);
|
}
|
|
@GetMapping("/deptStaffDistribution")
|
@Operation(summary = "各部门人员分布")
|
public R deptStaffDistribution() {
|
DeptStaffDistributionDto dto = homeService.deptStaffDistribution();
|
return R.ok(dto);
|
}
|
|
@GetMapping("/summaryStatistics")
|
@Operation(summary = "员工-客户-供应商总数")
|
public R summaryStatistics() {
|
HomeSummaryDto homeSummaryDto = homeService.summaryStatistics();
|
return R.ok(homeSummaryDto);
|
}
|
|
/********************************************************营销采购类**************************************************/
|
@GetMapping("/supplierPurchaseRanking")
|
@Operation(summary = "供应商采购排名")
|
public R supplierPurchaseRanking(@DefaultType Integer type) {
|
List<SupplierPurchaseRankingDto> list = homeService.supplierPurchaseRanking(type);
|
return R.ok(list);
|
}
|
|
@GetMapping("/customerRevenueAnalysis")
|
@Operation(summary = "客户营收贡献数值分析")
|
public R customerRevenueAnalysis(Long customerId, @DefaultType Integer type) {
|
CustomerRevenueAnalysisDto dto = homeService.customerRevenueAnalysis(customerId, type);
|
return R.ok(dto);
|
}
|
|
@GetMapping("/customerContributionRanking")
|
@Operation(summary = "客户金额贡献排名")
|
public R customerContributionRanking(@DefaultType Integer type) {
|
List<CustomerContributionRankingDto> list = homeService.customerContributionRanking(type);
|
return R.ok(list);
|
}
|
|
@GetMapping("/productSalesAnalysis")
|
@Operation(summary = "各产品销售金额分析")
|
public R productSalesAnalysis() {
|
List<MapDto> list = homeService.productSalesAnalysis();
|
return R.ok(list);
|
}
|
|
@GetMapping("/rawMaterialPurchaseAmountRatio")
|
@Operation(summary = "原材料采购金额占比")
|
public R rawMaterialPurchaseAmountRatio(){
|
List<MapDto> list = homeService.rawMaterialPurchaseAmountRatio();
|
return R.ok(list);
|
}
|
|
@GetMapping("/business")
|
@Log(title = "销售-采购-库存数据", businessType = BusinessType.OTHER)
|
@Operation(summary = "销售-采购-库存数据")
|
public R business(HomeBusinessDto req) {
|
HomeBusinessDto homeBusinessDto = homeService.business();
|
return R.ok(homeBusinessDto);
|
}
|
|
@GetMapping("/analysisCustomerContractAmounts")
|
@Log(title = "客户合同金额分析", businessType = BusinessType.OTHER)
|
@Operation(summary = "客户合同金额分析")
|
public R analysisCustomerContractAmounts(AnalysisCustomerContractAmountsDto req) {
|
AnalysisCustomerContractAmountsDto analysisCustomerContractAmounts = homeService.analysisCustomerContractAmounts();
|
return R.ok(analysisCustomerContractAmounts);
|
}
|
|
/********************************************************生产类*****************************************************/
|
@GetMapping("/inputOutputAnalysis")
|
@Operation(summary = "投入产出分析")
|
public R inputOutputAnalysis(@DefaultType Integer type){
|
List<InputOutputAnalysisDto> list = homeService.inputOutputAnalysis(type);
|
return R.ok(list);
|
}
|
|
@GetMapping("/processOutputAnalysis")
|
@Operation(summary = "工序产出分析")
|
public R processOutputAnalysis(@DefaultType Integer type){
|
List<MapDto> list = homeService.processOutputAnalysis(type);
|
return R.ok(list);
|
}
|
|
@GetMapping("/workOrderEfficiencyAnalysis")
|
@Operation(summary = "工单执行效率分析")
|
public R workOrderEfficiencyAnalysis(@DefaultType Integer type){
|
List<WorkOrderEfficiencyDto> list = homeService.workOrderEfficiencyAnalysis(type);
|
return R.ok(list);
|
}
|
|
@GetMapping("/productionAccountingAnalysis")
|
@Operation(summary = "生产核算分析")
|
public R productionAccountingAnalysis(@DefaultType Integer type){
|
List<ProductionAccountingDto> list = homeService.productionAccountingAnalysis(type);
|
return R.ok(list);
|
}
|
|
@GetMapping("/orderCount")
|
@Operation(summary = "订单数")
|
public R orderCount(){
|
return R.ok(homeService.orderCount());
|
}
|
|
@GetMapping("/progressStatistics")
|
@Operation(summary = "各生产订单的完成进度统计")
|
public R progressStatistics(){
|
ProductionProgressDto productionProgressDto = homeService.productionProgress();
|
return R.ok(productionProgressDto);
|
}
|
|
@GetMapping("/workInProcessTurnover")
|
@Operation(summary = "在制品周转情况")
|
public R workInProcessTurnover(){
|
ProductionTurnoverDto productionTurnoverDto = homeService.workInProcessTurnover();
|
return R.ok(productionTurnoverDto);
|
}
|
|
@GetMapping("/processDataProductionStatistics")
|
@Operation(summary = "工序数据生产统计数据")
|
public R processDataProductionStatistics(@DefaultType Integer type,@RequestParam(required = false) List<Long> processIds) {
|
List<processDataProductionStatisticsDto> list = homeService.processDataProductionStatistics(type, processIds);
|
return R.ok(list);
|
}
|
|
/********************************************************质量类*****************************************************/
|
@GetMapping("/rawMaterialDetection")
|
@Operation(summary = "原材料检测")
|
public R rawMaterialDetection(@DefaultType Integer type){
|
return R.ok(homeService.rawMaterialDetection(type));
|
}
|
|
@GetMapping("/processDetection")
|
@Operation(summary = "过程检测")
|
public R processDetection(@DefaultType Integer type){
|
return R.ok(homeService.processDetection(type));
|
}
|
|
@GetMapping("/factoryDetection")
|
@Operation(summary = "成品出厂检测")
|
public R factoryDetection(@DefaultType Integer type){
|
return R.ok(homeService.factoryDetection(type));
|
}
|
|
@GetMapping("/qualityInspectionCount")
|
@Operation(summary = "质量检验数量")
|
public R qualityInspectionCount(){
|
QualityInspectionCountDto qualityInspectionCountDto = homeService.qualityInspectionCount();
|
return R.ok(qualityInspectionCountDto);
|
}
|
|
@GetMapping("/nonComplianceWarning")
|
@Operation(summary = "不合格预警")
|
public R nonComplianceWarning(){
|
NonComplianceWarningDto nonComplianceWarningDto = homeService.nonComplianceWarning();
|
return R.ok(nonComplianceWarningDto);
|
}
|
|
@GetMapping("/completedInspectionCount")
|
@Operation(summary = "完成检验数")
|
public R completedInspectionCount(){
|
List<CompletedInspectionCountDto> list = homeService.completedInspectionCount();
|
return R.ok(list);
|
}
|
|
@GetMapping("/unqualifiedProductRanking")
|
@Operation(summary = "不合格产品排名")
|
public R unqualifiedProductRanking(){
|
List<UnqualifiedProductRankDto> list = homeService.unqualifiedProductRanking();
|
return R.ok(list);
|
}
|
|
@GetMapping("/unqualifiedProductProcessingAnalysis")
|
@Operation(summary = "不合格检品处理分析")
|
public R unqualifiedProductProcessingAnalysis(){
|
List<MapDto> list = homeService.unqualifiedProductProcessingAnalysis();
|
return R.ok(list);
|
}
|
|
@GetMapping("/qualityStatistics")
|
@Log(title = "质量分析", businessType = BusinessType.OTHER)
|
@Operation(summary = "质量分析")
|
public R qualityStatistics(QualityStatisticsDto req) {
|
QualityStatisticsDto qualityStatisticsDto = homeService.qualityStatistics();
|
return R.ok(qualityStatisticsDto);
|
}
|
|
@GetMapping("/qualityInspectionStatistics")
|
@Operation(summary = "质量统计")
|
public R qualityInspectionStatistics(@DefaultType Integer type) {
|
QualityStatisticsDto dto = homeService.qualityInspectionStatistics(type);
|
return R.ok(dto);
|
}
|
|
/********************************************************财务类*****************************************************/
|
@GetMapping("/incomeExpenseAnalysis")
|
@Operation(summary = "支收对比分析")
|
public R incomeExpenseAnalysis(@DefaultType Integer type) {
|
List<Map<String, Object>> result = homeService.incomeExpenseAnalysis(type);
|
return R.ok(result);
|
}
|
|
@GetMapping("/profitTrendAnalysis")
|
@Operation(summary = "利润趋势分析")
|
public R profitTrendAnalysis(){
|
List<MapDto> list = homeService.profitTrendAnalysis();
|
return R.ok(list);
|
}
|
|
@GetMapping("/expenseCompositionAnalysis")
|
@Operation(summary = "构成分析")
|
public R expenseCompositionAnalysis(@DefaultType Integer type) {
|
List<MapDto> list = homeService.expenseCompositionAnalysis(type);
|
return R.ok(list);
|
}
|
|
@GetMapping("/monthlyIncome")
|
@Operation(summary = "月度收入")
|
public R monthlyIncome(){
|
MonthlyIncomeDto dto = homeService.monthlyIncome();
|
return R.ok(dto);
|
}
|
|
@GetMapping("/monthlyExpenditure")
|
@Operation(summary = "月度支出")
|
public R monthlyExpenditure(){
|
MonthlyExpenditureDto dto = homeService.monthlyExpenditure();
|
return R.ok(dto);
|
}
|
|
@GetMapping("/statisticsReceivablePayable")
|
@Log(title = "应收应付统计", businessType = BusinessType.OTHER)
|
@Operation(summary = "应收应付统计")
|
public R statisticsReceivablePayable(StatisticsReceivablePayableDto req, @DefaultType Integer type ) {
|
StatisticsReceivablePayableDto statisticsReceivablePayable = homeService.statisticsReceivablePayable(type);
|
return R.ok(statisticsReceivablePayable);
|
}
|
|
/********************************************************仓储类*****************************************************/
|
|
@GetMapping("/productCategoryDistribution")
|
@Operation(summary = "产品大类分布")
|
public R productCategoryDistribution() {
|
ProductCategoryDistributionDto dto = homeService.productCategoryDistribution();
|
return R.ok(dto);
|
}
|
|
@GetMapping("/salesPurchaseStorageProductCount")
|
@Operation(summary = "销售-采购-储存产品数")
|
public R salesPurchaseStorageProductCount(){
|
List<MapDto> list = homeService.salesPurchaseStorageProductCount();
|
return R.ok(list);
|
}
|
|
@GetMapping("/productInOutAnalysis")
|
@Operation(summary = "产品出入库分析")
|
public R productInOutAnalysis(@DefaultType Integer type){
|
List<Map<String, Object>> result = homeService.productInOutAnalysis(type);
|
return R.ok(result);
|
}
|
|
@GetMapping("/productTurnoverDays")
|
@Operation(summary = "产品周转天数")
|
public R productTurnoverDays(){
|
List<MapDto> list = homeService.productTurnoverDays();
|
return R.ok(list);
|
}
|
|
}
|