Răsfoiți Sursa

fix 微信客服数据统计汇总

zoujiajian 1 an în urmă
părinte
comite
44f2c62d70

+ 3 - 3
netflix-dao/src/main/java/com/cyksj/model/views/CorpKfServicerStatisticView.java

@@ -68,13 +68,13 @@ public class CorpKfServicerStatisticView {
 	/**
 	/**
 	 * 人工回复率
 	 * 人工回复率
 	 */
 	 */
-	@DbField("sum(cs.reply_rate)")
+	@DbField("TRUNCATE(sum(cs.reply_rate)/count(if(cs.session_cnt!=0,1,NULL)),2)")
 	private BigDecimal replyRate;
 	private BigDecimal replyRate;
 
 
 	/**
 	/**
 	 * 平均首次响应时长(秒)
 	 * 平均首次响应时长(秒)
 	 */
 	 */
-	@DbField("sum(cs.first_reply_average_sec)")
+	@DbField("TRUNCATE(sum(cs.first_reply_average_sec)/count(if(cs.session_cnt!=0,1,NULL)),2)")
 	private BigDecimal firstReplyAverageSec;
 	private BigDecimal firstReplyAverageSec;
 
 
 	/**
 	/**
@@ -86,7 +86,7 @@ public class CorpKfServicerStatisticView {
 	/**
 	/**
 	 * 满意度参评率
 	 * 满意度参评率
 	 */
 	 */
-	@DbField("sum(cs.satisfaction_participation_rate)")
+	@DbField("TRUNCATE(sum(cs.satisfaction_participation_rate)/count(1),2)")
 	private BigDecimal satisfactionParticipationRate;
 	private BigDecimal satisfactionParticipationRate;
 
 
 	/**
 	/**

+ 8 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/corp/wxkf/CorpKfController.java

@@ -32,6 +32,8 @@ import org.springframework.dao.DuplicateKeyException;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Optional;
@@ -213,6 +215,12 @@ public class CorpKfController {
 				data.setName(sysCorpFollowView.getName());
 				data.setName(sysCorpFollowView.getName());
 				data.setFollowName(sysCorpFollowView.getFollowName());
 				data.setFollowName(sysCorpFollowView.getFollowName());
 			}
 			}
+			BigDecimal total = data.getSatisfiedRate().add(data.getMiddlingRate()).add(data.getDissatisfiedRate());
+			if (total.compareTo(BigDecimal.ZERO) > 0) {
+				data.setSatisfiedRate(data.getSatisfiedRate().divide(total, 2, RoundingMode.DOWN));
+				data.setMiddlingRate(data.getMiddlingRate().divide(total, 2, RoundingMode.UP));
+				data.setDissatisfiedRate(data.getDissatisfiedRate().divide(total, 2, RoundingMode.DOWN));
+			}
 		});
 		});
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 	}
 	}