-
+

任务描述

@@ -14,7 +15,7 @@
-
@@ -189,7 +190,7 @@
- +
@@ -209,7 +210,7 @@
- +
@@ -235,7 +236,7 @@
-
@@ -244,7 +245,7 @@
-
@@ -264,7 +265,7 @@
-
@@ -303,7 +304,7 @@
-
@@ -318,7 +319,7 @@
-
@@ -327,7 +328,7 @@
-
@@ -339,7 +340,7 @@
-
@@ -348,7 +349,7 @@
-
@@ -360,7 +361,7 @@
-
@@ -369,7 +370,7 @@
-
@@ -381,7 +382,7 @@
-
@@ -390,7 +391,7 @@
-
@@ -402,7 +403,7 @@
-   +  
@@ -421,57 +422,121 @@ $("#form-project-add").validate({ onkeyup: false, rules:{ - name:{ - minlength: 1, - maxlength: 32 - }, - username:{ - minlength: 1, - maxlength: 32 - }, - password:{ - minlength: 4, - maxlength: 32 - }, - password1:{ - minlength: 4, + projectName:{ + minlength: 6, maxlength: 32, - equalTo: "#password" }, - email:{ - email:true, + boardThickness:{ + number: true + }, + maxHeightTop:{ + number: true }, - ccEmail:{ - email:true, + subPcbNum:{ + number: true }, - department:{ - - }, - projectGroup:{ - - } + maxHeightBot:{ + number: true + } }, - messages: { - password1: { - required: "请再次输入新密码", - equalTo: "两次密码输入不一致" - } - }, focusCleanup: true }); function submitHandler() { - // var chrtype = [[${#strings.defaultString(@config.getKey('sys.account.chrtype'), 0)}]]; - // var password = $("#password").val(); - // if ($.validate.form() && checkpwd(chrtype, password)) { if ($.validate.form() ) { + var checkResult = submitForm(); + if(!checkResult) { + return false; + } + var data = $("#form-project-add").serializeArray(); - $.operate.save(prefix + "/addSave", data); + // $.operate.save(prefix + "/addSave", data); + var url = prefix + "/addSave"; + + var formData = new FormData(); + formData.append('pcbFile', $('#pcbFile')[0].files[0]); + formData.append('bomFile', $('#bomFile')[0].files[0]); + + $.each( data, function(i, obj){ + formData.append(obj.name, obj.value); + }); + + $.ajax({ + url: url, + type: 'post', + cache: false, + data: formData, + processData: false, + contentType: false, + dataType: "json", + beforeSend: function () { + $.modal.loading("正在处理中,请稍后..."); + $.modal.disable(); + }, + success: function(result) { + $.operate.successCallback(result); + } + }); } } + + //验证form + function submitForm() { + + if (!$.validate.form() ) { + return false; + } + + if ($.trim($("input[name='projectName']").val()) == "") { + // alert("项目名不能为空!"); + $modal.alertError("项目名不能为空!"); + return false; + } + if ($.trim($("input[name='version']").val()) == "") { + // alert("版本不能为空!"); + $modal.alertError("版本不能为空!"); + return false; + } + if ($("select[name='checkType']").val() == "") { + // alert("请选择任务类型!"); + $modal.alertError("请选择任务类型!"); + return false; + } + + var checkType = $("select[name='checkType']"); + var dfmCheck = checkType.children(":selected").text(); + //var dfmCheck = $(checkType).val(); + if (dfmCheckName == dfmCheck) { //必须提供PCB文件包与BOM文件,需提供所有的单板参数、工艺参数。 + // if (!doValidate('addProjectForm')) { + // return false; + // } + } else if ("BOM预审" == dfmCheck) { + //只需提供BOM文件,无需提供PCB文件包。无需提供单板参数、工艺参数。 + if ($("input[name='bomFile']").val() == "") { + // alert("必需提供BOM文件!"); + $modal.alertError("必需提供BOM文件!"); + return false; + } + + } else if ("CAM验证" == dfmCheck) { + //只需提供PCB文件包,无需提供BOM文件。无需提供单板参数、工艺参数。 + if ($("input[name='pcbFile']").val() == "") { + // alert("必需提供PCB文件!"); + $modal.alertError("必需提供PCB文件!"); + return false; + } + } + + //显示进度条 + // setTimeout(showProcess, 200); + $.modal.loading("正在上传文件,请耐心等待..."); + return true; + } + var dfmCheckValue = '2'; //如有修改DFM分析自定义的名称,修改这个变量即可 + //TODO 记得恢复成原样 var dfmCheckName = 'PCB版本对比'; //选择任务类型 @@ -762,10 +827,10 @@ return path.substring(pos+1); } - function showProcess() - { - $(document).progressDialog.showDialog("正在上传文件,请耐心等待..."); - } + // function showProcess() + // { + // $(document).progressDialog.showDialog("正在上传文件,请耐心等待..."); + // } diff --git a/ruoyi-system/src/main/java/com/ruoyi/dfm/service/FileService.java b/ruoyi-system/src/main/java/com/ruoyi/dfm/service/FileService.java index 388ac0367..26706b16b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/dfm/service/FileService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/dfm/service/FileService.java @@ -8,6 +8,7 @@ import com.ruoyi.dfm.util.TimeUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; @@ -37,8 +38,8 @@ public class FileService { // 获取系统文件根路径 static { try { - rootPath = PropertiesUtils.getProperties().getProperty( - "FILE_PHYSICAL_ROOT"); +// rootPath = PropertiesUtils.getProperties().getProperty( +// "FILE_PHYSICAL_ROOT"); File file = new File(rootPath); if (!file.exists()) { file.mkdir(); @@ -68,7 +69,7 @@ public class FileService { * @return boolean * @throws */ - public void savePhysicFile(MultipartHttpServletRequest request, List list , String filePath, boolean isRename, String reNameKey) throws Exception{ + public void savePhysicFile(UserInfo loginUser, MultipartFile[] multipartFiles, List list , String filePath, boolean isRename, String reNameKey) throws Exception{ try { String path = rootPath + filePath; @@ -77,42 +78,19 @@ public class FileService { log.error("创建项目文件目录失败"); throw new IOException(); } - /*MultipartRequest multi = new MultipartRequest(request, path, - maxPostSize, fileEncoding); - Enumeration fileNames = multi.getFileNames(); - - int count = 0; +// Iterator it = request.getFileNames(); +// MultipartFile[] fileArr = new MultipartFile[]{pcbFile, bomFile}; FileInfo fileInfo; - while (fileNames.hasMoreElements()) { - // 表单file元素name属性值 - String name = fileNames.nextElement().toString(); - // 原文件名值 - String original = multi.getOriginalFileName(name); - File file = multi.getFile(name); - if (null == file) { +// while (it.hasNext()) { + for(MultipartFile multipartFile : multipartFiles) { + if(null == multipartFile) { continue; } - fileInfo = new FileInfo(); - fileInfo.setFieldName(name); - fileInfo.setFileName(original); - fileInfo.setFileSize(file.length()); - fileInfo.setRelaPath(filePath); - fileInfo.setUploadTime(TimeUtil.getNowChar14()); - // 设置实际名称 - String extendName = file.getName().substring( - file.getName().lastIndexOf(".") + 1); - fileInfo.setExtendName(extendName); - fileDAO.add(fileInfo); - list.add(fileInfo); - count++; - }*/ - Iterator it = request.getFileNames(); - FileInfo fileInfo; - while (it.hasNext()) { // 表单file元素name属性值 - String name = it.next(); +// String name = it.next(); + String name = multipartFile.getName(); // 原文件名值 - MultipartFile multipartFile = request.getFile(name); +// MultipartFile multipartFile = request.getFile(name); String original = multipartFile.getOriginalFilename(); if(null == original || "".equals(original)) { @@ -151,7 +129,8 @@ public class FileService { fileInfo.setFileSize(multipartFile.getSize()); fileInfo.setRelaPath(filePath); fileInfo.setUploadTime(TimeUtil.getNowChar14()); - fileInfo.setUploadUser(((UserInfo)request.getSession().getAttribute("user")).getId()); +// fileInfo.setUploadUser(((UserInfo)request.getSession().getAttribute("user")).getId()); + fileInfo.setUploadUser(loginUser.getId()); // 设置实际名称 String extendName = original.substring(original.lastIndexOf(".") + 1); fileInfo.setExtendName(extendName); @@ -234,5 +213,9 @@ public class FileService { { return fileDAO.getById(fid); } - + + @Value("${FILE_PHYSICAL_ROOT}") + public void setRootPath(String rootPath) { + FileService.rootPath = rootPath; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/dfm/service/ProjectService.java b/ruoyi-system/src/main/java/com/ruoyi/dfm/service/ProjectService.java index 992c82ea0..0475f3c5c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/dfm/service/ProjectService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/dfm/service/ProjectService.java @@ -8,6 +8,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import java.io.File; @@ -29,15 +31,18 @@ public class ProjectService @Autowired private FileService fileService; - public void addProject(MultipartHttpServletRequest req, Project project) throws Exception + public void addProject(UserInfo loginUser, MultipartFile pcbFile, MultipartFile bomFile, Project project) throws Exception { try { - String dir = ((UserInfo)req.getSession().getAttribute("user")).getUsername() + "/" + - project.getProjectName() + "/" + "Ver" + project.getVersion(); +// String dir = ((UserInfo)req.getSession().getAttribute("user")).getUsername() + "/" + +// project.getProjectName() + "/" + "Ver" + project.getVersion(); + String dir = loginUser.getUsername() + "/" + + project.getProjectName() + "/" + "Ver" + project.getVersion(); + MultipartFile[] multipartFiles = new MultipartFile[]{pcbFile, bomFile}; List fileList = new ArrayList(); - this.fileService.savePhysicFile(req, fileList, dir, false , null); + this.fileService.savePhysicFile(loginUser, multipartFiles, fileList, dir, false , null); for (int i = 0; i < fileList.size(); ++i) { FileInfo file = (FileInfo)fileList.get(i);