账号密码 lj5020/8888
访问图片TOP报表中的查询条件pingpai查询报错
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package cn.iocoder.yudao.module.ydoyun.controller.admin.productreport.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -40,6 +41,17 @@ public class ProductSplbQueryReqVO {
|
||||
@Schema(description = "仓库代码(多选)")
|
||||
private List<String> ckdm;
|
||||
|
||||
@Schema(description = "查询日期起 yyyy-MM-dd(写入 params 键 RQ_S)")
|
||||
@JsonProperty("RQ_S")
|
||||
private String rqS;
|
||||
|
||||
@Schema(description = "查询日期止 yyyy-MM-dd(写入 params 键 RQ_E)")
|
||||
@JsonProperty("RQ_E")
|
||||
private String rqE;
|
||||
|
||||
@Schema(description = "正特价:FJSX4.SXDM 多选(不含 000)")
|
||||
private List<String> ztj;
|
||||
|
||||
@Schema(description = "附加条件1")
|
||||
private List<String> fjsx1;
|
||||
@Schema(description = "附加条件2")
|
||||
|
||||
@@ -65,6 +65,9 @@ public class ProductReportServiceImpl implements ProductReportService {
|
||||
p.put("category", reqVO.getCategory());
|
||||
p.put("ghsdm", nullToEmpty(reqVO.getGhsdm()));
|
||||
p.put("ckdm", nullToEmpty(reqVO.getCkdm()));
|
||||
p.put("RQ_S", StrUtil.trimToEmpty(reqVO.getRqS()));
|
||||
p.put("RQ_E", StrUtil.trimToEmpty(reqVO.getRqE()));
|
||||
p.put("ztj", nullToEmpty(reqVO.getZtj()));
|
||||
p.put("fjsx1", nullToEmpty(reqVO.getFjsx1()));
|
||||
p.put("fjsx2", nullToEmpty(reqVO.getFjsx2()));
|
||||
p.put("fjsx3", nullToEmpty(reqVO.getFjsx3()));
|
||||
|
||||
@@ -299,43 +299,51 @@ public class ReportPageService {
|
||||
String table = tableName.toUpperCase();
|
||||
StringBuilder sql = new StringBuilder();
|
||||
|
||||
// ---------- admin 直接查全部 ----------
|
||||
if ("admin".equalsIgnoreCase(username)) {
|
||||
if ("PINPAI".equals(table)) {
|
||||
sql.append("SELECT PPDM, PPMC FROM ").append(table);
|
||||
} else if ("KEHU".equals(table)) {
|
||||
sql.append("SELECT khdm, khmc FROM ").append(table);
|
||||
} else {
|
||||
String userId = (username != null && username.length() > 2)
|
||||
? username.substring(2)
|
||||
: username;
|
||||
|
||||
boolean isAdmin = "admin".equalsIgnoreCase(username);
|
||||
|
||||
switch (table) {
|
||||
|
||||
// 王菠萝商品:正特价维度
|
||||
case "ZJTZ":
|
||||
sql.append("SELECT SXDM, SXMC ")
|
||||
.append("FROM FJSX4 ")
|
||||
.append("WHERE SXDM <> '000'");
|
||||
break;
|
||||
|
||||
// 品牌
|
||||
case "PINPAI":
|
||||
sql.append("SELECT PPDM, PPMC FROM PINPAI");
|
||||
|
||||
if (!isAdmin) {
|
||||
sql.append(" WHERE PPDM IN (")
|
||||
.append("SELECT DISTINCT PPDM ")
|
||||
.append("FROM USPPQY ")
|
||||
.append("WHERE userid = '" + userId)
|
||||
.append("')");
|
||||
}
|
||||
break;
|
||||
|
||||
// 客户
|
||||
case "KEHU":
|
||||
sql.append("SELECT khdm, khmc FROM KEHU");
|
||||
|
||||
if (!isAdmin) {
|
||||
sql.append(" WHERE KHDM IN (")
|
||||
.append("SELECT DISTINCT KHDM ")
|
||||
.append("FROM USPPQY ")
|
||||
.append("WHERE userid = '" + userId)
|
||||
.append("')");
|
||||
}
|
||||
break;
|
||||
|
||||
// 其他表
|
||||
default:
|
||||
sql.append("SELECT * FROM ").append(table);
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
// ---------- 普通用户 ----------
|
||||
String userId =
|
||||
username.length() > 2 ? username.substring(2) : username;
|
||||
|
||||
if ("PINPAI".equals(table)) {
|
||||
|
||||
sql.append("SELECT PPDM, PPMC FROM ").append(table)
|
||||
.append(" WHERE PPDM IN (")
|
||||
.append("SELECT DISTINCT PPDM FROM USPPQY WHERE userid = '")
|
||||
.append(userId)
|
||||
.append("')");
|
||||
|
||||
} else if ("KEHU".equals(table)) {
|
||||
|
||||
sql.append("SELECT khdm, khmc FROM ").append(table)
|
||||
.append(" WHERE KHDM IN (")
|
||||
.append("SELECT DISTINCT KHDM FROM USPPQY WHERE userid = '")
|
||||
.append(userId)
|
||||
.append("')");
|
||||
|
||||
} else {
|
||||
|
||||
// 其他表不做权限控制
|
||||
sql.append("SELECT * FROM ").append(table);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
params.put("sql", sql.toString());
|
||||
|
||||
Reference in New Issue
Block a user