Commit aae107f7 authored by daniel's avatar daniel

fix(bag): 赛包邮寄名单导出

parent ab0f076f
package com.dlbridge.jadp.plugins.partner.bean; package com.dlbridge.jadp.plugins.partner.bean;
import com.dlbridge.jadp.common.persistence.JaapRecord; import com.dlbridge.jadp.common.persistence.JaapRecord;
import com.dlbridge.jadp.common.utils.excel.annotation.ExcelField;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -23,10 +24,12 @@ public class BagDelivery extends JaapRecord<BagDelivery> { ...@@ -23,10 +24,12 @@ public class BagDelivery extends JaapRecord<BagDelivery> {
private Integer cmptId; private Integer cmptId;
@ApiModelProperty(value = "姓名", notes = "姓名") @ApiModelProperty(value = "姓名", notes = "姓名")
@ExcelField(title = "姓名")
private String name; private String name;
@ApiModelProperty(value = "创建时间", notes = "创建时间") @ApiModelProperty(value = "创建时间", notes = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ExcelField(title = "创建时间")
private Date createDate; private Date createDate;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
...@@ -34,41 +37,62 @@ public class BagDelivery extends JaapRecord<BagDelivery> { ...@@ -34,41 +37,62 @@ public class BagDelivery extends JaapRecord<BagDelivery> {
private Date updateDate; private Date updateDate;
@ApiModelProperty(value = "参赛号", notes = "参赛号") @ApiModelProperty(value = "参赛号", notes = "参赛号")
@ExcelField(title = "参赛号")
private String markNo; private String markNo;
@ApiModelProperty(value = "手机号", notes = "手机号") @ApiModelProperty(value = "手机号", notes = "手机号")
@ExcelField(title = "手机号")
private String phone; private String phone;
@ApiModelProperty(value = "省", notes = "省") @ApiModelProperty(value = "省", notes = "省")
@ExcelField(title = "省")
private String province; private String province;
@ApiModelProperty(value = "省代码", notes = "省代码") @ApiModelProperty(value = "省代码", notes = "省代码")
private String provinceCode; private String provinceCode;
@ApiModelProperty(value = "市", notes = "市") @ApiModelProperty(value = "市", notes = "市")
@ExcelField(title = "市")
private String city; private String city;
@ApiModelProperty(value = "市代码", notes = "市代码") @ApiModelProperty(value = "市代码", notes = "市代码")
private String cityCode; private String cityCode;
@ApiModelProperty(value = "区", notes = "区)") @ApiModelProperty(value = "区", notes = "区)")
@ExcelField(title = "区")
private String area; private String area;
@ApiModelProperty(value = "区代码", notes = "区代码)") @ApiModelProperty(value = "区代码", notes = "区代码)")
private String areaCode; private String areaCode;
@ApiModelProperty(value = "详细地址", notes = "详细地址") @ApiModelProperty(value = "详细地址", notes = "详细地址")
@ExcelField(title = "详细地址")
private String location; private String location;
@ApiModelProperty(value = "快递号", notes = "快递号") @ApiModelProperty(value = "快递号", notes = "快递号")
@ExcelField(title = "快递号")
private String deliveryNo; private String deliveryNo;
@ApiModelProperty(value = "快递公司名", notes = "快递公司名") @ApiModelProperty(value = "快递公司名", notes = "快递公司名")
@ExcelField(title = "快递公司名")
private String expressCompany; private String expressCompany;
@ApiModelProperty(value = "状态(1:提交,2:已处理)", notes = "状态(1:提交,2:已处理)") @ApiModelProperty(value = "状态(1:提交,2:已处理)", notes = "状态(1:提交,2:已处理)")
private Integer status; private Integer status;
@ApiModelProperty(value = "备注", notes = "备注") @ApiModelProperty(value = "备注", notes = "备注")
@ExcelField(title = "备注")
private String remark; private String remark;
@ExcelField(title = "状态")
public String getStatusDesc() {
if (status == null) {
return "";
}
switch (status) {
case 1: return "提交";
case 2: return "已处理";
default: return "未知";
}
}
} }
package com.dlbridge.jadp.plugins.partner.controller; package com.dlbridge.jadp.plugins.partner.controller;
import com.dlbridge.jadp.common.interceptor.PageView; import com.dlbridge.jadp.common.interceptor.PageView;
import com.dlbridge.jadp.job.CountJob;
import com.dlbridge.jadp.plugins.cmpt.bean.Banner;
import com.dlbridge.jadp.plugins.cmpt.dao.model.Cmpt; import com.dlbridge.jadp.plugins.cmpt.dao.model.Cmpt;
import com.dlbridge.jadp.plugins.cmpt.service.CmptService; import com.dlbridge.jadp.plugins.cmpt.service.CmptService;
import com.dlbridge.jadp.plugins.cmpt.utils.Page; import com.dlbridge.jadp.plugins.cmpt.utils.Page;
...@@ -10,13 +8,16 @@ import com.dlbridge.jadp.plugins.partner.bean.BagDelivery; ...@@ -10,13 +8,16 @@ import com.dlbridge.jadp.plugins.partner.bean.BagDelivery;
import com.dlbridge.jadp.plugins.partner.bean.BagParam; import com.dlbridge.jadp.plugins.partner.bean.BagParam;
import com.dlbridge.jadp.plugins.partner.service.BagDeliveryService; import com.dlbridge.jadp.plugins.partner.service.BagDeliveryService;
import com.neusoft.www.utils.web.Result; import com.neusoft.www.utils.web.Result;
import io.swagger.annotations.ApiOperation;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
@Controller @Controller
...@@ -75,4 +76,11 @@ public class BagDeliveryController { ...@@ -75,4 +76,11 @@ public class BagDeliveryController {
} }
@RequestMapping(value = "export")
@ApiOperation("赛包邮寄导出")
@GetMapping
public void export(BagParam param,HttpServletResponse response) {
bagDeliveryService.export(param, response);
}
} }
...@@ -17,4 +17,5 @@ public interface BagDeliveryMapper { ...@@ -17,4 +17,5 @@ public interface BagDeliveryMapper {
long getBagDeliveryCount(@Param("param") BagParam param); long getBagDeliveryCount(@Param("param") BagParam param);
List<BagDelivery> queryBagDeliveryByPage(@Param("page") Pageable page, @Param("param") BagParam param); List<BagDelivery> queryBagDeliveryByPage(@Param("page") Pageable page, @Param("param") BagParam param);
List<BagDelivery> queryBagDelivery(@Param("param") BagParam param);
} }
...@@ -93,6 +93,30 @@ ...@@ -93,6 +93,30 @@
where del_flag=0 where del_flag=0
<include refid="bag-where-sql"/> <include refid="bag-where-sql"/>
</select> </select>
<select id="queryBagDelivery" resultType="com.dlbridge.jadp.plugins.partner.bean.BagDelivery">
select
id,
cmpt_id cmptId,
create_date createDate,
update_date updateDate,
name,
mark_no markNo,
phone,
province,
province_code provinceCode,
city,
city_code cityCode,
area,
area_code areaCode,
location,
delivery_no deliveryNo,
express_company expressCompany,
remark,
status
from bag_delivery
where del_flag = 0
<include refid="bag-where-sql"/>
</select>
<sql id="bag-where-sql"> <sql id="bag-where-sql">
and cmpt_id = #{param.cmptId} and cmpt_id = #{param.cmptId}
......
package com.dlbridge.jadp.plugins.partner.service; package com.dlbridge.jadp.plugins.partner.service;
import com.dlbridge.jadp.common.utils.DateUtils;
import com.dlbridge.jadp.common.utils.excel.ExportExcel;
import com.dlbridge.jadp.plugins.cmpt.dao.model.Cmpt;
import com.dlbridge.jadp.plugins.cmpt.service.CmptService;
import com.dlbridge.jadp.plugins.cmpt.utils.Page; import com.dlbridge.jadp.plugins.cmpt.utils.Page;
import com.dlbridge.jadp.plugins.cmpt.utils.PageFactory; import com.dlbridge.jadp.plugins.cmpt.utils.PageFactory;
import com.dlbridge.jadp.plugins.partner.bean.BagDelivery; import com.dlbridge.jadp.plugins.partner.bean.BagDelivery;
import com.dlbridge.jadp.plugins.partner.bean.BagParam; import com.dlbridge.jadp.plugins.partner.bean.BagParam;
import com.dlbridge.jadp.plugins.partner.mapper.BagDeliveryMapper; import com.dlbridge.jadp.plugins.partner.mapper.BagDeliveryMapper;
import com.neusoft.www.utils.web.Result;
import lombok.extern.log4j.Log4j2;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.Map;
import com.neusoft.www.utils.web.Result;
@Service @Service
@Log4j2
public class BagDeliveryService { public class BagDeliveryService {
@Resource
private CmptService cmptService;
@Resource @Resource
private BagDeliveryMapper bagDeliveryMapper; private BagDeliveryMapper bagDeliveryMapper;
...@@ -76,4 +88,21 @@ public class BagDeliveryService { ...@@ -76,4 +88,21 @@ public class BagDeliveryService {
return Result.success(); return Result.success();
} }
/**
* 赛包邮寄名单导出
* @param param 查询参数
* @param response 响应对象
*/
public void export(BagParam param, HttpServletResponse response) {
Cmpt cmpt = cmptService.queryCmptBycmptId(param.getCmptId());
ExportExcel exportExcel = new ExportExcel(null, BagDelivery.class, 1, null);
List<BagDelivery> list = bagDeliveryMapper.queryBagDelivery(param);
String downFileName = cmpt.getCmptName() + "-赛包邮寄名单" + DateUtils.getDateTimes() + ".xlsx";
exportExcel.setDataList(list);
try {
exportExcel.write(response, downFileName);
} catch (IOException e) {
log.info(e.getMessage(), e);
}
}
} }
...@@ -111,8 +111,9 @@ ...@@ -111,8 +111,9 @@
<n-tab-pane v-for="item in [{name:'全部',value:''},...StatusEnum.data.map(v=>({name:v.name,value:v.value}))]" :name="item.value" :tab="item.name"></n-tab-pane> <n-tab-pane v-for="item in [{name:'全部',value:''},...StatusEnum.data.map(v=>({name:v.name,value:v.value}))]" :name="item.value" :tab="item.name"></n-tab-pane>
</n-tabs> </n-tabs>
</div> </div>
<div class="ml-auto"> <div class="ml-auto flex flex-row items-center gap-x-2">
<n-input v-model:value="keyword" placeholder="请输入搜索内容" :clearable="true" @change="fetchData" /> <n-input v-model:value="keyword" placeholder="请输入搜索内容" :clearable="true" @change="fetchData" />
<n-button type="primary" @click="exportList">导出名单</n-button>
</div> </div>
</div> </div>
</n-card> </n-card>
...@@ -648,6 +649,14 @@ ...@@ -648,6 +649,14 @@
message.error(data.msg) message.error(data.msg)
} }
} }
// 导出名单
const exportList = () => {
window.location.href = "/gk/bag/export?" + new URLSearchParams({
query, cmptId: getCId(),
keyword: keyword.value
}).toString()
}
/***---------------- 赛包相关 end -----------------*/ /***---------------- 赛包相关 end -----------------*/
onMounted(() => { onMounted(() => {
fetchData() fetchData()
...@@ -671,6 +680,7 @@ ...@@ -671,6 +680,7 @@
fileList, fileList,
keyword, keyword,
fetchData, fetchData,
exportList,
// 公共数据 // 公共数据
uploadUrl, uploadUrl,
uploadFinish, uploadFinish,
......
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %> <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<style> <style>
body { body {
background: #f6f6f6; background: #f6f6f6;
} }
</style> </style>
<script src="/static/jquery/jquery.md5.js"></script> <script src="/static/jquery/jquery.md5.js"></script>
<header class="header imageManagementHeader"> <header class="header imageManagementHeader">
<nav class="navbar"> <nav class="navbar">
<!-- Search Box--> <!-- Search Box-->
<div class="search-box"> <div class="search-box">
<button class="dismiss"><i class="icon-close"></i></button> <button class="dismiss"><i class="icon-close"></i></button>
<form id="searchForm" action="#" role="search"> <form id="searchForm" action="#" role="search">
<input type="search" placeholder="What are you looking for..." class="form-control"> <input type="search" placeholder="What are you looking for..." class="form-control">
</form> </form>
</div>
<div class="container-fluid">
<div class="navbar-holder d-flex align-items-center justify-content-between">
<!-- Navbar Header-->
<div class="navbar-header" style="margin-left: 7.5%;">
<!-- Navbar Brand --><a href="index.html" class="navbar-brand d-none d-sm-inline-block">
<div class="brand-text d-none d-lg-inline-block"><span class="logosaike"></span><strong
class="logonote">赛事管理平台</strong></div>
<div class="brand-text d-none d-sm-inline-block d-lg-none"><strong>BD</strong></div>
</a>
<!-- Toggle Button--><a id="toggle-btn" href="#"
class="menu-btn active"><span></span><span></span><span></span></a>
</div>
<div class="note-header">
<div class="header-first-titile"><span></span><span>赛客现场助手</span></div>
<div class="header-second-titile"><span>${cmpt.cmptName}</span></div>
</div> </div>
<!-- Navbar Menu --> <div class="container-fluid">
<ul class="nav-menu list-unstyled d-flex flex-md-row align-items-md-center"> <div class="navbar-holder d-flex align-items-center justify-content-between">
<!-- Navbar Header-->
<div class="navbar-header" style="margin-left: 7.5%;">
<!-- Navbar Brand --><a class="navbar-brand d-none d-sm-inline-block">
<div class="brand-text d-none d-lg-inline-block"><span class="logosaike"></span><strong
class="logonote">赛事管理平台</strong></div>
<div class="brand-text d-none d-sm-inline-block d-lg-none"><strong>BD</strong></div>
</a>
<!-- Toggle Button--><a id="toggle-btn" href="#"
class="menu-btn active"><span></span><span></span><span></span></a>
</div>
<div class="note-header">
<div class="header-first-titile"><span></span><span>赛客现场助手</span></div>
<div class="header-second-titile"><span>${cmpt.cmptName}</span></div>
</div>
<!-- Navbar Menu -->
<ul class="nav-menu list-unstyled d-flex flex-md-row align-items-md-center">
<c:choose> <c:choose>
<c:when test="${yfb}"> <c:when test="${yfb}">
<li class="nav-item logout-header" > <li class="nav-item logout-header">
<%--<span class></span>--%> <%--<span class></span>--%>
<a href="javascript:void(0);" class="nav-link logout"> <span class="d-none d-sm-inline">退出登录</span></a> <a href="javascript:void(0);" class="nav-link logout"> <span
</li> class="d-none d-sm-inline">退出登录</span></a>
</c:when> </li>
<c:otherwise> </c:when>
<!-- Logout --> <c:otherwise>
<li class="nav-item logout-header" style="display:none"> <!-- Logout -->
<%--<span class></span>--%> <li class="nav-item logout-header" style="display:none">
<a href="javascript:void(0);" class="nav-link logout"> <%--<span class></span>--%>
<span class="d-none d-sm-inline">退出登录</span></a> <a href="javascript:void(0);" class="nav-link logout">
</li> <span class="d-none d-sm-inline">退出登录</span></a>
</c:otherwise> </li>
</c:choose> </c:otherwise>
</ul> </c:choose>
</div> </ul>
</div> </div>
</nav> </div>
</header> </nav>
<script> </header>
$('.logout').click(function(){ <script>
$.ajax({ $('.logout').click(function () {
url : '/loginout', $.ajax({
success:function(data){ url: '/loginout',
if(data.code == 200){ success: function (data) {
window.location.href = '/login'; if (data.code == 200) {
} window.location.href = '/login';
} }
}) }
}) })
</script> })
\ No newline at end of file </script>
\ No newline at end of file
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