Compare commits

...

5 Commits

Author SHA1 Message Date
zjh 720a8386b6 Merge remote-tracking branch 'origin/dev_2307' into dev_2307 1 year ago
zjh 1ec7e82852 导入规则开发 1 year ago
zjh 10d35102cf Merge remote-tracking branch 'origin/dev_2307' into dev_2307 1 year ago
zjh 5cc8cba26a 导入规则开发 1 year ago
zjh 5c765d5946 导入规则开发 1 year ago
  1. 16
      ant-design-vue-jeecg/src/views/modulex/ModulexList.vue
  2. 10153
      jeecg-boot/db/project_management.sql
  3. 209
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/controller/RulexController.java
  4. 181
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/entity/RuleVo.java
  5. 16
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/mapper/RuleVoMapper.java
  6. 4
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/mapper/RulexMapper.java
  7. 16
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/service/IRuleVoService.java
  8. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/service/IRulexService.java
  9. 20
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/service/impl/RuleVoServiceImpl.java
  10. 5
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/util/DateValidator.java
  11. 27
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/util/DateValidatorUsingDateFormat.java
  12. 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysDictController.java
  13. 329
      jeecg-boot/jeecg-boot-module-system/src/main/resources/application-dev.yml

@ -70,9 +70,11 @@
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<a-button type="primary" icon="import">导入模块</a-button>
<a-button type="primary" icon="import">导入模块</a-button>
<a-button type="primary" icon="import">导入功能</a-button>
<a-button type="primary" icon="import">导入规则</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="ruleImportExcelUrl" @change="handleImportExcel">
<a-button type="primary" icon="import">导入规则</a-button>
</a-upload>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="tablexImportExcelUrl" @change="handleImportExcel">
<a-button type="primary" icon="import">导入实体</a-button>
</a-upload>
@ -395,7 +397,6 @@ export default {
deleteBatch: "/modulex/modulex/deleteBatch",
exportXlsUrl: "/modulex/modulex/exportXls",
importExcelUrl: "modulex/modulex/importExcel",
tablexImportExcelUrl: "tablex/tablex/importExcel",
},
dictOptions: {},
@ -421,10 +422,7 @@ export default {
// columnsdataIndex
checkColumn: function () {
return this.columns.map(item => item.title)
},
tablexImportExcelUrl: function(){
return `${window._CONFIG['domianURL']}/${this.url.tablexImportExcelUrl}`;
},
}
},
methods: {
//
@ -630,9 +628,7 @@ export default {
param.pageSize = this.ipagination.pageSize
//param.id=this.id;
//!!!!!!!
// 使
if(param.projectId==null)
param.projectId = this.$route.query.project;
// param.projectId = this.$route.query.project;
// console.log('paaaaaaaaaaaaaaaaaaaaa')
return filterObj(param)
},

File diff suppressed because one or more lines are too long

@ -3,22 +3,15 @@ package org.jeecg.modules.demo.rulex.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.demo.functionx.entity.Functionx;
import org.jeecg.modules.demo.functionx.mapper.FunctionxMapper;
import org.jeecg.modules.demo.requirementfun.entity.RequirementFun;
import org.jeecg.modules.demo.requirementfun.service.IRequirementFunService;
import org.jeecg.modules.demo.requirementitem.entity.RequirementItem;
import org.jeecg.modules.demo.requirementitem.service.IRequirementItemService;
import org.jeecg.modules.demo.rulex.entity.RuleVo;
import org.jeecg.modules.demo.rulex.entity.Rulex;
import org.jeecg.modules.demo.rulex.service.IRuleVoService;
import org.jeecg.modules.demo.rulex.service.IRulexService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -26,18 +19,20 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.fieldx.entity.Fieldx;
import org.jeecg.modules.fieldx.service.IFieldxService;
import org.jeecg.modules.modulex.entity.Modulex;
import org.jeecg.modules.modulex.service.IModulexService;
import org.jeecg.modules.tablex.entity.Tablex;
import org.jeecg.modules.tablex.service.ITablexService;
import org.jeecgframework.poi.excel.ExcelImportUtil;
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.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
@ -55,12 +50,17 @@ import org.jeecg.common.aspect.annotation.AutoLog;
public class RulexController extends JeecgController<Rulex, IRulexService> {
@Autowired
private IRulexService rulexService;
@Autowired
private IRuleVoService iRuleVoService;
@Autowired
FunctionxMapper functionxMapper;
@Autowired
IFieldxService iFieldxService;
@Autowired
private IRequirementFunService requirementFunService;
ITablexService iTablexService;
@Autowired
private IRequirementItemService requirementItemService;
IModulexService iModulexService;
/**
@ -126,43 +126,6 @@ public class RulexController extends JeecgController<Rulex, IRulexService> {
return Result.OK("添加成功!");
}
/**
* 转化规则
*
* @param rulex
* @return
*/
@AutoLog(value = "转化规则")
@ApiOperation(value="转化规则", notes="转化规则")
@PostMapping(value = "/zhgz")
public Result<?> zhgz(@RequestBody Rulex rulex) {
if(rulex.getFunctionId()==null){
return Result.error("功能点错误!!!");
}
Functionx functionx = functionxMapper.selectById(rulex.getFunctionId());
if(functionx.getStartTime()!=null){
rulex.setStartTime(functionx.getStartTime());
}
if(functionx.getSubmitTime()!=null){
rulex.setSubmitTime(functionx.getSubmitTime());
}
if(functionx.getRealDuration()!=null){
rulex.setRealDuration(functionx.getRealDuration());
}
rulex.setManagerUsers(functionx.getManagerUsers());
rulex.setWorkStatus(functionx.getWorkStatus());
rulexService.save(rulex);
RequirementItem requirementItem = requirementItemService.getById(rulex.getModuleId());
requirementItem.setRequirementStatus(2);
requirementItemService.updateById(requirementItem);
RequirementFun requirementFun1 = new RequirementFun();
requirementFun1.setRequirementId(rulex.getModuleId());
requirementFun1.setFunId(rulex.getId());
requirementFun1.setFunLevel(4);
requirementFunService.save(requirementFun1);
return Result.OK("添加成功!");
}
/**
* 编辑
*
@ -244,7 +207,149 @@ public class RulexController extends JeecgController<Rulex, IRulexService> {
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, Rulex.class);
}
public Result<?> preImportAndExcel(HttpServletRequest request) {
//return super.importExcel(request, response, ScTeams.class);
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
System.err.println("----------------------------------------------");
// 获取上传文件对象
MultipartFile file = entity.getValue();
if (file==null){
return Result.error("文件上传失败,请重新上传");
}
ImportParams params = new ImportParams();
params.setTitleRows(2);//表格标题行数,默认0
params.setHeadRows(1);//表头行数,默认1
params.setNeedSave(true);//是否需要保存上传的Excel,默认为false
try {
// List<ScTeamsDr> list = ExcelImportUtil.importExcel(file.getInputStream(), ScTeamsDr.class, params);
List<RuleVo> list = ExcelImportUtil.importExcel(file.getInputStream(), RuleVo.class, params);
if (list == null || list.size() <= 0) {
return Result.error("文件导入失败:模板中暂无数据");
}
System.err.println("----------------------------------------------");
System.out.println("List<ScTeams> list = ExcelImportUtil.importExcel: " + list);
int num = 0;
for (int i = 0; i < list.size(); i++) {
if (list.size() > 0 &&
list.get(i).getRuleNo() == null &&
list.get(i).getRuleCode() == null &&
list.get(i).getPmDescribe() == null &&
list.get(i).getModuleId() == null &&
list.get(i).getFunctionId() == null &&
list.get(i).getDiagrams() == null &&
list.get(i).getTableId() == null &&
list.get(i).getFieldId() == null &&
list.get(i).getManagerUsers() == null &&
list.get(i).getWorkLevel() == null &&
list.get(i).getWorkStatus() == null &&
list.get(i).getStartTime() == null &&
list.get(i).getManagerUsers() == null &&
list.get(i).getDuration() == null &&
list.get(i).getSubmitTime() == null &&
list.get(i).getRealDuration() == null&&
list.get(i).getStatus() == null&&
list.get(i).getVerisonStatus() == null&&
list.get(i).getVerison() == null) {
continue;
}
iRuleVoService.save(list.get(i));
if (num == 0) {
return Result.error("文件导入失败:导入模板不匹配");
} else {
return Result.ok("文件导入成功!");
}
}
}catch (Exception e) {
//update-begin-author:taoyan date:20211124 for: 导入数据重复增加提示
String msg = e.getMessage();
log.error(msg, e);
//if(msg!=null && msg.contains("Duplicate entry"))
if (msg != null && msg.indexOf("Duplicate entry") >= 0) {
return Result.error("文件导入失败:有重复数据!");
} else {
return Result.error("文件导入失败:" + e.getMessage());
}
//update-end-author:taoyan date:20211124 for: 导入数据重复增加提示
} finally {
try {
file.getInputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
List<RuleVo> ruleVoList = iRuleVoService.list();
if (ruleVoList.size()<=0||ruleVoList==null){
return Result.error("文件导入失败");
}
for (int i = 0; i < ruleVoList.size(); i++) {
RuleVo ruleVo = ruleVoList.get(i);
//对应字段
String fieldId = ruleVo.getFieldId();
Fieldx byId = iFieldxService.getById(fieldId);
if (byId==null){
return Result.error("字段输入错误,请核对");
}
//对应功能
String functionId = ruleVo.getFunctionId();
Fieldx byId1 = iFieldxService.getById(functionId);
if (byId1==null){
return Result.error("功能输入错误,请核对");
}
//对应模块
String moduleId = ruleVo.getModuleId();
Modulex byId2 = iModulexService.getById(moduleId);
if (byId2==null){
return Result.error("模块输入错误,请核对");
}
//对应实体
String tableId = ruleVo.getTableId();
Tablex byId3 = iTablexService.getById(tableId);
if (byId3==null){
return Result.error("实体输入错误,请核对");
}
try {
Double.valueOf(ruleVo.getDuration());
}catch (Exception e){
return Result.error("任务时长输入错误,请核对");
}
try {
Integer.valueOf(ruleVo.getRealDuration());
}catch (Exception e){
return Result.error("实际时长输入错误,请核对");
}
try {
Integer.valueOf(ruleVo.getWorkLevel());
}catch (Exception e){
return Result.error("任务等级输入错误,请核对");
}
try {
Double.valueOf(ruleVo.getWorkStatus());
}catch (Exception e){
return Result.error("任务状态输入错误,请核对");
}
try {
Integer.valueOf(ruleVo.getStatus());
}catch (Exception e){
return Result.error("规则输入错误,请核对");
}
try {
Double.valueOf(ruleVo.getVerisonStatus());
}catch (Exception e){
return Result.error("版本状态输入错误,请核对");
}
}
return Result.error("文件导入失败!");
}
@GetMapping(value = "/sort")
public Result<?> sort(@RequestParam(name="id",required=true) String id) {
return rulexService.sort(id);

@ -0,0 +1,181 @@
package org.jeecg.modules.demo.rulex.entity;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
//import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: 规则管理
* @Author: jeecg-boot
* @Date: 2023-04-10
* @Version: V1.0
*/
@Data
@TableName("rule_vo")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "rulex对象", description = "规则管理")
public class RuleVo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**
* 创建人
*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**
* 创建日期
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private String createTime;
/**
* 更新人
*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**
* 更新日期
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private String updateTime;
/**
* 对应模块id
*/
@Excel(name = "对应模块id", width = 15)
@ApiModelProperty(value = "对应模块id")
// /*@Dict(dictTable = "modulex", dicCode = "id", dicText = "module_name")*/
private java.lang.String moduleId;
/**
* 对应功能id
*/
@Excel(name = "对应功能id", width = 15)
@ApiModelProperty(value = "对应功能id")
// /*@Dict(dictTable = "functionx", dicCode = "id", dicText = "function_name")*/
private java.lang.String functionId;
/**
* 规则序号
*/
@Excel(name = "规则序号", width = 15)
@ApiModelProperty(value = "规则序号")
private java.lang.String ruleNo;
/**
* 规则编码
*/
@Excel(name = "规则编码", width = 15)
@ApiModelProperty(value = "规则编码")
private java.lang.String ruleCode;
/**
* 规则描述
*/
@Excel(name = "规则描述", width = 15)
@ApiModelProperty(value = "规则描述")
private java.lang.String pmDescribe;
/**
* 分析图
*/
@Excel(name = "分析图", width = 15)
@ApiModelProperty(value = "分析图")
private java.lang.String diagrams;
/**
* 对应实体id
*/
@Excel(name = "对应实体id", width = 15)
@ApiModelProperty(value = "对应实体id")
// @Dict(dictTable = "tablex", dicText = "table_name", dicCode = "id")
private java.lang.String tableId;
/**
* 对应字段
*/
@Excel(name = "对应字段", width = 15)
@ApiModelProperty(value = "对应字段")
// @Dict(dictTable = "fieldx", dicText = "field_name", dicCode = "id")
private java.lang.String fieldId;
/**
* 责任人
*/
@Excel(name = "责任人", width = 15)
@ApiModelProperty(value = "责任人")
private java.lang.String managerUsers;
/**
* 任务等级
*/
@Excel(name = "任务等级", width = 15)
@ApiModelProperty(value = "任务等级")
// @Dict(dicCode = "work_level")
private String workLevel;
/**
* 任务状态
*/
@Excel(name = "任务状态", width = 15)
@ApiModelProperty(value = "任务状态")
// @Dict(dicCode = "work_status")
private String workStatus;
/**
* 开始时间
*/
@Excel(name = "开始时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "开始时间")
private String startTime;
/**
* 任务时长
*/
@Excel(name = "任务时长", width = 15)
@ApiModelProperty(value = "任务时长")
private String duration;
/**
* 提交时间
*/
@Excel(name = "提交时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "提交时间")
private String submitTime;
/**
* 实际时长
*/
@Excel(name = "实际时长", width = 15)
@ApiModelProperty(value = "实际时长")
private String realDuration;
/**
* 规则状态
*/
@Excel(name = "规则状态", width = 15)
@ApiModelProperty(value = "规则状态")
// @Dict(dicCode = "status")
private String status;
/**
* 版本状态
*/
@Excel(name = "版本状态", width = 15)
@ApiModelProperty(value = "版本状态")
// @Dict(dicCode = "verison_status")
private String verisonStatus;
/**
* 版本号
*/
@Excel(name = "版本号", width = 15)
@ApiModelProperty(value = "版本号")
private java.lang.String verison;
}

@ -0,0 +1,16 @@
package org.jeecg.modules.demo.rulex.mapper;
import org.jeecg.modules.demo.rulex.entity.RuleVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author zjh
* @since 2023-07-10
*/
public interface RuleVoMapper extends BaseMapper<RuleVo> {
}

@ -28,4 +28,8 @@ public interface RulexMapper extends BaseMapper<Rulex> {
void upFstatus(String ruleId);
@Update("update modulex set work_status=9 where id=#{ruleId}")
void upMstatus(String ruleId);
//校验rule_no规则序号
@Select("select rule_no from rulex where function_id=#{function_id}")
List<String> checkRuleNo(String function_id);
}

@ -0,0 +1,16 @@
package org.jeecg.modules.demo.rulex.service;
import org.jeecg.modules.demo.rulex.entity.RuleVo;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author zjh
* @since 2023-07-10
*/
public interface IRuleVoService extends IService<RuleVo> {
}

@ -19,5 +19,7 @@ public interface IRulexService extends IService<Rulex> {
List<Rulex> queryRuleListByFunctionId(Functionx functionx);
void saveRulex(Functionx functionx);
}

@ -0,0 +1,20 @@
package org.jeecg.modules.demo.rulex.service.impl;
import org.jeecg.modules.demo.rulex.entity.RuleVo;
import org.jeecg.modules.demo.rulex.mapper.RuleVoMapper;
import org.jeecg.modules.demo.rulex.service.IRuleVoService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author zjh
* @since 2023-07-10
*/
@Service
public class RuleVoServiceImpl extends ServiceImpl<RuleVoMapper, RuleVo> implements IRuleVoService {
}

@ -0,0 +1,5 @@
package org.jeecg.modules.demo.rulex.util;
public interface DateValidator {
boolean isValid(String dateStr);
}

@ -0,0 +1,27 @@
package org.jeecg.modules.demo.rulex.util;
import org.jeecg.modules.demo.rulex.util.DateValidator;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class DateValidatorUsingDateFormat implements DateValidator {
private final String dateFormat;
public DateValidatorUsingDateFormat(String dateFormat) {
this.dateFormat = dateFormat;
}
@Override
public boolean isValid(String dateStr) {
final DateFormat sdf = new SimpleDateFormat(this.dateFormat);
sdf.setLenient(false);
try {
sdf.parse(dateStr);
} catch (ParseException e) {
return false;
}
return true;
}
}

@ -489,7 +489,7 @@ public class SysDictController {
params.setHeadRows(2);
params.setNeedSave(true);
try {
//导入Excel格式校验,看匹配的字段文本概率
// 导入Excel格式校验,看匹配的字段文本概率
Boolean t = ExcelImportCheckUtil.check(file.getInputStream(), SysDictPage.class, params);
if(!t){
throw new RuntimeException("导入Excel校验失败 !");

@ -1,329 +0,0 @@
server:
port: 18081
max-http-header-size: 65546
tomcat:
max-swallow-size: -1
error:
include-exception: true
include-stacktrace: ALWAYS
include-message: ALWAYS
servlet:
context-path: /jeecg-boot
compression:
enabled: true
min-response-size: 1024
mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/*
management:
endpoints:
web:
exposure:
include: metrics,httptrace
spring:
servlet:
multipart:
max-file-size: 1024MB
max-request-size: 1024MB
# mail:
# host: smtp.163.com
# username: jeecgos@163.com
# password: ??
# properties:
# mail:
# smtp:
# auth: true
# starttls:
# enable: true
# required: true
## quartz定时任务,采用数据库方式
# quartz:
# job-store-type: jdbc
# initialize-schema: embedded
# #设置自动启动,默认为 true
# auto-startup: true
# #启动时更新己存在的Job
# overwrite-existing-jobs: true
# properties:
# org:
# quartz:
# scheduler:
# instanceName: MyScheduler
# instanceId: AUTO
# jobStore:
# class: org.quartz.impl.jdbcjobstore.JobStoreTX
# driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
# tablePrefix: QRTZ_
# isClustered: true
# misfireThreshold: 60000
# clusterCheckinInterval: 10000
# threadPool:
# class: org.quartz.simpl.SimpleThreadPool
# threadCount: 10
# threadPriority: 5
# threadsInheritContextClassLoaderOfInitializingThread: true
#json 时间戳统一转换
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
jpa:
open-in-view: false
activiti:
check-process-definitions: false
#启用作业执行器
async-executor-activate: false
#启用异步执行器
job-executor-activate: false
aop:
proxy-target-class: true
#配置freemarker
freemarker:
# 设置模板后缀名
suffix: .ftl
# 设置文档类型
content-type: text/html
# 设置页面编码格式
charset: UTF-8
# 设置页面缓存
cache: false
prefer-file-system-access: false
# 设置ftl文件路径
template-loader-path:
- classpath:/templates
# 设置静态文件路径,js,css等
mvc:
static-path-pattern: /**
resource:
static-locations: classpath:/static/,classpath:/public/
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
datasource:
druid:
stat-view-servlet:
enabled: true
loginUsername: admin
loginPassword: 123456
allow:
web-stat-filter:
enabled: true
dynamic:
druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)
# 连接池的配置信息
# 初始化大小,最小,最大
initial-size: 5
min-idle: 5
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# 打开PSCache,并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall,slf4j
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
datasource:
master:
# url: jdbc:mysql://mysql-lee.mysql.rds.aliyuncs.com:3306/zy?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
# username: root1
# password: zxcvbnm023@lee
# driver-class-name: com.mysql.cj.jdbc.Driver
# 多数据源配置
#multi-datasource1:
url: jdbc:mysql://182.92.169.222:3306/project_management?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
username: root
password: ycwl2022.
driver-class-name: com.mysql.cj.jdbc.Driver
#redis 配置
redis:
database: 2
host: 127.0.0.1
lettuce:
pool:
max-active: 8 #最大连接数据库连接数,设 -1 为没有限制
max-idle: 8 #最大等待连接中的数量,设 0 为没有限制
max-wait: -1ms #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
min-idle: 0 #最小等待连接中的数量,设 0 为没有限制
shutdown-timeout: 100ms
password:
port: 6379
# password: 'zy2021zy'
# port: 7480
#mybatis plus 设置
mybatis-plus:
mapper-locations: classpath*:org/jeecg/modules/**/xml/*Mapper.xml
global-config:
# 关闭MP3.0自带的banner
banner: false
db-config:
#主键类型 0:"数据库ID自增",1:"该类型为未设置主键类型", 2:"用户输入ID",3:"全局唯一ID (数字类型唯一ID)", 4:"全局唯一ID UUID",5:"字符串全局唯一ID (idWorker 的字符串表示)";
id-type: ASSIGN_ID
# 默认数据库表下划线命名
table-underline: true
configuration:
# 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 返回类型为Map,显示null对应的字段
call-setters-on-nulls: true
#jeecg专用配置
minidao:
base-package: org.jeecg.modules.jmreport.*
#DB类型(mysql | postgresql | oracle | sqlserver| other)
db-type: mysql
jeecg:
wordPath: /opt/word
# 本地:local\Minio:minio\阿里云:alioss
uploadType: local
path:
#文件上传根目录 设置
upload: /opt/upFiles
#webapp文件路径
webapp: /opt/webapp
shiro:
excludeUrls: /VideoRecorder/jeecgDemo/demo3,/VideoRecorder/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**
#阿里云oss存储和大鱼短信秘钥配置
oss:
accessKey: ??
secretKey: ??
endpoint: oss-cn-beijing.aliyuncs.com
bucketName: ??
# ElasticSearch 6设置
elasticsearch:
cluster-name: jeecg-ES
cluster-nodes: 127.0.0.1:9200
check-enabled: false
# 表单设计器配置
desform:
# 主题颜色(仅支持 16进制颜色代码)
theme-color: "#1890ff"
# 文件、图片上传方式,可选项:qiniu(七牛云)、system(跟随系统配置)
upload-type: system
map:
# 配置百度地图的AK,申请地址:https://lbs.baidu.com/apiconsole/key?application=key#/home
baidu: ??
# 在线预览文件服务器地址配置
file-view-domain: 127.0.0.1:8012
# minio文件上传
minio:
minio_url: http://minio.jeecg.com
minio_name: ??
minio_pass: ??
bucketName: otatest
#大屏报表参数设置
jmreport:
mode: dev
#数据字典是否进行saas数据隔离,自己看自己的字典
saas: false
#是否需要校验token
is_verify_token: true
#必须校验方法
verify_methods: remove,delete,save,add,update
#Wps在线文档
wps:
domain: https://wwo.wps.cn/office/
appid: ??
appsecret: ??
#xxl-job配置
xxljob:
enabled: false
adminAddresses: http://127.0.0.1:9080/xxl-job-admin
appname: ${spring.application.name}
accessToken: ''
address: 127.0.0.1:30007
ip: 127.0.0.1
port: 30007
logPath: logs/jeecg/job/jobhandler/
logRetentionDays: 30
#自定义路由配置 yml nacos database
route:
config:
data-id: jeecg-gateway-router
group: DEFAULT_GROUP
data-type: yml
#分布式锁配置
redisson:
address: 127.0.0.1:6379
password:
type: STANDALONE
enabled: true
#cas单点登录
cas:
prefixUrl: http://cas.example.org:8443/cas
#Mybatis输出sql日志
logging:
level:
org.jeecg.modules.system.mapper: info
#swagger
knife4j:
production: false
basic:
enable: true
username: jeecg
password: jeecg1314
#第三方登录
justauth:
enabled: true
type:
GITHUB:
client-id: ??
client-secret: ??
redirect-uri: http://sso.VideoRecorder.com:8080/jeecg-boot/sys/thirdLogin/github/callback
WECHAT_ENTERPRISE:
client-id: ??
client-secret: ??
redirect-uri: http://sso.VideoRecorder.com:8080/jeecg-boot/sys/thirdLogin/wechat_enterprise/callback
agent-id: ??
DINGTALK:
client-id: ??
client-secret: ??
redirect-uri: http://sso.VideoRecorder.com:8080/jeecg-boot/sys/thirdLogin/dingtalk/callback
WECHAT_OPEN:
client-id: ??
client-secret: ??
redirect-uri: http://sso.VideoRecorder.com:8080/jeecg-boot/sys/thirdLogin/wechat_open/callback
cache:
type: default
prefix: 'demo::'
timeout: 1h
#第三方APP对接
third-app:
enabled: false
type:
#企业微信
WECHAT_ENTERPRISE:
enabled: false
#CORP_ID
client-id: ??
#SECRET
client-secret: ??
#自建应用id
agent-id: ??
#自建应用秘钥(新版企微需要配置)
# agent-app-secret: ??
#钉钉
DINGTALK:
enabled: false
# appKey
client-id: ??
# appSecret
client-secret: ??
agent-id: ??
mq:
pay:
exchange:
order: exchange.order
returnorder: exchange.returnorder
queue:
order: queue.order
returnorder: queue.returnorder
routing:
key: queue.order
returnorder: queue.returnorder
Loading…
Cancel
Save