From d336c430e5d22ade703ff12f3d523889eb3d75d6 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 08 十一月 2024 10:54:26 +0800
Subject: [PATCH] action管理 编辑 新增 分类禁用bug
---
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LogBasicServiceImpl.java | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 101 insertions(+), 3 deletions(-)
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LogBasicServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LogBasicServiceImpl.java
index 2392826..3dd6390 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LogBasicServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LogBasicServiceImpl.java
@@ -9,7 +9,15 @@
import com.vci.dto.LogInfoDTO;
import com.vci.dto.LogPeriodInfoDTO;
import com.vci.dto.LogQueryCriteriaDTO;
+import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
+import com.vci.starter.poi.bo.WriteExcelData;
+import com.vci.starter.poi.bo.WriteExcelOption;
+import com.vci.starter.poi.util.ExcelUtil;
+import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
+import com.vci.starter.web.util.LangBaseUtil;
+import com.vci.starter.web.util.LocalFileUtil;
+import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.service.*;
import com.vci.web.util.*;
import org.apache.commons.lang3.StringUtils;
@@ -18,9 +26,11 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.io.File;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
/**
@@ -41,6 +51,10 @@
*/
@Autowired
private PlatformClientUtil platformClientUtil;
+
+ @Autowired
+ private SmUserQueryServiceI userQueryServiceI;
+
public static final String UTF8_BOM="\uFEFF";
private final String LOG_SAVE_PERIOD = "logSavePeriod";//鏃ュ織淇濆瓨鏈熼檺
@@ -131,8 +145,12 @@
*/
@Override
public BaseResult getLogListByContion(LogQueryCriteriaDTO queryDto) throws PLException {
+ VciBaseUtil.alertNotNull(queryDto,"鏃ュ織鏌ヨ鍙傛暟瀵硅薄");
+ List<String> userNameList = userQueryServiceI.queryUserNameByRoleType(queryDto.getRoleType());
+ queryDto.setUserNameList(userNameList);
String querySql = getSQL(queryDto);
LogInfo[] logInfos = platformClientUtil.getLogService().getLogListByContion(queryDto.getPageNo(),queryDto.getPageSize(),querySql);
+
List<LogInfoDTO> dtos = new ArrayList<>();
for (LogInfo logInfo : logInfos) {
LogInfoDTO dto = new LogInfoDTO();
@@ -160,6 +178,7 @@
result.setTotal(sumLogRows);
return result;
}
+
/**
* 鎿嶄綔鐢ㄦ埛鑾峰彇
*/
@@ -179,13 +198,73 @@
}
/**
+ * 瀵煎嚭鏃ュ織
+ * @param dto 瀵煎嚭鐨勬枃浠跺悕
+ * @return
+ */
+ @Override
+ public String exportLogs(LogQueryCriteriaDTO dto) throws PLException{
+ VciBaseUtil.alertNotNull(dto,"鏃ュ織鏌ヨ鍙傛暟瀵硅薄");
+ List<String> userNameList = userQueryServiceI.queryUserNameByRoleType(dto.getRoleType());
+ dto.setUserNameList(userNameList);
+ String querySql = getSQL(dto);
+ //鍏ㄦ煡璇�
+ if(dto.getPageSize() == -1){
+ long sumLogRows = platformClientUtil.getLogService().getSumLogRows(querySql);
+ dto.setPageSize((int) sumLogRows);
+ }
+ LogInfo[] logList = platformClientUtil.getLogService().getLogListByContion(dto.getPageNo(),dto.getPageSize(),querySql);
+
+ //鐣岄潰娌′紶鍚嶇О锛屼娇鐢ㄩ粯璁ゅ鍑哄悕绉�
+ String exportFileName = "鏃ュ織瀵煎嚭_" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss");
+ //璁剧疆鍒楀悕
+ List<String> columns = new ArrayList<>(
+ Arrays.asList("鐢ㄦ埛鍚�", "濮撳悕", "鐢ㄦ埛ip","妯″潡", "鎿嶄綔", "鏃堕棿", "鎿嶄綔缁撴灉","鎻忚堪")
+ );
+
+ //鍐檈xcel
+ String excelPath = LocalFileUtil.getDefaultTempFolder() + File.separator + exportFileName + ".xls";
+ try {
+ new File(excelPath).createNewFile();
+ } catch (Throwable e) {
+ throw new VciBaseException(LangBaseUtil.getErrorMsg(e), new String[]{excelPath}, e);
+ }
+ //璁剧疆鍒�
+ List<WriteExcelData> excelDataList = new ArrayList<>();
+ //璁剧疆鍒楀ご
+ for (int index = 0; index < columns.size(); index++) {
+ excelDataList.add(new WriteExcelData(0,index, columns.get(index)));
+ }
+
+ if(Func.isEmpty(logList)){
+ excelDataList.add(new WriteExcelData(1,1, "瀵煎嚭鐨勬棩蹇楀垪琛ㄤ负绌猴紒"));
+ }else{
+ AtomicInteger i = new AtomicInteger();
+ Arrays.stream(logList).forEach(log->{
+ excelDataList.add(new WriteExcelData(i.get() +1,0, log.username));
+ excelDataList.add(new WriteExcelData(i.get() +1,1, log.truename));
+ excelDataList.add(new WriteExcelData(i.get() +1,2, log.userIp));
+ excelDataList.add(new WriteExcelData(i.get() +1,3, log.moduleName));
+ excelDataList.add(new WriteExcelData(i.get() +1,4, log.type));
+ excelDataList.add(new WriteExcelData(i.get() +1,5, log.date));
+ excelDataList.add(new WriteExcelData(i.get() +1,6, log.logType));
+ excelDataList.add(new WriteExcelData(i.get() +1,7, log.result));
+ i.getAndIncrement();
+ });
+ }
+ WriteExcelOption excelOption = new WriteExcelOption(excelDataList);
+ ExcelUtil.writeDataToFile(excelPath, excelOption);
+ return excelPath;
+ }
+
+ /**
* 鑾峰彇鐢ㄦ埛淇℃伅
* @param userNames 鐢ㄦ埛鍚嶇О
* @return 鐢ㄦ埛淇℃伅
* @throws PLException
*/
private List<UserObject> getUsersByUserNames(List<String> userNames) throws PLException {
- List<UserObject> userList = new ArrayList<UserObject>();
+ List<UserObject> userList = new ArrayList<>();
for(String userName : userNames){
UserInfo userInfo = platformClientUtil.getFrameworkService().fetchUserInfoByName(userName);
UserObject user = new UserObject();
@@ -233,14 +312,15 @@
}
return userNames;
}
+
/**
* 鑾峰彇鏌ヨ鏉′欢骞舵嫾鎴怱QL锛屽彧鎷紈here瀛愬彞鍚庨潰鐨凷QL
* @return
*/
public String getSQL(LogQueryCriteriaDTO dto) throws PLException {
StringBuffer sql = new StringBuffer("");
-// int period = getPeriod(LOG_SAVE_PERIOD);//鑾峰彇淇濆瓨鏈熼檺锛屼互鏈堜负鍗曚綅
- int period = platformClientUtil.getLogService().getCurPeriod();;//鑾峰彇淇濆瓨鏈熼檺锛屼互鏈堜负鍗曚綅
+ // int period = getPeriod(LOG_SAVE_PERIOD);//鑾峰彇淇濆瓨鏈熼檺锛屼互鏈堜负鍗曚綅
+ int period = platformClientUtil.getLogService().getCurPeriod();//鑾峰彇淇濆瓨鏈熼檺锛屼互鏈堜负鍗曚綅
//涓嬮潰鏄嫾鍑篠QL
if(period != 0){
sql.append(" to_date(PLDATE) >= add_months(to_date(sysdate),"+(-period)+")");
@@ -274,6 +354,21 @@
}
sql.append("PLLOGTYPE in('" + getLogTypeString(LogType.General) + "')");
}
+ if(Func.isNotEmpty(dto.getUserNameList())){
+ if(!sql.toString().equals("")){
+ sql.append(" and ");
+ }
+ if(dto.getUserNameList().size()<=1){
+ sql.append(" PLUSER = '").append(dto.getUserNameList().get(0).trim()).append("'");
+ }else{
+ sql.append(" PLUSER in (");
+ String inWhere = dto.getUserNameList().stream()
+ .map(item -> "'" + item + "'")
+ .collect(Collectors.joining(","));
+ sql.append(inWhere).append(")");
+ }
+ }
+
if(StringUtils.isNotBlank(dto.getUserName())){//鎿嶄綔鐢ㄦ埛
if(!dto.getUserName().trim().equals("")){//濡傛灉鐢ㄦ埛鍚嶄负绌烘牸鍒欎笉鍔犵敤鎴锋潯浠�
if(!sql.toString().equals("")){
@@ -320,6 +415,7 @@
}
return sql.toString();
}
+
protected String getLogTypeString(LogType logType){
String res = "";
if(logType == LogType.Login) {
@@ -387,4 +483,6 @@
res = true;
return res;
}
+
+
}
--
Gitblit v1.9.3