吴羡
10 天以前 647960c44d36b97263fee0325487f9dea8b24307
cnas-manage/src/main/java/com/ruoyi/manage/controller/ClientSatisfactionController.java
@@ -52,6 +52,10 @@
    @Operation(summary = "客户满意度调查新增")
    @PostMapping("/addClientSatisfaction")
    public Result addClientSatisfaction(@RequestBody ClientSatisfaction clientSatisfaction){
        Result<?> error = fillAssessment(clientSatisfaction);
        if (error != null) {
            return error;
        }
        clientSatisfactionService.save(clientSatisfaction);
        // 返回保存后的记录(含自增id),前端据此上传新增时暂存的照片
        return Result.success(clientSatisfaction);
@@ -64,7 +68,35 @@
    @Operation(summary = "客户满意度调查新增")
    @PostMapping("/updateClientSatisfaction")
    public Result updateClientSatisfaction(@RequestBody ClientSatisfaction clientSatisfaction){
        Result<?> error = fillAssessment(clientSatisfaction);
        if (error != null) {
            return error;
        }
        return Result.success(clientSatisfactionService.updateById(clientSatisfaction));
    }
    /**
     * 根据10道题的评分计算总分和满意度评定(80分及以上为满意)
     */
    private Result<?> fillAssessment(ClientSatisfaction clientSatisfaction) {
        Integer[] scores = {clientSatisfaction.getScore1(), clientSatisfaction.getScore2(),
                clientSatisfaction.getScore3(), clientSatisfaction.getScore4(),
                clientSatisfaction.getScore5(), clientSatisfaction.getScore6(),
                clientSatisfaction.getScore7(), clientSatisfaction.getScore8(),
                clientSatisfaction.getScore9(), clientSatisfaction.getScore10()};
        int total = 0;
        for (int i = 0; i < scores.length; i++) {
            if (scores[i] == null) {
                return Result.fail("请完成第" + (i + 1) + "题评分");
            }
            if (scores[i] < 5 || scores[i] > 10) {
                return Result.fail("评分必须在5到10分之间");
            }
            total += scores[i];
        }
        clientSatisfaction.setTotalScore(total);
        clientSatisfaction.setSatisfactionResult(total >= 80 ? 0 : 1);
        return null;
    }
    /**
@@ -93,6 +125,16 @@
    }
    /**
     * 客户满意度年度汇总导出
     * @param year 汇总年度
     */
    @Operation(summary = "客户满意度年度汇总导出")
    @GetMapping("/exportAnnualSummary")
    public void exportAnnualSummary(Integer year, HttpServletResponse response){
        clientSatisfactionService.exportAnnualSummary(year, response);
    }
    /**
     * 确认客户满意度
     * @param clientSatisfaction 要修改客户满意度的状态对象
     * @param userId 修改人id