beetlsql3-dev
Mlxa0324 2 years ago
parent 712e344890
commit 2619f657dd

@ -2,6 +2,7 @@ package com.ibeetl.admin.core.service;
import com.ibeetl.admin.core.dao.CoreDictDao;
import com.ibeetl.admin.core.entity.CoreDict;
import com.ibeetl.admin.core.util.BeetlSqlKit;
import com.ibeetl.admin.core.util.enums.DelFlagEnum;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@ -36,7 +37,6 @@ public class CoreDictService extends CoreBaseService<CoreDict> {
@Autowired
CoreDictService self ;
/**
*
* @param type
@ -111,7 +111,19 @@ public class CoreDictService extends CoreBaseService<CoreDict> {
return null;
}
/**
* beetlsql
*
* @param type
* @param value
* @return
*/
@Cacheable(value = "core.coreDict:.findCoreDictByTableAndField", key="#type+\"_\"+#value")
public List<CoreDict> findCoreDictByTableAndField(String type, Object value) {
return findAllByTable(BeetlSqlKit.render(type, value));
}
/**
*
* @param type

@ -0,0 +1,124 @@
package com.ibeetl.admin.core.util;
import cn.hutool.core.bean.BeanUtil;
import org.beetl.core.Configuration;
import org.beetl.core.GroupTemplate;
import org.beetl.core.ReThrowConsoleErrorHandler;
import org.beetl.core.Template;
import org.beetl.core.config.BeetlConfig;
import org.beetl.core.exception.BeetlException;
import org.beetl.core.exception.ErrorInfo;
import org.beetl.core.resource.StringTemplateResourceLoader;
import org.beetl.core.util.Log;
import java.io.IOException;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
/**
* BeetlSql
* * @author mlx
*/
public class BeetlSqlKit {
/** DEBUG flag */
private static final boolean DEBUG = BeetlConfig.DEBUG;
/** Log TAG */
private static final String TAG = "BeetlSqlKit";
/**
* BeetlKit 使GroupTemplate
*/
public static GroupTemplate gtp = null;
static {
StringTemplateResourceLoader resourceLoader = new StringTemplateResourceLoader();
Configuration cfg;
try {
Configuration cfg1 = Configuration.defaultConfiguration();
cfg1.add("/web/../btsql-ext.properties");
cfg = cfg1;
} catch (IOException e) {
throw new RuntimeException(e);
}
gtp = new GroupTemplate(resourceLoader, cfg);
gtp.setErrorHandler(new ReThrowConsoleErrorHandler());
}
private static Map<String, Object> emptyMap = new HashMap<String, Object>();
/* 模板部分 */
/**
*
*
* @return
*/
public static String render(String template, Map<String, Object> paras) {
Template t = gtp.getTemplate(template);
t.binding(paras);
return t.render();
}
/**
*
*
* @return
*/
public static String render(String template, Object paras) {
Template t = gtp.getTemplate(template);
t.binding(BeanUtil.beanToMap(paras));
return t.render();
}
/**
*
*/
public static void renderTo(String template, Writer writer, Map<String, Object> paras) {
Template t = gtp.getTemplate(template);
t.binding(paras);
t.renderTo(writer);
}
/* 脚本部分 */
/**
* @param paras map"return"
*/
public static Map execute(String script, Map<String, Object> paras) throws BeetlException {
return gtp.runScript(script, emptyMap);
}
/**
* Root scope
*/
public static Map execute(String script) throws BeetlException {
return gtp.runScript(script, new HashMap<String, Object>());
}
/**
* @param template
* @param initValue
* @return
*/
public static String testTemplate(String template, String initValue) throws BeetlException {
return render(template, execute(initValue));
}
public static void main(String[] args) throws BeetlException {
BeetlSqlKit.gtp.getConf().setStatementStart("@");
BeetlSqlKit.gtp.getConf().setStatementEnd(null);
String json = "var a=".concat("[1,2,c+1 ]").concat(";");
try {
BeetlSqlKit.execute(json);
} catch (BeetlException e) {
if (DEBUG) {
ErrorInfo info = new ErrorInfo(e);
Log.e(TAG, "error=" + info.toString());
}
}
}
}

@ -5,10 +5,7 @@ import com.alibaba.excel.write.handler.SheetWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;
import lombok.Data;
import org.apache.poi.ss.usermodel.DataValidation;
import org.apache.poi.ss.usermodel.DataValidationConstraint;
import org.apache.poi.ss.usermodel.DataValidationHelper;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddressList;
import java.util.Map;
@ -26,8 +23,23 @@ public class ExcelSelectorDataWriteHandler implements SheetWriteHandler {
return;
}
selectedMap.forEach((k, v) -> {
String[] deptList = v.getSelectorData();
int startRow = v.getStartRow();
int endRow = v.getEndRow();
String hiddenName = "hidden"+k;
//1.创建隐藏的sheet页。 起个名字吧!叫"hidden"
Sheet hidden = sheet.getWorkbook().createSheet(hiddenName);
//2.循环赋值(为了防止下拉框的行数与隐藏域的行数相对应,将隐藏域加到结束行之后)
for (int i = 0, length = deptList.length; i < length; i++) {
hidden.createRow(endRow + i).createCell(k).setCellValue(deptList[i]);
}
Name category1Name = sheet.getWorkbook().createName();
category1Name.setNameName(hiddenName);
//3 A1:A代表隐藏域创建第N列createCell(N)时。以A1列开始A行数据获取下拉数组
category1Name.setRefersToFormula(hiddenName + "!A1:A" + (deptList.length + endRow));
//
// 下拉 首行 末行 首列 末列
CellRangeAddressList list = new CellRangeAddressList(v.getStartRow(), v.getEndRow(), k, k);
CellRangeAddressList list = new CellRangeAddressList(startRow, endRow, k, k);
// 下拉值
DataValidationConstraint constraint = helper.createExplicitListConstraint(v.getSelectorData());
DataValidation validation = helper.createValidation(constraint, list);

@ -16,7 +16,7 @@ public class ExcelSelectorResolve {
/**
*
*/
private int startRow = 0;
private int startRow = 1;
/**
*

@ -1,5 +1,9 @@
package cn.jlw.util.excel;
/**
* excelservice
* @author lx
*/
public interface ExcelSelectorService {
/**

@ -1,11 +1,13 @@
package com.ibeetl.jlw.entity;
import cn.jlw.util.excel.DeviceExcelSelectorServiceImpl;
import cn.jlw.util.excel.ExcelSelector;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ibeetl.admin.core.annotation.Dict;
import com.ibeetl.admin.core.entity.BaseEntity;
import com.ibeetl.admin.core.util.ValidateConfig;
import lombok.EqualsAndHashCode;
import org.beetl.sql.annotation.entity.AssignID;
import javax.validation.constraints.NotNull;
@ -16,6 +18,7 @@ import java.math.BigDecimal;
* gen by Spring Boot2 Admin 2022-10-26
*/
@ExcelIgnoreUnannotated
@EqualsAndHashCode(callSuper=false)
public class TeacherOpenCourseMergeResourcesQuestion extends BaseEntity{
//ID
@ -26,70 +29,74 @@ public class TeacherOpenCourseMergeResourcesQuestion extends BaseEntity{
private Long teacherOpenCourseMergeResourcesQuestionId ;
//开课ID
@ExcelSelector(dictKeyValue = "teacher_open_course.teacher_open_course_title.teacher_open_course_status=1")
@ExcelSelector(
dictKeyValue = "teacher_open_course.teacher_open_course_title.teacher_open_course_status=1",
serviceClass = DeviceExcelSelectorServiceImpl.class)
@Dict(type="teacher_open_course.teacher_open_course_title.teacher_open_course_status=1")
@ExcelProperty("关联开课")
@ExcelProperty(value = "关联开课", index = 0)
private Long teacherOpenCourseId ;
//课程章节ID
@ExcelSelector(dictKeyValue = "teacher_open_course_merge_course_info.course_info_name.course_info_status=1")
@ExcelSelector(
dictKeyValue = "teacher_open_course_merge_course_info.course_info_name.course_info_status=1,course_info_type!=1",
serviceClass = DeviceExcelSelectorServiceImpl.class)
@Dict(type="teacher_open_course_merge_course_info.course_info_name.course_info_status=1")
@ExcelProperty("课程章节")
@ExcelProperty(value = "课程章节", index = 1)
private Long teacherOpenCourseMergeCourseInfoId ;
//题型(1单选 2多选 3判断 4填空 5分析)
@ExcelSelector(fixedSelector = {"1单选", "2多选", "3判断" })
@ExcelProperty("题型")
@ExcelProperty(value = "题型", index = 2)
private Integer questionType ;
//分值
@ExcelProperty("分值")
@ExcelProperty(value = "分值", index = 3)
private BigDecimal questionScore ;
//题干
@ExcelProperty("题干")
@ExcelProperty(value = "题干",index = 4)
private String questionStem ;
//选项A
@ExcelProperty("选项A")
@ExcelProperty(value = "选项A",index = 5)
private String questionOptionA ;
//选项B
@ExcelProperty("选项B")
@ExcelProperty(value = "选项B",index = 6)
private String questionOptionB ;
//选项C
@ExcelProperty("选项C")
@ExcelProperty(value = "选项C",index = 7)
private String questionOptionC ;
//选项D
@ExcelProperty("选项D")
@ExcelProperty(value = "选项D", index = 8)
private String questionOptionD ;
//选项E
@ExcelProperty("选项E")
@ExcelProperty(value = "选项E",index = 9)
private String questionOptionE ;
//答案(单选是一个 多选是多个 判断是对错)
@ExcelProperty("答案 单选是一个 多选是多个 判断是对错")
@ExcelProperty(value = "答案 单选是一个 多选是多个 判断是对错", index = 10)
private String questionAnswer ;
//解析
@ExcelProperty("解析")
@ExcelProperty(value = "解析", index = 11)
private String questionAnalysis ;

@ -1177,6 +1177,11 @@ getQuestionLogScoreDetailsInfo
===
* 查询学生详细得分信息,查询分数详细信息
select
@pageTag() {
tz.*
@}
from (
select
t.student_id,
ta.student_name,
@ -1213,3 +1218,4 @@ getQuestionLogScoreDetailsInfo
ta.student_sn,
ta.class_id,
tb.class_name
) tz

@ -687,6 +687,11 @@ getQuestionLogScoreDetailsInfo
===
* 查询学生详细得分信息,查询分数详细信息
select
@pageTag() {
tz.*
@}
from (
select
t.student_id,
ta.student_name,
@ -723,3 +728,4 @@ getQuestionLogScoreDetailsInfo
ta.student_sn,
ta.class_id,
tb.class_name
) tz

Loading…
Cancel
Save