From 3fd76e37d9dd0f95dfbd2621966e3c48efa35580 Mon Sep 17 00:00:00 2001
From: ieaii <1069385070@qq.com>
Date: Sun, 5 Jan 2025 23:01:16 +0800
Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=B8=80=E4=B8=8B=E4=BB=A3?=
=?UTF-8?q?=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
admin-hanhai-vue/src/views/xcx/ClockinLogList.vue | 42 ++++-
.../controller/ClockinLogController.java | 194 ++++++++++++++++-----
pom.xml | 2 +-
3 files changed, 188 insertions(+), 50 deletions(-)
diff --git a/admin-hanhai-vue/src/views/xcx/ClockinLogList.vue b/admin-hanhai-vue/src/views/xcx/ClockinLogList.vue
index 8cde1fa..3cd74ae 100644
--- a/admin-hanhai-vue/src/views/xcx/ClockinLogList.vue
+++ b/admin-hanhai-vue/src/views/xcx/ClockinLogList.vue
@@ -14,6 +14,11 @@
+
+
+
+
+
@@ -22,7 +27,7 @@
-
导出
+
导出
@@ -110,6 +115,7 @@
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import ClockinLogModal from './modules/ClockinLogModal'
import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
+ import {downFile} from "@api/manage";
export default {
name: 'ClockinLogList',
@@ -209,7 +215,39 @@
fieldList.push({type:'string',value:'lat',text:'纬度',dictCode:''})
fieldList.push({type:'int',value:'delFlag',text:'是否删除',dictCode:'is_delete'})
this.superFieldList = fieldList
- }
+ },
+ handleExportXls2(fileName){
+ if(!fileName || typeof fileName != "string"){
+ fileName = "导出文件"
+ }
+ let param = this.getQueryParams();
+ if(this.selectedRowKeys && this.selectedRowKeys.length>0){
+ param['selections'] = this.selectedRowKeys.join(",")
+ }
+ console.log("导出参数",param)
+ this.loading = true;
+ downFile(this.url.exportXlsUrl,param).then((data)=>{
+ if (!data) {
+ this.$message.warning("文件下载失败")
+ return
+ }
+ if (typeof window.navigator.msSaveBlob !== 'undefined') {
+ window.navigator.msSaveBlob(new Blob([data],{type: 'application/vnd.ms-excel'}), fileName+'.xls')
+ }else{
+ let url = window.URL.createObjectURL(new Blob([data],{type: 'application/vnd.ms-excel'}))
+ let link = document.createElement('a')
+ link.style.display = 'none'
+ link.href = url
+ link.setAttribute('download', fileName+'.xls')
+ document.body.appendChild(link)
+ link.click()
+ document.body.removeChild(link); //下载完成移除元素
+ window.URL.revokeObjectURL(url); //释放掉blob对象
+ }
+ }).finally(() => {
+ this.loading = false;
+ });
+ },
}
}
diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/controller/ClockinLogController.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/controller/ClockinLogController.java
index 9fc291a..53562fa 100644
--- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/controller/ClockinLogController.java
+++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/clockinlog/controller/ClockinLogController.java
@@ -16,12 +16,14 @@ import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapp
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.DateUtils2;
@@ -51,6 +53,7 @@ import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
+import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecgframework.poi.excel.view.JeecgMapExcelView;
@@ -207,6 +210,7 @@ public class ClockinLogController extends JeecgController
parameterMap = request.getParameterMap();
String[] clockStartTimes = parameterMap.get("clockStartTime");
String[] userIds = parameterMap.get("userId");
+ String[] projectIds = parameterMap.get("projectId");
// QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(object, request.getParameterMap());
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@@ -221,6 +225,27 @@ public class ClockinLogController extends JeecgController clockinTeamLogs = queryChainWrapper.list();
+ if(projectIds!=null && projectIds.length!=0 && StringUtils.isNotBlank(projectIds[0])){
+ ClockInProject clockInProject = clockInProjectService.lambdaQuery()
+ .eq(ClockInProject::getDelFlag, 0)
+ .eq(ClockInProject::getId,projectIds[0])
+ .one();
+ if(clockInProject == null){
+ throw new JeecgBootException("项目错误");
+ }
+ try {
+ clockinTeamLogs = clockinTeamLogService.lambdaQuery()
+ .eq(ClockinTeamLog::getDelFlag, 0)
+ .eq(ClockinTeamLog::getTeamId, clockInProject.getTeamId())
+ .list();
+// clockinTeamLogs.add(clockinTeamLog);
+ }catch (Exception e){
+ throw new JeecgBootException("该项目可能存在两个团队绑定,请检查项目管理");
+ }
+
+
+ }
+
// int day = Integer.parseInt(DateUtils2.getNowMonthMaxDay());
@@ -235,7 +260,6 @@ public class ClockinLogController extends JeecgController pageList = service.list(queryWrapper);
// List exportList = null;
@@ -314,6 +338,7 @@ public class ClockinLogController extends JeecgController clazz, String title) {
+ protected ModelAndView exportXls3(HttpServletRequest request, Class clazz, String title) {
// Step.1 组装查询条件
Map parameterMap = request.getParameterMap();
String[] clockStartTimes = parameterMap.get("clockStartTime");
String[] userIds = parameterMap.get("userId");
+ String[] projectIds = parameterMap.get("projectId");
+// QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(object, request.getParameterMap());
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
LambdaQueryChainWrapper queryChainWrapper = clockinTeamLogService.lambdaQuery()
.eq(ClockinTeamLog::getDelFlag, 0);
- if (userIds != null && userIds.length != 0 && StringUtils.isNotBlank(userIds[0])) {
- queryChainWrapper.eq(ClockinTeamLog::getUserId, userIds[0]);
+// List clockinTeamLogs = clockinTeamLogService.lambdaQuery()
+// .eq(ClockinTeamLog::getDelFlag, 0)
+// .list();
+
+ if(userIds!=null && userIds.length!=0 && StringUtils.isNotBlank(userIds[0])){
+ queryChainWrapper.eq(ClockinTeamLog::getUserId,userIds[0]);
}
List clockinTeamLogs = queryChainWrapper.list();
+ if(projectIds!=null && projectIds.length!=0 && StringUtils.isNotBlank(projectIds[0])){
+ ClockInProject clockInProject = clockInProjectService.lambdaQuery()
+ .eq(ClockInProject::getDelFlag, 0)
+ .eq(ClockInProject::getId,projectIds[0])
+ .one();
+ if(clockInProject == null){
+ throw new JeecgBootException("项目错误");
+ }
+ try {
+ clockinTeamLogs = clockinTeamLogService.lambdaQuery()
+ .eq(ClockinTeamLog::getDelFlag, 0)
+ .eq(ClockinTeamLog::getTeamId, clockInProject.getTeamId())
+ .list();
+// clockinTeamLogs.add(clockinTeamLog);
+ }catch (Exception e){
+ throw new JeecgBootException("该项目可能存在两个团队绑定,请检查项目管理");
+ }
+
+
+ }
+
+
+ List