whycxzp
2022-09-09 45653dd74215a69f2a0e6518c7d9bd5bfcf23ead
修复
3个文件已修改
54 ■■■■ 已修改文件
src/main/java/com/whyc/controller/MaterialController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/Material.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/MaterialService.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/MaterialController.java
@@ -12,6 +12,7 @@
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
@Api(tags = "物料管理")
@@ -76,8 +77,9 @@
    /**物料id-物料编码-物料型号*/
    @ApiOperation(value = "追加附件",notes = "materialStr为json字符串,包含id,subCode,subModel")
    @PostMapping("attachment")
    public Response addAttachment(@RequestParam MultipartFile multipartFile,@RequestParam String materialStr) throws IOException {
    public Response addAttachment(@RequestParam String materialStr, @RequestParam MultipartFile... file) throws IOException {
        Material material = ActionUtil.getGson().fromJson(materialStr, Material.class);
        return service.addAttachment(multipartFile,material);
        List<MultipartFile> multipartFileList = Arrays.asList(file);
        return service.addAttachment(multipartFileList,material);
    }
}
src/main/java/com/whyc/pojo/Material.java
@@ -41,6 +41,10 @@
    private String     notes;
    private String     pictureUrl;
    private String     fileUrl;
    @ApiModelProperty("锁定的文件名称")
    private String lockedFilenames;
    @ApiModelProperty("单个文件名只保留最多一条锁定及解锁记录")
    private String lockRecords;
    @ApiModelProperty("上传人")
    private Long     upUserId;
    private Date    createDate;
@@ -228,4 +232,20 @@
    public void setProducts(List<Product> products) {
        this.products = products;
    }
    public String getLockedFilenames() {
        return lockedFilenames;
    }
    public void setLockedFilenames(String lockedFilenames) {
        this.lockedFilenames = lockedFilenames;
    }
    public String getLockRecords() {
        return lockRecords;
    }
    public void setLockRecords(String lockRecords) {
        this.lockRecords = lockRecords;
    }
}
src/main/java/com/whyc/service/MaterialService.java
@@ -356,12 +356,12 @@
    }
    /**
     * @param multipartFile 被追加的附件,zip内只能的附件都必须是文件
     * @param multipartFileList 被追加的附件,zip集合
     * @param material
     * @return 返回被追加文件的文件夹路径
     */
    @Transactional
    public Response addAttachment(MultipartFile multipartFile, Material material) throws IOException {
    public Response addAttachment(List<MultipartFile> multipartFileList, Material material) throws IOException {
        List<String> currentFileList = new LinkedList<>();
        List<String> uploadingFileList = new LinkedList<>();
@@ -369,20 +369,22 @@
        String dirPath = CommonUtil.getRootFile() + "material" + File.separator + material.getId() + "-"+ material.getSubCode() + "-" + material.getSubModel();
        File dirFile = new File(dirPath);
        String originalFilename = multipartFile.getOriginalFilename();
        Date now = new Date();
        long timestamp = now.getTime();
        //long timestamp = now.getTime();
        String formattedTimestamp = DateUtil.YYYY_MM_DD_HH_MM_SS_UNION.format(now);
        //压缩包文件夹校验
        File zipFile = new File(dirPath + File.separator + originalFilename);
        boolean dirFileExist = true;
        if(!dirFile.exists()){
            dirFile.mkdirs();
            dirFileExist = false;
        }
        multipartFile.transferTo(zipFile);
        //解压文件夹,删除原zip文件
        for (int i = 0; i < multipartFileList.size(); i++) {
            MultipartFile multipartFile = multipartFileList.get(i);
            String originalFilename = multipartFile.getOriginalFilename();
            File zipFile = new File(dirPath + File.separator + originalFilename.substring(0,originalFilename.lastIndexOf(".")) + "_" + formattedTimestamp + originalFilename.substring(originalFilename.lastIndexOf(".")));
            multipartFile.transferTo(zipFile);
        }
        /*//解压文件夹,删除原zip文件
        String unPackageDir = dirPath + File.separator + timestamp;
        Zip4jUtil.unPackZip(zipFile, null, unPackageDir);
        File unPackageFile = new File(unPackageDir);
@@ -397,7 +399,7 @@
                }
                return new Response().set(1,false,"拒绝上传:上传的压缩包存在文件夹");
            }
        }
        }*/
        if(!dirFileExist){
            //路径不存在,说明是首次上传,设置物料对应的fileUrl
@@ -405,13 +407,13 @@
            temp.setId(material.getId());
            temp.setFileUrl(dirPathDB);
            mapper.updateById(temp);
        }else{
        }/*else{
            //查询路径下现有的所有文件
            String[] fileArr = dirFile.list();
            currentFileList = Arrays.asList(fileArr);
        }
        }*/
        //查询新上传的文件路径
        /*//查询新上传的文件路径
        String[] unPackageFileArr = unPackageFile.list();
        uploadingFileList = Arrays.asList(unPackageFileArr);
        for (String uploadingFile : uploadingFileList){
@@ -422,7 +424,7 @@
        }
        //上传的文件夹转移到正式路径
        org.aspectj.util.FileUtil.copyDir(unPackageFile,dirFile);
        FileUtil.deleteFile(unPackageFile);
        FileUtil.deleteFile(unPackageFile);*/
        return new Response().set(1,true,"上传完成");
    }