Ver Fonte

单日工单的prompt调整 其他地方的prompt小数点保留两位

wangmiaomiao há 9 meses atrás
pai
commit
d030cce2cc

+ 125 - 20
slibra-admin/src/main/java/com/slibra/web/controller/business/GRPCController.java

@@ -9,6 +9,7 @@ import com.slibra.business.mapper.*;
 import com.slibra.business.req.*;
 import com.slibra.business.res.WorkOrderRes;
 import com.slibra.business.service.IFrontService;
+import com.slibra.common.DecimalUtils;
 import com.slibra.common.core.controller.BaseController;
 import com.slibra.common.enums.BusinessEnum;
 import com.slibra.common.exception.ServiceException;
@@ -65,6 +66,9 @@ public class GRPCController extends BaseController {
     @Autowired
     private IFrontService frontService;
 
+    @Autowired
+    private TXinyiNormConfigMapper xinyiNormConfigMapper;
+
 
 
     /**
@@ -350,7 +354,8 @@ public class GRPCController extends BaseController {
                     return;
                 }
                 //如果查询到了 拼装数据
-                chatReq.setQuestion(this.buildGDQuestion(date, dateBefore, tXinyiDailiesNow.get(0), tXinyiDailiesBefore.get(0)));
+                //2024年6月25日19:11:49  prompt优化
+                chatReq.setQuestion(this.buildGDQuestionNew(date, dateBefore, tXinyiDailiesNow.get(0), tXinyiDailiesBefore.get(0)));
             }else{//自定义工单
                 chatReq.setShowVal(GONGDAN_TITLE_CUSTOM.replace("#{0}", timeBegin).replace("#{1}", timeEnd));//处理展示的标题
                 WorkOrderReq workOrderReq = new WorkOrderReq();
@@ -470,6 +475,8 @@ public class GRPCController extends BaseController {
 //        return AjaxResult.success("ok");
     }
 
+
+
     private String buildGDQuestionCustom(List<WorkOrderRes> workOrderRes, WorkOrderReq workOrderReq) {
         StringBuilder sb = new StringBuilder();
         sb.append(GONGDAN_PROMPT_CUSTOM_BEGIN.replace("{0}", workOrderReq.getTimeBegin()).replace("{1}", workOrderReq.getTimeEnd()));
@@ -478,17 +485,17 @@ public class GRPCController extends BaseController {
             for (WorkOrderRes workOrderRe : workOrderRes) {
                 sb.append(workOrderRe.getTime()).append(":");
                 if(workOrderReq.getJsCod())
-                    sb.append("进水COD:").append(workOrderRe.getJsCod()).append("mg/L、");
+                    sb.append("进水COD:").append(DecimalUtils.getAbsAndScale(workOrderRe.getJsCod(), INT_2)).append("mg/L、");
                 if(workOrderReq.getJsTn())
-                    sb.append("进水总氮:").append(workOrderRe.getJsTn()).append("mg/L、");
+                    sb.append("进水总氮:").append(DecimalUtils.getAbsAndScale(workOrderRe.getJsTn(), INT_2)).append("mg/L、");
                 if(workOrderReq.getJsTp())
-                    sb.append("进水总磷:").append(workOrderRe.getJsTp()).append("mg/L、");
+                    sb.append("进水总磷:").append(DecimalUtils.getAbsAndScale(workOrderRe.getJsTp(), INT_2)).append("mg/L、");
                 if(workOrderReq.getJsNh3())
-                    sb.append("进水氨氮:").append(workOrderRe.getJsNh3()).append("mg/L、");
+                    sb.append("进水氨氮:").append(DecimalUtils.getAbsAndScale(workOrderRe.getJsNh3(), INT_2)).append("mg/L、");
                 if(workOrderReq.getJsSs())
-                    sb.append("进水SS:").append(workOrderRe.getJsSs()).append("mg/L、");
+                    sb.append("进水SS:").append(DecimalUtils.getAbsAndScale(workOrderRe.getJsSs(), INT_2)).append("mg/L、");
                 if(workOrderReq.getJsSlq())
-                    sb.append("进水水量:").append(workOrderRe.getJsSlq()).append("m³/d、");
+                    sb.append("进水水量:").append(DecimalUtils.getAbsAndScale(workOrderRe.getJsSlq(), INT_2)).append("m³/d、");
             }
         }
         if(workOrderReq.getCsSlqc() || workOrderReq.getCsSs() || workOrderReq.getCsTp() || workOrderReq.getCsTn() || workOrderReq.getCsCod() || workOrderReq.getCsNh3()){
@@ -496,17 +503,17 @@ public class GRPCController extends BaseController {
             for (WorkOrderRes workOrderRe : workOrderRes) {
                 sb.append(workOrderRe.getTime()).append(":");
                 if(workOrderReq.getCsCod())
-                    sb.append("出水COD:").append(workOrderRe.getCsCod()).append("mg/L、");
+                    sb.append("出水COD:").append(DecimalUtils.getAbsAndScale(workOrderRe.getCsCod(), INT_2)).append("mg/L、");
                 if(workOrderReq.getCsTn())
-                    sb.append("出水总氮:").append(workOrderRe.getCsTn()).append("mg/L、");
+                    sb.append("出水总氮:").append(DecimalUtils.getAbsAndScale(workOrderRe.getCsTn(), INT_2)).append("mg/L、");
                 if(workOrderReq.getCsTp())
-                    sb.append("出水总磷:").append(workOrderRe.getCsTp()).append("mg/L、");
+                    sb.append("出水总磷:").append(DecimalUtils.getAbsAndScale(workOrderRe.getCsTp(), INT_2)).append("mg/L、");
                 if(workOrderReq.getCsNh3())
-                    sb.append("出水氨氮:").append(workOrderRe.getCsNh3()).append("mg/L、");
+                    sb.append("出水氨氮:").append(DecimalUtils.getAbsAndScale(workOrderRe.getCsNh3(), INT_2)).append("mg/L、");
                 if(workOrderReq.getCsSs())
-                    sb.append("出水SS:").append(workOrderRe.getCsSs()).append("mg/L、");
+                    sb.append("出水SS:").append(DecimalUtils.getAbsAndScale(workOrderRe.getCsSs(), INT_2)).append("mg/L、");
                 if(workOrderReq.getCsSlqc())
-                    sb.append("出水水量:").append(workOrderRe.getCsSlqc()).append("m³/d、");
+                    sb.append("出水水量:").append(DecimalUtils.getAbsAndScale(workOrderRe.getCsSlqc(), INT_2)).append("m³/d、");
             }
         }
         if(workOrderReq.getNo3Hlj1Jqr() || workOrderReq.getNo3Hlj2Jqr() || workOrderReq.getNh31Jqr() || workOrderReq.getNh32Jqr()
@@ -515,19 +522,19 @@ public class GRPCController extends BaseController {
             for (WorkOrderRes workOrderRe : workOrderRes) {
                 sb.append(workOrderRe.getTime()).append(":");
                 if(workOrderReq.getNo3Hlj1Jqr())
-                    sb.append("#1好氧池硝酸盐:").append(workOrderRe.getNo3Hlj1Jqr()).append("mg/L、");
+                    sb.append("#1好氧池硝酸盐:").append(DecimalUtils.getAbsAndScale(workOrderRe.getNo3Hlj1Jqr(), INT_2)).append("mg/L、");
                 if(workOrderReq.getNo3Hlj2Jqr())
-                    sb.append("#2好氧池硝酸盐:").append(workOrderRe.getNo3Hlj2Jqr()).append("mg/L、");
+                    sb.append("#2好氧池硝酸盐:").append(DecimalUtils.getAbsAndScale(workOrderRe.getNo3Hlj2Jqr(), INT_2)).append("mg/L、");
                 if(workOrderReq.getNo3Qyc1Jqr())
-                    sb.append("#1缺氧池硝酸盐:").append(workOrderRe.getNo3Qyc1Jqr()).append("mg/L、");
+                    sb.append("#1缺氧池硝酸盐:").append(DecimalUtils.getAbsAndScale(workOrderRe.getNo3Qyc1Jqr(), INT_2)).append("mg/L、");
                 if(workOrderReq.getNo3Qyc2Jqr())
-                    sb.append("#2缺氧池硝酸盐:").append(workOrderRe.getNo3Qyc2Jqr()).append("mg/L、");
+                    sb.append("#2缺氧池硝酸盐:").append(DecimalUtils.getAbsAndScale(workOrderRe.getNo3Qyc2Jqr(), INT_2)).append("mg/L、");
                 if(workOrderReq.getTpRccJqr())
-                    sb.append("二沉池正磷酸盐:").append(workOrderRe.getTpRccJqr()).append("mg/L、");
+                    sb.append("二沉池正磷酸盐:").append(DecimalUtils.getAbsAndScale(workOrderRe.getTpRccJqr(), INT_2)).append("mg/L、");
                 if(workOrderReq.getNh31Jqr())
-                    sb.append("#1缺氧氨氮:").append(workOrderRe.getNh31Jqr()).append("mg/L、");
+                    sb.append("#1缺氧氨氮:").append(DecimalUtils.getAbsAndScale(workOrderRe.getNh31Jqr(), INT_2)).append("mg/L、");
                 if(workOrderReq.getNh32Jqr())
-                    sb.append("#2缺氧氨氮:").append(workOrderRe.getNh32Jqr()).append("mg/L、");
+                    sb.append("#2缺氧氨氮:").append(DecimalUtils.getAbsAndScale(workOrderRe.getNh32Jqr(), INT_2)).append("mg/L、");
             }
         }
         sb.append(GONGDAN_PROMPT_CUSTOM_END_1);
@@ -546,6 +553,104 @@ public class GRPCController extends BaseController {
     }
 
 
+
+    /**
+     * 通过日期构建工单的请求参数 --new
+     * @return
+     */
+    private String buildGDQuestionNew(String date, String dateBefore, TXinyiDaily tXinyiDaily, TXinyiDaily tXinyiDaily1) {
+        StringBuilder sb = new StringBuilder();
+        sb.append(GONGDAN_PROMPT_BEGIN.replace("{0}", date));
+        sb.append("进水COD:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getJsCod(), INT_2)).append("mg/L、");
+        sb.append("进水总氮:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getJsTn(), INT_2)).append("mg/L、");
+        sb.append("进水总磷:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getJsTp(), INT_2)).append("mg/L、");
+        sb.append("进水氨氮:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getJsNh3(), INT_2)).append("mg/L、");
+        sb.append("进水SS:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getJsSs(), INT_2)).append("mg/L、");
+        sb.append("进水水量:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getJSL(), INT_2)).append("m³/d、");
+        sb.append(";");
+        sb.append("出水COD:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getCsCod(), INT_2)).append("mg/L、");
+        sb.append("出水总氮:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getCsTn(), INT_2)).append("mg/L、");
+        sb.append("出水总磷:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getCsTp(), INT_2)).append("mg/L、");
+        sb.append("出水氨氮:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getCsNh3(), INT_2)).append("mg/L、");
+        sb.append("出水SS:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getCsSs(), INT_2)).append("mg/L、");
+        sb.append("出水水量:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getCSL(), INT_2)).append("m³/d。");
+        sb.append("二、生化指标:\n");
+        //todo 单位确认 下面的应该不是 mg/L
+        sb.append("#1好氧池pH:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getShcOnePh(), INT_2)).append("、");
+        sb.append("#1好氧池SV:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getShcHyOneSv(), INT_2)).append("、");
+        sb.append("#1好氧池SVI:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getShcHyOneSvi(), INT_2)).append("、");
+        sb.append("#1好氧池MLSS:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getShcHyOneMlss(), INT_2)).append("、");
+        sb.append("#1好氧池MLVSS:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getShcHyOneMlvss(), INT_2)).append("、");
+        sb.append("#1好氧池DO:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getShcHyOneDo(), INT_2)).append(";");
+        sb.append("#2好氧池pH:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getShcTwoPh(), INT_2)).append("、");
+        sb.append("#2好氧池SV:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getShcHyTwoSv(), INT_2)).append("、");
+        sb.append("#2好氧池SVI:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getShcHyTwoSvi(), INT_2)).append("、");
+        sb.append("#2好氧池MLSS:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getShcHyTwoMlss(), INT_2)).append("、");
+        sb.append("#2好氧池MLVSS:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getShcHyTwoMlvss(), INT_2)).append("、");
+        sb.append("#2好氧池DO:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getShcHyTwoDo(), INT_2)).append(";");
+        sb.append("#1厌氧池DO:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getShcYyOneDo(), INT_2)).append(";");
+        sb.append("#2厌氧池DO:").append(DecimalUtils.getAbsAndScale(tXinyiDaily.getShcYyTwoDo(), INT_2)).append("。");
+        sb.append("最近7天的数据如下:\n");
+        List<TXinyiDaily> dailyTwoRecords = this.xinyiDailyMapper.selectNRecords(DAILY_REPORT_COUNT_RECORD);
+        //正常不会有这种问题 因为日报有很多条
+        if(CollectionUtils.isEmpty(dailyTwoRecords) || dailyTwoRecords.size() < DAILY_REPORT_COUNT_RECORD){
+            log.error("进入了定时生成每日简报数据 获取最新的{}条数据不足,终止", DAILY_REPORT_COUNT_RECORD);
+            return sb.toString();
+        }
+        //查询配置信息
+        List<TXinyiNormConfig> tXinyiNormConfigs = this.xinyiNormConfigMapper.selectTXinyiNormConfigList(null);
+        if(CollectionUtils.isEmpty(tXinyiNormConfigs))
+            return null;
+        TXinyiNormConfig normConfig = tXinyiNormConfigs.get(0);
+        //获取数据
+        for (TXinyiDaily dailyTwoRecord : dailyTwoRecords) {
+            sb.append(formateDateStr(dailyTwoRecord.getTestDate())).append("进出水质数据:\n");
+            sb.append("进水:\n");
+            sb.append("进水COD").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getJsCod(), 2)).append("mg/L、");
+            sb.append("进水总氮").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getJsTn(), 2)).append("mg/L、");
+            sb.append("进水总磷").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getJsTp(), 2)).append("mg/L、");
+            sb.append("进水氨氮").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getJsNh3(), 2)).append("mg/L、");
+            sb.append("进水SS").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getJsSs(), 2)).append("mg/L、");
+            sb.append("进水水量").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getJSL(), 2)).append("m³/d").append(";\n");
+            sb.append("出水:\n");
+            sb.append("出水COD").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getCsCod(), 2)).append("mg/L、");
+            sb.append("出水总氮").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getCsTn(), 2)).append("mg/L、");
+            sb.append("出水总磷").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getCsTp(), 2)).append("mg/L、");
+            sb.append("出水氨氮").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getCsNh3(), 2)).append("mg/L、");
+            sb.append("出水SS").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getCsSs(), 2)).append("mg/L、");
+            sb.append("出水水量").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getCSL(), 2)).append("m³/d").append("。\n");
+        }
+        sb.append(SHORT_REPORT_END);
+        sb.append("进水COD:").append(DecimalUtils.getAbsAndScale(normConfig.getJscodSjz(), 2)).append("mg/L、");
+        sb.append("进水总氮:").append(DecimalUtils.getAbsAndScale(normConfig.getJszdSjz(), 2)).append("mg/L、");
+        sb.append("进水总磷:").append(DecimalUtils.getAbsAndScale(normConfig.getJszlSjz(), 2)).append("mg/L、");
+        sb.append("进水氨氮:").append(DecimalUtils.getAbsAndScale(normConfig.getJsadSjz(), 2)).append("mg/L、");
+        sb.append("进水SS:").append(DecimalUtils.getAbsAndScale(normConfig.getJsssSjz(), 2)).append("mg/L、");
+        sb.append("出水COD:").append(DecimalUtils.getAbsAndScale(normConfig.getCscodBzz(), 2)).append("mg/L、");
+        sb.append("出水总氮:").append(DecimalUtils.getAbsAndScale(normConfig.getCszzBzz(), 2)).append("mg/L、");
+        sb.append("出水总磷:").append(DecimalUtils.getAbsAndScale(normConfig.getCszlBzz(), 2)).append("mg/L、");
+        sb.append("出水氨氮:").append(DecimalUtils.getAbsAndScale(normConfig.getCsadBzz(), 2)).append("mg/L、");
+        sb.append("出水SS:").append(DecimalUtils.getAbsAndScale(normConfig.getCsssBzz(), 2)).append("mg/L").append("。");
+        sb.append(GONGDAN_PROMPT_END);
+        return sb.toString();
+    }
+
+
+    /**
+     *
+     * 2022/01/01 转成2022年01月01日 数据
+     * @param testDate
+     * @return
+     */
+    private String formateDateStr(String testDate) {
+        if(StringUtils.isBlank(testDate))
+            return "";
+        if(!testDate.contains("/"))
+            return testDate;
+        String[] split = testDate.split("/");
+        return split[0] + "年" + split[1] + "月" + split[2] + "日";
+    }
+
     /**
      * 通过日期构建工单的请求参数
      * @return

+ 11 - 0
slibra-common/src/main/java/com/slibra/common/constant/MyConstants.java

@@ -63,6 +63,7 @@ public class MyConstants {
     public static final String WARNING_DEFAULT_CREATE = "task-job";
     public static final String DEFAULT_ID_IDENTIFIER = "@@id@@";
     public static final int MAX_COUNT = 30;
+    public static final int INT_2 = 2;
     public static final int MAX_QUESTION_LENGTH = 5000;
 
     public static final int DAILY_RECORDS_TOTAL = 30;
@@ -120,6 +121,16 @@ public class MyConstants {
     public static final String GONGDAN_TITLE = "请生成#{0}智能工单分析报告";
     public static final String GONGDAN_TITLE_CUSTOM = "请成生#{0}-#{1}日的日报工单";
 
+    public static final String GONGDAN_PROMPT_BEGIN = "作为一个工艺分析师,请生成一份#{0}分析报告,根据我提供的详细数据,输出一份详细的分析报告。报告需数据准确、分析深入,建议具体可行,以便为水务管理和决策提供支持。报告分为三部分:\n" +
+            "1、水质数据、生化数据:以下是5月24日详细数据,必须要使用表格形式展现\n" +
+            "水质指标:\n";
+
+    public static final String GONGDAN_PROMPT_END = "2、显示超标准值数据情况,并对比近七天数据,分析数据趋势 \n" +
+            "3、提出针对性的改善建议,包括优化处理工艺点,对于超标的数据推送解决方案,每项调整点不要太概括,一定要给出具体调整数据     \n" +
+            "结论:\n" +
+            "总结分析报告的主要发现,强调当前水质和生化指标的整体状况。\n" +
+            "对未来水质管理和监控工作提出建议和展望。";
+
     /**
      * 工单的prompt
      */

+ 23 - 23
slibra-quartz/src/main/java/com/slibra/quartz/task/RyTask.java

@@ -1208,9 +1208,9 @@ public class RyTask
         //构建问题(替换提示词中的占位符)
         String shWarningPrompt = YC_WARNING_PROMPT;
         shWarningPrompt =shWarningPrompt.replace("#{0}", xinyiWarningRecord.getReason());
-        shWarningPrompt =shWarningPrompt.replace("#{1}", String.valueOf(xinyiWarningRecord.getDesignVal()));
-        shWarningPrompt =shWarningPrompt.replace("#{2}", String.valueOf(xinyiWarningRecord.getWarningVal()));
-        shWarningPrompt =shWarningPrompt.replace("#{3}", String.valueOf(xinyiWarningRecord.getForecastVal()));
+        shWarningPrompt =shWarningPrompt.replace("#{1}", String.valueOf(DecimalUtils.getAbsAndScale(xinyiWarningRecord.getDesignVal(), INT_2)));
+        shWarningPrompt =shWarningPrompt.replace("#{2}", String.valueOf(DecimalUtils.getAbsAndScale(xinyiWarningRecord.getWarningVal(), INT_2)));
+        shWarningPrompt =shWarningPrompt.replace("#{3}", String.valueOf(DecimalUtils.getAbsAndScale(xinyiWarningRecord.getForecastVal(), INT_2)));
         historyDates.add(shWarningPrompt);
         // 获取输出流
         ManagedChannel channel = null;
@@ -1440,30 +1440,30 @@ public class RyTask
         for (TXinyiDaily dailyTwoRecord : dailyTwoRecords) {
             sb.append(formateDateStr(dailyTwoRecord.getTestDate())).append("进出水质数据:\n");
             sb.append("进水:\n");
-            sb.append("进水COD").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getJsCod(), 2)).append("mg/L\n");
-            sb.append("进水总氮").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getJsTn(), 2)).append("mg/L\n");
-            sb.append("进水总磷").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getJsTp(), 2)).append("mg/L\n");
-            sb.append("进水氨氮").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getJsNh3(), 2)).append("mg/L\n");
-            sb.append("进水SS").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getJsSs(), 2)).append("mg/L\n");
+            sb.append("进水COD").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getJsCod(), 2)).append("mg/L");
+            sb.append("进水总氮").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getJsTn(), 2)).append("mg/L");
+            sb.append("进水总磷").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getJsTp(), 2)).append("mg/L");
+            sb.append("进水氨氮").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getJsNh3(), 2)).append("mg/L");
+            sb.append("进水SS").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getJsSs(), 2)).append("mg/L");
             sb.append("进水水量").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getJSL(), 2)).append("m³/d").append(";\n");
