whycxzp
2023-07-05 ae9584e320c612b1bf9f32f327a5fcb4fc8fa3d8
src/main/java/com/whyc/service/SoftwareService.java
@@ -158,10 +158,12 @@
        wrapper.eq("id",id);
        wrapper.last("limit 1");
        Software software=mapper.selectOne(wrapper);
        String filename=software.getFileUrl().substring(software.getFileUrl().lastIndexOf("\\")+1);
        try {
            // 转码防止乱码
            //resp.addHeader("Content-Disposition", "attachment;filename=" + new String(softwareName.getBytes("UTF-8"), "ISO8859-1"));
            resp.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode ( software.getFileName()+".zip", "utf-8"));
            resp.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode (filename, "utf-8"));
            OutputStream out = resp.getOutputStream();
            FileInputStream in = new FileInputStream(fileDirName+File.separator+software.getFileUrl());
            int len=0;
@@ -220,18 +222,20 @@
            software1.setCreateTime(date);
        }
        //锁定原来的所有版本:根据版号和软件类型
        lockByBoardNumberAndType(software.getBoardNumber(),software.getType());
        List<String> materialCodeList = softwareList.stream().map(Software::getApplyMaterialCode).collect(Collectors.toList());
        lockByBoardNumberAndTypeAndMaterialCode(software.getBoardNumber(),software.getType(),materialCodeList);
        //写入数据库
        insertBatch(softwareList);
        return new Response().set(1,true,"上传完成");
    }
    private void lockByBoardNumberAndType(String boardNumber, String type) {
    private void lockByBoardNumberAndTypeAndMaterialCode(String boardNumber, String type, List<String> materialCodeList) {
        UpdateWrapper<Software> update = Wrappers.update();
        update.set("lock_flag",1)
                .set("lock_reason","软件版本升级")
                .set("local_reason","软件版本升级")
                .eq("board_number",boardNumber)
                .eq("type",type);
                .eq("type",type)
                .in("apply_material_code",materialCodeList);
        mapper.update(null,update);
    }
@@ -283,4 +287,5 @@
        int flag=mapper.update(null,uwrapper);
        return new Response().set(1,flag>0,"锁定/解锁成功");
    }
}