|
@@ -5,6 +5,7 @@ import java.net.URLEncoder;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.ruoyi.common.sendEmail.IMailService;
|
|
|
import com.ruoyi.common.utils.DateUtils;
|
|
|
import com.ruoyi.common.utils.file.FileUploadUtils;
|
|
@@ -41,8 +42,7 @@ import javax.servlet.http.HttpServletResponse;
|
|
|
*/
|
|
|
@RestController
|
|
|
@RequestMapping("/plant/meeting")
|
|
|
-public class TMtMeetingController extends BaseController
|
|
|
-{
|
|
|
+public class TMtMeetingController extends BaseController {
|
|
|
@Autowired
|
|
|
private ITMtMeetingService tMtMeetingService;
|
|
|
@Autowired
|
|
@@ -76,8 +76,7 @@ public class TMtMeetingController extends BaseController
|
|
|
*/
|
|
|
@PreAuthorize("@ss.hasPermi('plant:meeting:list')")
|
|
|
@GetMapping("/list")
|
|
|
- public TableDataInfo list(TMtMeeting tMtMeeting)
|
|
|
- {
|
|
|
+ public TableDataInfo list(TMtMeeting tMtMeeting) {
|
|
|
startPage();
|
|
|
List<TMtMeeting> list = tMtMeetingService.selectTMtMeetingList(tMtMeeting);
|
|
|
return getDataTable(list);
|
|
@@ -89,8 +88,7 @@ public class TMtMeetingController extends BaseController
|
|
|
@PreAuthorize("@ss.hasPermi('plant:meeting:export')")
|
|
|
@Log(title = "装置会议", businessType = BusinessType.EXPORT)
|
|
|
@GetMapping("/export")
|
|
|
- public AjaxResult export(TMtMeeting tMtMeeting)
|
|
|
- {
|
|
|
+ public AjaxResult export(TMtMeeting tMtMeeting) {
|
|
|
List<TMtMeeting> list = tMtMeetingService.selectTMtMeetingList(tMtMeeting);
|
|
|
ExcelUtil<TMtMeeting> util = new ExcelUtil<TMtMeeting>(TMtMeeting.class);
|
|
|
return util.exportExcel(list, "meeting");
|
|
@@ -101,8 +99,7 @@ public class TMtMeetingController extends BaseController
|
|
|
*/
|
|
|
@PreAuthorize("@ss.hasPermi('plant:meeting:list')")
|
|
|
@GetMapping(value = "/{id}")
|
|
|
- public AjaxResult getInfo(@PathVariable("id") Long id)
|
|
|
- {
|
|
|
+ public AjaxResult getInfo(@PathVariable("id") Long id) {
|
|
|
return AjaxResult.success(tMtMeetingService.selectTMtMeetingById(id));
|
|
|
}
|
|
|
|
|
@@ -111,8 +108,7 @@ public class TMtMeetingController extends BaseController
|
|
|
*/
|
|
|
@PreAuthorize("@ss.hasPermi('plant:meeting:list')")
|
|
|
@GetMapping("/last")
|
|
|
- public AjaxResult getLast(TMtMeeting tMtMeeting)
|
|
|
- {
|
|
|
+ public AjaxResult getLast(TMtMeeting tMtMeeting) {
|
|
|
TMtMeeting t = tMtMeetingService.selectTMtMeetingLast(tMtMeeting);
|
|
|
t.setId(null);
|
|
|
return AjaxResult.success(t);
|
|
@@ -124,10 +120,9 @@ public class TMtMeetingController extends BaseController
|
|
|
@PreAuthorize("@ss.hasPermi('plant:meeting:edit')")
|
|
|
@Log(title = "装置会议", businessType = BusinessType.INSERT)
|
|
|
@PostMapping
|
|
|
- public AjaxResult add(@RequestBody TMtMeeting tMtMeeting)
|
|
|
- {
|
|
|
+ public AjaxResult add(@RequestBody TMtMeeting tMtMeeting) {
|
|
|
tMtMeetingService.insertTMtMeeting(tMtMeeting);
|
|
|
- String url = getReport(null,tMtMeeting.getId());
|
|
|
+ String url = getReport(null, tMtMeeting.getId());
|
|
|
tMtMeeting.setWordUrl(url);
|
|
|
tMtMeetingService.updateTMtMeeting(tMtMeeting);
|
|
|
return AjaxResult.success();
|
|
@@ -139,10 +134,9 @@ public class TMtMeetingController extends BaseController
|
|
|
@PreAuthorize("@ss.hasPermi('plant:meeting:edit')")
|
|
|
@Log(title = "装置会议", businessType = BusinessType.UPDATE)
|
|
|
@PutMapping
|
|
|
- public AjaxResult edit(@RequestBody TMtMeeting tMtMeeting)
|
|
|
- {
|
|
|
+ public AjaxResult edit(@RequestBody TMtMeeting tMtMeeting) {
|
|
|
tMtMeetingService.updateTMtMeeting(tMtMeeting);
|
|
|
- String url = getReport(null,tMtMeeting.getId());
|
|
|
+ String url = getReport(null, tMtMeeting.getId());
|
|
|
tMtMeeting.setWordUrl(url);
|
|
|
tMtMeetingService.updateTMtMeeting(tMtMeeting);
|
|
|
return AjaxResult.success();
|
|
@@ -153,9 +147,8 @@ public class TMtMeetingController extends BaseController
|
|
|
*/
|
|
|
@PreAuthorize("@ss.hasPermi('plant:meeting:remove')")
|
|
|
@Log(title = "装置会议", businessType = BusinessType.DELETE)
|
|
|
- @DeleteMapping("/{ids}")
|
|
|
- public AjaxResult remove(@PathVariable Long[] ids)
|
|
|
- {
|
|
|
+ @DeleteMapping("/{ids}")
|
|
|
+ public AjaxResult remove(@PathVariable Long[] ids) {
|
|
|
return toAjax(tMtMeetingService.deleteTMtMeetingByIds(ids));
|
|
|
}
|
|
|
|
|
@@ -164,17 +157,17 @@ public class TMtMeetingController extends BaseController
|
|
|
*/
|
|
|
// @RequestMapping(value = "/meetingReport", produces = "application/json;charset=utf-8")
|
|
|
// @ResponseBody
|
|
|
- public String getReport( Long year ,Long meetingId) {
|
|
|
+ public String getReport(Long year, Long meetingId) {
|
|
|
logger.info("meetingId:" + meetingId);
|
|
|
String tempUrl = "";
|
|
|
- tempUrl = "static/word/meeting.docx"; // 经理模板文件
|
|
|
+ tempUrl = "static/word/meeting.docx"; // 经理模板文件
|
|
|
// 保存结果文
|
|
|
InputStream is = null;
|
|
|
try {
|
|
|
is = Thread.currentThread().getContextClassLoader().getResourceAsStream(tempUrl);
|
|
|
XWPFDocument doc = new XWPFDocument(is);
|
|
|
// 替换word模板数据
|
|
|
- replaceAll(doc,year,meetingId);
|
|
|
+ replaceAll(doc, year, meetingId);
|
|
|
|
|
|
// response.setContentType("application/octet-stream");// 下载,默认就是下载
|
|
|
// response.setCharacterEncoding("UTF-8");
|
|
@@ -185,7 +178,7 @@ public class TMtMeetingController extends BaseController
|
|
|
// 生成word的路径
|
|
|
String fileDir = RuoYiConfig.getProfile() + "/" + "plant/meeting";
|
|
|
// 生成word的文件名称
|
|
|
- String fileName = "装置周会议"+ meetingId + ".docx";
|
|
|
+ String fileName = "装置周会议" + meetingId + ".docx";
|
|
|
String filePath = fileDir + "/" + fileName;
|
|
|
File dir = new File(fileDir);
|
|
|
if (!dir.exists()) {
|
|
@@ -209,39 +202,39 @@ public class TMtMeetingController extends BaseController
|
|
|
return "";
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* @Description: 替换段落和表格
|
|
|
*/
|
|
|
- private void replaceAll(XWPFDocument doc, Long year,Long meetingId) throws Exception {
|
|
|
+ private void replaceAll(XWPFDocument doc, Long year, Long meetingId) throws Exception {
|
|
|
TMonthplan tMonthplan = new TMonthplan();
|
|
|
tMonthplan.setYear(2020l);
|
|
|
- doParagraphs(doc,meetingId);// 处理段落文字数据,包括文字和表格、图片
|
|
|
+ doParagraphs(doc, meetingId);// 处理段落文字数据,包括文字和表格、图片
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 处理段落文字数据,包括文字和表格、图片
|
|
|
*
|
|
|
- * @param doc
|
|
|
- * 一个文档包含多个段落,一个段落包含多个Runs,一个Runs包含多个Run,Run是文档的最小单元
|
|
|
+ * @param doc 一个文档包含多个段落,一个段落包含多个Runs,一个Runs包含多个Run,Run是文档的最小单元
|
|
|
*/
|
|
|
- private void doParagraphs(XWPFDocument doc,Long meetingId) {
|
|
|
+ private void doParagraphs(XWPFDocument doc, Long meetingId) {
|
|
|
// 文本数据
|
|
|
Calendar cal = Calendar.getInstance();
|
|
|
Map<String, String> textMap = new HashMap<String, String>();
|
|
|
//
|
|
|
- TMtOpextrack tMtOpextrack =new TMtOpextrack();
|
|
|
+ TMtOpextrack tMtOpextrack = new TMtOpextrack();
|
|
|
tMtOpextrack.setMeetingId(meetingId);
|
|
|
List<TMtOpextrack> opextrackList = tMtOpextrackMapper.selectTMtOpextrackList(tMtOpextrack);
|
|
|
tMtOpextrack = opextrackList.get(0);
|
|
|
- textMap.put("{{items}}", " "+String.valueOf(tMtOpextrack.getTotalitem()));
|
|
|
- textMap.put("{{ongoing}}", " "+String.valueOf(tMtOpextrack.getOngoing()));
|
|
|
- textMap.put("{{finished}}", " "+String.valueOf(tMtOpextrack.getFinished()));
|
|
|
- textMap.put("{{benefit}}", " "+String.valueOf(tMtOpextrack.getBenefit()));
|
|
|
- textMap.put("{{opxyear}} Estimated Benefit (RMB)", String.valueOf(tMtOpextrack.getYear())+" Estimated Benefit (RMB)");
|
|
|
+ textMap.put("{{items}}", " " + String.valueOf(tMtOpextrack.getTotalitem()));
|
|
|
+ textMap.put("{{ongoing}}", " " + String.valueOf(tMtOpextrack.getOngoing()));
|
|
|
+ textMap.put("{{finished}}", " " + String.valueOf(tMtOpextrack.getFinished()));
|
|
|
+ textMap.put("{{benefit}}", " " + String.valueOf(tMtOpextrack.getBenefit()));
|
|
|
+ textMap.put("{{opxyear}} Estimated Benefit (RMB)", String.valueOf(tMtOpextrack.getYear()) + " Estimated Benefit (RMB)");
|
|
|
|
|
|
TMtMeeting tMtMeeting = tMtMeetingService.selectTMtMeetingById(meetingId);
|
|
|
- textMap.put("{{mtDate}}", DateUtils.parseDateToStr("yyyy/MM/dd",tMtMeeting.getMeetingDate()));
|
|
|
+ textMap.put("{{mtDate}}", DateUtils.parseDateToStr("yyyy/MM/dd", tMtMeeting.getMeetingDate()));
|
|
|
textMap.put("{{mtVenue}}", String.valueOf(tMtMeeting.getVenue()));
|
|
|
textMap.put("{{mtNo}}", tMtMeeting.getMeetingNo());
|
|
|
textMap.put("{{mtRecorder}}", tMtMeeting.getRecorder());
|
|
@@ -265,7 +258,7 @@ public class TMtMeetingController extends BaseController
|
|
|
* ----------------------------替换表格数据
|
|
|
* ------------------------------------
|
|
|
**/
|
|
|
- doJLParagraphs(doc, paragraph, run, tempText,meetingId);// 处理段落文字数据,包括文字和表格、图片
|
|
|
+ doJLParagraphs(doc, paragraph, run, tempText, meetingId);// 处理段落文字数据,包括文字和表格、图片
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -278,12 +271,13 @@ public class TMtMeetingController extends BaseController
|
|
|
int i = 1;
|
|
|
while (itTable.hasNext()) {
|
|
|
XWPFTable table = (XWPFTable) itTable.next();
|
|
|
- changeTableMessage(textMap , table ,false ,null,i);
|
|
|
+ changeTableMessage(textMap, table, false, null, i);
|
|
|
i++;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- private void changeTableMessage(Map<String, String> textMap, XWPFTable table, boolean isBold, Integer fontSize,int num) {
|
|
|
+
|
|
|
+ private void changeTableMessage(Map<String, String> textMap, XWPFTable table, boolean isBold, Integer fontSize, int num) {
|
|
|
int count = table.getNumberOfRows();//获取table的行数
|
|
|
for (int i = 0; i < count; i++) {
|
|
|
XWPFTableRow row = table.getRow(i);
|
|
@@ -294,11 +288,11 @@ public class TMtMeetingController extends BaseController
|
|
|
if (cell.getText().equals(e.getKey())) {
|
|
|
XWPFParagraph newPara = new XWPFParagraph(cell.getCTTc().addNewP(), cell);
|
|
|
XWPFRun r1 = newPara.createRun();
|
|
|
- if (num == 1){
|
|
|
+ if (num == 1) {
|
|
|
r1.setFontSize(10);
|
|
|
r1.setTextPosition(10);
|
|
|
r1.setBold(true);
|
|
|
- }else if (num == 2){
|
|
|
+ } else if (num == 2) {
|
|
|
r1.setFontSize(13);
|
|
|
r1.setTextPosition(10);
|
|
|
}
|
|
@@ -311,46 +305,46 @@ public class TMtMeetingController extends BaseController
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 处理段落文字--经理
|
|
|
- *
|
|
|
- * @param doc
|
|
|
- * @throws InvalidFormatException
|
|
|
- * @throws FileNotFoundException
|
|
|
- * @throws IOException
|
|
|
- */
|
|
|
- public void doJLParagraphs(XWPFDocument doc, XWPFParagraph paragraph, XWPFRun run, String text,Long meetingId) {
|
|
|
+ /**
|
|
|
+ * 处理段落文字--经理
|
|
|
+ *
|
|
|
+ * @param doc
|
|
|
+ * @throws InvalidFormatException
|
|
|
+ * @throws FileNotFoundException
|
|
|
+ * @throws IOException
|
|
|
+ */
|
|
|
+ public void doJLParagraphs(XWPFDocument doc, XWPFParagraph paragraph, XWPFRun run, String text, Long meetingId) {
|
|
|
// 执行表
|
|
|
if (text.contains("${table1}")) {
|
|
|
- tMtActionlistService.dealActionlist(doc, paragraph, run,meetingId);
|
|
|
+ tMtActionlistService.dealActionlist(doc, paragraph, run, meetingId);
|
|
|
}
|
|
|
// EHS开项追踪
|
|
|
if (text.contains("${table2}")) {
|
|
|
- tMtEhsopenitemService.dealEhsopenitemlist(doc, paragraph, run,meetingId);
|
|
|
+ tMtEhsopenitemService.dealEhsopenitemlist(doc, paragraph, run, meetingId);
|
|
|
}
|
|
|
// 信息提醒
|
|
|
if (text.contains("${table3}")) {
|
|
|
- tMtMessageattentionService.dealMessageattentionlist(doc, paragraph, run,meetingId);
|
|
|
+ tMtMessageattentionService.dealMessageattentionlist(doc, paragraph, run, meetingId);
|
|
|
}
|
|
|
// 信息提醒
|
|
|
if (text.contains("${table4}")) {
|
|
|
- tMtRiskreminderService.dealRiskreminder(doc, paragraph, run,meetingId);
|
|
|
+ tMtRiskreminderService.dealRiskreminder(doc, paragraph, run, meetingId);
|
|
|
}
|
|
|
// 信息提醒
|
|
|
if (text.contains("${table5}")) {
|
|
|
- tMtInterlockService.dealInterlock(doc, paragraph, run,meetingId);
|
|
|
+ tMtInterlockService.dealInterlock(doc, paragraph, run, meetingId);
|
|
|
}
|
|
|
// 下周关键维修工作
|
|
|
if (text.contains("${table7}")) {
|
|
|
- tMtKeymaintenanceService.dealKeymaintenancelist(doc, paragraph, run,meetingId);
|
|
|
+ tMtKeymaintenanceService.dealKeymaintenancelist(doc, paragraph, run, meetingId);
|
|
|
}
|
|
|
// yihuizhe
|
|
|
if (text.contains("${table8}")) {
|
|
|
- tMtPersonService.dealPerson1(doc, paragraph, run,meetingId);
|
|
|
+ tMtPersonService.dealPerson1(doc, paragraph, run, meetingId);
|
|
|
}
|
|
|
// cc
|
|
|
if (text.contains("${table9}")) {
|
|
|
- tMtPersonService.dealPerson2(doc, paragraph, run,meetingId);
|
|
|
+ tMtPersonService.dealPerson2(doc, paragraph, run, meetingId);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -360,8 +354,7 @@ public class TMtMeetingController extends BaseController
|
|
|
@PreAuthorize("@ss.hasPermi('plant:dailyMeeting:edit')")
|
|
|
@Log(title = "发送调度会议邮件", businessType = BusinessType.OTHER)
|
|
|
@GetMapping("/sendMail")
|
|
|
- public AjaxResult sendMail(TMtMeeting tMtMeeting)
|
|
|
- {
|
|
|
+ public AjaxResult sendMail(TMtMeeting tMtMeeting) {
|
|
|
TMtMeeting mtMeeting = tMtMeetingService.selectTMtMeetingById(tMtMeeting.getId());
|
|
|
|
|
|
//写html开始内容
|
|
@@ -397,13 +390,13 @@ public class TMtMeetingController extends BaseController
|
|
|
|
|
|
String one = firstcenter.replaceFirst("meetingDate", formattedDate);
|
|
|
String two = one.replace("requestJumpPath", this.ruoyiConfig.getRequestJumpPath());
|
|
|
- String result = two.replaceFirst("date", dateFormat.format(new Date()));
|
|
|
+ String result = two.replaceFirst("date", dateFormat.format(new Date()));
|
|
|
prime = prime + result;
|
|
|
//拼接html
|
|
|
String html = start + prime + end;
|
|
|
|
|
|
// 需要转换的文件路径
|
|
|
- String filePath = RuoYiConfig.getProfile()+mtMeeting.getWordUrl().replace("/profile","");
|
|
|
+ String filePath = RuoYiConfig.getProfile() + mtMeeting.getWordUrl().replace("/profile", "");
|
|
|
|
|
|
//发送人和抄送人
|
|
|
String[] email = {"735032128@qq.com", "1213269375@qq.com"};
|
|
@@ -417,8 +410,8 @@ public class TMtMeetingController extends BaseController
|
|
|
tMtPerson.setMeetingId(mtMeeting.getId());
|
|
|
tMtPerson.setIsCc(0l);
|
|
|
List<TMtPerson> personList = tMtPersonMapper.selectTMtPersonList(tMtPerson);
|
|
|
- for (TMtPerson t :personList
|
|
|
- ) {
|
|
|
+ for (TMtPerson t : personList
|
|
|
+ ) {
|
|
|
SysUser user = sysUserService.selectUserByStaffId(t.getStaffid());
|
|
|
if (user != null && StringUtils.isNotEmpty(user.getEmail())) {
|
|
|
emailList.add(user.getEmail());
|
|
@@ -428,7 +421,7 @@ public class TMtMeetingController extends BaseController
|
|
|
//邮件抄送人
|
|
|
tMtPerson.setIsCc(1l);
|
|
|
List<TMtPerson> personCcList = tMtPersonMapper.selectTMtPersonList(tMtPerson);
|
|
|
- for (TMtPerson t :personCcList
|
|
|
+ for (TMtPerson t : personCcList
|
|
|
) {
|
|
|
SysUser user = sysUserService.selectUserByStaffId(t.getStaffid());
|
|
|
if (user != null && StringUtils.isNotEmpty(user.getEmail())) {
|
|
@@ -438,9 +431,13 @@ public class TMtMeetingController extends BaseController
|
|
|
|
|
|
email = emailList.toArray(new String[emailList.size()]);
|
|
|
emailCc = emailCcList.toArray(new String[emailCcList.size()]);
|
|
|
- logger.info("发送人:" + email.toString());
|
|
|
- logger.info("抄送人:" + emailCc.toString());
|
|
|
- mailService.sendAttachmentsMail(email, "CPMS:您有一条"+ formattedDate+"装置周会议信息", html, emailCc,filePath);
|
|
|
+ logger.info("发送人:" + JSON.toJSONString(email));
|
|
|
+ logger.info("抄送人:" + JSON.toJSONString(emailCc));
|
|
|
+ try {
|
|
|
+ mailService.sendAttachmentsMail(email, "CPMS:您有一条" + formattedDate + "装置周会议信息", html, emailCc, filePath);
|
|
|
+ } catch (Exception e) {
|
|
|
+ return AjaxResult.error(JSON.toJSONString(e));
|
|
|
+ }
|
|
|
return AjaxResult.success();
|
|
|
}
|
|
|
|