短信汇总
This commit is contained in:
parent
79d1cf9c31
commit
6cd3a7e85b
@ -9,6 +9,8 @@ import com.xinelu.common.utils.poi.ExcelUtil;
|
|||||||
import com.xinelu.manage.domain.phonedialrecord.PhoneDialRecord;
|
import com.xinelu.manage.domain.phonedialrecord.PhoneDialRecord;
|
||||||
import com.xinelu.manage.service.phonedialrecord.IPhoneDialRecordService;
|
import com.xinelu.manage.service.phonedialrecord.IPhoneDialRecordService;
|
||||||
import com.xinelu.manage.vo.phonedialrecord.BillPhoneDialVo;
|
import com.xinelu.manage.vo.phonedialrecord.BillPhoneDialVo;
|
||||||
|
import com.xinelu.manage.vo.shortmessagesendrecord.RecordSummary;
|
||||||
|
import com.xinelu.manage.vo.shortmessagesendrecord.ShortMessageSendRecordVo;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -97,4 +99,16 @@ public class PhoneDialRecordController extends BaseController {
|
|||||||
public AjaxResult phoneCount() {
|
public AjaxResult phoneCount() {
|
||||||
return phoneDialRecordService.phoneCount();
|
return phoneDialRecordService.phoneCount();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出短信发送结果汇总
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('system:shortMessageSendRecord:summaryExport')")
|
||||||
|
@Log(title = "短信发送结果汇总", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/phoneSummaryExport")
|
||||||
|
public void summaryExport(HttpServletResponse response, BillPhoneDialVo phoneDialRecord) {
|
||||||
|
List<RecordSummary> list = phoneDialRecordService.selectPhoneRecordSummary(phoneDialRecord);
|
||||||
|
ExcelUtil<RecordSummary> util = new ExcelUtil<>(RecordSummary.class);
|
||||||
|
util.exportExcel(response, list, "电话拨打记录汇总");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -8,6 +8,7 @@ import com.xinelu.common.enums.BusinessType;
|
|||||||
import com.xinelu.common.utils.poi.ExcelUtil;
|
import com.xinelu.common.utils.poi.ExcelUtil;
|
||||||
import com.xinelu.manage.domain.shortmessagesendrecord.ShortMessageSendRecord;
|
import com.xinelu.manage.domain.shortmessagesendrecord.ShortMessageSendRecord;
|
||||||
import com.xinelu.manage.service.shortmessagesendrecord.IShortMessageSendRecordService;
|
import com.xinelu.manage.service.shortmessagesendrecord.IShortMessageSendRecordService;
|
||||||
|
import com.xinelu.manage.vo.shortmessagesendrecord.RecordSummary;
|
||||||
import com.xinelu.manage.vo.shortmessagesendrecord.ShortMessageSendRecordVo;
|
import com.xinelu.manage.vo.shortmessagesendrecord.ShortMessageSendRecordVo;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@ -97,4 +98,16 @@ public class ShortMessageSendRecordController extends BaseController {
|
|||||||
public AjaxResult messageCount() {
|
public AjaxResult messageCount() {
|
||||||
return shortMessageSendRecordService.messageCount();
|
return shortMessageSendRecordService.messageCount();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出短信发送结果汇总列表
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('system:shortMessageSendRecord:summaryExport')")
|
||||||
|
@Log(title = "短信发送结果汇总", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/summaryExport")
|
||||||
|
public void summaryExport(HttpServletResponse response, ShortMessageSendRecordVo shortMessageSendRecord) {
|
||||||
|
List<RecordSummary> list = shortMessageSendRecordService.selectRecordSummary(shortMessageSendRecord);
|
||||||
|
ExcelUtil<RecordSummary> util = new ExcelUtil<>(RecordSummary.class);
|
||||||
|
util.exportExcel(response, list, "短信发送结果记录汇总");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import com.xinelu.manage.dto.phonedialrecord.PhoneDialRecordDto;
|
|||||||
import com.xinelu.manage.dto.statistics.FollowUpRateDto;
|
import com.xinelu.manage.dto.statistics.FollowUpRateDto;
|
||||||
import com.xinelu.manage.vo.phonedialrecord.BillPhoneDialVo;
|
import com.xinelu.manage.vo.phonedialrecord.BillPhoneDialVo;
|
||||||
import com.xinelu.manage.vo.phonedialrecord.PhoneDialRecordVo;
|
import com.xinelu.manage.vo.phonedialrecord.PhoneDialRecordVo;
|
||||||
|
import com.xinelu.manage.vo.shortmessagesendrecord.RecordSummary;
|
||||||
import com.xinelu.manage.vo.statistics.PushCount;
|
import com.xinelu.manage.vo.statistics.PushCount;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
@ -131,4 +132,12 @@ public interface PhoneDialRecordMapper {
|
|||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
int updatePhoneDialRecordByIds(@Param("ids") List<Long> ids, @Param("billId") Long billId);
|
int updatePhoneDialRecordByIds(@Param("ids") List<Long> ids, @Param("billId") Long billId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电话发送结果汇总
|
||||||
|
*
|
||||||
|
* @param billPhoneDialVo 时间
|
||||||
|
* @return RecordSummary
|
||||||
|
*/
|
||||||
|
RecordSummary selectPhoneRecordSummary(BillPhoneDialVo billPhoneDialVo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,6 +3,7 @@ package com.xinelu.manage.mapper.shortmessagesendrecord;
|
|||||||
import com.xinelu.manage.domain.shortmessagesendrecord.ShortMessageSendRecord;
|
import com.xinelu.manage.domain.shortmessagesendrecord.ShortMessageSendRecord;
|
||||||
import com.xinelu.manage.dto.billinfo.BillInfoDto;
|
import com.xinelu.manage.dto.billinfo.BillInfoDto;
|
||||||
import com.xinelu.manage.dto.statistics.FollowUpRateDto;
|
import com.xinelu.manage.dto.statistics.FollowUpRateDto;
|
||||||
|
import com.xinelu.manage.vo.shortmessagesendrecord.RecordSummary;
|
||||||
import com.xinelu.manage.vo.shortmessagesendrecord.ShortMessageSendRecordVo;
|
import com.xinelu.manage.vo.shortmessagesendrecord.ShortMessageSendRecordVo;
|
||||||
import com.xinelu.manage.vo.statistics.MessageSendVo;
|
import com.xinelu.manage.vo.statistics.MessageSendVo;
|
||||||
import com.xinelu.manage.vo.statistics.PushCount;
|
import com.xinelu.manage.vo.statistics.PushCount;
|
||||||
@ -131,4 +132,12 @@ public interface ShortMessageSendRecordMapper {
|
|||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
int selectSendRecordCountByNodeId(Long nodeId);
|
int selectSendRecordCountByNodeId(Long nodeId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 短信发送结果汇总
|
||||||
|
*
|
||||||
|
* @param shortMessageSendRecord 时间
|
||||||
|
* @return RecordSummary
|
||||||
|
*/
|
||||||
|
RecordSummary selectRecordSummary(ShortMessageSendRecordVo shortMessageSendRecord);
|
||||||
}
|
}
|
||||||
@ -3,6 +3,7 @@ package com.xinelu.manage.service.phonedialrecord;
|
|||||||
import com.xinelu.common.core.domain.AjaxResult;
|
import com.xinelu.common.core.domain.AjaxResult;
|
||||||
import com.xinelu.manage.domain.phonedialrecord.PhoneDialRecord;
|
import com.xinelu.manage.domain.phonedialrecord.PhoneDialRecord;
|
||||||
import com.xinelu.manage.vo.phonedialrecord.BillPhoneDialVo;
|
import com.xinelu.manage.vo.phonedialrecord.BillPhoneDialVo;
|
||||||
|
import com.xinelu.manage.vo.shortmessagesendrecord.RecordSummary;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -65,4 +66,12 @@ public interface IPhoneDialRecordService {
|
|||||||
* 电话推送统计
|
* 电话推送统计
|
||||||
*/
|
*/
|
||||||
AjaxResult phoneCount();
|
AjaxResult phoneCount();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电话发送结果汇总
|
||||||
|
*
|
||||||
|
* @param billPhoneDialVo 时间
|
||||||
|
* @return RecordSummary
|
||||||
|
*/
|
||||||
|
List<RecordSummary> selectPhoneRecordSummary(BillPhoneDialVo billPhoneDialVo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import com.xinelu.manage.domain.phonedialrecord.PhoneDialRecord;
|
|||||||
import com.xinelu.manage.mapper.phonedialrecord.PhoneDialRecordMapper;
|
import com.xinelu.manage.mapper.phonedialrecord.PhoneDialRecordMapper;
|
||||||
import com.xinelu.manage.service.phonedialrecord.IPhoneDialRecordService;
|
import com.xinelu.manage.service.phonedialrecord.IPhoneDialRecordService;
|
||||||
import com.xinelu.manage.vo.phonedialrecord.BillPhoneDialVo;
|
import com.xinelu.manage.vo.phonedialrecord.BillPhoneDialVo;
|
||||||
|
import com.xinelu.manage.vo.shortmessagesendrecord.RecordSummary;
|
||||||
import com.xinelu.manage.vo.statistics.PushCount;
|
import com.xinelu.manage.vo.statistics.PushCount;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@ -12,6 +13,7 @@ import javax.annotation.Resource;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
@ -45,7 +47,7 @@ public class PhoneDialRecordServiceImpl implements IPhoneDialRecordService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<BillPhoneDialVo> selectPhoneDialRecordList(BillPhoneDialVo phoneDialRecord) {
|
public List<BillPhoneDialVo> selectPhoneDialRecordList(BillPhoneDialVo phoneDialRecord) {
|
||||||
if (Objects.nonNull(phoneDialRecord.getDialTimeEnd())){
|
if (Objects.nonNull(phoneDialRecord.getDialTimeEnd())) {
|
||||||
phoneDialRecord.setDialTimeEnd(phoneDialRecord.getDialTimeEnd().plusDays(1));
|
phoneDialRecord.setDialTimeEnd(phoneDialRecord.getDialTimeEnd().plusDays(1));
|
||||||
}
|
}
|
||||||
return phoneDialRecordMapper.selectPhoneDialRecords(phoneDialRecord);
|
return phoneDialRecordMapper.selectPhoneDialRecords(phoneDialRecord);
|
||||||
@ -111,4 +113,19 @@ public class PhoneDialRecordServiceImpl implements IPhoneDialRecordService {
|
|||||||
}
|
}
|
||||||
return AjaxResult.success(pushCount);
|
return AjaxResult.success(pushCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电话发送结果汇总
|
||||||
|
*
|
||||||
|
* @param billPhoneDialVo 时间
|
||||||
|
* @return RecordSummary
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<RecordSummary> selectPhoneRecordSummary(BillPhoneDialVo billPhoneDialVo) {
|
||||||
|
RecordSummary recordSummary = phoneDialRecordMapper.selectPhoneRecordSummary(billPhoneDialVo);
|
||||||
|
recordSummary.setDateRange(billPhoneDialVo.getDialTimeStart() + "——————" + billPhoneDialVo.getDialTimeEnd());
|
||||||
|
List<RecordSummary> recordSummaries = new ArrayList<>();
|
||||||
|
recordSummaries.add(recordSummary);
|
||||||
|
return recordSummaries;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package com.xinelu.manage.service.shortmessagesendrecord;
|
|||||||
|
|
||||||
import com.xinelu.common.core.domain.AjaxResult;
|
import com.xinelu.common.core.domain.AjaxResult;
|
||||||
import com.xinelu.manage.domain.shortmessagesendrecord.ShortMessageSendRecord;
|
import com.xinelu.manage.domain.shortmessagesendrecord.ShortMessageSendRecord;
|
||||||
|
import com.xinelu.manage.vo.shortmessagesendrecord.RecordSummary;
|
||||||
import com.xinelu.manage.vo.shortmessagesendrecord.ShortMessageSendRecordVo;
|
import com.xinelu.manage.vo.shortmessagesendrecord.ShortMessageSendRecordVo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -65,4 +66,12 @@ public interface IShortMessageSendRecordService {
|
|||||||
* 短信推送统计
|
* 短信推送统计
|
||||||
*/
|
*/
|
||||||
AjaxResult messageCount();
|
AjaxResult messageCount();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 短信发送结果汇总
|
||||||
|
*
|
||||||
|
* @param shortMessageSendRecord 时间
|
||||||
|
* @return RecordSummary
|
||||||
|
*/
|
||||||
|
List<RecordSummary> selectRecordSummary(ShortMessageSendRecordVo shortMessageSendRecord);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import com.xinelu.common.core.domain.AjaxResult;
|
|||||||
import com.xinelu.manage.domain.shortmessagesendrecord.ShortMessageSendRecord;
|
import com.xinelu.manage.domain.shortmessagesendrecord.ShortMessageSendRecord;
|
||||||
import com.xinelu.manage.mapper.shortmessagesendrecord.ShortMessageSendRecordMapper;
|
import com.xinelu.manage.mapper.shortmessagesendrecord.ShortMessageSendRecordMapper;
|
||||||
import com.xinelu.manage.service.shortmessagesendrecord.IShortMessageSendRecordService;
|
import com.xinelu.manage.service.shortmessagesendrecord.IShortMessageSendRecordService;
|
||||||
|
import com.xinelu.manage.vo.shortmessagesendrecord.RecordSummary;
|
||||||
import com.xinelu.manage.vo.shortmessagesendrecord.ShortMessageSendRecordVo;
|
import com.xinelu.manage.vo.shortmessagesendrecord.ShortMessageSendRecordVo;
|
||||||
import com.xinelu.manage.vo.statistics.PushCount;
|
import com.xinelu.manage.vo.statistics.PushCount;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -12,6 +13,7 @@ import javax.annotation.Resource;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
@ -111,4 +113,13 @@ public class ShortMessageSendRecordServiceImpl implements IShortMessageSendRecor
|
|||||||
}
|
}
|
||||||
return AjaxResult.success(pushCount);
|
return AjaxResult.success(pushCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<RecordSummary> selectRecordSummary(ShortMessageSendRecordVo shortMessageSendRecord) {
|
||||||
|
RecordSummary recordSummary = shortMessageSendRecordMapper.selectRecordSummary(shortMessageSendRecord);
|
||||||
|
recordSummary.setDateRange(shortMessageSendRecord.getSendTimeStart() + "——————" + shortMessageSendRecord.getSendTimeEnd());
|
||||||
|
List<RecordSummary> recordSummaries = new ArrayList<>();
|
||||||
|
recordSummaries.add(recordSummary);
|
||||||
|
return recordSummaries;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,30 @@
|
|||||||
|
package com.xinelu.manage.vo.shortmessagesendrecord;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电话短信推送记录汇总
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class RecordSummary {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 时间范围
|
||||||
|
*/
|
||||||
|
private String dateRange;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 总数
|
||||||
|
*/
|
||||||
|
private Integer totalCount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 成功数量
|
||||||
|
*/
|
||||||
|
private Integer successCount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 失败数量
|
||||||
|
*/
|
||||||
|
private Integer failCount;
|
||||||
|
}
|
||||||
@ -78,28 +78,28 @@ public class ShortMessageSendRecordVo {
|
|||||||
* 短信长度
|
* 短信长度
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "短信长度")
|
@ApiModelProperty(value = "短信长度")
|
||||||
@Excel(name = "短信长度")
|
@Excel(name = "短信长度", cellType = Excel.ColumnType.NUMERIC)
|
||||||
private Long messageLength;
|
private Long messageLength;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 短信数量
|
* 短信数量
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "短信数量")
|
@ApiModelProperty(value = "短信数量")
|
||||||
@Excel(name = "短信数量")
|
@Excel(name = "短信数量", cellType = Excel.ColumnType.NUMERIC)
|
||||||
private Long messageQuantity;
|
private Long messageQuantity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 短信单价
|
* 短信单价
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "短信单价")
|
@ApiModelProperty(value = "短信单价")
|
||||||
@Excel(name = "短信单价")
|
@Excel(name = "短信单价", cellType = Excel.ColumnType.NUMERIC)
|
||||||
private BigDecimal messageUnitPrice;
|
private BigDecimal messageUnitPrice;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 短信价格
|
* 短信价格
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "短信价格")
|
@ApiModelProperty(value = "短信价格")
|
||||||
@Excel(name = "短信价格")
|
@Excel(name = "短信价格", cellType = Excel.ColumnType.NUMERIC)
|
||||||
private BigDecimal messageExpense;
|
private BigDecimal messageExpense;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -410,4 +410,17 @@
|
|||||||
#{id}
|
#{id}
|
||||||
</foreach>
|
</foreach>
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<select id="selectPhoneRecordSummary"
|
||||||
|
resultType="com.xinelu.manage.vo.shortmessagesendrecord.RecordSummary">
|
||||||
|
SELECT COUNT(1) AS totalCount,
|
||||||
|
COALESCE(SUM(CASE WHEN t.error_status = 'success' THEN 1 ELSE 0 END),
|
||||||
|
0) AS successCount,
|
||||||
|
COALESCE(SUM(CASE WHEN t.error_status = 'fail' THEN 1 ELSE 0 END), 0) AS failCount,
|
||||||
|
COALESCE(SUM(CASE WHEN t.error_status = 'success'
|
||||||
|
THEN t.phone_duration END), 0) AS successDuration
|
||||||
|
FROM phone_dial_record t
|
||||||
|
WHERE t.dial_time >= #{dialTimeStart}
|
||||||
|
AND t.dial_time < DATEADD(DAY, 1, #{dialTimeEnd})
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@ -462,4 +462,19 @@
|
|||||||
from short_message_send_record
|
from short_message_send_record
|
||||||
where manage_route_node_id = #{nodeId}
|
where manage_route_node_id = #{nodeId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectRecordSummary" resultType="com.xinelu.manage.vo.shortmessagesendrecord.RecordSummary">
|
||||||
|
SELECT COALESCE(SUM(COALESCE(t.message_quantity, 1)), 0) AS totalCount,
|
||||||
|
COALESCE(SUM(CASE
|
||||||
|
WHEN t.error_status = 'success'
|
||||||
|
THEN COALESCE(t.message_quantity, 1)
|
||||||
|
ELSE 0 END), 0) AS successCount,
|
||||||
|
COALESCE(SUM(CASE
|
||||||
|
WHEN t.error_status = 'fail'
|
||||||
|
THEN COALESCE(t.message_quantity, 1)
|
||||||
|
ELSE 0 END), 0) AS failCount
|
||||||
|
FROM fd_message_send_record t
|
||||||
|
WHERE t.send_time >= #{sendTimeStart}
|
||||||
|
AND t.send_time < DATEADD(DAY, 1, #{sendTimeEnd})
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
Loading…
Reference in New Issue
Block a user