Commit c0907306 by 罗承锋

Merge remote-tracking branch 'origin/master'

parents 2020ecaa 939534f8
package com.winsun.bean;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 订单
*
*/
@Data
@TableName("hhr_report_conversion")
public class ReportVonversion implements Serializable{
private static final long serialVersionUID = 1052451021982452911L;
/**
* 主键
*/
@TableId(value="id")
private String id;
/**
* 订单号
*/
@TableField(value = "sub_id")
private String subId;
/**
* 小白卡订单号id
*/
@TableField(value = "sub_name")
private String subName;
/**
* 订单id
*/
@TableField(value = "hehuoren_school")
private String hehuorenSchool;
/**
* 订单状态
*/
@TableField(value = "order_status")
private String orderStatus;
/**
* 合伙人id
*/
@TableField(value = "order_by")
private String orderBy;
/**
* 套餐id
*/
@TableField(value = "school")
private String school;
/**
* 客户姓名
*/
@TableField(value = "supervisor")
private String supervisor;
}
......@@ -3,9 +3,7 @@ package com.winsun.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.winsun.bean.BroadBandOrder;
import com.winsun.bean.Order;
import com.winsun.bean.OrderView;
import com.winsun.bean.*;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestParam;
......@@ -167,23 +165,24 @@ public interface OrderMapper extends BaseMapper<Order> {
* 一人一码订单通报 -- 移动订单(学校)
* @return
*/
List<Map<String,Object>> orderConversionXX(String startTime,String endTime);
List<Map<String,Object>> orderConversionXX(@Param("startTime") String startTime, @Param("endTime") String endTime);
/**
* 一人一码订单通报 -- 移动订单(学校)
* @return
*/
List<Map<String,Object>> orderConversionXF(String startTime,String endTime);
List<Map<String,Object>> orderConversionXF(@Param("startTime") String startTime, @Param("endTime") String endTime);
/**
* 一人一码订单通报 -- 宽带订单(学校)
* @return
*/
List<Map<String,Object>> kdOrderConversionXX(String startTime,String endTime);
List<Map<String,Object>> kdOrderConversionXX(@Param("startTime") String startTime, @Param("endTime") String endTime);
/**
* 一人一码订单通报 -- 宽带订单(学校)
* @return
*/
List<Map<String,Object>> kdOrderConversionXF(String startTime,String endTime);
List<Map<String,Object>> kdOrderConversionXF(@Param("startTime") String startTime,@Param("endTime") String endTime);
}
......@@ -80,6 +80,7 @@
<result column="orderSeqTHD" property="orderseqThd" />
</resultMap>
<select id="selectBroadBandOrderList" resultMap="broadBandOrder">
select
ho.*,
......@@ -202,6 +203,7 @@
update hhr_order set order_status = "待受理" where DATE_FORMAT(rh_time, "%y-%m-%d") &lt; date_format(now(), "%y-%m-%d") and order_status = "未下单"
</update>
<!-- 00:移动通报学校 -->
<select id="orderConversionXX" parameterType="String" resultType="HashMap">
SELECT order_by,sub_name,school,supervisor ,
COUNT(o.id) orderCount ,
......@@ -219,12 +221,17 @@
and user_type = 0
and order_status != '异常单'
and o.kapin != '天翼学生证'
and DATE_FORMAT(create_time,'%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
<if test="startTime != null and startTime != ''">
and DATE_FORMAT(create_time,'%Y-%m-%d') &gt;= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
and DATE_FORMAT(create_time,'%Y-%m-%d') &lt;= #{endTime}
</if>
GROUP BY order_by,sub_name,school,supervisor
HAVING order_by is not null
ORDER BY order_by
</select>
<!-- 01:移动通报县份 -->
<select id="orderConversionXF" parameterType="String" resultType="HashMap">
SELECT sub_id,sub_name ,
COUNT(o.id) orderCount ,
......@@ -242,12 +249,17 @@
and user_type = 0
and order_status != '异常单'
and o.kapin != '天翼学生证'
and DATE_FORMAT(create_time,'%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
<if test="startTime != null and startTime != ''">
and DATE_FORMAT(create_time,'%Y-%m-%d') &gt;= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
and DATE_FORMAT(create_time,'%Y-%m-%d') &lt;= #{endTime}
</if>
GROUP BY sub_id,sub_name
HAVING sub_name is not null and sub_name != 'null'
ORDER BY sub_id
</select>
<!-- 10:宽带通报学校 -->
<select id="kdOrderConversionXX" parameterType="String" resultType="HashMap">
SELECT order_by,sub_name,school,supervisor,
COUNT(o.id) orderCount ,
......@@ -265,12 +277,17 @@
ON rc.hehuoren_school = o.hehuoren_school
and rc.sub_name = o.hehuoren_area
and user_type in ('3','5','10')
and DATE_FORMAT(create_time,'%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
<if test="startTime != null and startTime != ''">
and DATE_FORMAT(create_time,'%Y-%m-%d') &gt;= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
and DATE_FORMAT(create_time,'%Y-%m-%d') &lt;= #{endTime}
</if>
GROUP BY order_by,sub_name,school,supervisor
HAVING order_by is not null
ORDER BY order_by
</select>
<!-- 11:宽带通报学校-->
<select id="kdOrderConversionXF" parameterType="String" resultType="HashMap">
SELECT sub_id,sub_name,
count(DISTINCT school) schoolCount,
......@@ -289,11 +306,15 @@
ON rc.hehuoren_school = o.hehuoren_school
and rc.sub_name = o.hehuoren_area
and user_type in ('3','5','10')
and DATE_FORMAT(create_time,'%Y-%m-%d') BETWEEN '2019-01-01' AND '2021-03-01'
<if test="startTime != null and startTime != ''">
and DATE_FORMAT(create_time,'%Y-%m-%d') &gt;= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
and DATE_FORMAT(create_time,'%Y-%m-%d') &lt;= #{endTime}
</if>
GROUP BY sub_id,sub_name
HAVING sub_id not in (14,15)
ORDER BY sub_id
</select>
</mapper>
\ No newline at end of file
......@@ -29,7 +29,7 @@ spring:
max-file-size: 100MB
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://172.18.101.171:3306/school_center?useSSL=false
url: jdbc:mysql://172.18.101.171:3306/school_center?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&allowPublicKeyRetrieval=true
username: yzzx
password: yzzx123!@#
# username: root
......
package com.winsun.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.baomidou.mybatisplus.plugins.Page;
import com.winsun.auth.core.annotion.Permission;
import com.winsun.auth.core.base.controller.BaseController;
import com.winsun.auth.core.common.model.ResponseData;
import com.winsun.auth.core.shiro.ShiroUser;
import com.winsun.bean.Order;
import com.winsun.bean.YrymReport;
import com.winsun.mapper.OrderMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.Now;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -29,7 +42,8 @@ import java.util.Map;
@RequestMapping("/orderConversion")
public class OrderConversionController extends BaseController {
private static OrderMapper orderMapper;
@Autowired
private OrderMapper orderMapper;
// 获取订单通报数据
// conversionType:
......@@ -39,17 +53,14 @@ public class OrderConversionController extends BaseController {
// 11:宽带通报学校
// @RequestMapping(value = "getOrderConversionInfo",method = RequestMethod.POST)
@Permission(menuname = "获取订单通报数据", value = "getOrderConversionInfo", method = RequestMethod.POST)
public ResponseData getOrderConversionInfo(@RequestParam("startTime")String startTime,
public ResponseData<List<Map<String,Object>>> getOrderConversionInfo(@RequestParam("startTime")String startTime,
@RequestParam("endTime")String endTime,
@RequestParam("conversionType")String conversionType,
@RequestParam(name = "pageNo") int pageNo,
@RequestParam(name = "pageSize") int pageSize){
@RequestParam("conversionType")String conversionType){
ShiroUser user = getShiroUser();
if (!user.getRoleNames().stream().anyMatch(roleName -> StringUtils.equalsAny(roleName, "超级管理员", "县分管理员(订单)"))) {
ResponseData.error("无权限查询订单");
}
List<Map<String,Object>> list = null;
Page<Map<String,Object>> page = new Page<>(pageNo, pageSize);
if("".equals(startTime)&&"".equals(endTime)){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// 暂时计算2019年6月1号开始数据
......@@ -75,7 +86,100 @@ public class OrderConversionController extends BaseController {
e.printStackTrace();
}
page.setRecords(list);
return ResponseData.success(page,"查询成功!");
return ResponseData.success(list,"查询成功!");
}
// 下载订单通报数据
// conversionType:
// 00:移动通报学校
// 01:移动通报县份
// 10:宽带通报学校
// 11:宽带通报学校
// @RequestMapping(value = "getOrderConversionInfo",method = RequestMethod.POST)
@Permission(menuname = "下载订单通报数据", value = "outOrderConversionInfo", method = RequestMethod.POST)
public void outOrderConversionInfo(HttpServletResponse response,@RequestParam("startTime")String startTime,
@RequestParam("endTime")String endTime,
@RequestParam("conversionType")String conversionType){
ShiroUser user = getShiroUser();
if (!user.getRoleNames().stream().anyMatch(roleName -> StringUtils.equalsAny(roleName, "超级管理员", "县分管理员(订单)"))) {
ResponseData.error("无权限查询订单");
}
List<Map<String,Object>> list = null;
if("".equals(startTime)&&"".equals(endTime)){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// 暂时计算2019年6月1号开始数据
startTime = "2019-06-01";
endTime = sdf.format(new Date());
}
try{
switch (conversionType){
case "00":
list = orderMapper.orderConversionXX(startTime,endTime);
downloadHhrOrder(response,list,"/static/一人一码移动通报(学校)模板.xlsx");
break;
case "01":
list = orderMapper.orderConversionXF(startTime,endTime);
downloadHhrOrder(response,list,"/static/一人一码移动通报(县份)模板.xlsx");
break;
case "10":
list = orderMapper.kdOrderConversionXX(startTime,endTime);
downloadHhrOrder(response,list,"/static/一人一码宽带通报(学校)模板.xlsx");
break;
case "11":
list = orderMapper.kdOrderConversionXF(startTime,endTime);
downloadHhrOrder(response,list,"/static/一人一码宽带通报(县份)模板.xlsx");
break;
}
}catch (Exception e){
e.printStackTrace();
}
}
// excelUrl:"/static/一人一码统计报表模板.xlsx"
public void downloadHhrOrder(HttpServletResponse response,List<Map<String,Object>> list,String excelUrl){
InputStream in = null;
ExcelWriter excelWriter = null;
ServletOutputStream outputStream = null;
try {
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
//防止中文乱码
String fileName = URLEncoder.encode("一人一码订单通报", "UTF-8");
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
in = this.getClass().getResourceAsStream(excelUrl);
outputStream = response.getOutputStream();
excelWriter = EasyExcel.write(outputStream).withTemplate(in).excelType(ExcelTypeEnum.XLSX).build();
WriteSheet writeSheet = EasyExcel.writerSheet().build();
excelWriter.fill(list, writeSheet);
Map<String, Object> map = new HashMap<String, Object>();
LocalDate nowTime = LocalDate.now();
map.put("month", nowTime.getMonthValue());
map.put("date", nowTime.getDayOfMonth());
excelWriter.fill(map, writeSheet);
excelWriter.finish();
} catch (Exception e) {
log.error("一人一码下载文件失败", e.getMessage());
e.printStackTrace();
} finally {
//关闭资源
if (excelWriter != null) {
try {
excelWriter.finish();
}catch(Exception e) {
}
}
if (outputStream != null) {
try{
outputStream.flush();
}catch(Exception e) {
}
}
if (in != null) {
try{
in.close();
}catch(Exception e) {
}
}
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment