From 951d8d318d226b19605cf8422d7297378f393a5e Mon Sep 17 00:00:00 2001 From: yangjun <1173114630@qq.com> Date: Thu, 10 Oct 2024 13:44:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lwKhcl/controller/LwKhclController.java | 17 + .../modules/demo/lwKhcl/entity/LwKhcl.java | 14 + .../demo/lwKhcl/mapper/LwKhclMapper.java | 3 + .../demo/lwKhcl/mapper/xml/LwKhclMapper.xml | 31 + .../demo/lwKhcl/service/ILwKhclService.java | 4 + .../service/impl/LwKhclServiceImpl.java | 7 + .../controller/LwKhclXzController.java | 224 +++++++ .../demo/lwKhclXz/entity/LwKhclXz.java | 140 ++++ .../demo/lwKhclXz/mapper/LwKhclXzMapper.java | 17 + .../lwKhclXz/mapper/xml/LwKhclXzMapper.xml | 5 + .../lwKhclXz/service/ILwKhclXzService.java | 17 + .../service/impl/LwKhclXzServiceImpl.java | 254 ++++++++ .../system/controller/CommonController.java | 4 +- jeecg-boot/pom.xml | 2 +- ...题报告黄梦华(1)_20231213215618A083.docx | Bin 0 -> 10514 bytes .../src/utils/common/renderUtils.ts | 5 +- .../src/views/bl/lwKhclXz/LwKhclXz.api.ts | 79 +++ .../src/views/bl/lwKhclXz/LwKhclXz.data.ts | 275 ++++++++ .../src/views/bl/lwKhclXz/LwKhclXzList.vue | 235 +++++++ .../views/bl/lwKhclXz/LwKhclXzListIndex.vue | 615 ++++++++++++++++++ .../bl/lwKhclXz/components/LwKhclXzForm.vue | 265 ++++++++ 21 files changed, 2208 insertions(+), 5 deletions(-) create mode 100644 jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/controller/LwKhclXzController.java create mode 100644 jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/entity/LwKhclXz.java create mode 100644 jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/mapper/LwKhclXzMapper.java create mode 100644 jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/mapper/xml/LwKhclXzMapper.xml create mode 100644 jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/service/ILwKhclXzService.java create mode 100644 jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/service/impl/LwKhclXzServiceImpl.java create mode 100644 jeecg-boot/sftp/bylw/开题报告黄梦华(1)_20231213215618A083.docx create mode 100644 jeecgboot-vue3/src/views/bl/lwKhclXz/LwKhclXz.api.ts create mode 100644 jeecgboot-vue3/src/views/bl/lwKhclXz/LwKhclXz.data.ts create mode 100644 jeecgboot-vue3/src/views/bl/lwKhclXz/LwKhclXzList.vue create mode 100644 jeecgboot-vue3/src/views/bl/lwKhclXz/LwKhclXzListIndex.vue create mode 100644 jeecgboot-vue3/src/views/bl/lwKhclXz/components/LwKhclXzForm.vue diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/controller/LwKhclController.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/controller/LwKhclController.java index 5356ccd..8a5b815 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/controller/LwKhclController.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/controller/LwKhclController.java @@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.modules.demo.lwKhclXz.entity.LwKhclXz; import org.jeecg.modules.demo.zjSqxx.entity.ZjSqxx; import org.jeecg.modules.demo.zjSqxx.service.IZjSqxxService; import org.jeecgframework.poi.excel.ExcelExportUtil; @@ -393,4 +394,20 @@ public class LwKhclController extends JeecgController { } + + + @ApiOperation(value="lw_khcl-分页列表查询", notes="lw_khcl-分页列表查询") + @GetMapping(value = "/getXkList") + public Result> getXkList(LwKhcl lwKhcl, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + lwKhcl.setCreateBy(sysUser.getUsername()); + Page page = new Page(pageNo, pageSize); + IPage pageList = lwKhclService.getXkList(page, lwKhcl); + return Result.OK(pageList); + } + + } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/entity/LwKhcl.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/entity/LwKhcl.java index 31a04fd..35a1e74 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/entity/LwKhcl.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/entity/LwKhcl.java @@ -1,6 +1,7 @@ package org.jeecg.modules.demo.lwKhcl.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; @@ -97,4 +98,17 @@ public class LwKhcl implements Serializable { @ApiModelProperty(value = "入库日期") private String createTime; + @ApiModelProperty(value = "终稿查重相似率") + private String ccjgxsl; + @ApiModelProperty(value = "终稿下载路径") + private String ccjgdown; + @ApiModelProperty(value = "知道记录单") + private String zdjld; + + + @TableField(exist = false) + private String sfxk; + @TableField(exist = false) + private String createBy; + } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/mapper/LwKhclMapper.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/mapper/LwKhclMapper.java index b40f0bb..19258e4 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/mapper/LwKhclMapper.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/mapper/LwKhclMapper.java @@ -3,6 +3,8 @@ package org.jeecg.modules.demo.lwKhcl.mapper; import java.util.List; import java.util.Map; +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.apache.ibatis.annotations.Param; import org.jeecg.modules.demo.lwKhcl.entity.LwKhcl; @@ -47,4 +49,5 @@ public interface LwKhclMapper extends BaseMapper { @Param("inSsyxmc")String inSsyxmc, @Param("inBylwLb")String inBylwLb); + IPage getXkList(Page page, @Param("lwKhcl") LwKhcl lwKhcl); } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/mapper/xml/LwKhclMapper.xml b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/mapper/xml/LwKhclMapper.xml index 587f871..dc8d514 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/mapper/xml/LwKhclMapper.xml +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/mapper/xml/LwKhclMapper.xml @@ -129,4 +129,35 @@ order by xsxh + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/service/ILwKhclService.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/service/ILwKhclService.java index 81812b4..482c03a 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/service/ILwKhclService.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/service/ILwKhclService.java @@ -1,5 +1,7 @@ package org.jeecg.modules.demo.lwKhcl.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.lwKhcl.entity.LwKhcl; import com.baomidou.mybatisplus.extension.service.IService; @@ -24,4 +26,6 @@ public interface ILwKhclService extends IService { Page getXqPage(Page page, String xsxh, String xsxm, String ssxnzymc, String ktbg, String zqjc, String lwzg, String inBynf, String inSsyxmc, String inBylwLb); List getXqList(String xsxh, String xsxm, String ssxnzymc, String ktbg, String zqjc, String lwzg, String inBynf, String inSsyxmc, String inBylwLb); + + IPage getXkList(Page page, LwKhcl lwKhcl); } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/service/impl/LwKhclServiceImpl.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/service/impl/LwKhclServiceImpl.java index 3f48079..7dcd2b9 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/service/impl/LwKhclServiceImpl.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhcl/service/impl/LwKhclServiceImpl.java @@ -1,5 +1,7 @@ package org.jeecg.modules.demo.lwKhcl.service.impl; +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.lwKhcl.entity.LwKhcl; import org.jeecg.modules.demo.lwKhcl.entity.LwKhclCj; @@ -52,4 +54,9 @@ public class LwKhclServiceImpl extends ServiceImpl impleme return baseMapper.getXqPage(null, xsxh ,xsxm, ssxnzymc, ktbg, zqjc, lwzg, inBynf, inSsyxmc, inBylwLb); } + @Override + public IPage getXkList(Page page, LwKhcl lwKhcl) { + return baseMapper.getXkList(page,lwKhcl); + } + } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/controller/LwKhclXzController.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/controller/LwKhclXzController.java new file mode 100644 index 0000000..f0b1e08 --- /dev/null +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/controller/LwKhclXzController.java @@ -0,0 +1,224 @@ +package org.jeecg.modules.demo.lwKhclXz.controller; + +import java.util.Arrays; +import java.util.Date; +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.apache.commons.lang.StringUtils; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.demo.lwKhclXz.entity.LwKhclXz; +import org.jeecg.modules.demo.lwKhclXz.service.ILwKhclXzService; + +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.jeecg.modules.demo.xxhbjwxtxsmd.entity.Xxhbjwxtxsmd; +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: lw_khcl_xz + * @Author: jeecg-boot + * @Date: 2024-10-09 + * @Version: V1.0 + */ +@Api(tags="lw_khcl_xz") +@RestController +@RequestMapping("/lwKhclXz/lwKhclXz") +@Slf4j +public class LwKhclXzController extends JeecgController { + @Autowired + private ILwKhclXzService lwKhclXzService; + + /** + * 分页列表查询 + * + * @param lwKhclXz + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "lw_khcl_xz-分页列表查询") + @ApiOperation(value="lw_khcl_xz-分页列表查询", notes="lw_khcl_xz-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(LwKhclXz lwKhclXz, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + + String ktbg = lwKhclXz.getKtbg(); + String zqjc = lwKhclXz.getZqjc(); + String lwzg = lwKhclXz.getLwzg(); + lwKhclXz.setKtbg(null); + lwKhclXz.setZqjc(null); + lwKhclXz.setLwzg(null); + + + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lwKhclXz, req.getParameterMap()); + //获取当前用户 + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + queryWrapper.eq("create_by",sysUser.getUsername()); + if(StringUtils.isNotBlank(ktbg)){ + if(StringUtils.equals(ktbg,"1")){ + queryWrapper.isNotNull("ktbg"); + }else{ + queryWrapper.isNull("ktbg"); + } + } + + if(StringUtils.isNotBlank(zqjc)){ + if(StringUtils.equals(zqjc,"1")){ + queryWrapper.isNotNull("zqjc"); + }else{ + queryWrapper.isNull("zqjc"); + } + } + + if(StringUtils.isNotBlank(lwzg)){ + if(StringUtils.equals(lwzg,"1")){ + queryWrapper.isNotNull("lwzg"); + }else{ + queryWrapper.isNull("lwzg"); + } + } + + + Page page = new Page(pageNo, pageSize); + IPage pageList = lwKhclXzService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param lwKhclXz + * @return + */ + @AutoLog(value = "lw_khcl_xz-添加") + @ApiOperation(value="lw_khcl_xz-添加", notes="lw_khcl_xz-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody LwKhclXz lwKhclXz) { + lwKhclXz.setCreateTime(new Date()); + lwKhclXzService.save(lwKhclXz); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param lwKhclXz + * @return + */ + @AutoLog(value = "lw_khcl_xz-编辑") + @ApiOperation(value="lw_khcl_xz-编辑", notes="lw_khcl_xz-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody LwKhclXz lwKhclXz) { + lwKhclXzService.updateById(lwKhclXz); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "lw_khcl_xz-通过id删除") + @ApiOperation(value="lw_khcl_xz-通过id删除", notes="lw_khcl_xz-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + lwKhclXzService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "lw_khcl_xz-批量删除") + @ApiOperation(value="lw_khcl_xz-批量删除", notes="lw_khcl_xz-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.lwKhclXzService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "lw_khcl_xz-通过id查询") + @ApiOperation(value="lw_khcl_xz-通过id查询", notes="lw_khcl_xz-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + LwKhclXz lwKhclXz = lwKhclXzService.getById(id); + if(lwKhclXz==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(lwKhclXz); + } + + /** + * 导出excel + * + * @param request + * @param lwKhclXz + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, LwKhclXz lwKhclXz) { + return super.exportXls(request, lwKhclXz, LwKhclXz.class, "lw_khcl_xz"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequiresPermissions("lwKhclXz:lw_khcl_xz:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, LwKhclXz.class); + } + + + @PostMapping(value = "/getLwBatchDown") + public Result getLwBatchDown(@RequestBody LwKhclXz lwKhclXz, HttpServletResponse response) { + lwKhclXz = lwKhclXzService.getLwBatchDown(lwKhclXz,response); + return Result.ok(lwKhclXz); + } + +} diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/entity/LwKhclXz.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/entity/LwKhclXz.java new file mode 100644 index 0000000..27aa090 --- /dev/null +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/entity/LwKhclXz.java @@ -0,0 +1,140 @@ +package org.jeecg.modules.demo.lwKhclXz.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.*; +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: lw_khcl_xz + * @Author: jeecg-boot + * @Date: 2024-10-09 + * @Version: V1.0 + */ +@Data +@TableName("lw_khcl_xz") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="lw_khcl_xz对象", description="lw_khcl_xz") +public class LwKhclXz implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private java.lang.String id; + /**学生学号*/ + @Excel(name = "学生学号", width = 15) + @ApiModelProperty(value = "学生学号") + private java.lang.String xsxh; + /**学生姓名*/ + @Excel(name = "学生姓名", width = 15) + @ApiModelProperty(value = "学生姓名") + private java.lang.String xsxm; + /**毕业年份*/ + @Excel(name = "毕业年份", width = 15) + @ApiModelProperty(value = "毕业年份") + private java.lang.String bynf; + /**班级*/ + @Excel(name = "班级", width = 15) + @ApiModelProperty(value = "班级") + private java.lang.String bj; + /**毕业论文(设计)题目*/ + @Excel(name = "毕业论文(设计)题目", width = 15) + @ApiModelProperty(value = "毕业论文(设计)题目") + private java.lang.String bylwTm; + /**毕业论文(设计)类别*/ + @Excel(name = "毕业论文(设计)类别", width = 15) + @ApiModelProperty(value = "毕业论文(设计)类别") + private java.lang.String bylwLb; + /**毕业论文(设计)成绩*/ + @Excel(name = "毕业论文(设计)成绩", width = 15) + @ApiModelProperty(value = "毕业论文(设计)成绩") + private java.lang.String bylwCj; + /**指导教师姓名*/ + @Excel(name = "指导教师姓名", width = 15) + @ApiModelProperty(value = "指导教师姓名") + private java.lang.String zdjsxm; + /**指导教师职称*/ + @Excel(name = "指导教师职称", width = 15) + @ApiModelProperty(value = "指导教师职称") + private java.lang.String zdjszc; + /**所属院系名称*/ + @Excel(name = "所属院系名称", width = 15) + @ApiModelProperty(value = "所属院系名称") + private java.lang.String ssyxmc; + /**所属校内专业(大类)名称*/ + @Excel(name = "所属校内专业(大类)名称", width = 15) + @ApiModelProperty(value = "所属校内专业(大类)名称") + private java.lang.String ssxnzymc; + /**是否实现电子化管理*/ + @Excel(name = "是否实现电子化管理", width = 15) + @ApiModelProperty(value = "是否实现电子化管理") + private java.lang.String sfsxdzhgl; + /**关键词*/ + @Excel(name = "关键词", width = 15) + @ApiModelProperty(value = "关键词") + private java.lang.String gjc; + /**查重结果*/ + @Excel(name = "查重结果", width = 15) + @ApiModelProperty(value = "查重结果") + private java.lang.String ccjg; + /**开题报告*/ + @Excel(name = "开题报告", width = 15) + @ApiModelProperty(value = "开题报告") + private java.lang.String ktbg; + /**开题报告审核意见*/ + @Excel(name = "开题报告审核意见", width = 15) + @ApiModelProperty(value = "开题报告审核意见") + private java.lang.String ktbgshyj; + /**中期检查*/ + @Excel(name = "中期检查", width = 15) + @ApiModelProperty(value = "中期检查") + private java.lang.String zqjc; + /**论文终稿*/ + @Excel(name = "论文终稿", width = 15) + @ApiModelProperty(value = "论文终稿") + private java.lang.String lwzg; + /**论文终稿PDF*/ + @Excel(name = "论文终稿PDF", width = 15) + @ApiModelProperty(value = "论文终稿PDF") + private java.lang.String lwzgPdf; + /**检测报告等材料*/ + @Excel(name = "检测报告等材料", width = 15) + @ApiModelProperty(value = "检测报告等材料") + private java.lang.String jcbgdcl; + /**入库日期*/ + @ApiModelProperty(value = "入库日期") + private Date createTime; + /**论文考核材料id*/ + @Excel(name = "论文考核材料id", width = 15) + @ApiModelProperty(value = "论文考核材料id") + private java.lang.String mainId; + @ApiModelProperty(value = "终稿查重相似率") + private String ccjgxsl; + @ApiModelProperty(value = "终稿下载路径") + private String ccjgdown; + @ApiModelProperty(value = "知道记录单") + private String zdjld; + + + private String createBy; + private String updateBy; + private Date updateTime; + + @TableField(exist = false) + private String downLoadPath; + @TableField(exist = false) + private String downName; +} diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/mapper/LwKhclXzMapper.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/mapper/LwKhclXzMapper.java new file mode 100644 index 0000000..b6e4ec3 --- /dev/null +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/mapper/LwKhclXzMapper.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.demo.lwKhclXz.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.demo.lwKhclXz.entity.LwKhclXz; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: lw_khcl_xz + * @Author: jeecg-boot + * @Date: 2024-10-09 + * @Version: V1.0 + */ +public interface LwKhclXzMapper extends BaseMapper { + +} diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/mapper/xml/LwKhclXzMapper.xml b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/mapper/xml/LwKhclXzMapper.xml new file mode 100644 index 0000000..8ad5189 --- /dev/null +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/mapper/xml/LwKhclXzMapper.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/lwKhclXz/service/ILwKhclXzService.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/service/ILwKhclXzService.java new file mode 100644 index 0000000..9f33cee --- /dev/null +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/service/ILwKhclXzService.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.demo.lwKhclXz.service; + +import org.jeecg.modules.demo.lwKhclXz.entity.LwKhclXz; +import com.baomidou.mybatisplus.extension.service.IService; + +import javax.servlet.http.HttpServletResponse; + +/** + * @Description: lw_khcl_xz + * @Author: jeecg-boot + * @Date: 2024-10-09 + * @Version: V1.0 + */ +public interface ILwKhclXzService extends IService { + + LwKhclXz getLwBatchDown(LwKhclXz lwKhclXz, HttpServletResponse response); +} diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/service/impl/LwKhclXzServiceImpl.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/service/impl/LwKhclXzServiceImpl.java new file mode 100644 index 0000000..0dd9ea0 --- /dev/null +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/lwKhclXz/service/impl/LwKhclXzServiceImpl.java @@ -0,0 +1,254 @@ +package org.jeecg.modules.demo.lwKhclXz.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.commons.lang.StringUtils; +import org.jeecg.common.util.DateUtils; +import org.jeecg.modules.demo.lwKhclXz.entity.LwKhclXz; +import org.jeecg.modules.demo.lwKhclXz.mapper.LwKhclXzMapper; +import org.jeecg.modules.demo.lwKhclXz.service.ILwKhclXzService; +import org.jeecg.modules.demo.xxhbjwxtxsmd.entity.Xxhbjwxtxsmd; +import org.jeecg.modules.utils.SFTPUtil; +import org.jeecg.modules.utils.SftpConfig; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.HttpURLConnection; +import java.net.URLConnection; +import java.util.Map; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + +import java.io.BufferedInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import javax.net.ssl.HttpsURLConnection; + + +/** + * @Description: lw_khcl_xz + * @Author: jeecg-boot + * @Date: 2024-10-09 + * @Version: V1.0 + */ +@Service +public class LwKhclXzServiceImpl extends ServiceImpl implements ILwKhclXzService { + + @Value(value = "${jeecg.path.webapp}") + private String downloadpath; + + @Autowired + SftpConfig sftpConfig; + @Override + public LwKhclXz getLwBatchDown(LwKhclXz lwKhclXz, HttpServletResponse response) { + + String downPath[] = new String[6]; + LwKhclXz lwKhclXzInfo = baseMapper.selectById(lwKhclXz.getId()); + // 其余处理略 + InputStream inputStream = null; + OutputStream outputStream = null; + try{ + + + String ktbg = lwKhclXzInfo.getKtbg(); + String ktbgshyj = lwKhclXzInfo.getKtbgshyj(); + String zqjc = lwKhclXzInfo.getZqjc(); + String lwzg = lwKhclXzInfo.getLwzg(); + String zdjld = lwKhclXzInfo.getZdjld(); + String ccjgdown = lwKhclXzInfo.getCcjgdown(); +// downPath[0] =ktbg; +// downPath[1] =ktbgshyj; +// downPath[2] =zqjc; +// downPath[3] =lwzg; +// downPath[4] =zdjld; +// downPath[5] =ccjgdown; + + + if(StringUtils.isNotBlank(ktbg)){ + String imgPath = ktbg; + int index = imgPath.lastIndexOf("/"); + String path = "temp"; + if(index != -1){ + path = imgPath.substring(0,index); + } + Map map = SFTPUtil.download(sftpConfig,imgPath,getDownloadPath(path)); + String localFilePath = map.get("fileName"); + System.out.println(localFilePath); + downPath[0] =localFilePath.replace("/opt/webapp/",""); + } + if(StringUtils.isNotBlank(ktbgshyj)){ + String imgPath = ktbgshyj; + int index = imgPath.lastIndexOf("/"); + String path = "temp"; + if(index != -1){ + path = imgPath.substring(0,index); + } + Map map = SFTPUtil.download(sftpConfig,imgPath,getDownloadPath(path)); + String localFilePath = map.get("fileName"); + downPath[1] =localFilePath.replace("/opt/webapp/",""); + } + if(StringUtils.isNotBlank(zqjc)){ + String imgPath = zqjc; + int index = imgPath.lastIndexOf("/"); + String path = "temp"; + if(index != -1){ + path = imgPath.substring(0,index); + } + Map map = SFTPUtil.download(sftpConfig,imgPath,getDownloadPath(path)); + String localFilePath = map.get("fileName"); + downPath[2] =localFilePath.replace("/opt/webapp/",""); + } + if(StringUtils.isNotBlank(lwzg)){ + String imgPath = lwzg; + int index = imgPath.lastIndexOf("/"); + String path = "temp"; + if(index != -1){ + path = imgPath.substring(0,index); + } + Map map = SFTPUtil.download(sftpConfig,imgPath,getDownloadPath(path)); + String localFilePath = map.get("fileName"); + downPath[3] =localFilePath.replace("/opt/webapp/",""); + } + if(StringUtils.isNotBlank(zdjld)){ + String imgPath = zdjld; + int index = imgPath.lastIndexOf("/"); + String path = "temp"; + if(index != -1){ + path = imgPath.substring(0,index); + } + Map map = SFTPUtil.download(sftpConfig,imgPath,getDownloadPath(path)); + String localFilePath = map.get("fileName"); + downPath[4] =localFilePath.replace("/opt/webapp/",""); + } + if(StringUtils.isNotBlank(ccjgdown)){ + String savePath = downloadpath+"/bylw/"+lwKhclXzInfo.getXsxm()+ DateUtils.getCurrentTimestamp()+ "论文材料.zip"; + downloadWangluoFile(ccjgdown,savePath); + downPath[5] =savePath.replace("/opt/webapp/",""); + } + + + }catch (Exception e){ + }finally { + SFTPUtil.disChannel(); + SFTPUtil.disSession(); + } + + if (inputStream != null) { + try { + inputStream.close(); + } catch (IOException e) { + log.error(e.getMessage(), e); + } + } + if (outputStream != null) { + try { + outputStream.close(); + } catch (IOException e) { + log.error(e.getMessage(), e); + } + } + + + String files[] = new String[downPath.length]; + String name = "/"+lwKhclXz.getDownName()+".zip"; + String zipFileName = downloadpath+name; + + for(int i=0;i 0) { + zos.write(buffer, 0, length); + } + + fis.close(); + zos.closeEntry(); + }catch (Exception e){ + e.printStackTrace(); + } + + } + zos.close(); + } + + + + public static void downloadWangluoFile(String fileURL, String savePath) throws IOException { +// String fileURL = "https://vims.fanyu.com/toole/jianceorgan/getDownloadUrl?guid=ff9040ddamrg9k46"; // 要下载的文件URL +// String savePath = "D://a.zip"; // 下载后保存的文件路径 + try { + URL url = new URL(fileURL); + HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); + connection.connect(); + + int responseCode = connection.getResponseCode(); + if (responseCode == HttpsURLConnection.HTTP_OK) { + InputStream inputStream = new BufferedInputStream(connection.getInputStream()); + FileOutputStream outputStream = new FileOutputStream(savePath); + + byte[] buffer = new byte[1024]; + int bytesRead; + while ((bytesRead = inputStream.read(buffer)) != -1) { + outputStream.write(buffer, 0, bytesRead); + } + + outputStream.close(); + inputStream.close(); + System.out.println("文件下载完成!"); + } else { + System.out.println("无法连接到文件URL。响应代码:" + responseCode); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/CommonController.java b/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/CommonController.java index 585afab..f31d71b 100644 --- a/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/CommonController.java +++ b/jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/CommonController.java @@ -390,9 +390,9 @@ public class CommonController { // if(StringUtils.isNotBlank(path)){ // return ""; // } - int idx = path.indexOf(downloadpath); + int idx = path.indexOf(uploadpath); if(idx==-1){ - filePath = downloadpath + File.separator + path; + filePath = uploadpath + File.separator + path; }else{ filePath = path; } diff --git a/jeecg-boot/pom.xml b/jeecg-boot/pom.xml index be8bbaa..72338b5 100644 --- a/jeecg-boot/pom.xml +++ b/jeecg-boot/pom.xml @@ -32,7 +32,7 @@ 1.8 UTF-8 - 9.0.89 + 9.0.90 2021.0.3 diff --git a/jeecg-boot/sftp/bylw/开题报告黄梦华(1)_20231213215618A083.docx b/jeecg-boot/sftp/bylw/开题报告黄梦华(1)_20231213215618A083.docx new file mode 100644 index 0000000000000000000000000000000000000000..a1e68918c08340356314501ecb7caf951c55c8d7 GIT binary patch literal 10514 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 literal 0 HcmV?d00001 diff --git a/jeecgboot-vue3/src/utils/common/renderUtils.ts b/jeecgboot-vue3/src/utils/common/renderUtils.ts index 9efca05..81b1079 100644 --- a/jeecgboot-vue3/src/utils/common/renderUtils.ts +++ b/jeecgboot-vue3/src/utils/common/renderUtils.ts @@ -1,6 +1,6 @@ import { h } from 'vue'; import { Avatar, Tag, Tooltip, Image } from 'ant-design-vue'; -import { getFileAccessHttpUrl,getFileAccessHttpUrlLocal } from '/@/utils/common/compUtils'; +import { getFileAccessHttpUrl, getFileAccessHttpUrlLocal } from '/@/utils/common/compUtils'; import { Tinymce } from '/@/components/Tinymce'; import Icon from '/@/components/Icon'; import { getDictItemsByCode } from '/@/utils/dict/index'; @@ -170,6 +170,7 @@ function downloadFile(url) { url = url.substring(0, url.indexOf(',')); } url = getFileAccessHttpUrl(url.split(',')[0]); + console.log('👗downloadFile1111111111111111', url) if (url) { window.open(url); } @@ -192,4 +193,4 @@ function downloadFileLoacl(url) { } } -export { render, downloadFile,downloadFileLoacl }; +export { render, downloadFile, downloadFileLoacl }; diff --git a/jeecgboot-vue3/src/views/bl/lwKhclXz/LwKhclXz.api.ts b/jeecgboot-vue3/src/views/bl/lwKhclXz/LwKhclXz.api.ts new file mode 100644 index 0000000..fbafc73 --- /dev/null +++ b/jeecgboot-vue3/src/views/bl/lwKhclXz/LwKhclXz.api.ts @@ -0,0 +1,79 @@ +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from "/@/hooks/web/useMessage"; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/lwKhclXz/lwKhclXz/list', + save='/lwKhclXz/lwKhclXz/add', + edit='/lwKhclXz/lwKhclXz/edit', + deleteOne = '/lwKhclXz/lwKhclXz/delete', + deleteBatch = '/lwKhclXz/lwKhclXz/deleteBatch', + importExcel = '/lwKhclXz/lwKhclXz/importExcel', + exportXls = '/lwKhclXz/lwKhclXz/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(); + }); +} + +export const deleteXkxxOne = (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/lwKhclXz/LwKhclXz.data.ts b/jeecgboot-vue3/src/views/bl/lwKhclXz/LwKhclXz.data.ts new file mode 100644 index 0000000..456dc1c --- /dev/null +++ b/jeecgboot-vue3/src/views/bl/lwKhclXz/LwKhclXz.data.ts @@ -0,0 +1,275 @@ +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: 'xsxh' + }, + { + title: '学生姓名', + align: "center", + dataIndex: 'xsxm' + }, + { + title: '毕业年份', + align: "center", + dataIndex: 'bynf' + }, + { + title: '班级', + align: "center", + dataIndex: 'bj' + }, + { + title: '毕业论文(设计)题目', + align: "center", + dataIndex: 'bylwTm' + }, + { + title: '毕业论文(设计)类别', + align: "center", + dataIndex: 'bylwLb' + }, + { + title: '毕业论文(设计)成绩', + align: "center", + dataIndex: 'bylwCj' + }, + { + title: '指导教师姓名', + align: "center", + dataIndex: 'zdjsxm' + }, + { + title: '指导教师职称', + align: "center", + dataIndex: 'zdjszc' + }, + { + title: '所属院系名称', + align: "center", + dataIndex: 'ssyxmc' + }, + { + title: '所属校内专业(大类)名称', + align: "center", + dataIndex: 'ssxnzymc' + }, + { + title: '是否实现电子化管理', + align: "center", + dataIndex: 'sfsxdzhgl' + }, + { + title: '关键词', + align: "center", + dataIndex: 'gjc' + }, + { + title: '查重结果', + align: "center", + dataIndex: 'ccjg' + }, + { + title: '开题报告', + align: "center", + dataIndex: 'ktbg' + }, + { + title: '开题报告审核意见', + align: "center", + dataIndex: 'ktbgshyj' + }, + { + title: '中期检查', + align: "center", + dataIndex: 'zqjc' + }, + { + title: '论文终稿', + align: "center", + dataIndex: 'lwzg' + }, + { + title: '论文终稿PDF', + align: "center", + dataIndex: 'lwzgPdf' + }, + { + title: '检测报告等材料', + align: "center", + dataIndex: 'jcbgdcl' + }, + { + title: '论文考核材料id', + align: "center", + dataIndex: 'mainId' + }, +]; + +export const columns2: BasicColumn[] = [ + { + title: '院系名称', + align: "center", + dataIndex: 'ssyxmc', + ellipsis: true, + }, + { + title: '校内专业', + align: "center", + dataIndex: 'ssxnzymc', + ellipsis: true, + }, + { + title: '指导教师姓名', + align: "center", + dataIndex: 'zdjsxm', + ellipsis: true, + }, + { + title: '学生学号', + align: "center", + dataIndex: 'xsxh', + ellipsis: true, + }, + { + title: '学生姓名', + align: "center", + dataIndex: 'xsxm', + ellipsis: true, + }, + { + title: '论文题目', + align: "center", + dataIndex: 'bylwTm', + ellipsis: true, + }, + { + title: '毕业年份', + align: "center", + dataIndex: 'bynf', + ellipsis: true, + }, + // { + // title: '班级', + // align: "center", + // dataIndex: 'bj', + // ellipsis: true, + // }, + { + title: '论文类别', + align: "center", + dataIndex: 'bylwLb', + ellipsis: true, + }, + { + title: '论文成绩', + align: "center", + dataIndex: 'bylwCj', + ellipsis: true, + }, + { + title: '操作', + dataIndex: 'action', + align: 'center', + width:100 + }, +]; + +export const columns3: BasicColumn[] = [ + { + title: '院系名称', + align: "center", + dataIndex: 'ssyxmc', + ellipsis: true, + }, + { + title: '校内专业', + align: "center", + dataIndex: 'ssxnzymc', + ellipsis: true, + }, + { + title: '指导教师姓名', + align: "center", + dataIndex: 'zdjsxm', + ellipsis: true, + }, + { + title: '学生学号', + align: "center", + dataIndex: 'xsxh', + ellipsis: true, + }, + { + title: '学生姓名', + align: "center", + dataIndex: 'xsxm', + ellipsis: true, + }, + { + title: '论文题目', + align: "center", + dataIndex: 'bylwTm', + ellipsis: true, + }, + { + title: '毕业年份', + align: "center", + dataIndex: 'bynf', + ellipsis: true, + }, + // { + // title: '班级', + // align: "center", + // dataIndex: 'bj', + // ellipsis: true, + // }, + { + title: '论文类别', + align: "center", + dataIndex: 'bylwLb', + ellipsis: true, + }, + { + title: '论文成绩', + align: "center", + dataIndex: 'bylwCj', + ellipsis: true, + }, + // { + // title: '终稿查重相似率', + // align: "center", + // dataIndex: 'ccjgxsl', + // ellipsis: true, + // }, +]; +// 高级查询数据 +export const superQuerySchema = { + xsxh: {title: '学生学号',order: 0,view: 'text', type: 'string',}, + xsxm: {title: '学生姓名',order: 1,view: 'text', type: 'string',}, + bynf: {title: '毕业年份',order: 2,view: 'text', type: 'string',}, + bj: {title: '班级',order: 3,view: 'text', type: 'string',}, + bylwTm: {title: '毕业论文(设计)题目',order: 4,view: 'text', type: 'string',}, + bylwLb: {title: '毕业论文(设计)类别',order: 5,view: 'text', type: 'string',}, + bylwCj: {title: '毕业论文(设计)成绩',order: 6,view: 'text', type: 'string',}, + zdjsxm: {title: '指导教师姓名',order: 7,view: 'text', type: 'string',}, + zdjszc: {title: '指导教师职称',order: 8,view: 'text', type: 'string',}, + ssyxmc: {title: '所属院系名称',order: 9,view: 'text', type: 'string',}, + ssxnzymc: {title: '所属校内专业(大类)名称',order: 10,view: 'text', type: 'string',}, + sfsxdzhgl: {title: '是否实现电子化管理',order: 11,view: 'text', type: 'string',}, + gjc: {title: '关键词',order: 12,view: 'text', type: 'string',}, + ccjg: {title: '查重结果',order: 13,view: 'text', type: 'string',}, + ktbg: {title: '开题报告',order: 14,view: 'text', type: 'string',}, + ktbgshyj: {title: '开题报告审核意见',order: 15,view: 'text', type: 'string',}, + zqjc: {title: '中期检查',order: 16,view: 'text', type: 'string',}, + lwzg: {title: '论文终稿',order: 17,view: 'text', type: 'string',}, + lwzgPdf: {title: '论文终稿PDF',order: 18,view: 'text', type: 'string',}, + jcbgdcl: {title: '检测报告等材料',order: 19,view: 'text', type: 'string',}, + mainId: {title: '论文考核材料id',order: 20,view: 'text', type: 'string',}, +}; diff --git a/jeecgboot-vue3/src/views/bl/lwKhclXz/LwKhclXzList.vue b/jeecgboot-vue3/src/views/bl/lwKhclXz/LwKhclXzList.vue new file mode 100644 index 0000000..9bc8070 --- /dev/null +++ b/jeecgboot-vue3/src/views/bl/lwKhclXz/LwKhclXzList.vue @@ -0,0 +1,235 @@ + + + + + diff --git a/jeecgboot-vue3/src/views/bl/lwKhclXz/LwKhclXzListIndex.vue b/jeecgboot-vue3/src/views/bl/lwKhclXz/LwKhclXzListIndex.vue new file mode 100644 index 0000000..dd6347c --- /dev/null +++ b/jeecgboot-vue3/src/views/bl/lwKhclXz/LwKhclXzListIndex.vue @@ -0,0 +1,615 @@ + + + + + diff --git a/jeecgboot-vue3/src/views/bl/lwKhclXz/components/LwKhclXzForm.vue b/jeecgboot-vue3/src/views/bl/lwKhclXz/components/LwKhclXzForm.vue new file mode 100644 index 0000000..1e345a4 --- /dev/null +++ b/jeecgboot-vue3/src/views/bl/lwKhclXz/components/LwKhclXzForm.vue @@ -0,0 +1,265 @@ + + + + +