From f6b24005a10c4b817cb64e3d96929ba621ca89a1 Mon Sep 17 00:00:00 2001 From: yangjun <1173114630@qq.com> Date: Tue, 14 Jan 2025 10:05:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/system/query/QueryGenerator.java | 183 +++++++++++ .../controller/BlJbzdjsController.java | 8 + .../demo/blJbzdjs/entity/BlJbzdjs.java | 9 +- .../controller/BlKckhclblController.java | 176 +++++++++++ .../demo/blKckhclbl/entity/BlKckhclbl.java | 68 ++++ .../blKckhclbl/mapper/BlKckhclblMapper.java | 17 + .../mapper/xml/BlKckhclblMapper.xml | 5 + .../service/IBlKckhclblService.java | 14 + .../service/impl/BlKckhclblServiceImpl.java | 21 ++ .../controller/XxhbjwxtjxrwController.java | 63 ++++ .../xxhbjwxtjxrw/entity/Xxhbjwxtjxrw.java | 9 + .../mapper/XxhbjwxtjxrwMapper.java | 5 + .../mapper/xml/XxhbjwxtjxrwMapper.xml | 8 + .../service/IXxhbjwxtjxrwService.java | 5 + .../service/impl/XxhbjwxtjxrwServiceImpl.java | 7 + .../controller/XxhbjwxtscwjxxController.java | 4 +- .../mapper/XxhbjwxtscwjxxMapper.java | 5 + .../mapper/xml/XxhbjwxtscwjxxMapper.xml | 10 + .../service/IXxhbjwxtscwjxxService.java | 5 + .../impl/XxhbjwxtscwjxxServiceImpl.java | 7 + .../tjbb16/controller/TjbbController.java | 64 ++++ jeecgboot-vue3/.env | 2 +- jeecgboot-vue3/public/download/xdqksm.docx | Bin 0 -> 16429 bytes .../src/views/bl/blJbzdjs/BlJbzdjs.data.ts | 22 +- .../src/views/bl/blJbzdjs/BlJbzdjsList.vue | 132 +++++--- .../src/views/bl/blJbzdjs/BlJbzdjsZjList.vue | 141 ++++++++- .../bl/blJbzdjs/components/BlJbzdjsForm.vue | 48 ++- .../src/views/bl/blKckhclbl/BlKckhclbl.api.ts | 72 +++++ .../views/bl/blKckhclbl/BlKckhclbl.data.ts | 30 ++ .../views/bl/blKckhclbl/BlKckhclblList.vue | 240 ++++++++++++++ .../blKckhclbl/components/BlKckhclblForm.vue | 172 ++++++++++ .../blKckhclbl/components/BlKckhclblModal.vue | 81 +++++ .../src/views/bl/xxhbjwxtjxrw/BlkhclList.vue | 295 ++++++++++++++++++ .../views/bl/xxhbjwxtjxrw/Xxhbjwxtjxrw.api.ts | 2 + .../bl/xxhbjwxtjxrw/Xxhbjwxtjxrw.data.ts | 46 +++ .../views/bl/xxhbjwxtscwjxx/KhpjclList.vue | 3 +- .../bl/xxhbjwxtscwjxx/XxhbjwxtscwjxxList.vue | 3 +- .../src/views/bl/zjSqxx/ZjSqxx.data.ts | 10 +- .../bl/zjSqxx/components/ZjSqxxEditForm.vue | 8 +- .../views/bl/zjSqxx/components/ZjSqxxForm.vue | 6 +- jeecgboot-vue3/src/views/tjbbVue/TjbbList.vue | 24 +- 41 files changed, 1922 insertions(+), 108 deletions(-) create mode 100644 jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/controller/BlKckhclblController.java create mode 100644 jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/entity/BlKckhclbl.java create mode 100644 jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/mapper/BlKckhclblMapper.java create mode 100644 jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/mapper/xml/BlKckhclblMapper.xml create mode 100644 jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/service/IBlKckhclblService.java create mode 100644 jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/service/impl/BlKckhclblServiceImpl.java create mode 100644 jeecgboot-vue3/public/download/xdqksm.docx create mode 100644 jeecgboot-vue3/src/views/bl/blKckhclbl/BlKckhclbl.api.ts create mode 100644 jeecgboot-vue3/src/views/bl/blKckhclbl/BlKckhclbl.data.ts create mode 100644 jeecgboot-vue3/src/views/bl/blKckhclbl/BlKckhclblList.vue create mode 100644 jeecgboot-vue3/src/views/bl/blKckhclbl/components/BlKckhclblForm.vue create mode 100644 jeecgboot-vue3/src/views/bl/blKckhclbl/components/BlKckhclblModal.vue create mode 100644 jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/BlkhclList.vue diff --git a/jeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/query/QueryGenerator.java b/jeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/query/QueryGenerator.java index 722093f..682890c 100644 --- a/jeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/query/QueryGenerator.java +++ b/jeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/query/QueryGenerator.java @@ -2,6 +2,7 @@ package org.jeecg.common.system.query; import java.beans.PropertyDescriptor; import java.io.UnsupportedEncodingException; +import java.lang.reflect.Field; import java.math.BigDecimal; import java.net.URLDecoder; import java.text.ParseException; @@ -11,6 +12,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; +import com.baomidou.mybatisplus.annotation.TableField; import org.apache.commons.beanutils.PropertyUtils; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.DataBaseConstant; @@ -113,6 +115,187 @@ public class QueryGenerator { } //update-end---author:chenrui ---date:20240527 for:[TV360X-378]增加自定义字段查询规则功能------------ + /** + * 获取查询条件构造器QueryWrapper实例 通用查询条件已被封装完成 + * @param searchObj 查询实体 + * @param parameterMap request.getParameterMap() + * @return QueryWrapper实例 + */ + public static QueryWrapper initQueryWrapper(String columnPrefix,T searchObj,Map parameterMap){ + long start = System.currentTimeMillis(); + QueryWrapper queryWrapper = new QueryWrapper(); + installMplus(queryWrapper, columnPrefix, searchObj, parameterMap); + log.debug("---查询条件构造器初始化完成,耗时:"+(System.currentTimeMillis()-start)+"毫秒----"); + return queryWrapper; + } + + /** + * 组装Mybatis Plus 查询条件 + *

