commit
This commit is contained in:
@@ -1,10 +1,15 @@
|
|||||||
package io.v.nutz.activity.controller.site;
|
package io.v.nutz.activity.controller.site;
|
||||||
|
|
||||||
|
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||||
|
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import io.v.nutz.activity.services.SiteReserveService;
|
import io.v.nutz.activity.services.SiteReserveService;
|
||||||
import io.v.nutz.annontation.ViReturn;
|
import io.v.nutz.annontation.ViReturn;
|
||||||
import io.v.nutz.base.utils.PageUtil;
|
import io.v.nutz.base.utils.PageUtil;
|
||||||
import io.v.nutz.sys.models.Sys_user;
|
import io.v.nutz.sys.models.Sys_user;
|
||||||
import io.v.nutz.util.ShiroUtil;
|
import io.v.nutz.util.ShiroUtil;
|
||||||
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
import org.nutz.dao.Cnd;
|
import org.nutz.dao.Cnd;
|
||||||
@@ -12,10 +17,18 @@ import org.nutz.dao.Sqls;
|
|||||||
import org.nutz.dao.sql.Sql;
|
import org.nutz.dao.sql.Sql;
|
||||||
import org.nutz.ioc.loader.annotation.Inject;
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
import org.nutz.json.Json;
|
||||||
|
import org.nutz.lang.Lang;
|
||||||
import org.nutz.lang.Strings;
|
import org.nutz.lang.Strings;
|
||||||
|
import org.nutz.lang.util.NutMap;
|
||||||
import org.nutz.mvc.annotation.At;
|
import org.nutz.mvc.annotation.At;
|
||||||
import org.nutz.mvc.annotation.Ok;
|
import org.nutz.mvc.annotation.Ok;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @FileName io.v.nutz.activity.controller.site.SiteRecordController
|
* @FileName io.v.nutz.activity.controller.site.SiteRecordController
|
||||||
* @Description: 预约记录查询
|
* @Description: 预约记录查询
|
||||||
@@ -41,7 +54,7 @@ public class SiteRecordController {
|
|||||||
|
|
||||||
@At
|
@At
|
||||||
@ViReturn
|
@ViReturn
|
||||||
public Object pageData(String month, String siteType, String searchName, String searchKeyword, int pageNumber, int pageSize, String pageOrderName, String pageOrderBy) {
|
public Object pageData(String startTime, String endTime, String siteType, String searchName, String searchKeyword, int pageNumber, int pageSize, String pageOrderName, String pageOrderBy) {
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
|
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
@@ -64,6 +77,9 @@ public class SiteRecordController {
|
|||||||
$condition
|
$condition
|
||||||
""");
|
""");
|
||||||
|
|
||||||
|
cnd.andEX("reserve_day", ">=", startTime);
|
||||||
|
cnd.andEX("reserve_day", "<=", endTime);
|
||||||
|
|
||||||
if (ShiroUtil.hasAnyRoles(new String[]{"gh10"})) {
|
if (ShiroUtil.hasAnyRoles(new String[]{"gh10"})) {
|
||||||
Sys_user user = (Sys_user) ShiroUtil.getPrincipal();
|
Sys_user user = (Sys_user) ShiroUtil.getPrincipal();
|
||||||
cnd.and("u.unitid", "=", user.getUnitid());
|
cnd.and("u.unitid", "=", user.getUnitid());
|
||||||
@@ -73,10 +89,6 @@ public class SiteRecordController {
|
|||||||
cnd.and("asi.typeId", "=", siteType);
|
cnd.and("asi.typeId", "=", siteType);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Strings.isNotBlank(month)) {
|
|
||||||
cnd.and("left(reserve_day, 7)", "=", month);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Strings.isNotBlank(searchName) && Strings.isNotBlank(searchKeyword)) {
|
if (Strings.isNotBlank(searchName) && Strings.isNotBlank(searchKeyword)) {
|
||||||
cnd.where().andLike(searchName, searchKeyword);
|
cnd.where().andLike(searchName, searchKeyword);
|
||||||
}
|
}
|
||||||
@@ -84,7 +96,7 @@ public class SiteRecordController {
|
|||||||
if (Strings.isNotBlank(pageOrderName) && Strings.isNotBlank(pageOrderName)) {
|
if (Strings.isNotBlank(pageOrderName) && Strings.isNotBlank(pageOrderName)) {
|
||||||
cnd.orderBy(pageOrderName, PageUtil.getOrder(pageOrderBy));
|
cnd.orderBy(pageOrderName, PageUtil.getOrder(pageOrderBy));
|
||||||
} else {
|
} else {
|
||||||
cnd.asc("asr.reserve_state").desc("u.unitid");
|
cnd.desc("reserve_day").asc("asi.sortNum");
|
||||||
}
|
}
|
||||||
|
|
||||||
cnd.groupBy("sqid");
|
cnd.groupBy("sqid");
|
||||||
@@ -93,5 +105,87 @@ public class SiteRecordController {
|
|||||||
return siteReserveService.listPage(pageNumber, pageSize, sql);
|
return siteReserveService.listPage(pageNumber, pageSize, sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@Ok("void")
|
||||||
|
public void exportExcel(String startTime,
|
||||||
|
String endTime,
|
||||||
|
String siteType,
|
||||||
|
String searchName,
|
||||||
|
String searchKeyword, HttpServletResponse response) throws IOException {
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
asr.*,
|
||||||
|
asi.address,
|
||||||
|
asi.`name` site_name,
|
||||||
|
ass.`stateName` state_name,
|
||||||
|
ass.`stateColor` state_color,
|
||||||
|
ass.stateAuditType,
|
||||||
|
count(sqid) days,
|
||||||
|
u.loginname,
|
||||||
|
GROUP_CONCAT(reserve_day order by reserve_day asc) concat_day
|
||||||
|
FROM
|
||||||
|
activity_site_reserve asr
|
||||||
|
LEFT JOIN
|
||||||
|
activity_site_info asi ON asi.id = asr.site_id
|
||||||
|
LEFT JOIN
|
||||||
|
audit_state ass ON ass.stateId = asr.reserve_state
|
||||||
|
LEFT JOIN
|
||||||
|
sys_user u on u.id = asr.reserve_person_id
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
|
||||||
|
cnd.andEX("reserve_day", ">=", startTime);
|
||||||
|
cnd.andEX("reserve_day", "<=", endTime);
|
||||||
|
|
||||||
|
if (ShiroUtil.hasAnyRoles(new String[]{"gh10"})) {
|
||||||
|
Sys_user user = (Sys_user) ShiroUtil.getPrincipal();
|
||||||
|
cnd.and("u.unitid", "=", user.getUnitid());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Strings.isNotBlank(siteType)) {
|
||||||
|
cnd.and("asi.typeId", "=", siteType);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Strings.isNotBlank(searchName) && Strings.isNotBlank(searchKeyword)) {
|
||||||
|
cnd.where().andLike(searchName, searchKeyword);
|
||||||
|
}
|
||||||
|
cnd.desc("reserve_day").asc("asi.sortNum");
|
||||||
|
cnd.groupBy("sqid");
|
||||||
|
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
|
||||||
|
List<NutMap> listMap = siteReserveService.listMap(sql);
|
||||||
|
for (int i = 0; i < listMap.size(); i++) {
|
||||||
|
NutMap nutMap = listMap.get(i);
|
||||||
|
nutMap.put("index", i + 1);
|
||||||
|
if(StrUtil.isBlank(nutMap.getString("auditList"))) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
List<NutMap> auditList = Json.fromJsonAsList(NutMap.class, nutMap.getString("auditList"));
|
||||||
|
if(Lang.isEmpty(auditList)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String auditOption = auditList.stream().map(o -> o.getString("auditOption")).collect(Collectors.joining(";"));
|
||||||
|
nutMap.put("auditOpinion", auditOption);
|
||||||
|
}
|
||||||
|
|
||||||
|
Sys_user user = (Sys_user) ShiroUtil.getPrincipal();
|
||||||
|
NutMap resultMap = new NutMap();
|
||||||
|
|
||||||
|
resultMap.put("username", user.getUsername());
|
||||||
|
resultMap.put("mobile", user.getMobile());
|
||||||
|
resultMap.put("date", DateUtil.today());
|
||||||
|
if(StrUtil.isNotBlank(startTime) && StrUtil.isNotBlank(endTime)) {
|
||||||
|
resultMap.put("time", "(统计时间" + startTime + "至" + endTime + ")");
|
||||||
|
}
|
||||||
|
resultMap.put("list", listMap);
|
||||||
|
|
||||||
|
response.setContentType("application/octet-stream");
|
||||||
|
response.setHeader("Content-Disposition", "attachment;filename=" + new String(("场地预约名单.xlsx").getBytes("utf-8"), "ISO8859-1"));
|
||||||
|
|
||||||
|
TemplateExportParams params = new TemplateExportParams("templates/site/site.xlsx");
|
||||||
|
Workbook workbook = ExcelExportUtil.exportExcel(params, resultMap);
|
||||||
|
workbook.write(response.getOutputStream());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package io.v.nutz.activity.services;
|
package io.v.nutz.activity.services;
|
||||||
|
|
||||||
|
|
||||||
import cn.wizzer.framework.base.service.BaseService;
|
|
||||||
import io.v.nutz.activity.models.ActivitySiteReserve;
|
import io.v.nutz.activity.models.ActivitySiteReserve;
|
||||||
|
import io.v.nutz.base.service.BaseService;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
package io.v.nutz.activity.services.impl;
|
package io.v.nutz.activity.services.impl;
|
||||||
|
|
||||||
|
|
||||||
import cn.wizzer.framework.base.service.BaseServiceImpl;
|
|
||||||
import io.v.nutz.activity.models.ActivitySiteInfo;
|
import io.v.nutz.activity.models.ActivitySiteInfo;
|
||||||
import io.v.nutz.activity.models.ActivitySiteReserve;
|
import io.v.nutz.activity.models.ActivitySiteReserve;
|
||||||
import io.v.nutz.activity.models.ActivityType;
|
import io.v.nutz.activity.models.ActivityType;
|
||||||
import io.v.nutz.activity.services.SiteReserveService;
|
import io.v.nutz.activity.services.SiteReserveService;
|
||||||
|
import io.v.nutz.base.service.impl.BaseServiceImpl;
|
||||||
import io.v.nutz.constant.AuditTypeEnum;
|
import io.v.nutz.constant.AuditTypeEnum;
|
||||||
import io.v.nutz.modules.models.AuditState;
|
import io.v.nutz.modules.models.AuditState;
|
||||||
import org.nutz.dao.Cnd;
|
import org.nutz.dao.Cnd;
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ public class MsgApi {
|
|||||||
String content = Http.post(url, bodyMap, Sender.Default_Read_Timeout);
|
String content = Http.post(url, bodyMap, Sender.Default_Read_Timeout);
|
||||||
NutMap contentMap = Json.fromJson(NutMap.class, content);
|
NutMap contentMap = Json.fromJson(NutMap.class, content);
|
||||||
log.info("成功》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》");
|
log.info("成功》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》");
|
||||||
log.info(Json.toJson(contentMap));
|
log.info("消息接口响应:"+Json.toJson(contentMap));
|
||||||
if (contentMap.getString("rspCode").equals("000000")) {
|
if (contentMap.getString("rspCode").equals("000000")) {
|
||||||
log.info("消息发送,发送内容" + Json.toJson(bodyMap));
|
log.info("消息发送,发送内容" + Json.toJson(bodyMap));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -120,25 +120,27 @@ public class TrainEduVideoController {
|
|||||||
TrainEduVideo trainEduVideo = Json.fromJson(TrainEduVideo.class, data);
|
TrainEduVideo trainEduVideo = Json.fromJson(TrainEduVideo.class, data);
|
||||||
|
|
||||||
//有新上传的文件采取删除旧文件
|
//有新上传的文件采取删除旧文件
|
||||||
if (file != null) {
|
// if (file != null) {
|
||||||
try {
|
// try {
|
||||||
DeleteMediaResponse response = TencentVideoService.deleteFile(trainEduVideo.getFileId(), TencentVideoService.subAppId);
|
// DeleteMediaResponse response = TencentVideoService.deleteFile(trainEduVideo.getFileId(), TencentVideoService.subAppId);
|
||||||
VodUploadResponse uploadResponse = TencentVideoService.uploadFile(file.getFile(), TencentVideoService.trainEducationClassId);
|
// VodUploadResponse uploadResponse = TencentVideoService.uploadFile(file.getFile(), TencentVideoService.trainEducationClassId);
|
||||||
String fileId = uploadResponse.getFileId();
|
// String fileId = uploadResponse.getFileId();
|
||||||
String mediaUrl = uploadResponse.getMediaUrl();
|
// String mediaUrl = uploadResponse.getMediaUrl();
|
||||||
|
//
|
||||||
|
// trainEduVideo.setFileSize(TencentVideoService.getFileLength(file.getFile()));
|
||||||
|
// trainEduVideo.setFileDuration(TencentVideoService.getFileDuration(file.getFile()));
|
||||||
|
//
|
||||||
|
// trainEduVideo.setMediaUrl(mediaUrl);
|
||||||
|
// trainEduVideo.setFileId(fileId);
|
||||||
|
// dao.updateIgnoreNull(trainEduVideo);
|
||||||
|
// } catch (Exception e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// dao.updateIgnoreNull(trainEduVideo);
|
||||||
|
// }
|
||||||
|
|
||||||
trainEduVideo.setFileSize(TencentVideoService.getFileLength(file.getFile()));
|
dao.updateIgnoreNull(trainEduVideo);
|
||||||
trainEduVideo.setFileDuration(TencentVideoService.getFileDuration(file.getFile()));
|
|
||||||
|
|
||||||
trainEduVideo.setMediaUrl(mediaUrl);
|
|
||||||
trainEduVideo.setFileId(fileId);
|
|
||||||
dao.updateIgnoreNull(trainEduVideo);
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
dao.updateIgnoreNull(trainEduVideo);
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
@@ -7,9 +7,16 @@ layout("/layouts/platform.html"){
|
|||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<div class="btn-group tool-button">
|
<div class="btn-group tool-button">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="pageForm.month" clearable value-format="yyyy-MM"
|
v-model="pageForm.startTime" clearable value-format="yyyy-MM-dd"
|
||||||
type="month"
|
type="date"
|
||||||
placeholder="选择月">
|
placeholder="请选择开始时间">
|
||||||
|
</el-date-picker>
|
||||||
|
</div>
|
||||||
|
<div class="btn-group tool-button">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="pageForm.endTime" clearable value-format="yyyy-MM-dd"
|
||||||
|
type="date"
|
||||||
|
placeholder="请选择结束时间">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn-group tool-button">
|
<div class="btn-group tool-button">
|
||||||
@@ -35,6 +42,11 @@ layout("/layouts/platform.html"){
|
|||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<el-card shadow="never" class="mt20">
|
<el-card shadow="never" class="mt20">
|
||||||
|
<table-tool :app="this" label="申请列表">
|
||||||
|
<template #func>
|
||||||
|
<el-button @click="exportExcel" size="small" type="primary">导出</el-button>
|
||||||
|
</template>
|
||||||
|
</table-tool>
|
||||||
<el-table :data="tableData" row-key="id" @sort-change="pageOrder"
|
<el-table :data="tableData" row-key="id" @sort-change="pageOrder"
|
||||||
v-loading="tableLoading">
|
v-loading="tableLoading">
|
||||||
<el-table-column align="center" header-align="center" label="序号" type="index">
|
<el-table-column align="center" header-align="center" label="序号" type="index">
|
||||||
@@ -141,6 +153,9 @@ layout("/layouts/platform.html"){
|
|||||||
pageOrderName: "",
|
pageOrderName: "",
|
||||||
pageOrderBy: "",
|
pageOrderBy: "",
|
||||||
isAudit: false,
|
isAudit: false,
|
||||||
|
siteType: '',
|
||||||
|
startTime: new Date().getFullYear() + '-01-01',
|
||||||
|
endTime: new Date().getFullYear() + '-12-31',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -148,6 +163,15 @@ layout("/layouts/platform.html"){
|
|||||||
'reserve-info': httpVueLoader('/components/activity/site/ReserveInfo.vue'),
|
'reserve-info': httpVueLoader('/components/activity/site/ReserveInfo.vue'),
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
exportExcel() {
|
||||||
|
window.location.href = "/platform/activity/site/record/exportExcel" +
|
||||||
|
"?startTime=" + this.pageForm.startTime + "" +
|
||||||
|
"&endTime=" + this.pageForm.endTime + "" +
|
||||||
|
"&searchName=" + this.pageForm.searchName + "" +
|
||||||
|
"&searchKeyword=" + this.pageForm.searchKeyword + "" +
|
||||||
|
"&siteType=" + this.pageForm.siteType
|
||||||
|
;
|
||||||
|
},
|
||||||
openView(id) {
|
openView(id) {
|
||||||
this.$refs.guava.view()
|
this.$refs.guava.view()
|
||||||
this.$refs.reserve.openView(id)
|
this.$refs.reserve.openView(id)
|
||||||
|
|||||||
@@ -257,7 +257,9 @@ layout("/layouts/platform.html"){
|
|||||||
title: null,
|
title: null,
|
||||||
sortNo: null,
|
sortNo: null,
|
||||||
disabled: false,
|
disabled: false,
|
||||||
url: null
|
url: null,
|
||||||
|
endDate: null,
|
||||||
|
startDate: null
|
||||||
},
|
},
|
||||||
tableColumns: [
|
tableColumns: [
|
||||||
{prop: 'title', label: '标题'},
|
{prop: 'title', label: '标题'},
|
||||||
@@ -300,12 +302,15 @@ layout("/layouts/platform.html"){
|
|||||||
},
|
},
|
||||||
openAdd() {
|
openAdd() {
|
||||||
this.$refs['guava'].edit()
|
this.$refs['guava'].edit()
|
||||||
if (this.$refs.uploadForm) {
|
|
||||||
this.$refs.uploadForm.clean()
|
|
||||||
}
|
|
||||||
this.$refs['ruleForm'].resetFields()
|
// if (this.$refs.uploadForm) {
|
||||||
this.formData.id = undefined
|
// this.$refs.uploadForm.clean()
|
||||||
this.formData.albumId = this.pageForm.albumId
|
// }
|
||||||
|
// this.$refs['ruleForm'].resetFields()
|
||||||
|
// this.formData.id = undefined
|
||||||
|
// this.formData.albumId = this.pageForm.albumId
|
||||||
|
|
||||||
},
|
},
|
||||||
selectFile(preUploadFiles) {
|
selectFile(preUploadFiles) {
|
||||||
|
|||||||
Reference in New Issue
Block a user