“djh”
2 天以前 c0f16750cb9097a8db7b68f8c1794c2aec28ca15
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
package com.gkhy.exam.system.service.impl;
 
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.common.domain.model.LoginUserDetails;
import com.gkhy.exam.common.exception.ApiException;
import com.gkhy.exam.common.utils.PageUtils;
import com.gkhy.exam.common.utils.SecurityUtils;
import com.gkhy.exam.system.domain.CompanySummary;
import com.gkhy.exam.system.domain.SysCompany;
import com.gkhy.exam.system.mapper.CompanySummaryMapper;
import com.gkhy.exam.system.service.CompanySummaryService;
import com.gkhy.exam.system.service.SysCompanyService;
import org.apache.poi.schemas.vmldrawing.XmlDocument;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
 
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.time.LocalDateTime;
import java.util.List;
 
@Service
public class CompanySummaryServiceImpl extends ServiceImpl<CompanySummaryMapper, CompanySummary> implements CompanySummaryService {
 
    @Autowired
    private CompanySummaryMapper companySummaryMapper;
    @Autowired
    private SysCompanyService sysCompanyService;
 
 
 
    @Override
    public CommonPage selectCompanySummaryList(Integer companyId) {
        if (!SecurityUtils.adminUser()){
            if (companyId==null){
                throw new ApiException("非管理员操作,查询条件不可为空");
            }
        }
        PageUtils.startPage();
        List<CompanySummary> companySummaries = companySummaryMapper.selectCompanySummaryList(companyId);
        return CommonPage.restPage(companySummaries);
    }
 
    @Override
    public CommonResult insertCompanySummary(CompanySummary companySummary) {
        LoginUserDetails loginUser = SecurityUtils.getLoginUser();
        List<CompanySummary> companySummaries = companySummaryMapper.selectCompanySummaryList(companySummary.getCompanyId());
        if (companySummaries.size()>0){
            throw new ApiException("当前企业已有相关数据,请删除原有数据后重试");
        }
        SysCompany sysCompany = sysCompanyService.selectCompanyById(Long.valueOf(companySummary.getCompanyId()));
        companySummary.setCompanyName(sysCompany.getName());
        companySummary.setCreateBy(loginUser.getUsername());
        companySummary.setCreateTime(LocalDateTime.now());
        int insert = companySummaryMapper.insert(companySummary);
        if (insert>0){
            return CommonResult.success();
        }
        return CommonResult.failed();
    }
 
    @Override
    public CommonResult updateCompanySummary(CompanySummary companySummary) {
        LoginUserDetails loginUser = SecurityUtils.getLoginUser();
        SysCompany sysCompany = sysCompanyService.selectCompanyById(Long.valueOf(companySummary.getCompanyId()));
        companySummary.setCompanyName(sysCompany.getName());
        companySummary.setUpdateBy(loginUser.getUsername());
        companySummary.setUpdateTime(LocalDateTime.now());
        int update = companySummaryMapper.updateSummaryById(companySummary);
        if (update>0){
            return CommonResult.success();
        }
        return CommonResult.failed();
    }
 
    @Override
    public CommonResult deletedCompanySummary(Integer companySummaryId) {
        CompanySummary companySummary = new CompanySummary();
        LoginUserDetails loginUser = SecurityUtils.getLoginUser();
        companySummary.setUpdateBy(loginUser.getUsername());
        companySummary.setUpdateTime(LocalDateTime.now());
        companySummary.setDelFlag(2);
        companySummary.setId(companySummaryId);
        int i = companySummaryMapper.updateById(companySummary);
        if (i>0){
            return CommonResult.success();
        }
        return CommonResult.failed();
    }
 
    @Override
    public CommonResult uploadSummary(MultipartFile file,Integer companyId) {
 
        List<CompanySummary> companySummaries = companySummaryMapper.selectCompanySummaryList(Math.toIntExact(companyId == null ? SecurityUtils.getCompanyId() : companyId));
        if (companySummaries.size()>0){
            throw new ApiException("当前企业已有相关数据,请删除原有数据后重试");
        }
        try {
            String fileData = readWordToString(file);
            CompanySummary companySummary = new CompanySummary();
            companySummary.setCompanySummary(fileData);
            if (companyId==null){
                companySummary.setCompanyId(Math.toIntExact(SecurityUtils.getCompanyId()));
            }else {
                companySummary.setCompanyId(companyId);
            }
            companySummary.setCreateTime(LocalDateTime.now());
            companySummary.setCreateBy(SecurityUtils.getUsername());
            companySummaryMapper.insert(companySummary);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        return CommonResult.success();
    }
 
    /**
     * 读取Word文档内容并转为字符串
     * @param file Word文件
     * @return 文档内容的字符串
     */
    public static String readWordToString(MultipartFile file) throws Exception {
        try (InputStream inputStream = file.getInputStream();
             XWPFDocument document = new XWPFDocument(inputStream);
             XWPFWordExtractor extractor = new XWPFWordExtractor(document)) {
            return extractor.getText();
        }
    }
}