zhangherong
2025-07-03 1b5a723592ea63e5eec0bdeef7855b9c40e9df71
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
package org.jeecg.modules.system.service.impl;
 
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.collections.CollectionUtils;
import org.jeecg.common.api.vo.FileUploadResult;
import org.jeecg.common.util.FileUtil;
import org.jeecg.common.system.base.entity.SysUpload;
import org.jeecg.common.system.base.entity.SysUploadRela;
import org.jeecg.modules.system.mapper.UploadMapper;
import org.jeecg.modules.system.service.IAliUploadService;
import org.jeecg.modules.system.service.IUploadRelaService;
import org.jeecg.modules.system.service.IUploadService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
 
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
 
 
 
@Service
public class UploadServiceImpl extends ServiceImpl<UploadMapper, SysUpload> implements IUploadService {
 
    @Autowired
    private IAliUploadService aliUploadService;
 
    @Autowired
    private IUploadRelaService uploadRelaService;
 
 
 
    // 由application.yml中获取文件上传方式:本地(local)、阿里云(alioss)
    @Value(value = "${jeecg.uploadType}")
    private String uploadType;
 
    @Override
    public IPage<SysUpload> page(Page<SysUpload> page, Wrapper<SysUpload> queryWrapper) {
        IPage<SysUpload> pageList = super.page(page, queryWrapper);
        List<String> uploadRelaStrList;
        List<SysUploadRela> uploadRelaList;
        String uploadRelaStr = "";
        for (SysUpload upload : pageList.getRecords()) {
            uploadRelaList = uploadRelaService.listByUploadId(upload.getId());
            upload.setUploadRelaCount(uploadRelaList.size());
            uploadRelaStrList = new ArrayList<>();
            if (CollectionUtils.isNotEmpty(uploadRelaList)) {
                for (SysUploadRela uploadRela : uploadRelaList) {
//                    if (uploadRela.getBusType().equals("part_route_file")) {// 产品工艺-文件
//                        PartRouteFile partRouteFile = partRouteFileService.getById(uploadRela.getBusId());
//                        if (partRouteFile != null) {
//                            PartRoute partRoute = partRouteService.getById(partRouteFile.getPartRouteId());
//                            Part part = partService.getById(partRoute.getPartId());
//                            Route route = routeService.getById(partRoute.getRouteId());
//                            uploadRelaStr = "产品工艺-文件:产品(" + part.getNum() + "/" + part.getName() + "/" + part.getModel()
//                                    + ")";
//                            uploadRelaStr += "工艺(" + route.getNum() + "/" + route.getDescription() + ")";
//                        } else {
//                            uploadRelaStr = "产品工艺-文件:有误";
//                        }
////                        uploadRelaStr = partRouteFile != null ? "产品工艺-文件:" + partRouteFile.getName() : "产品工艺-文件:有误";
//
//                    } else if (uploadRela.getBusType().equals("part_route_cnc")) {// 产品工艺-CNC程序
//                        PartRouteFile partRouteFile = partRouteFileService.getById(uploadRela.getBusId());
//                        if (partRouteFile != null) {
//                            PartRoute partRoute = partRouteService.getById(partRouteFile.getPartRouteId());
//                            Part part = partService.getById(partRoute.getPartId());
//                            Route route = routeService.getById(partRoute.getRouteId());
//                            uploadRelaStr = "产品工艺-CNC程序:产品(" + part.getNum() + "/" + part.getName() + "/"
//                                    + part.getModel() + ")";
//                            uploadRelaStr += "工艺(" + route.getNum() + "/" + route.getDescription() + ")";
//                        } else {
//                            uploadRelaStr = "产品工艺-CNC程序:有误";
//                        }
////                        uploadRelaStr = partRouteFile != null ? "产品工艺-CNC程序:" + partRouteFile.getName(): "产品工艺-CNC程序:有误";
//                    } else if (uploadRela.getBusType().equals("order")) {// 订单管理-订单
//                    //    Order salesOrder = salesOrderService.getById(uploadRela.getBusId());
//                    //    if (salesOrder != null) {
//                    //        Client client = clientService.getById(salesOrder.getClientId());
//                    //        uploadRelaStr = "订单管理:订单编号(" + salesOrder.getNum() + ")";
//                    //        uploadRelaStr += "客户名称(" + client.getNum() + ")";
//                    //    } else {
//                    //        uploadRelaStr = "订单管理:有误";
//                    //    }
////                        uploadRelaStr = salesOrder != null ? "订单管理:订单" + salesOrder.getNum() : "订单管理:有误";
                    }
                    uploadRelaStrList.add(uploadRelaStr);
 
            }
            upload.setUploadRelaStrList(uploadRelaStrList);
        }
        return pageList;
    }
 
    @Override
    public List<SysUpload> batchUploadFile(String type, List<MultipartFile> files, String description) throws Exception {
        List<SysUpload> uploadList = new ArrayList<>();
        for (MultipartFile file : files) {
            SysUpload upload = new SysUpload();
            upload.setDescription(description);
            upload.setType(type);
            upload.setName(file.getOriginalFilename());
            upload.setSize(String.valueOf(file.getSize()));
            upload.setFormat(FileUtil.getFileSuffix(file.getOriginalFilename()));
            upload.setUploadType(uploadType);
            if ("alioss".equals(uploadType)) {
                String path = aliUploadService.uploadFile(file);
                upload.setPath(path);
            } else if ("local".equals(uploadType)) {
                FileUploadResult result = FileUtil.uploadFile(file);
                upload.setPath(result.getFilePath());
                upload.setEncodeName(result.getFileEncodeName());
            }
            super.save(upload);
            uploadList.add(upload);
        }
        return uploadList;
    }
 
    @Override
    public boolean downloadFile(HttpServletResponse response, SysUpload upload) {
        if ("alioss".equals(uploadType)) {
            aliUploadService.downloadFile(response, upload.getPath(), upload.getName());
        } else if ("local".equals(uploadType)) {
            FileUtil.downLoadFile(response, upload.getEncodeName(), upload.getPath(), upload.getName());
        }
        return  true;
    }
 
 
 
}