使用此方法 需要有如下几点注意: + *
1.使用QueryWrapper 而非LambdaQueryWrapper; + *
2.实例化QueryWrapper时不可将实体传入参数 + *
错误示例:如QueryWrapper queryWrapper = new QueryWrapper(jeecgDemo); + *
正确示例:QueryWrapper queryWrapper = new QueryWrapper(); + *
3.也可以不使用这个方法直接调用 {@link #initQueryWrapper}直接获取实例 + */ + private static void installMplus(QueryWrapper queryWrapper,String columnPrefix,Object searchObj,Map parameterMap) { + + /* + * 注意:权限查询由前端配置数据规则 当一个人有多个所属部门时候 可以在规则配置包含条件 orgCode 包含 #{sys_org_code} + 但是不支持在自定义SQL中写orgCode in #{sys_org_code} + 当一个人只有一个部门 就直接配置等于条件: orgCode 等于 #{sys_org_code} 或者配置自定义SQL: orgCode = '#{sys_org_code}' + */ + + //区间条件组装 模糊查询 高级查询组装 简单排序 权限查询 + PropertyDescriptor[] origDescriptors = PropertyUtils.getPropertyDescriptors(searchObj); + Map ruleMap = getRuleMap(); + + //权限规则自定义SQL表达式 + for (String c : ruleMap.keySet()) { + if(oConvertUtils.isNotEmpty(c) && c.startsWith(SQL_RULES_COLUMN)){ + queryWrapper.and(i ->i.apply(getSqlRuleValue(ruleMap.get(c).getRuleValue()))); + } + } + + String name, type, column; + // update-begin--Author:taoyan Date:20200923 for:issues/1671 如果字段加注解了@TableField(exist = false),不走DB查询------- + //定义实体字段和数据库字段名称的映射 高级查询中 只能获取实体字段 如果设置TableField注解 那么查询条件会出问题 + Map fieldColumnMap = new HashMap<>(5); + for (int i = 0; i < origDescriptors.length; i++) { + //aliasName = origDescriptors[i].getName(); mybatis 不存在实体属性 不用处理别名的情况 + name = origDescriptors[i].getName(); + type = origDescriptors[i].getPropertyType().toString(); + try { + if (judgedIsUselessField(name)|| !PropertyUtils.isReadable(searchObj, name)) { + continue; + } + + Object value = PropertyUtils.getSimpleProperty(searchObj, name); + column = getTableFieldName(searchObj.getClass(), name); + if(column==null){ + //column为null只有一种情况 那就是 添加了注解@TableField(exist = false) 后续都不用处理了 + continue; + } + //二开项目组新增,为了支持多表,添加别名 + if(oConvertUtils.isNotEmpty(columnPrefix)){ + column = columnPrefix + "." + column; + } + fieldColumnMap.put(name,column); + //数据权限查询 + if(ruleMap.containsKey(name)) { + addRuleToQueryWrapper(ruleMap.get(name), column, origDescriptors[i].getPropertyType(), queryWrapper); + } + //区间查询 + doIntervalQuery(queryWrapper, parameterMap, type, name, column); + //判断单值 参数带不同标识字符串 走不同的查询 + //TODO 这种前后带逗号的支持分割后模糊查询(多选字段查询生效) 示例:,1,3, + if (null != value && value.toString().startsWith(COMMA) && value.toString().endsWith(COMMA)) { + String multiLikeval = value.toString().replace(",,", COMMA); + String[] vals = multiLikeval.substring(1, multiLikeval.length()).split(COMMA); + final String field = oConvertUtils.camelToUnderline(column); + if(vals.length>1) { + queryWrapper.and(j -> { + log.info("---查询过滤器,Query规则---field:{}, rule:{}, value:{}", field, "like", vals[0]); + j = j.like(field,vals[0]); + for (int k=1;k j.like(field,vals[0])); + } + }else { + //根据参数值带什么关键字符串判断走什么类型的查询 + QueryRuleEnum rule = convert2Rule(value); + value = replaceValue(rule,value); + // add -begin 添加判断为字符串时设为全模糊查询 + //if( (rule==null || QueryRuleEnum.EQ.equals(rule)) && "class java.lang.String".equals(type)) { + // 可以设置左右模糊或全模糊,因人而异 + //rule = QueryRuleEnum.LIKE; + //} + // add -end 添加判断为字符串时设为全模糊查询 + addEasyQuery(queryWrapper, column, rule, value); + } + + } catch (Exception e) { + log.error(e.getMessage(), e); + } + } + // 排序逻辑 处理 + doMultiFieldsOrder(queryWrapper, parameterMap, fieldColumnMap); + + //高级查询 + doSuperQuery(queryWrapper, parameterMap, fieldColumnMap); + // update-end--Author:taoyan Date:20200923 for:issues/1671 如果字段加注解了@TableField(exist = false),不走DB查询------- + + } + /** + * 获取表字段名 + * @param clazz + * @param name + * @return + */ + private static String getTableFieldName(Class clazz, String name) { + try { + //如果字段加注解了@TableField(exist = false),不走DB查询 + Field field = null; + try { + field = clazz.getDeclaredField(name); + } catch (NoSuchFieldException e) { + //e.printStackTrace(); + } + + //如果为空,则去父类查找字段 + if (field == null) { + List allFields = getClassFields(clazz); + List searchFields = allFields.stream().filter(a -> a.getName().equals(name)).collect(Collectors.toList()); + if(searchFields!=null && searchFields.size()>0){ + field = searchFields.get(0); + } + } + + if (field != null) { + TableField tableField = field.getAnnotation(TableField.class); + if (tableField != null){ + if(tableField.exist() == false){ + //如果设置了TableField false 这个字段不需要处理 + return null; + }else{ + String column = tableField.value(); + //如果设置了TableField value 这个字段是实体字段 + if(!"".equals(column)){ + return column; + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return name; + } + + /** + * 获取class的 包括父类的 + * @param clazz + * @return + */ + private static List getClassFields(Class clazz) { + List list = new ArrayList(); + Field[] fields; + do{ + fields = clazz.getDeclaredFields(); + for(int i = 0;i使用此方法 需要有如下几点注意: diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blJbzdjs/controller/BlJbzdjsController.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blJbzdjs/controller/BlJbzdjsController.java index 6bf1b28..a32e27f 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blJbzdjs/controller/BlJbzdjsController.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blJbzdjs/controller/BlJbzdjsController.java @@ -190,6 +190,14 @@ public class BlJbzdjsController extends JeecgController-1){ + + }else{ + blJbzdjs.setDwmc(loginUser.getDepartIds()); + } + return super.exportXls(request, blJbzdjs, BlJbzdjs.class, "bl_jbzdjs"); } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blJbzdjs/entity/BlJbzdjs.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blJbzdjs/entity/BlJbzdjs.java index b779e9c..18724e7 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blJbzdjs/entity/BlJbzdjs.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blJbzdjs/entity/BlJbzdjs.java @@ -81,16 +81,19 @@ public class BlJbzdjs implements Serializable { @ApiModelProperty(value = "年度") private java.lang.String years; /**修订情况*/ - @Excel(name = "修订情况", width = 15, dicCode = "zd_xdqk") @Dict(dicCode = "zd_xdqk") @ApiModelProperty(value = "修订情况") private java.lang.String yearsType; /**附件*/ - @Excel(name = "附件", width = 15) @ApiModelProperty(value = "附件") private java.lang.String filePath; /**文件服务器*/ - @Excel(name = "文件服务器", width = 15) @ApiModelProperty(value = "文件服务器") private java.lang.String ftpPath; + /**修订情况说明*/ + @ApiModelProperty(value = "修订情况说明") + private java.lang.String xdqksmPath; + /**文件服务器修订情况说明位置*/ + @ApiModelProperty(value = "文件服务器修订情况说明位置") + private java.lang.String ftpXdqksmPath; } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/controller/BlKckhclblController.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/controller/BlKckhclblController.java new file mode 100644 index 0000000..ed1f42b --- /dev/null +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/controller/BlKckhclblController.java @@ -0,0 +1,176 @@ +package org.jeecg.modules.demo.blKckhclbl.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.blKckhclbl.entity.BlKckhclbl; +import org.jeecg.modules.demo.blKckhclbl.service.IBlKckhclblService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +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; +import org.apache.shiro.authz.annotation.RequiresPermissions; + + /** + * @Description: 课程考核材料补录信息 + * @Author: jeecg-boot + * @Date: 2024-12-25 + * @Version: V1.0 + */ +@Api(tags="课程考核材料补录信息") +@RestController +@RequestMapping("/blKckhclbl/blKckhclbl") +@Slf4j +public class BlKckhclblController extends JeecgController { + @Autowired + private IBlKckhclblService blKckhclblService; + + /** + * 分页列表查询 + * + * @param blKckhclbl + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "课程考核材料补录信息-分页列表查询") + @ApiOperation(value="课程考核材料补录信息-分页列表查询", notes="课程考核材料补录信息-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(BlKckhclbl blKckhclbl, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(blKckhclbl, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = blKckhclblService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param blKckhclbl + * @return + */ + @AutoLog(value = "课程考核材料补录信息-添加") + @ApiOperation(value="课程考核材料补录信息-添加", notes="课程考核材料补录信息-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody BlKckhclbl blKckhclbl) { + blKckhclblService.save(blKckhclbl); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param blKckhclbl + * @return + */ + @AutoLog(value = "课程考核材料补录信息-编辑") + @ApiOperation(value="课程考核材料补录信息-编辑", notes="课程考核材料补录信息-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody BlKckhclbl blKckhclbl) { + blKckhclblService.updateById(blKckhclbl); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "课程考核材料补录信息-通过id删除") + @ApiOperation(value="课程考核材料补录信息-通过id删除", notes="课程考核材料补录信息-通过id删除") + @RequiresPermissions("blKckhclbl:bl_kckhclbl:delete") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + blKckhclblService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "课程考核材料补录信息-批量删除") + @ApiOperation(value="课程考核材料补录信息-批量删除", notes="课程考核材料补录信息-批量删除") + @RequiresPermissions("blKckhclbl:bl_kckhclbl:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.blKckhclblService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "课程考核材料补录信息-通过id查询") + @ApiOperation(value="课程考核材料补录信息-通过id查询", notes="课程考核材料补录信息-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + BlKckhclbl blKckhclbl = blKckhclblService.getById(id); + if(blKckhclbl==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(blKckhclbl); + } + + /** + * 导出excel + * + * @param request + * @param blKckhclbl + */ + @RequiresPermissions("blKckhclbl:bl_kckhclbl:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, BlKckhclbl blKckhclbl) { + return super.exportXls(request, blKckhclbl, BlKckhclbl.class, "课程考核材料补录信息"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequiresPermissions("blKckhclbl:bl_kckhclbl:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, BlKckhclbl.class); + } + +} diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/entity/BlKckhclbl.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/entity/BlKckhclbl.java new file mode 100644 index 0000000..9103f99 --- /dev/null +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/entity/BlKckhclbl.java @@ -0,0 +1,68 @@ +package org.jeecg.modules.demo.blKckhclbl.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableLogic; +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: 2024-12-25 + * @Version: V1.0 + */ +@Data +@TableName("bl_kckhclbl") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="bl_kckhclbl对象", description="课程考核材料补录信息") +public class BlKckhclbl implements Serializable { + private static final long serialVersionUID = 1L; + + /**id*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private java.lang.String id; + /**createBy*/ + @ApiModelProperty(value = "createBy") + private java.lang.String createBy; + /**createTime*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "createTime") + private java.util.Date createTime; + /**updateBy*/ + @ApiModelProperty(value = "updateBy") + private java.lang.String updateBy; + /**updateTime*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "updateTime") + private java.util.Date updateTime; + /**课程任务代码*/ + @Excel(name = "课程任务代码", width = 15) + @ApiModelProperty(value = "课程任务代码") + private java.lang.String kcrwdm; + /**补录类型*/ + @Excel(name = "补录类型", width = 15, dicCode = "kckhcl_bltype") + @Dict(dicCode = "kckhcl_bltype") + @ApiModelProperty(value = "补录类型") + private java.lang.String blType; + /**补录附件*/ + @Excel(name = "补录附件", width = 15) + @ApiModelProperty(value = "补录附件") + private java.lang.String blFilePath; +} diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/mapper/BlKckhclblMapper.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/mapper/BlKckhclblMapper.java new file mode 100644 index 0000000..7599c3c --- /dev/null +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/mapper/BlKckhclblMapper.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.demo.blKckhclbl.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.demo.blKckhclbl.entity.BlKckhclbl; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 课程考核材料补录信息 + * @Author: jeecg-boot + * @Date: 2024-12-25 + * @Version: V1.0 + */ +public interface BlKckhclblMapper extends BaseMapper { + +} diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/mapper/xml/BlKckhclblMapper.xml b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/mapper/xml/BlKckhclblMapper.xml new file mode 100644 index 0000000..f7cb8f4 --- /dev/null +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/mapper/xml/BlKckhclblMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/service/IBlKckhclblService.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/service/IBlKckhclblService.java new file mode 100644 index 0000000..ddb8c24 --- /dev/null +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/service/IBlKckhclblService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.demo.blKckhclbl.service; + +import org.jeecg.modules.demo.blKckhclbl.entity.BlKckhclbl; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 课程考核材料补录信息 + * @Author: jeecg-boot + * @Date: 2024-12-25 + * @Version: V1.0 + */ +public interface IBlKckhclblService extends IService { + +} diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/service/impl/BlKckhclblServiceImpl.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/service/impl/BlKckhclblServiceImpl.java new file mode 100644 index 0000000..074c692 --- /dev/null +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/service/impl/BlKckhclblServiceImpl.java @@ -0,0 +1,21 @@ +package org.jeecg.modules.demo.blKckhclbl.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import org.jeecg.modules.demo.blKckhclbl.entity.BlKckhclbl; +import org.jeecg.modules.demo.blKckhclbl.mapper.BlKckhclblMapper; +import org.jeecg.modules.demo.blKckhclbl.service.IBlKckhclblService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 课程考核材料补录信息 + * @Author: jeecg-boot + * @Date: 2024-12-25 + * @Version: V1.0 + */ +@Service +@DS("multi-datasource1") +public class BlKckhclblServiceImpl extends ServiceImpl implements IBlKckhclblService { + +} diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/controller/XxhbjwxtjxrwController.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/controller/XxhbjwxtjxrwController.java index b287b7b..44f2ccc 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/controller/XxhbjwxtjxrwController.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/controller/XxhbjwxtjxrwController.java @@ -107,6 +107,20 @@ public class XxhbjwxtjxrwController extends JeecgController> listbl(Xxhbjwxtjxrw xxhbjwxtjxrw, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper("a",xxhbjwxtjxrw, req.getParameterMap()); + + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String xnxq = "0"; + + if(StringUtils.isNotBlank(xxhbjwxtjxrw.getZjxnxq())){ + queryWrapper.eq(StringUtils.isNotBlank(xxhbjwxtjxrw.getZjxnxq()),"concat(a.xn,a.xqmc)",xxhbjwxtjxrw.getZjxnxq()); + }else if(StringUtils.equals(xnxq,"0")){ + String dqxq = commonApi.translateDict("dqxq","1"); + queryWrapper.eq("concat(a.xn,a.xqmc)",dqxq); + } + + if(StringUtils.isNotBlank(xxhbjwxtjxrw.getSfxybl())){ + if(StringUtils.equals("0",xxhbjwxtjxrw.getSfxybl())){ + queryWrapper.apply(" b.bl_type is not null"); + }else{ + queryWrapper.apply(" b.bl_type is null"); + } + } + + + queryWrapper.eq( "a.file_shztmc","审核通过"); + + queryWrapper.like(StringUtils.isNotBlank(xxhbjwxtjxrw.getZhuanye()),"a.zymc",xxhbjwxtjxrw.getZhuanye()); + queryWrapper.apply(StringUtils.isNotBlank(xxhbjwxtjxrw.getZhicheng()),"SUBSTRING(a.TEAXM,LOCATE('[',a.TEAXM)+1,locate(']',a.TEAXM)-locate('[',a.TEAXM)-1) = '"+xxhbjwxtjxrw.getZhicheng()+"'"); + + + Page page = new Page(pageNo, pageSize); + IPage pageList = xxhbjwxtjxrwService.listbl(page, queryWrapper); + + + return Result.OK(pageList); + } + } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/entity/Xxhbjwxtjxrw.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/entity/Xxhbjwxtjxrw.java index 04fb99d..2810e3a 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/entity/Xxhbjwxtjxrw.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/entity/Xxhbjwxtjxrw.java @@ -101,4 +101,13 @@ public class Xxhbjwxtjxrw implements Serializable { private java.lang.String zjxnxq;//专家展示学年学期 @TableField(exist = false) private java.lang.String sfxk;//是否选课 0未选 1已选 + + @TableField(exist = false) + private java.lang.String blFilePath;//补录材料地址 + @TableField(exist = false) + private java.lang.String blType;//补录类型 + @TableField(exist = false) + private java.lang.String sfxybl;//是否需要补录 + + } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/mapper/XxhbjwxtjxrwMapper.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/mapper/XxhbjwxtjxrwMapper.java index ed97c3b..15e95fd 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/mapper/XxhbjwxtjxrwMapper.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/mapper/XxhbjwxtjxrwMapper.java @@ -2,6 +2,10 @@ package org.jeecg.modules.demo.xxhbjwxtjxrw.mapper; import java.util.List; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.demo.xxhbjwxtjxrw.entity.Xxhbjwxtjxrw; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -14,4 +18,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface XxhbjwxtjxrwMapper extends BaseMapper { + IPage listbl(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/mapper/xml/XxhbjwxtjxrwMapper.xml b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/mapper/xml/XxhbjwxtjxrwMapper.xml index 2c20999..f6f423c 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/mapper/xml/XxhbjwxtjxrwMapper.xml +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/mapper/xml/XxhbjwxtjxrwMapper.xml @@ -6,4 +6,12 @@ select *,concat(xn,xqmc) as zjxnxq from xxhbjwxtjxrw ${ew.customSqlSegment} + + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/service/IXxhbjwxtjxrwService.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/service/IXxhbjwxtjxrwService.java index cc1914c..0038391 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/service/IXxhbjwxtjxrwService.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/service/IXxhbjwxtjxrwService.java @@ -1,5 +1,8 @@ package org.jeecg.modules.demo.xxhbjwxtjxrw.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.demo.xxhbjwxtjxrw.entity.Xxhbjwxtjxrw; import com.baomidou.mybatisplus.extension.service.IService; @@ -14,4 +17,6 @@ import java.util.List; public interface IXxhbjwxtjxrwService extends IService { void syncList(List outDataList); + + IPage listbl(Page page, QueryWrapper queryWrapper); } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/service/impl/XxhbjwxtjxrwServiceImpl.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/service/impl/XxhbjwxtjxrwServiceImpl.java index 5f44091..7e7c1fd 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/service/impl/XxhbjwxtjxrwServiceImpl.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/service/impl/XxhbjwxtjxrwServiceImpl.java @@ -2,6 +2,8 @@ package org.jeecg.modules.demo.xxhbjwxtjxrw.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.demo.xxhbjwxtjxrw.entity.Xxhbjwxtjxrw; import org.jeecg.modules.demo.xxhbjwxtjxrw.mapper.XxhbjwxtjxrwMapper; import org.jeecg.modules.demo.xxhbjwxtjxrw.service.IXxhbjwxtjxrwService; @@ -29,6 +31,11 @@ public class XxhbjwxtjxrwServiceImpl extends ServiceImpl listbl(Page page, QueryWrapper queryWrapper) { + return baseMapper.listbl(page,queryWrapper); + } + @Transactional(rollbackFor = {Exception.class}) public boolean syncList(Collection entityList, boolean isDelete) { QueryWrapper dqw = new QueryWrapper(); diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/controller/XxhbjwxtscwjxxController.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/controller/XxhbjwxtscwjxxController.java index b5ba760..59bb793 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/controller/XxhbjwxtscwjxxController.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/controller/XxhbjwxtscwjxxController.java @@ -102,7 +102,7 @@ public class XxhbjwxtscwjxxController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper(xxhbjwxtscwjxx, req.getParameterMap()); Page page = new Page(pageNo, pageSize); - IPage pageList = xxhbjwxtscwjxxService.page(page, queryWrapper); + IPage pageList = xxhbjwxtscwjxxService.khcllist(page, queryWrapper); pageList.getRecords().forEach(item->{ item.setId(item.getPath()); }); @@ -111,7 +111,7 @@ public class XxhbjwxtscwjxxController extends JeecgController list = pageList.getRecords(); if(list.size()>0){ List list2 = new ArrayList<>(); - String sorts[] = ("历次过程性考核-评分标准,历次过程性考核-内容及要求(或试题),课程考核合理性审核记录单,期末考试-评分标准,期未考试-试题(或内容及要求),课程考核质量评价单,课程目标达成情况评价报告").split(","); + String sorts[] = ("历次过程性考核-评分标准,历次过程性考核-内容及要求(或试题),课程考核合理性审核记录单,期末考试-评分标准,期未考试-试题(或内容及要求),课程考核质量评价单,课程目标达成情况评价报告,课程教学大纲").split(","); for (String par : sorts){ list2.add(list.stream().filter(item->item.getFjtype().equals(par)).findFirst().orElse(null)); diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/mapper/XxhbjwxtscwjxxMapper.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/mapper/XxhbjwxtscwjxxMapper.java index 5223a66..fcbea40 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/mapper/XxhbjwxtscwjxxMapper.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/mapper/XxhbjwxtscwjxxMapper.java @@ -2,6 +2,10 @@ package org.jeecg.modules.demo.xxhbjwxtscwjxx.mapper; import java.util.List; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.demo.xxhbjwxtscwjxx.entity.Xxhbjwxtscwjxx; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -14,4 +18,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface XxhbjwxtscwjxxMapper extends BaseMapper { + IPage khclList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/mapper/xml/XxhbjwxtscwjxxMapper.xml b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/mapper/xml/XxhbjwxtscwjxxMapper.xml index 752159b..bf53b65 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/mapper/xml/XxhbjwxtscwjxxMapper.xml +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/mapper/xml/XxhbjwxtscwjxxMapper.xml @@ -2,4 +2,14 @@ + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/service/IXxhbjwxtscwjxxService.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/service/IXxhbjwxtscwjxxService.java index 711d258..e266209 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/service/IXxhbjwxtscwjxxService.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/service/IXxhbjwxtscwjxxService.java @@ -1,5 +1,8 @@ package org.jeecg.modules.demo.xxhbjwxtscwjxx.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.demo.xxhbjwxtjxrw.entity.Xxhbjwxtjxrw; import org.jeecg.modules.demo.xxhbjwxtscwjxx.entity.Xxhbjwxtscwjxx; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +21,6 @@ public interface IXxhbjwxtscwjxxService extends IService { void syncList(List outDataList); Xxhbjwxtscwjxx getBatchDown(Xxhbjwxtscwjxx xxhbjwxtscwjxx, HttpServletResponse response); + + IPage khcllist(Page page, QueryWrapper queryWrapper); } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/service/impl/XxhbjwxtscwjxxServiceImpl.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/service/impl/XxhbjwxtscwjxxServiceImpl.java index e866920..688f39c 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/service/impl/XxhbjwxtscwjxxServiceImpl.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/service/impl/XxhbjwxtscwjxxServiceImpl.java @@ -2,6 +2,8 @@ package org.jeecg.modules.demo.xxhbjwxtscwjxx.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.demo.xxhbjwxtjxrw.entity.Xxhbjwxtjxrw; import org.jeecg.modules.demo.xxhbjwxtscwjxx.entity.Xxhbjwxtscwjxx; import org.jeecg.modules.demo.xxhbjwxtscwjxx.mapper.XxhbjwxtscwjxxMapper; @@ -134,6 +136,11 @@ public class XxhbjwxtscwjxxServiceImpl extends ServiceImpl khcllist(Page page, QueryWrapper queryWrapper) { + return baseMapper.khclList(page,queryWrapper); + } + private String getDownloadPath(String path){ String filePath = ""; // if(StringUtils.isNotBlank(path)){ diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tjbb/tjbb16/controller/TjbbController.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tjbb/tjbb16/controller/TjbbController.java index 088e492..e67e5e2 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tjbb/tjbb16/controller/TjbbController.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tjbb/tjbb16/controller/TjbbController.java @@ -20,9 +20,11 @@ import org.jeecg.common.util.oConvertUtils; import org.jeecg.config.JeecgBaseConfig; import org.jeecg.modules.tjbb.tjbb141.entity.Tjbb_141; import org.jeecg.modules.tjbb.tjbb141.service.ITjbb_141Service; +import org.jeecg.modules.tjbb.tjbb151.entity.Tjbb_151; import org.jeecg.modules.tjbb.tjbb151.service.ITjbb_151Service; import org.jeecg.modules.tjbb.tjbb152.entity.Tjbb_152; import org.jeecg.modules.tjbb.tjbb152.service.ITjbb_152Service; +import org.jeecg.modules.tjbb.tjbb153.entity.Tjbb_153; import org.jeecg.modules.tjbb.tjbb153.service.ITjbb_153Service; import org.jeecg.modules.tjbb.tjbb16.entity.Tjbb_16; import org.jeecg.modules.tjbb.tjbb16.service.ITjbb_16Service; @@ -123,6 +125,68 @@ public class TjbbController extends JeecgController { map.put("tsf8",tsf8); map.put("tsf9",tsf9); map.put("tsf11",tsf11); + + + QueryWrapper queryWrapper1 = new QueryWrapper<>(); + queryWrapper1.last("limit 1"); + Tjbb_16 tjbb_16 = tjbb_16Service.getOne(queryWrapper1); + map.put("t16time",tjbb_16.getCreateTime()); + + QueryWrapper queryWrapper2 = new QueryWrapper<>(); + queryWrapper2.last("limit 1"); + Tjbb_24 tjbb_24 = tjbb_24Service.getOne(queryWrapper2); + map.put("t24time",tjbb_24.getCreateTime()); + + QueryWrapper queryWrapper3 = new QueryWrapper<>(); + queryWrapper3.last("limit 1"); + Tjbb_141 tjbb_141 = tjbb_141Service.getOne(queryWrapper3); + map.put("t141time",tjbb_141.getCreateTime()); + + QueryWrapper queryWrapper4 = new QueryWrapper<>(); + queryWrapper4.last("limit 1"); + Tjbb_151 tjbb_151 = tjbb_151Service.getOne(queryWrapper4); + map.put("t151time",tjbb_151.getCreateTime()); + + QueryWrapper queryWrapper5 = new QueryWrapper<>(); + queryWrapper5.last("limit 1"); + Tjbb_152 tjbb_152 = tjbb_152Service.getOne(queryWrapper5); + map.put("t152time",tjbb_152.getCreateTime()); + + QueryWrapper queryWrapper6 = new QueryWrapper<>(); + queryWrapper6.last("limit 1"); + Tjbb_153 tjbb_153 = tjbb_153Service.getOne(queryWrapper6); + map.put("t153time",tjbb_153.getCreateTime()); + + QueryWrapper queryWrapper7 = new QueryWrapper<>(); + queryWrapper7.last("limit 1"); + TjbbSf3 tjbbSf3 = tjbbSf3Service.getOne(queryWrapper7); + map.put("tsf3time",tjbbSf3.getCreateTime()); + + QueryWrapper queryWrapper8 = new QueryWrapper<>(); + queryWrapper8.last("limit 1"); + TjbbSf5 tjbbSf5 = tjbbSf5Service.getOne(queryWrapper8); + map.put("tsf5time",tjbbSf5.getCreateTime()); + + QueryWrapper queryWrapper9 = new QueryWrapper<>(); + queryWrapper9.last("limit 1"); + TjbbSf6 TjbbSf6 = tjbbSf6Service.getOne(queryWrapper9); + map.put("tsf6time",TjbbSf6.getCreateTime()); + + QueryWrapper queryWrapper10 = new QueryWrapper<>(); + queryWrapper10.last("limit 1"); + TjbbSf8 TjbbSf8 = tjbbSf8Service.getOne(queryWrapper10); + map.put("tsf8time",TjbbSf8.getCreateTime()); + + QueryWrapper queryWrapper11 = new QueryWrapper<>(); + queryWrapper11.last("limit 1"); + TjbbSf9 TjbbSf9 = tjbbSf9Service.getOne(queryWrapper11); + map.put("tsf9time",TjbbSf9.getCreateTime()); + + QueryWrapper queryWrapper12 = new QueryWrapper<>(); + queryWrapper12.last("limit 1"); + TjbbSf11 TjbbSf11 = tjbbSf11Service.getOne(queryWrapper12); + map.put("tsf11time",TjbbSf11.getCreateTime()); + return Result.OK(map); } diff --git a/jeecgboot-vue3/.env b/jeecgboot-vue3/.env index 67c8f25..1856990 100644 --- a/jeecgboot-vue3/.env +++ b/jeecgboot-vue3/.env @@ -11,7 +11,7 @@ VITE_GLOB_APP_SHORT_NAME = 智慧教学服务中心 VITE_GLOB_APP_CAS_BASE_URL=https://authserver.nenu.edu.cn/authserver # 是否开启单点登录 -VITE_GLOB_APP_OPEN_SSO = false +VITE_GLOB_APP_OPEN_SSO = true # 开启微前端模式 VITE_GLOB_APP_OPEN_QIANKUN=true diff --git a/jeecgboot-vue3/public/download/xdqksm.docx b/jeecgboot-vue3/public/download/xdqksm.docx new file mode 100644 index 0000000000000000000000000000000000000000..7a152dff119eb06a6d1467fe16e462114a250ab4 GIT binary patch literal 16429 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


=0nFZZfF%40BR(?b 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 je?LV0tJj!+0{=Qvl#>Mg!}*~BpaH17KU{ - // text = text+"年"+record.yearsType_dictText; - // return text; - // }, - // }, - // { - // title: '修订情况', - // align: "center", - // dataIndex: 'yearsType_dictText' - // }, - // { - // title: '附件', + // title: '文件原文', // align: "center", // dataIndex: 'filePath', + // width: 180, // }, // { - // title: '文件服务器', + // title: '修订情况说明', // align: "center", - // dataIndex: 'ftpPath', + // dataIndex: 'xdqksmPath', + // width: 180, // }, ]; diff --git a/jeecgboot-vue3/src/views/bl/blJbzdjs/BlJbzdjsList.vue b/jeecgboot-vue3/src/views/bl/blJbzdjs/BlJbzdjsList.vue index b9911f5..a24427c 100644 --- a/jeecgboot-vue3/src/views/bl/blJbzdjs/BlJbzdjsList.vue +++ b/jeecgboot-vue3/src/views/bl/blJbzdjs/BlJbzdjsList.vue @@ -1,5 +1,6 @@ @@ -97,6 +116,10 @@ const formRef = ref(); const queryParam = reactive({}); + const ylxxInfo = ref({}); + const wjywUrl = ref(''); + const xdqkUrl = ref(''); + const showType = ref('1'); const toggleSearchStatus = ref(false); const registerModal = ref(); const userStore = useUserStore(); @@ -110,9 +133,10 @@ canResize:false, useSearchForm: false, actionColumn: { - width: 220, + width: 260, }, beforeFetch: async (params) => { + params.column = 'status,createTime',params.order = 'desc'; return Object.assign(params, queryParam); }, }, @@ -179,21 +203,55 @@ } /** - * 预览 + * 返回 */ - function handleYulan(record){ + function handleFanhui(){ + showType.value = '1'; + wjywUrl.value = ''; + xdqkUrl.value = ''; + } + + /** + * 文件原文预览 + */ + function handleWjywYulan(record){ + showType.value='2' + ylxxInfo.value = record var file = record.filePath; console.log("🚀 ~ handleChakan ~ record.ktbg:", file) var file1 = getFileAccessHttpUrl(file); var url = 'https://jxdd.nenu.edu.cn/onlinePreview/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file1)); - window.open(url,"_blank"); + wjywUrl.value = url; + // window.open(url,"_blank"); + } + + + /** + * 修订说明预览 + */ + function handleXdsmYulan(record){ + showType.value='3' + ylxxInfo.value = record + var file = record.xdqksmPath; + console.log("🚀 ~ handleChakan ~ record.ktbg:", file) + var file1 = getFileAccessHttpUrl(file); + var url = 'https://jxdd.nenu.edu.cn/onlinePreview/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file1)); + xdqkUrl.value = url; } /** - * 下载 + * 原文下载 */ - function handleXiazai(record){ - var file = record.filePath; + function handleYwxiazai(){ + var file = ylxxInfo.value.filePath; + downloadFile(file); + } + + /** + * 修订下载 + */ + function handleXdxiazai(){ + var file = ylxxInfo.value.xdqksmPath; downloadFile(file); } @@ -202,19 +260,19 @@ */ function getTableAction(record) { return [ - { - label: '更新状态', - onClick: handleZtEdit.bind(null, record), - ifShow: () => { - return record.years < dqnd; // 判断数据的年度如果小于当前年度,只允许修改状态字段 - }, - }, + // { + // label: '更新状态', + // onClick: handleZtEdit.bind(null, record), + // ifShow: () => { + // return record.years < dqnd; // 判断数据的年度如果小于当前年度,只允许修改状态字段 + // }, + // }, { label: '编辑', onClick: handleEdit.bind(null, record), - ifShow: () => { - return record.years === dqnd; // 判断当前年度的数据可以有编辑权限 - }, + // ifShow: () => { + // return record.years === dqnd; // 判断当前年度的数据可以有编辑权限 + // }, }, { label: '删除', @@ -223,24 +281,24 @@ confirm: handleDelete.bind(null, record), placement: 'topLeft', }, - ifShow: () => { - return record.years === dqnd; // 判断当前年度的数据可以有删除权限 - }, + // ifShow: () => { + // return record.years === dqnd; // 判断当前年度的数据可以有删除权限 + // }, }, { - label: '下载', - onClick: handleXiazai.bind(null, record), - ifShow: () => { - return record.filePath; // 判断有附件的才显示下载功能 - }, - }, - { - label: '预览', - onClick: handleYulan.bind(null, record), + label: '文件原文', + onClick: handleWjywYulan.bind(null, record), ifShow: () => { return record.filePath; // 判断有附件的才显示预览功能 }, }, + { + label: '修订说明', + onClick: handleXdsmYulan.bind(null, record), + ifShow: () => { + return record.xdqksmPath; // 判断有附件的才显示预览功能 + }, + }, ]; } diff --git a/jeecgboot-vue3/src/views/bl/blJbzdjs/BlJbzdjsZjList.vue b/jeecgboot-vue3/src/views/bl/blJbzdjs/BlJbzdjsZjList.vue index b0c978a..22273da 100644 --- a/jeecgboot-vue3/src/views/bl/blJbzdjs/BlJbzdjsZjList.vue +++ b/jeecgboot-vue3/src/views/bl/blJbzdjs/BlJbzdjsZjList.vue @@ -1,5 +1,6 @@ @@ -68,31 +99,39 @@ import BlJbzdjsModal from './components/BlJbzdjsModal.vue' import { useUserStore } from '/@/store/modules/user'; import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue'; -import { getFileAccessHttpUrl } from '@/utils/common/compUtils'; -import { encryptByBase64 } from '@/utils/cipher'; -import JInput from '/@/components/Form/src/jeecg/components/JInput.vue'; + import { getFileAccessHttpUrl } from '@/utils/common/compUtils'; + import { encryptByBase64 } from '@/utils/cipher'; + import JInput from '/@/components/Form/src/jeecg/components/JInput.vue'; + import dayjs from 'dayjs'; const formRef = ref(); const queryParam = reactive({}); + const ylxxInfo = ref({}); + const wjywUrl = ref(''); + const xdqkUrl = ref(''); + const showType = ref('1'); const toggleSearchStatus = ref(false); const registerModal = ref(); const userStore = useUserStore(); + const dqnd = dayjs().format('YYYY'); //注册table数据 const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({ tableProps: { + title: 'bl_jbzdjs', api: zjList, columns, canResize:false, useSearchForm: false, actionColumn: { - width: 220, + width: 260, }, beforeFetch: async (params) => { + params.column = 'status,createTime',params.order = 'desc'; return Object.assign(params, queryParam); }, }, exportConfig: { - name: "bl_jbzdjs", + name: "基本制度建设", url: getExportUrl, params: queryParam, }, @@ -112,6 +151,39 @@ import JInput from '/@/components/Form/src/jeecg/components/JInput.vue'; xs: 24, sm: 20, }); + + + /** + * 新增事件 + */ + function handleAdd() { + registerModal.value.disableSubmit = false; + registerModal.value.add(); + } + + /** + * 编辑事件 + */ + function handleEdit(record: Recordable) { + registerModal.value.disableSubmit = false; + registerModal.value.edit(record); + } + + /** + * 只修改状态字段 + */ + function handleZtEdit(record: Recordable) { + registerModal.value.disableSubmit = false; + record.ztSfxg = '1';//只修改状态字段标识 + registerModal.value.edit(record); + } + + /** + * 删除事件 + */ + async function handleDelete(record) { + await deleteOne({ id: record.id }, handleSuccess); + } /** * 成功回调 @@ -120,22 +192,57 @@ import JInput from '/@/components/Form/src/jeecg/components/JInput.vue'; (selectedRowKeys.value = []) && reload(); } + /** - * 预览文件 + * 返回 */ - function handleYulan(record){ + function handleFanhui(){ + showType.value = '1'; + wjywUrl.value = ''; + xdqkUrl.value = ''; + } + + /** + * 文件原文预览 + */ + function handleWjywYulan(record){ + showType.value='2' + ylxxInfo.value = record var file = record.filePath; console.log("🚀 ~ handleChakan ~ record.ktbg:", file) var file1 = getFileAccessHttpUrl(file); var url = 'https://jxdd.nenu.edu.cn/onlinePreview/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file1)); - window.open(url,"_blank"); + wjywUrl.value = url; + // window.open(url,"_blank"); + } + + + /** + * 修订说明预览 + */ + function handleXdsmYulan(record){ + showType.value='3' + ylxxInfo.value = record + var file = record.xdqksmPath; + console.log("🚀 ~ handleChakan ~ record.ktbg:", file) + var file1 = getFileAccessHttpUrl(file); + var url = 'https://jxdd.nenu.edu.cn/onlinePreview/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file1)); + xdqkUrl.value = url; } /** - * 下载文件 + * 原文下载 */ - function handleXiazai(record){ - var file = record.filePath; + function handleYwxiazai(){ + var file = ylxxInfo.value.filePath; + downloadFile(file); + } + + /** + * 修订下载 + */ + function handleXdxiazai(){ + var file = ylxxInfo.value.xdqksmPath; downloadFile(file); } @@ -145,17 +252,17 @@ import JInput from '/@/components/Form/src/jeecg/components/JInput.vue'; function getTableAction(record) { return [ { - label: '下载', - onClick: handleXiazai.bind(null, record), + label: '文件原文', + onClick: handleWjywYulan.bind(null, record), ifShow: () => { - return record.filePath; // 判断如果有文件才显示下载按钮 + return record.filePath; // 判断有附件的才显示预览功能 }, }, { - label: '预览', - onClick: handleYulan.bind(null, record), + label: '修订说明', + onClick: handleXdsmYulan.bind(null, record), ifShow: () => { - return record.filePath; // 判断如果有文件才显示预览按钮 + return record.xdqksmPath; // 判断有附件的才显示预览功能 }, }, ]; diff --git a/jeecgboot-vue3/src/views/bl/blJbzdjs/components/BlJbzdjsForm.vue b/jeecgboot-vue3/src/views/bl/blJbzdjs/components/BlJbzdjsForm.vue index 4de3ad8..2b61c58 100644 --- a/jeecgboot-vue3/src/views/bl/blJbzdjs/components/BlJbzdjsForm.vue +++ b/jeecgboot-vue3/src/views/bl/blJbzdjs/components/BlJbzdjsForm.vue @@ -11,7 +11,7 @@ - + @@ -25,10 +25,20 @@ - + + + + + + + @@ -46,6 +56,7 @@ import { saveOrUpdate } from '../BlJbzdjs.api'; import { Form } from 'ant-design-vue'; import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue'; + import { downloadByUrl } from '/@/utils/file/download'; import dayjs from 'dayjs'; const props = defineProps({ formDisabled: { type: Boolean, default: false }, @@ -64,19 +75,23 @@ status: '', years: '', filePath: '', + xdqksmPath: '', }); const { createMessage } = useMessage(); const labelCol = ref({ xs: { span: 24 }, sm: { span: 8 } }); const wrapperCol = ref({ xs: { span: 24 }, sm: { span: 14 } }); const confirmLoading = ref(false); const dqnd = ref(''); + const xdnf = ref(''); + const xdnfDisabled = ref(false); //表单验证 const validatorRules = reactive({ zdmc: [{ required: true, message: '请输入制度名称!' }], zxsj: [{ required: true, message: '请选择修订时间!' }], sfyz: [{ required: true, message: '请选择对应的学校上位文件!' }], status: [{ required: true, message: '请选择状态!' }], - filePath: [{ required: true, message: '请选择附件!' }], + filePath: [{ required: true, message: '请选择文件原文!' }], + xdqksmPath: [{ required: xdnfDisabled, message: '请选择修订说明!' }], }); const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false }); @@ -92,11 +107,25 @@ return props.formDisabled; }); + /** + * 修订时间变更 + */ + function handleXdsj(record){ + console.log("🚀 ~ handleXdsj ~ record:", record) + const dqnf = dayjs().format('YYYY'); + xdnf.value = record.substring(0,4); + if(dqnf == xdnf.value){ + xdnfDisabled.value = true; + }else{ + xdnfDisabled.value = false; + } + } /** * 新增 */ function add() { + xdnfDisabled.value = false; edit({status:'1'}); } @@ -124,6 +153,13 @@ } console.log("🚀 ~ nextTick ~ ztSfxg:", ztSfxg) + + if(record.xdqksmPath){ + xdnfDisabled.value = true;//判断是否有修订情况说明文件 + }else{ + handleXdsj(record.zxsj) + } + }); } @@ -167,6 +203,12 @@ var nd = zxsj.substring(0,4); model.years = nd; + // if(!model.id && xdnfDisabled && !model.xdqksmPath){ + // createMessage.error("请上传修订情况说明"); + // confirmLoading.value = false; + // return ; + // } + await saveOrUpdate(model, isUpdate.value) .then((res) => { if (res.success) { diff --git a/jeecgboot-vue3/src/views/bl/blKckhclbl/BlKckhclbl.api.ts b/jeecgboot-vue3/src/views/bl/blKckhclbl/BlKckhclbl.api.ts new file mode 100644 index 0000000..2ae6c63 --- /dev/null +++ b/jeecgboot-vue3/src/views/bl/blKckhclbl/BlKckhclbl.api.ts @@ -0,0 +1,72 @@ +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from "/@/hooks/web/useMessage"; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/blKckhclbl/blKckhclbl/list', + save='/blKckhclbl/blKckhclbl/add', + edit='/blKckhclbl/blKckhclbl/edit', + deleteOne = '/blKckhclbl/blKckhclbl/delete', + deleteBatch = '/blKckhclbl/blKckhclbl/deleteBatch', + importExcel = '/blKckhclbl/blKckhclbl/importExcel', + exportXls = '/blKckhclbl/blKckhclbl/exportXls', +} + +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; + +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; + +/** + * 列表接口 + * @param params + */ +export const list = (params) => defHttp.get({ url: Api.list, params }); + +/** + * 删除单个 + * @param params + * @param handleSuccess + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} + +/** + * 批量删除 + * @param params + * @param handleSuccess + */ +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); + } + }); +} + +/** + * 保存或者更新 + * @param params + * @param isUpdate + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({ url: url, params }, { isTransformResponse: false }); +} diff --git a/jeecgboot-vue3/src/views/bl/blKckhclbl/BlKckhclbl.data.ts b/jeecgboot-vue3/src/views/bl/blKckhclbl/BlKckhclbl.data.ts new file mode 100644 index 0000000..5e16c52 --- /dev/null +++ b/jeecgboot-vue3/src/views/bl/blKckhclbl/BlKckhclbl.data.ts @@ -0,0 +1,30 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +import { getWeekMonthQuarterYear } from '/@/utils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '课程任务代码', + align: "center", + dataIndex: 'kcrwdm' + }, + { + title: '补录类型', + align: "center", + dataIndex: 'blType_dictText' + }, + { + title: '补录附件', + align: "center", + dataIndex: 'blFilePath', + }, +]; + +// 高级查询数据 +export const superQuerySchema = { + kcrwdm: {title: '课程任务代码',order: 0,view: 'text', type: 'string',}, + blType: {title: '补录类型',order: 1,view: 'radio', type: 'string',dictCode: 'kckhcl_bltype',}, + blFilePath: {title: '补录附件',order: 2,view: 'file', type: 'string',}, +}; diff --git a/jeecgboot-vue3/src/views/bl/blKckhclbl/BlKckhclblList.vue b/jeecgboot-vue3/src/views/bl/blKckhclbl/BlKckhclblList.vue new file mode 100644 index 0000000..580c0ef --- /dev/null +++ b/jeecgboot-vue3/src/views/bl/blKckhclbl/BlKckhclblList.vue @@ -0,0 +1,240 @@ + + + + + diff --git a/jeecgboot-vue3/src/views/bl/blKckhclbl/components/BlKckhclblForm.vue b/jeecgboot-vue3/src/views/bl/blKckhclbl/components/BlKckhclblForm.vue new file mode 100644 index 0000000..498ba6e --- /dev/null +++ b/jeecgboot-vue3/src/views/bl/blKckhclbl/components/BlKckhclblForm.vue @@ -0,0 +1,172 @@ + + + + + diff --git a/jeecgboot-vue3/src/views/bl/blKckhclbl/components/BlKckhclblModal.vue b/jeecgboot-vue3/src/views/bl/blKckhclbl/components/BlKckhclblModal.vue new file mode 100644 index 0000000..f846846 --- /dev/null +++ b/jeecgboot-vue3/src/views/bl/blKckhclbl/components/BlKckhclblModal.vue @@ -0,0 +1,81 @@ + + + + + + diff --git a/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/BlkhclList.vue b/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/BlkhclList.vue new file mode 100644 index 0000000..94f70e6 --- /dev/null +++ b/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/BlkhclList.vue @@ -0,0 +1,295 @@ + + + + + diff --git a/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/Xxhbjwxtjxrw.api.ts b/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/Xxhbjwxtjxrw.api.ts index ba3379f..211c455 100644 --- a/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/Xxhbjwxtjxrw.api.ts +++ b/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/Xxhbjwxtjxrw.api.ts @@ -5,6 +5,7 @@ const { createConfirm } = useMessage(); enum Api { list = '/xxhbjwxtjxrw/xxhbjwxtjxrw/list', + listbl = '/xxhbjwxtjxrw/xxhbjwxtjxrw/listbl', zjList = '/xxhbjwxtjxrw/xxhbjwxtjxrw/zjList', save='/xxhbjwxtjxrw/xxhbjwxtjxrw/add', edit='/xxhbjwxtjxrw/xxhbjwxtjxrw/edit', @@ -32,6 +33,7 @@ export const getImportUrl = Api.importExcel; */ export const list = (params) => defHttp.get({ url: Api.list, params }); export const zjList = (params) => defHttp.get({ url: Api.zjList, params }); +export const listbl = (params) => defHttp.get({ url: Api.listbl, params }); /** * 删除单个 diff --git a/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/Xxhbjwxtjxrw.data.ts b/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/Xxhbjwxtjxrw.data.ts index c4548f3..810c3c0 100644 --- a/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/Xxhbjwxtjxrw.data.ts +++ b/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/Xxhbjwxtjxrw.data.ts @@ -94,6 +94,52 @@ export const columns: BasicColumn[] = [ ]; +export const columnsBl: BasicColumn[] = [ + { + title: '学年学期', + align: "center", + dataIndex: 'zjxnxq' + }, + { + title: '课程名称', + align: "center", + dataIndex: 'kcmc' + }, + { + title: '课程类别', + align: "center", + dataIndex: 'kclb' + }, + { + title: '开课单位', + align: "center", + dataIndex: 'kkyxmc' + }, + { + title: '专业名称', + align: "center", + dataIndex: 'zymc', + width: 220 + }, + { + title: '任课教师[职称]', + align: "center", + dataIndex: 'teaxm' + }, + { + title: '是否需要补录', + align: "center", + dataIndex: 'blType', + customRender: function ({ text }) { + if (text) { + return '否'; + } else { + return '是'; + } + }, + }, +]; + //列表数据 export const columns2: BasicColumn[] = [ { diff --git a/jeecgboot-vue3/src/views/bl/xxhbjwxtscwjxx/KhpjclList.vue b/jeecgboot-vue3/src/views/bl/xxhbjwxtscwjxx/KhpjclList.vue index 460feff..791e145 100644 --- a/jeecgboot-vue3/src/views/bl/xxhbjwxtscwjxx/KhpjclList.vue +++ b/jeecgboot-vue3/src/views/bl/xxhbjwxtscwjxx/KhpjclList.vue @@ -225,8 +225,7 @@ function searchReset() { function init(record) { queryParam.kcrwdm = record.kcrwdm; - // queryParam.fjtype = '课程考核合理性审核记录单,课程目标达成情况评价报告,课程考核质量评价单,期未考试-试题(或内容及要求),期末考试-评分标准,历次过程性考核-内容及要求(或试题),历次过程性考核-评分标准'; - queryParam.fjtype = '历次过程性考核-评分标准,历次过程性考核-内容及要求(或试题),课程考核合理性审核记录单,期末考试-评分标准,期未考试-试题(或内容及要求),课程考核质量评价单,课程目标达成情况评价报告'; + queryParam.fjtype = '历次过程性考核-评分标准,历次过程性考核-内容及要求(或试题),课程考核合理性审核记录单,期末考试-评分标准,期未考试-试题(或内容及要求),课程考核质量评价单,课程目标达成情况评价报告,课程教学大纲'; // 平时成绩 // 期末成绩 // 期中成绩 diff --git a/jeecgboot-vue3/src/views/bl/xxhbjwxtscwjxx/XxhbjwxtscwjxxList.vue b/jeecgboot-vue3/src/views/bl/xxhbjwxtscwjxx/XxhbjwxtscwjxxList.vue index 4ee3383..947b879 100644 --- a/jeecgboot-vue3/src/views/bl/xxhbjwxtscwjxx/XxhbjwxtscwjxxList.vue +++ b/jeecgboot-vue3/src/views/bl/xxhbjwxtscwjxx/XxhbjwxtscwjxxList.vue @@ -272,8 +272,7 @@ function searchReset() { function init(record) { queryParam.kcrwdm = record.kcrwdm; - // queryParam.fjtype = '课程考核合理性审核记录单,课程目标达成情况评价报告,课程考核质量评价单,期未考试-试题(或内容及要求),期末考试-评分标准,历次过程性考核-内容及要求(或试题),历次过程性考核-评分标准'; - queryParam.fjtype = '历次过程性考核-评分标准,历次过程性考核-内容及要求(或试题),课程考核合理性审核记录单,期末考试-评分标准,期未考试-试题(或内容及要求),课程考核质量评价单,课程目标达成情况评价报告'; + queryParam.fjtype = '历次过程性考核-评分标准,历次过程性考核-内容及要求(或试题),课程考核合理性审核记录单,期末考试-评分标准,期未考试-试题(或内容及要求),课程考核质量评价单,课程目标达成情况评价报告,课程教学大纲'; // 平时成绩 // 期末成绩 // 期中成绩 diff --git a/jeecgboot-vue3/src/views/bl/zjSqxx/ZjSqxx.data.ts b/jeecgboot-vue3/src/views/bl/zjSqxx/ZjSqxx.data.ts index 545285b..e366d42 100644 --- a/jeecgboot-vue3/src/views/bl/zjSqxx/ZjSqxx.data.ts +++ b/jeecgboot-vue3/src/views/bl/zjSqxx/ZjSqxx.data.ts @@ -48,11 +48,11 @@ export const columns: BasicColumn[] = [ align: "center", dataIndex: 'xnxq' }, - // { - // title: '课程所属专业', - // align: "center", - // dataIndex: 'zydl' - // }, + { + title: '所属专业', + align: "center", + dataIndex: 'zydl' + }, { title: '课程名称', align: "center", diff --git a/jeecgboot-vue3/src/views/bl/zjSqxx/components/ZjSqxxEditForm.vue b/jeecgboot-vue3/src/views/bl/zjSqxx/components/ZjSqxxEditForm.vue index 0c674b6..dec448b 100644 --- a/jeecgboot-vue3/src/views/bl/zjSqxx/components/ZjSqxxEditForm.vue +++ b/jeecgboot-vue3/src/views/bl/zjSqxx/components/ZjSqxxEditForm.vue @@ -51,11 +51,11 @@ - + diff --git a/jeecgboot-vue3/src/views/bl/zjSqxx/components/ZjSqxxForm.vue b/jeecgboot-vue3/src/views/bl/zjSqxx/components/ZjSqxxForm.vue index b73728f..1aa6013 100644 --- a/jeecgboot-vue3/src/views/bl/zjSqxx/components/ZjSqxxForm.vue +++ b/jeecgboot-vue3/src/views/bl/zjSqxx/components/ZjSqxxForm.vue @@ -55,11 +55,11 @@ - + diff --git a/jeecgboot-vue3/src/views/tjbbVue/TjbbList.vue b/jeecgboot-vue3/src/views/tjbbVue/TjbbList.vue index f99cae5..a6ce388 100644 --- a/jeecgboot-vue3/src/views/tjbbVue/TjbbList.vue +++ b/jeecgboot-vue3/src/views/tjbbVue/TjbbList.vue @@ -9,7 +9,7 @@

第1步

导入表1-4-1专业基本情况数据 - 成功导入数据:{{dataList.t141}} + 成功导入数据:{{dataList.t141}}{{dataList.t141time}}
@@ -18,7 +18,7 @@

第2步

导入表1-5-1教职工基本信息数据 - 成功导入数据:{{dataList.t151}} + 成功导入数据:{{dataList.t151}}{{dataList.t151time}}
@@ -27,7 +27,7 @@

第3步

导入表1-5-2教职工其他信息数据 - 成功导入数据:{{dataList.t152}} + 成功导入数据:{{dataList.t152}}{{dataList.t152time}}
@@ -36,7 +36,7 @@

第4步

导入表1-5-3外聘和兼职教师基本信息数据 - 成功导入数据:{{dataList.t153}} + 成功导入数据:{{dataList.t153}}{{dataList.t153time}}
@@ -45,7 +45,7 @@

第5步

导入表1-6本科生基本情况数据 - 成功导入数据:{{dataList.t16}} + 成功导入数据:{{dataList.t16}}{{dataList.t16time}}
@@ -54,7 +54,7 @@

第6步

导入表2-4校内外实习、实践、实训基地数据 - 成功导入数据:{{dataList.t24}} + 成功导入数据:{{dataList.t24}}{{dataList.t24time}}
@@ -63,7 +63,7 @@

第7步

导入表SF-3师范-3:师范类专业办学基本条件数据 - 成功导入数据:{{dataList.tsf3}} + 成功导入数据:{{dataList.tsf3}}{{dataList.tsf3time}}
@@ -72,7 +72,7 @@

第8步

导入表SF-5师范-5:师范类专业培养情况数据 - 成功导入数据:{{dataList.tsf5}} + 成功导入数据:{{dataList.tsf5}}{{dataList.tsf5time}}
@@ -81,7 +81,7 @@

第9步

表SF-6师范-6:教师教育课程情况表数据 - 成功导入数据: {{dataList.tsf6}} + 成功导入数据: {{dataList.tsf6}}{{dataList.tsf6time}}
@@ -90,7 +90,7 @@

第10步

表SF-8师范-8:教育实践情况数据 - 成功导入数据: {{dataList.tsf8}} + 成功导入数据: {{dataList.tsf8}}{{dataList.tsf8time}}
@@ -99,7 +99,7 @@

第11步

表SF-9师范-9:师范类专业非本科学生数量基本情况 - 成功导入数据:{{dataList.tsf9}} + 成功导入数据:{{dataList.tsf9}}{{dataList.tsf9time}}
@@ -108,7 +108,7 @@

第12步

导入表SF-11师范-11:师范类专业应届毕业生情况 - 成功导入数据:{{dataList.tsf11}} + 成功导入数据:{{dataList.tsf11}}{{dataList.tsf11time}}