|
@@ -1,16 +1,23 @@
|
|
|
package com.ruoyi.project.ticket.controller;
|
|
|
|
|
|
+import java.io.IOException;
|
|
|
import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
+import com.deepoove.poi.data.TextRenderData;
|
|
|
+import com.deepoove.poi.data.Texts;
|
|
|
+import com.deepoove.poi.data.style.Style;
|
|
|
+import com.ruoyi.common.utils.DateUtils;
|
|
|
import com.ruoyi.framework.config.RuoYiConfig;
|
|
|
+import com.ruoyi.project.common.controller.WordController;
|
|
|
+import com.ruoyi.project.configuration.mapper.TMatterMapper;
|
|
|
import com.ruoyi.project.ticket.domain.PermitRelation;
|
|
|
import com.ruoyi.project.ticket.domain.TRestrictedSpacePermit;
|
|
|
import com.ruoyi.project.ticket.domain.TTicketId;
|
|
|
import com.ruoyi.project.ticket.service.ITPermitRelationService;
|
|
|
import com.ruoyi.project.ticket.service.ITRestrictedSpacePermitService;
|
|
|
-import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
@@ -27,6 +34,8 @@ import com.ruoyi.framework.web.domain.AjaxResult;
|
|
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
|
|
import com.ruoyi.framework.web.page.TableDataInfo;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
+
|
|
|
/**
|
|
|
* 限制性空间进入开票Controller
|
|
|
*
|
|
@@ -46,6 +55,12 @@ public class TRestrictedSpacePermitController extends BaseController
|
|
|
@Autowired
|
|
|
private ITPermitRelationService itPermitRelationService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private TMatterMapper tMatterMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private WordController wordController;
|
|
|
+
|
|
|
/**
|
|
|
* 查询限制性空间进入开票列表
|
|
|
*/
|
|
@@ -83,20 +98,28 @@ public class TRestrictedSpacePermitController extends BaseController
|
|
|
*/
|
|
|
@Log(title = "限制性空间进入开票", businessType = BusinessType.INSERT)
|
|
|
@PostMapping
|
|
|
- public AjaxResult add(@RequestBody TRestrictedSpacePermit tRestrictedSpacePermit)
|
|
|
- {
|
|
|
+ public AjaxResult add(@RequestBody TRestrictedSpacePermit tRestrictedSpacePermit) throws IOException {
|
|
|
//生成票号
|
|
|
TTicketId tTicketId = new TTicketId();
|
|
|
tTicketId.setId(1l);
|
|
|
Long ticketId = tTicketIdController.createId(tTicketId);
|
|
|
//保存限制空间许可证
|
|
|
tRestrictedSpacePermit.setcId(ticketId);
|
|
|
- Date bValidityStartTime = tRestrictedSpacePermit.getbValidityStartTime();
|
|
|
- Date bValidityEndTime = tRestrictedSpacePermit.getbValidityEndTime();
|
|
|
- bValidityStartTime.setDate(bValidityStartTime.getDate() + 1);
|
|
|
- bValidityEndTime.setDate(bValidityEndTime.getDate() + 1);
|
|
|
- tRestrictedSpacePermit.setbValidityStartTime(bValidityStartTime);
|
|
|
- tRestrictedSpacePermit.setbValidityEndTime(bValidityEndTime);
|
|
|
+ //生成word
|
|
|
+ //渲染文本
|
|
|
+ Map<String, Object> params = getWordData(tRestrictedSpacePermit);
|
|
|
+ // 模板路径
|
|
|
+ String templatePath = "static/word/restrictedSpaceTicket.docx";
|
|
|
+ // 生成word的路径
|
|
|
+ String fileDir = RuoYiConfig.getProfile() + "/" + "ticketWord";;
|
|
|
+ // 生成word的文件
|
|
|
+ String fileName = "C" + ticketId + ".docx";
|
|
|
+ String wordPath = this.wordController.createWord(templatePath, fileDir, fileName, params);
|
|
|
+ tRestrictedSpacePermit.setWordUrl(wordPath);
|
|
|
+ //使用流的方式转换PDF
|
|
|
+ String fileName2 = "C" + tRestrictedSpacePermit.getcId() + ".pdf";
|
|
|
+ String pdfPath = this.wordController.createPDF(fileDir, fileName, fileName2, params);
|
|
|
+ tRestrictedSpacePermit.setPdfUrl(pdfPath);
|
|
|
tRestrictedSpacePermitService.insertTRestrictedSpacePermit(tRestrictedSpacePermit);
|
|
|
//保存限制空间许可证关联数据
|
|
|
PermitRelation permitRelation = new PermitRelation();
|
|
@@ -113,8 +136,22 @@ public class TRestrictedSpacePermitController extends BaseController
|
|
|
*/
|
|
|
@Log(title = "限制性空间进入开票", businessType = BusinessType.UPDATE)
|
|
|
@PutMapping
|
|
|
- public AjaxResult edit(@RequestBody TRestrictedSpacePermit tRestrictedSpacePermit)
|
|
|
- {
|
|
|
+ public AjaxResult edit(@RequestBody TRestrictedSpacePermit tRestrictedSpacePermit) throws IOException {
|
|
|
+ //生成word
|
|
|
+ //渲染文本
|
|
|
+ Map<String, Object> params = getWordData(tRestrictedSpacePermit);
|
|
|
+ // 模板路径
|
|
|
+ String templatePath = "static/word/restrictedSpaceTicket.docx";
|
|
|
+ // 生成word的路径
|
|
|
+ String fileDir = RuoYiConfig.getProfile() + "/" + "ticketWord";
|
|
|
+ // 生成word的文件
|
|
|
+ String fileName = "C" + tRestrictedSpacePermit.getcId() + ".docx";
|
|
|
+ String wordPath = this.wordController.createWord(templatePath, fileDir, fileName, params);
|
|
|
+ tRestrictedSpacePermit.setWordUrl(wordPath);
|
|
|
+ //使用流的方式转换PDF
|
|
|
+ String fileName2 = "C" + tRestrictedSpacePermit.getcId() + ".pdf";
|
|
|
+ String pdfPath = this.wordController.createPDF(fileDir, fileName, fileName2, params);
|
|
|
+ tRestrictedSpacePermit.setPdfUrl(pdfPath);
|
|
|
return toAjax(tRestrictedSpacePermitService.updateTRestrictedSpacePermit(tRestrictedSpacePermit));
|
|
|
}
|
|
|
|
|
@@ -127,4 +164,66 @@ public class TRestrictedSpacePermitController extends BaseController
|
|
|
{
|
|
|
return toAjax(tRestrictedSpacePermitService.deleteTRestrictedSpacePermitByIds(cIds));
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ public Map<String, Object> getWordData(TRestrictedSpacePermit tRestrictedSpacePermit) {
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ // 渲染文本
|
|
|
+ params.put("cId", Texts.of(tRestrictedSpacePermit.getcId().toString()).fontSize(7).bold().create());
|
|
|
+ params.put("aEquipmentName", Texts.of(tRestrictedSpacePermit.getaEquipmentName()).fontSize(7).bold().create());
|
|
|
+ params.put("aEquipmentLeader", Texts.of(tRestrictedSpacePermit.getaEquipmentLeader()).fontSize(7).bold().create());
|
|
|
+ params.put("aEquipmentTel", Texts.of(tRestrictedSpacePermit.getaEquipmentTel()).fontSize(7).bold().create());
|
|
|
+ params.put("aEquipmentOffice", Texts.of(tRestrictedSpacePermit.getaEquipmentOffice()).fontSize(7).bold().create());
|
|
|
+ params.put("aConstructionName", Texts.of(tRestrictedSpacePermit.getaConstructionName()).fontSize(7).bold().create());
|
|
|
+ params.put("aConstructionLeader", Texts.of(tRestrictedSpacePermit.getaConstructionLeader()).fontSize(7).bold().create());
|
|
|
+ params.put("aConstructionTel", Texts.of(tRestrictedSpacePermit.getaConstructionTel()).fontSize(7).bold().create());
|
|
|
+ params.put("aConstructionOffice", Texts.of(tRestrictedSpacePermit.getaConstructionOffice()).fontSize(7).bold().create());
|
|
|
+ params.put("aContractorName", Texts.of(tRestrictedSpacePermit.getaContractorName()).fontSize(7).bold().create());
|
|
|
+ params.put("aContractorLeader", Texts.of(tRestrictedSpacePermit.getaContractorLeader()).fontSize(7).bold().create());
|
|
|
+ params.put("aContractorTel", Texts.of(tRestrictedSpacePermit.getaContractorTel()).fontSize(7).bold().create());
|
|
|
+ params.put("aContractorOffice", Texts.of(tRestrictedSpacePermit.getaContractorOffice()).fontSize(7).bold().create());
|
|
|
+
|
|
|
+ getCheck(params, tRestrictedSpacePermit.getaIsNeedSafeLiaison().toString(), "aIsNSL1", "aIsNSL2");
|
|
|
+ params.put("aSafeLiaisonName", Texts.of(tRestrictedSpacePermit.getaSafeLiaisonName()).fontSize(7).bold().create());
|
|
|
+ params.put("aSafeLiaisonSign", Texts.of(tRestrictedSpacePermit.getaSafeLiaisonSign()).fontSize(7).bold().create());
|
|
|
+ params.put("aSafeLiaisonTel", Texts.of(tRestrictedSpacePermit.getaSafeLiaisonTel()).fontSize(7).bold().create());
|
|
|
+ params.put("aSafeLiaisonOffice", Texts.of(tRestrictedSpacePermit.getaSafeLiaisonOffice()).fontSize(7).bold().create());
|
|
|
+ // B 栏
|
|
|
+ params.put("bDeviceName", Texts.of(tRestrictedSpacePermit.getbDeviceName()).fontSize(7).bold().create());
|
|
|
+ params.put("bAreaNo", Texts.of(tRestrictedSpacePermit.getbAreaNo()).fontSize(7).bold().create());
|
|
|
+ params.put("bWorkContent", Texts.of(tRestrictedSpacePermit.getbWorkContent()).fontSize(7).bold().create());
|
|
|
+ if (tRestrictedSpacePermit.getbValidityStartTime() != null) {
|
|
|
+ params.put("bValidityStartTime", Texts.of(DateUtils.parseDateToStr("yyyy年MM月dd日HH时mm分", tRestrictedSpacePermit.getbValidityStartTime())).fontSize(7).bold().create());
|
|
|
+ }
|
|
|
+ if (tRestrictedSpacePermit.getbValidityEndTime() != null) {
|
|
|
+ params.put("bValidityEndTime", Texts.of(DateUtils.parseDateToStr("yyyy年MM月dd日HH时mm分", tRestrictedSpacePermit.getbValidityEndTime())).fontSize(7).bold().create());
|
|
|
+ }
|
|
|
+ return params;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 勾选框判断渲染
|
|
|
+ public void getCheck(Map<String, Object> params, String ticketWord, String check1) {
|
|
|
+ if ("1".equals(ticketWord)) {
|
|
|
+ params.put(check1, new TextRenderData("\u00FE", new Style("Wingdings", 7)));
|
|
|
+ } else if ("2".equals(ticketWord)) {
|
|
|
+ params.put(check1, new TextRenderData("\u006F", new Style("Wingdings", 7)));
|
|
|
+ } else {
|
|
|
+ params.put(check1, new TextRenderData("\u006F", new Style("Wingdings", 7)));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 勾选框判断渲染
|
|
|
+ public void getCheck(Map<String, Object> params, String ticketWord, String check1, String check2) {
|
|
|
+ if ("1".equals(ticketWord)) {
|
|
|
+ params.put(check1, new TextRenderData("\u00FE", new Style("Wingdings", 7)));
|
|
|
+ params.put(check2, new TextRenderData("\u006F", new Style("Wingdings", 7)));
|
|
|
+ } else if ("2".equals(ticketWord)) {
|
|
|
+ params.put(check1, new TextRenderData("\u006F", new Style("Wingdings", 7)));
|
|
|
+ params.put(check2, new TextRenderData("\u00FE", new Style("Wingdings", 7)));
|
|
|
+ } else {
|
|
|
+ params.put(check1, new TextRenderData("\u006F", new Style("Wingdings", 7)));
|
|
|
+ params.put(check2, new TextRenderData("\u006F", new Style("Wingdings", 7)));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|