zss
3 天以前 56e93995da774627fc275bfd433151a1b3b26f5f
src/main/java/com/ruoyi/home/controller/HomeController.java
@@ -61,8 +61,7 @@
    private static final Integer ORDER_STATUS_WAIT = 1;
    private static final Integer ORDER_STATUS_RUNNING = 2;
    private static final Integer ORDER_STATUS_COMPLETED = 3;
    //private static final Integer ORDER_STATUS_END = 4;  // 已取消
    private static final Integer ORDER_STATUS_END = 5;
    private static final Integer ORDER_STATUS_PAUSED = 4;
    /********************************************************基础类*****************************************************/
    @GetMapping("/todos")
@@ -104,8 +103,10 @@
    /********************************************************营销采购类**************************************************/
    @GetMapping("/supplierPurchaseRanking")
    @Operation(summary = "供应商采购排名")
    public R supplierPurchaseRanking(@DefaultType Integer type) {
        List<SupplierPurchaseRankingDto> list = homeService.supplierPurchaseRanking(type);
    public R supplierPurchaseRanking(@DefaultType Integer type,
            @RequestParam(required = false) String startDate,
            @RequestParam(required = false) String endDate) {
        List<SupplierPurchaseRankingDto> list = homeService.supplierPurchaseRanking(type, startDate, endDate);
        return R.ok(list);
    }
@@ -118,22 +119,28 @@
    @GetMapping("/customerContributionRanking")
    @Operation(summary = "客户金额贡献排名")
    public R customerContributionRanking(@DefaultType Integer type) {
        List<CustomerContributionRankingDto> list = homeService.customerContributionRanking(type);
    public R customerContributionRanking(@DefaultType Integer type,
            @RequestParam(required = false) String startDate,
            @RequestParam(required = false) String endDate) {
        List<CustomerContributionRankingDto> list = homeService.customerContributionRanking(type, startDate, endDate);
        return R.ok(list);
    }
    @GetMapping("/productSalesAnalysis")
    @Operation(summary = "各产品销售金额分析")
    public R productSalesAnalysis() {
        List<MapDto> list = homeService.productSalesAnalysis();
    public R productSalesAnalysis(
            @RequestParam(required = false) String startDate,
            @RequestParam(required = false) String endDate) {
        List<MapDto> list = homeService.productSalesAnalysis(startDate, endDate);
        return R.ok(list);
    }
    @GetMapping("/rawMaterialPurchaseAmountRatio")
    @Operation(summary = "原材料采购金额占比")
    public R rawMaterialPurchaseAmountRatio(){
        List<MapDto> list = homeService.rawMaterialPurchaseAmountRatio();
    public R rawMaterialPurchaseAmountRatio(
            @RequestParam(required = false) String startDate,
            @RequestParam(required = false) String endDate){
        List<MapDto> list = homeService.rawMaterialPurchaseAmountRatio(startDate, endDate);
        return R.ok(list);
    }
@@ -261,7 +268,7 @@
        }
        Integer statusFromParam = parseOrderStatus(status);
        if (!isBlank(status) && statusFromParam == null && !"all".equalsIgnoreCase(status.trim())) {
            return R.fail("status参数不合法,可选值:all/waiting/inProgress/completed/end 或 1/2/3/5");
            return R.fail("status参数不合法,可选值:all/waiting/inProgress/completed/paused 或 1/2/3/4");
        }
        Integer queryStatus = resolveOrderStatus(status, tab);
@@ -283,7 +290,7 @@
        long waitingCount = 0L;
        long inProgressCount = 0L;
        long completedCount = 0L;
        long endCount = 0L;
        long pausedCount = 0L;
        List<Map<String, Object>> statusCountRows = productionOrderMapper.countHomeOrderProgressByStatus(startTime, endTime);
        if (statusCountRows != null) {
            for (Map<String, Object> countRow : statusCountRows) {
@@ -295,8 +302,8 @@
                    inProgressCount = cnt;
                } else if (Objects.equals(statusKey, ORDER_STATUS_COMPLETED)) {
                    completedCount = cnt;
                } else if (Objects.equals(statusKey, ORDER_STATUS_END)) {
                    endCount = cnt;
                } else if (Objects.equals(statusKey, ORDER_STATUS_PAUSED)) {
                    pausedCount = cnt;
                }
            }
        }
@@ -311,7 +318,7 @@
        result.put("waitingCount", waitingCount);
        result.put("inProgressCount", inProgressCount);
        result.put("completedCount", completedCount);
        result.put("endCount", endCount);
        result.put("pausedCount", pausedCount);
        result.put("records", records);
        return R.ok(result);
    }
@@ -474,22 +481,28 @@
    @GetMapping("/salesPurchaseStorageProductCount")
    @Operation(summary = "销售-采购-储存产品数")
    public R salesPurchaseStorageProductCount(){
        List<MapDto> list = homeService.salesPurchaseStorageProductCount();
    public R salesPurchaseStorageProductCount(
            @RequestParam(required = false) String startDate,
            @RequestParam(required = false) String endDate){
        List<MapDto> list = homeService.salesPurchaseStorageProductCount(startDate, endDate);
        return R.ok(list);
    }
    @GetMapping("/productInOutAnalysis")
    @Operation(summary = "产品出入库分析")
    public R productInOutAnalysis(@DefaultType Integer type){
        List<Map<String, Object>> result = homeService.productInOutAnalysis(type);
    public R productInOutAnalysis(@DefaultType Integer type,
            @RequestParam(required = false) String startDate,
            @RequestParam(required = false) String endDate){
        List<Map<String, Object>> result = homeService.productInOutAnalysis(type, startDate, endDate);
        return R.ok(result);
    }
    @GetMapping("/productTurnoverDays")
    @Operation(summary = "产品周转天数")
    public R productTurnoverDays(){
        List<MapDto> list = homeService.productTurnoverDays();
    public R productTurnoverDays(
            @RequestParam(required = false) String startDate,
            @RequestParam(required = false) String endDate){
        List<MapDto> list = homeService.productTurnoverDays(startDate, endDate);
        return R.ok(list);
    }
@@ -531,8 +544,8 @@
        if ("3".equals(normalized) || "completed".equals(normalized)) {
            return ORDER_STATUS_COMPLETED;
        }
        if ("5".equals(normalized) || "end".equals(normalized)) {
            return ORDER_STATUS_END;
        if ("4".equals(normalized) || "paused".equals(normalized)) {
            return ORDER_STATUS_PAUSED;
        }
        return null;
    }
@@ -544,8 +557,8 @@
        if (Objects.equals(status, ORDER_STATUS_COMPLETED)) {
            return "completed";
        }
        if (Objects.equals(status, ORDER_STATUS_END)) {
            return "end";
        if (Objects.equals(status, ORDER_STATUS_PAUSED)) {
            return "paused";
        }
        if (Objects.equals(status, ORDER_STATUS_WAIT)) {
            return "waiting";
@@ -563,8 +576,8 @@
        if (Objects.equals(status, ORDER_STATUS_COMPLETED)) {
            return "completed";
        }
        if (Objects.equals(status, ORDER_STATUS_END)) {
            return "end";
        if (Objects.equals(status, ORDER_STATUS_PAUSED)) {
            return "paused";
        }
        return "all";
    }
@@ -579,8 +592,8 @@
        if (Objects.equals(status, ORDER_STATUS_COMPLETED)) {
            return "已完成";
        }
        if (Objects.equals(status, ORDER_STATUS_END)) {
            return "已结束";
        if (Objects.equals(status, ORDER_STATUS_PAUSED)) {
            return "已暂停";
        }
        return "未知";
    }
@@ -637,7 +650,7 @@
                .select(ProductionOrder::getQuantity, ProductionOrder::getCompleteQuantity)
                .ge(ProductionOrder::getCreateTime, day.atStartOfDay())
                .lt(ProductionOrder::getCreateTime, day.plusDays(1).atStartOfDay())
                .ne(ProductionOrder::getStatus, ORDER_STATUS_END));
                .ne(ProductionOrder::getStatus, ORDER_STATUS_PAUSED));
        BigDecimal totalQuantity = BigDecimal.ZERO;
        BigDecimal totalCompleteQuantity = BigDecimal.ZERO;