diff --git a/physical-module-system/physical-system-biz/pom.xml b/physical-module-system/physical-system-biz/pom.xml
index c5b91ca..8f02004 100644
--- a/physical-module-system/physical-system-biz/pom.xml
+++ b/physical-module-system/physical-system-biz/pom.xml
@@ -12,6 +12,11 @@
physical-system-biz
+
+ com.deepoove
+ poi-tl
+ 1.12.2
+
org.jeecgframework.boot
physical-system-api
diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/constant/ExperimentStatus.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/constant/ExperimentStatus.java
new file mode 100644
index 0000000..e0d7671
--- /dev/null
+++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/constant/ExperimentStatus.java
@@ -0,0 +1,8 @@
+package org.jeecg.modules.database.constant;
+
+public interface ExperimentStatus {
+
+ String PRE_TEST="试验前";
+ String PROGRESSING="试验进行中";
+ String COMPLETED="试验完成";
+}
diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentAnnealProcessController.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentAnnealProcessController.java
index f415f09..661624b 100644
--- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentAnnealProcessController.java
+++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentAnnealProcessController.java
@@ -1,161 +1,193 @@
package org.jeecg.modules.database.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 jakarta.servlet.http.HttpServletRequest;
-import jakarta.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.database.entity.ExperimentAnnealProcess;
-import org.jeecg.modules.database.service.IExperimentAnnealProcessService;
-
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.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
-import org.jeecg.common.aspect.annotation.AutoLog;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.system.util.JwtUtil;
+import org.jeecg.modules.database.constant.ExperimentStatus;
+import org.jeecg.modules.database.entity.Experiment;
+import org.jeecg.modules.database.entity.ExperimentAnnealProcess;
+import org.jeecg.modules.database.entity.ExperimentLog;
+import org.jeecg.modules.database.service.IExperimentAnnealProcessService;
+import org.jeecg.modules.database.service.IExperimentLogService;
+import org.jeecg.modules.database.service.IExperimentService;
+import org.jeecg.modules.system.entity.SysUser;
+import org.jeecg.modules.system.service.ISysUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
- /**
+import java.util.Arrays;
+
+/**
* @Description: 退火过程
* @Author: jeecg-boot
- * @Date: 2024-10-21
+ * @Date: 2024-10-21
* @Version: V1.0
*/
-@Tag(name="退火过程")
+@Tag(name = "退火过程")
@RestController
@RequestMapping("/database/experimentAnnealProcess")
@Slf4j
public class ExperimentAnnealProcessController extends JeecgController {
- @Autowired
- private IExperimentAnnealProcessService experimentAnnealProcessService;
-
- /**
- * 分页列表查询
- *
- * @param experimentAnnealProcess
- * @param pageNo
- * @param pageSize
- * @param req
- * @return
- */
- //@AutoLog(value = "退火过程-分页列表查询")
- @Operation(summary="退火过程-分页列表查询")
- @GetMapping(value = "/list")
- public Result> queryPageList(ExperimentAnnealProcess experimentAnnealProcess,
- @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
- @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
- HttpServletRequest req) {
- QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(experimentAnnealProcess, req.getParameterMap());
- Page page = new Page(pageNo, pageSize);
- IPage pageList = experimentAnnealProcessService.page(page, queryWrapper);
- return Result.OK(pageList);
- }
-
- /**
- * 添加
- *
- * @param experimentAnnealProcess
- * @return
- */
- @AutoLog(value = "退火过程-添加")
- @Operation(summary="退火过程-添加")
- @RequiresPermissions("database:experiment_anneal_process:add")
- @PostMapping(value = "/add")
- public Result add(@RequestBody ExperimentAnnealProcess experimentAnnealProcess) {
- experimentAnnealProcessService.save(experimentAnnealProcess);
- return Result.OK("添加成功!");
- }
-
- /**
- * 编辑
- *
- * @param experimentAnnealProcess
- * @return
- */
- @AutoLog(value = "退火过程-编辑")
- @Operation(summary="退火过程-编辑")
- @RequiresPermissions("database:experiment_anneal_process:edit")
- @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
- public Result edit(@RequestBody ExperimentAnnealProcess experimentAnnealProcess) {
- experimentAnnealProcessService.updateById(experimentAnnealProcess);
- return Result.OK("编辑成功!");
- }
-
- /**
- * 通过id删除
- *
- * @param id
- * @return
- */
- @AutoLog(value = "退火过程-通过id删除")
- @Operation(summary="退火过程-通过id删除")
- @RequiresPermissions("database:experiment_anneal_process:delete")
- @DeleteMapping(value = "/delete")
- public Result delete(@RequestParam(name="id",required=true) String id) {
- experimentAnnealProcessService.removeById(id);
- return Result.OK("删除成功!");
- }
-
- /**
- * 批量删除
- *
- * @param ids
- * @return
- */
- @AutoLog(value = "退火过程-批量删除")
- @Operation(summary="退火过程-批量删除")
- @RequiresPermissions("database:experiment_anneal_process:deleteBatch")
- @DeleteMapping(value = "/deleteBatch")
- public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) {
- this.experimentAnnealProcessService.removeByIds(Arrays.asList(ids.split(",")));
- return Result.OK("批量删除成功!");
- }
-
- /**
- * 通过id查询
- *
- * @param id
- * @return
- */
- //@AutoLog(value = "退火过程-通过id查询")
- @Operation(summary="退火过程-通过id查询")
- @GetMapping(value = "/queryById")
- public Result queryById(@RequestParam(name="id",required=true) String id) {
- ExperimentAnnealProcess experimentAnnealProcess = experimentAnnealProcessService.getById(id);
- if(experimentAnnealProcess==null) {
- return Result.error("未找到对应数据");
- }
- return Result.OK(experimentAnnealProcess);
- }
+ @Autowired
+ private IExperimentAnnealProcessService experimentAnnealProcessService;
+
+
+ @Autowired
+ private ISysUserService userService;
+
+ @Autowired
+ private IExperimentService experimentService;
+ @Autowired
+ private IExperimentLogService experimentLogService;
/**
- * 导出excel
- *
- * @param request
- * @param experimentAnnealProcess
- */
+ * 分页列表查询
+ *
+ * @param experimentAnnealProcess
+ * @param pageNo
+ * @param pageSize
+ * @param req
+ * @return
+ */
+ //@AutoLog(value = "退火过程-分页列表查询")
+ @Operation(summary = "退火过程-分页列表查询")
+ @GetMapping(value = "/list")
+ public Result> queryPageList(ExperimentAnnealProcess experimentAnnealProcess,
+ @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+ @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+ HttpServletRequest req) {
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(experimentAnnealProcess, req.getParameterMap());
+ Page page = new Page(pageNo, pageSize);
+ IPage pageList = experimentAnnealProcessService.page(page, queryWrapper);
+ return Result.OK(pageList);
+ }
+
+ /**
+ * 添加
+ *
+ * @param experimentAnnealProcess
+ * @return
+ */
+ @AutoLog(value = "退火过程-添加")
+ @Operation(summary = "退火过程-添加")
+ @RequiresPermissions("database:experiment_anneal_process:add")
+ @PostMapping(value = "/add")
+ public Result add(@RequestBody ExperimentAnnealProcess experimentAnnealProcess, HttpServletRequest request) {
+ experimentAnnealProcessService.save(experimentAnnealProcess);
+ String experimentId = experimentAnnealProcess.getExperimentId();
+
+ Experiment experiment = new Experiment();
+ experiment.setId(experimentId);
+ experiment.setStatus(ExperimentStatus.PROGRESSING);
+ experimentService.updateById(experiment);
+
+ ExperimentLog experimentLog = new ExperimentLog();
+ experimentLog.setExperimentId(experimentId);
+ experimentLog.setLogContent("添加退火过程");
+ String username = JwtUtil.getUserNameByToken(request);
+ SysUser userByName = userService.getUserByName(username);
+ experimentLog.setCreateBy(userByName.getRealname());
+ experimentLogService.save(experimentLog);
+ return Result.OK("添加成功!");
+ }
+
+ /**
+ * 编辑
+ *
+ * @param experimentAnnealProcess
+ * @return
+ */
+ @AutoLog(value = "退火过程-编辑")
+ @Operation(summary = "退火过程-编辑")
+ @RequiresPermissions("database:experiment_anneal_process:edit")
+ @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
+ public Result edit(@RequestBody ExperimentAnnealProcess experimentAnnealProcess, HttpServletRequest request) {
+ experimentAnnealProcessService.updateById(experimentAnnealProcess);
+
+
+ ExperimentLog experimentLog = new ExperimentLog();
+ experimentLog.setExperimentId(experimentAnnealProcess.getExperimentId());
+ experimentLog.setLogContent("编辑退火过程");
+ String username = JwtUtil.getUserNameByToken(request);
+ SysUser userByName = userService.getUserByName(username);
+ experimentLog.setCreateBy(userByName.getRealname());
+ experimentLogService.save(experimentLog);
+ return Result.OK("编辑成功!");
+ }
+
+ /**
+ * 通过id删除
+ *
+ * @param id
+ * @return
+ */
+ @AutoLog(value = "退火过程-通过id删除")
+ @Operation(summary = "退火过程-通过id删除")
+ @RequiresPermissions("database:experiment_anneal_process:delete")
+ @DeleteMapping(value = "/delete")
+ public Result delete(@RequestParam(name = "id", required = true) String id, HttpServletRequest request) {
+ experimentAnnealProcessService.removeById(id);
+
+ ExperimentLog experimentLog = new ExperimentLog();
+ experimentLog.setExperimentId(id);
+ experimentLog.setLogContent("删除退火过程");
+ String username = JwtUtil.getUserNameByToken(request);
+ SysUser userByName = userService.getUserByName(username);
+ experimentLog.setCreateBy(userByName.getRealname());
+ experimentLogService.save(experimentLog);
+ return Result.OK("删除成功!");
+ }
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return
+ */
+ @AutoLog(value = "退火过程-批量删除")
+ @Operation(summary = "退火过程-批量删除")
+ @RequiresPermissions("database:experiment_anneal_process:deleteBatch")
+ @DeleteMapping(value = "/deleteBatch")
+ public Result deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
+ this.experimentAnnealProcessService.removeByIds(Arrays.asList(ids.split(",")));
+ return Result.OK("批量删除成功!");
+ }
+
+ /**
+ * 通过id查询
+ *
+ * @param id
+ * @return
+ */
+ //@AutoLog(value = "退火过程-通过id查询")
+ @Operation(summary = "退火过程-通过id查询")
+ @GetMapping(value = "/queryById")
+ public Result queryById(@RequestParam(name = "id", required = true) String id) {
+ ExperimentAnnealProcess experimentAnnealProcess = experimentAnnealProcessService.getById(id);
+ if (experimentAnnealProcess == null) {
+ return Result.error("未找到对应数据");
+ }
+ return Result.OK(experimentAnnealProcess);
+ }
+
+ /**
+ * 导出excel
+ *
+ * @param request
+ * @param experimentAnnealProcess
+ */
@RequiresPermissions("database:experiment_anneal_process:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, ExperimentAnnealProcess experimentAnnealProcess) {
@@ -163,12 +195,12 @@ public class ExperimentAnnealProcessController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) {
diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentController.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentController.java
index ed53e1c..c41d251 100644
--- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentController.java
+++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentController.java
@@ -14,6 +14,7 @@ import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.util.JwtUtil;
+import org.jeecg.modules.database.constant.ExperimentStatus;
import org.jeecg.modules.database.entity.Experiment;
import org.jeecg.modules.database.entity.ExperimentLog;
import org.jeecg.modules.database.service.IExperimentLogService;
@@ -77,6 +78,7 @@ public class ExperimentController extends JeecgController add(@RequestBody Experiment experiment, HttpServletRequest request) {
+ experiment.setStatus(ExperimentStatus.PRE_TEST);
experimentService.save(experiment);
ExperimentLog experimentLog = new ExperimentLog();
experimentLog.setExperimentId(experiment.getId());
diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentRadiationProcessController.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentRadiationProcessController.java
index f52bdaf..ced8208 100644
--- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentRadiationProcessController.java
+++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentRadiationProcessController.java
@@ -14,10 +14,13 @@ import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.util.JwtUtil;
+import org.jeecg.modules.database.constant.ExperimentStatus;
+import org.jeecg.modules.database.entity.Experiment;
import org.jeecg.modules.database.entity.ExperimentLog;
import org.jeecg.modules.database.entity.ExperimentRadiationProcess;
import org.jeecg.modules.database.service.IExperimentLogService;
import org.jeecg.modules.database.service.IExperimentRadiationProcessService;
+import org.jeecg.modules.database.service.IExperimentService;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -45,6 +48,9 @@ public class ExperimentRadiationProcessController extends JeecgController add(@RequestBody ExperimentRadiationProcess experimentRadiationProcess, HttpServletRequest request) {
experimentRadiationProcessService.save(experimentRadiationProcess);
+ String experimentId = experimentRadiationProcess.getExperimentId();
+ Experiment experiment = new Experiment();
+ experiment.setId(experimentId);
+ experiment.setStatus(ExperimentStatus.PROGRESSING);
+ experimentService.updateById(experiment);
ExperimentLog experimentLog = new ExperimentLog();
- experimentLog.setExperimentId(experimentRadiationProcess.getExperimentId());
+ experimentLog.setExperimentId(experimentId);
experimentLog.setLogContent("添加辐照过程");
String username = JwtUtil.getUserNameByToken(request);
SysUser userByName = userService.getUserByName(username);
@@ -106,7 +117,7 @@ public class ExperimentRadiationProcessController extends JeecgController {
@Autowired
private IExperimentReportService experimentReportService;
+ @Autowired
+ private IExperimentService experimentService;
@Autowired
private ISysUserService sysUserService;
@@ -229,6 +234,12 @@ public class ExperimentReportController extends JeecgController add(@RequestBody ExperimentTestProcess experimentTestProcess, HttpServletRequest request) {
experimentTestProcessService.save(experimentTestProcess);
+ String experimentId = experimentTestProcess.getExperimentId();
+ Experiment experiment = new Experiment();
+ experiment.setId(experimentId);
+ experiment.setStatus(ExperimentStatus.PROGRESSING);
+ experimentService.updateById(experiment);
ExperimentLog experimentLog = new ExperimentLog();
experimentLog.setExperimentId(experimentTestProcess.getExperimentId());
diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentDocServiceImpl.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentDocServiceImpl.java
index ad35c9f..e894532 100755
--- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentDocServiceImpl.java
+++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentDocServiceImpl.java
@@ -1,19 +1,67 @@
package org.jeecg.modules.database.service.impl;
+import cn.hutool.core.io.FileUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.deepoove.poi.XWPFTemplate;
+import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.database.entity.ExperimentDoc;
import org.jeecg.modules.database.mapper.ExperimentDocMapper;
import org.jeecg.modules.database.service.IExperimentDocService;
import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.io.IOException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
/**
* @Description: 试验文档
* @Author: jeecg-boot
- * @Date: 2024-08-30
+ * @Date: 2024-08-30
* @Version: V1.0
*/
@Service
+@Slf4j
public class ExperimentDocServiceImpl extends ServiceImpl implements IExperimentDocService {
+ static Map docTempalteMap = new HashMap<>();
+
+ static {
+ //辐照试验计划表
+ docTempalteMap.put("辐照试验计划表", "fzsyjhb.docx");
+ docTempalteMap.put("试验报告评审表", "sybgpsb.docx");
+ docTempalteMap.put("设备使用记录表", "sbsyjlb.docx");
+ docTempalteMap.put("试验报告", "sybg.docx");
+ docTempalteMap.put("辐照试验总结单", "fzsyzjd.docx");
+ }
+
+ public static void main(String[] args) throws IOException {
+ //The core API uses a minimalist design, only one line of code is required
+ Map maps = new HashMap<>();
+ maps.put("title", "辐照试验计划表");
+ generateExperimentDoc("20241028号实验", "辐照试验计划表", maps);
+ }
+
+ public static void generateExperimentDoc(String experimentId, String fileName, Map params) {
+ URL resourceUrl = ExperimentDocServiceImpl.class.getClassLoader().getResource("templates/doc/" + docTempalteMap.get(fileName));
+ if (Objects.isNull(resourceUrl)) {
+ throw new RuntimeException("模板文件不存在!");
+ }
+ String absolutePath = resourceUrl.getPath();
+ log.info("doc template path: " + absolutePath);
+
+ try {
+ String tmpDirPath = FileUtil.getTmpDirPath();
+ String outputFile = tmpDirPath + fileName + "-" + experimentId + ".docx";
+ if (FileUtil.exist(outputFile)) {
+ FileUtil.del(outputFile);
+ }
+ log.info("output file path: " + outputFile);
+
+ XWPFTemplate.compile(absolutePath).render(params).writeToFile(outputFile);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
}
diff --git a/physical-module-system/physical-system-biz/src/main/resources/templates/doc/fzsyjhb.docx b/physical-module-system/physical-system-biz/src/main/resources/templates/doc/fzsyjhb.docx
new file mode 100644
index 0000000..025877b
Binary files /dev/null and b/physical-module-system/physical-system-biz/src/main/resources/templates/doc/fzsyjhb.docx differ
diff --git a/physical-module-system/physical-system-biz/src/main/resources/templates/doc/fzsyzjd.docx b/physical-module-system/physical-system-biz/src/main/resources/templates/doc/fzsyzjd.docx
new file mode 100644
index 0000000..b55db63
Binary files /dev/null and b/physical-module-system/physical-system-biz/src/main/resources/templates/doc/fzsyzjd.docx differ
diff --git a/physical-module-system/physical-system-biz/src/main/resources/templates/doc/sbsyjlb.docx b/physical-module-system/physical-system-biz/src/main/resources/templates/doc/sbsyjlb.docx
new file mode 100644
index 0000000..b55db63
Binary files /dev/null and b/physical-module-system/physical-system-biz/src/main/resources/templates/doc/sbsyjlb.docx differ
diff --git a/physical-module-system/physical-system-biz/src/main/resources/templates/doc/sybg.docx b/physical-module-system/physical-system-biz/src/main/resources/templates/doc/sybg.docx
new file mode 100644
index 0000000..b55db63
Binary files /dev/null and b/physical-module-system/physical-system-biz/src/main/resources/templates/doc/sybg.docx differ
diff --git a/physical-module-system/physical-system-biz/src/main/resources/templates/doc/sybgpsb.docx b/physical-module-system/physical-system-biz/src/main/resources/templates/doc/sybgpsb.docx
new file mode 100644
index 0000000..b55db63
Binary files /dev/null and b/physical-module-system/physical-system-biz/src/main/resources/templates/doc/sybgpsb.docx differ
diff --git a/pom.xml b/pom.xml
index f50cf53..8b2e64a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -456,6 +456,10 @@
eot
ttf
svg
+ doc
+ docx
+ xls
+ xlsx