-            sb.append("出水:");
-            sb.append("出水COD").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getCsCod(), 2)).append("mg/L\n");
-            sb.append("出水总氮").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getCsTn(), 2)).append("mg/L\n");
-            sb.append("出水总磷").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getCsTp(), 2)).append("mg/L\n");
-            sb.append("出水氨氮").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getCsNh3(), 2)).append("mg/L\n");
-            sb.append("出水SS").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getCsSs(), 2)).append("mg/L\n");
+            sb.append("出水:\n");
+            sb.append("出水COD").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getCsCod(), 2)).append("mg/L");
+            sb.append("出水总氮").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getCsTn(), 2)).append("mg/L");
+            sb.append("出水总磷").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getCsTp(), 2)).append("mg/L");
+            sb.append("出水氨氮").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getCsNh3(), 2)).append("mg/L");
+            sb.append("出水SS").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getCsSs(), 2)).append("mg/L");
             sb.append("出水水量").append(DecimalUtils.getAbsAndScale(dailyTwoRecord.getCSL(), 2)).append("m³/d").append("。\n");
         }
         sb.append(SHORT_REPORT_END);
-        sb.append("进水COD:").append(DecimalUtils.getAbsAndScale(normConfig.getJscodSjz(), 2)).append("mg/L\n");
-        sb.append("进水总氮:").append(DecimalUtils.getAbsAndScale(normConfig.getJszdSjz(), 2)).append("mg/L\n");
-        sb.append("进水总磷:").append(DecimalUtils.getAbsAndScale(normConfig.getJszlSjz(), 2)).append("mg/L\n");
-        sb.append("进水氨氮:").append(DecimalUtils.getAbsAndScale(normConfig.getJsadSjz(), 2)).append("mg/L\n");
-        sb.append("进水SS:").append(DecimalUtils.getAbsAndScale(normConfig.getJsssSjz(), 2)).append("mg/L\n");
-        sb.append("出水COD:").append(DecimalUtils.getAbsAndScale(normConfig.getCscodBzz(), 2)).append("mg/L\n");
-        sb.append("出水总氮:").append(DecimalUtils.getAbsAndScale(normConfig.getCszzBzz(), 2)).append("mg/L\n");
-        sb.append("出水总磷:").append(DecimalUtils.getAbsAndScale(normConfig.getCszlBzz(), 2)).append("mg/L\n");
-        sb.append("出水氨氮:").append(DecimalUtils.getAbsAndScale(normConfig.getCsadBzz(), 2)).append("mg/L\n");
+        sb.append("进水COD:").append(DecimalUtils.getAbsAndScale(normConfig.getJscodSjz(), 2)).append("mg/L");
+        sb.append("进水总氮:").append(DecimalUtils.getAbsAndScale(normConfig.getJszdSjz(), 2)).append("mg/L");
+        sb.append("进水总磷:").append(DecimalUtils.getAbsAndScale(normConfig.getJszlSjz(), 2)).append("mg/L");
+        sb.append("进水氨氮:").append(DecimalUtils.getAbsAndScale(normConfig.getJsadSjz(), 2)).append("mg/L");
+        sb.append("进水SS:").append(DecimalUtils.getAbsAndScale(normConfig.getJsssSjz(), 2)).append("mg/L");
+        sb.append("出水COD:").append(DecimalUtils.getAbsAndScale(normConfig.getCscodBzz(), 2)).append("mg/L");
+        sb.append("出水总氮:").append(DecimalUtils.getAbsAndScale(normConfig.getCszzBzz(), 2)).append("mg/L");
+        sb.append("出水总磷:").append(DecimalUtils.getAbsAndScale(normConfig.getCszlBzz(), 2)).append("mg/L");
+        sb.append("出水氨氮:").append(DecimalUtils.getAbsAndScale(normConfig.getCsadBzz(), 2)).append("mg/L");
         sb.append("出水SS:").append(DecimalUtils.getAbsAndScale(normConfig.getCsssBzz(), 2)).append("mg/L").append("。");
         return sb.toString();
     }