123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- package com.project.zcustom.controller.engineering;
- import com.project.common.core.controller.BaseController;
- import com.project.common.core.domain.AjaxResult;
- import com.project.zcustom.domain.addional.LargeIssue;
- import com.project.zcustom.domain.addional.LargePlan;
- import com.project.zcustom.service.unit.ILargeIssueService;
- import com.project.zcustom.service.unit.ILargePlanService;
- import com.project.zcustom.service.unit.ILargeProjectService;
- import lombok.RequiredArgsConstructor;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.core.io.FileSystemResource;
- import org.springframework.mail.javamail.JavaMailSender;
- import org.springframework.mail.javamail.MimeMessageHelper;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.web.multipart.MultipartFile;
- import javax.mail.internet.MimeMessage;
- import java.io.File;
- import java.io.IOException;
- import java.nio.file.Files;
- import java.nio.file.Path;
- import java.nio.file.Paths;
- import java.util.Date;
- @RestController
- @RequestMapping("/large/check")
- @RequiredArgsConstructor(onConstructor_ = @Autowired)
- public class PlatProjectCheckController extends BaseController {
- private final ILargeProjectService largeProjectService;
- private final ILargeIssueService largeIssueService;
- private final ILargePlanService largePlanService;
- @Value("${upload.directory}")
- private String uploadDirectory;
- /**
- * 邮件发送接口
- */
- @Autowired
- private JavaMailSender mailSender;
- /**
- * 邮件发送人
- */
- @Value("${spring.mail.username}")
- private String sender;
- /**
- * 问题数量
- */
- @GetMapping("/getIssueNum/{appOrg}")
- public AjaxResult getIssueNum(@PathVariable String appOrg) {
- return AjaxResult.success("查询成功", largeIssueService.getIssueNum(appOrg));
- }
- /**
- * 已整改问题数量
- */
- @GetMapping("/getOverIssueNum/{appOrg}")
- public AjaxResult getOverIssueNum(@PathVariable String appOrg) {
- return AjaxResult.success("查询成功", largeIssueService.getOverIssueNum(appOrg));
- }
- /**
- * 本周检查项目数量
- */
- @GetMapping("/getProjectNumThisWeek/{appOrg}")
- public AjaxResult getProjectNumThisWeek(@PathVariable String appOrg) {
- return AjaxResult.success("查询成功", largeProjectService.getProjectNumThisWeek(appOrg));
- }
- /**
- * 近一周问题列表
- */
- @GetMapping("/getIssueListLastWeek/{appOrg}")
- public AjaxResult getIssueListLastWeek(@PathVariable String appOrg, @RequestParam(required = false, name = "day") Date day) {
- return AjaxResult.success("查询成功", largeIssueService.getIssueListLastWeek(appOrg, day));
- }
- /**
- * 问题列表
- * */
- @GetMapping("/issueList")
- public AjaxResult issueList(LargeIssue entity) {
- return AjaxResult.success("查询成功", largeIssueService.selectList(entity));
- }
- /**
- * 更改问题状态
- * */
- @PostMapping("/changeIssueStatus")
- public AjaxResult changeIssueStatus(@RequestPart("issue") LargeIssue entity, @RequestPart(value = "file") MultipartFile multipartFile) {
- return toAjax(largeIssueService.updateById(entity));
- }
- /**
- * 新增问题
- * */
- @PostMapping("/add")
- public AjaxResult add(@RequestPart("issue") LargeIssue entity, @RequestPart(value = "file" , required = false) MultipartFile multipartFile) {
- if (!multipartFile.isEmpty()) {
- try {
- String originalFilename = multipartFile.getOriginalFilename();
- Path path = Paths.get(uploadDirectory, originalFilename);
- Files.createDirectories(path.getParent());
- multipartFile.transferTo(path);
- entity.setImagePath(path.toString());
- } catch (IOException e) {
- e.printStackTrace();
- return AjaxResult.error("文件上传失败");
- }
- enclosureEmail(multipartFile, entity.getDescription() + "\n" + entity.getNeed());
- }
- return toAjax(largeIssueService.save(entity));
- }
- public AjaxResult enclosureEmail(MultipartFile multipartFile, String content) {
- //创建一个MINE消息
- MimeMessage message = mailSender.createMimeMessage();
- try {
- MimeMessageHelper helper = new MimeMessageHelper(message, true);
- //谁发
- helper.setFrom(sender);
- //谁接收
- helper.setTo("qwer20030522@163.com");
- //邮件主题
- helper.setSubject("问题上报");
- //邮件内容 true 表示带有附件或html
- helper.setText(content, true);
- File multipartFileToFile = MultipartFileToFile(multipartFile);
- if (multipartFileToFile == null) {
- return AjaxResult.error("文件转换失败");
- }
- FileSystemResource file = new FileSystemResource(multipartFileToFile);
- String filename = file.getFilename();
- //添加附件
- if (filename == null) {
- return AjaxResult.error("文件名称获取失败");
- }
- helper.addAttachment(filename, file);
- mailSender.send(message);
- return AjaxResult.success("发送邮件成功");
- } catch (javax.mail.MessagingException e) {
- e.printStackTrace();
- return AjaxResult.error("发送邮件失败");
- }
- }
- private File MultipartFileToFile(MultipartFile multiFile) {
- // 获取文件名
- String fileName = multiFile.getOriginalFilename();
- // 获取文件后缀
- String prefix = fileName.substring(fileName.lastIndexOf("."));
- // 若需要防止生成的临时文件重复,可以在文件名后添加随机码
- try {
- File file = File.createTempFile(fileName, prefix);
- multiFile.transferTo(file);
- return file;
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
- /**
- * 本周检查计划
- * */
- @GetMapping("/planCheckList")
- public AjaxResult planCheckList() {
- return AjaxResult.success("查询成功", largePlanService.planCheckList());
- }
- /**
- * 本周施工计划
- * */
- @GetMapping("/planDoneList")
- public AjaxResult planDoneList() {
- return AjaxResult.success("查询成功", largePlanService.planDoneList());
- }
- }
|