|
@@ -1,11 +1,14 @@
|
|
|
package com.rongwei.bscommon.sys.service.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.aspose.cells.SaveFormat;
|
|
|
import com.aspose.cells.Workbook;
|
|
|
+import com.aspose.words.Document;
|
|
|
+import com.aspose.words.MailMergeCleanupOptions;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.rongwei.bscommon.sys.service.*;
|
|
@@ -20,15 +23,21 @@ import com.rongwei.bsentity.dto.node.*;
|
|
|
import com.rongwei.bsentity.vo.CopyNodeVo;
|
|
|
import com.rongwei.bsentity.vo.ZhcxItpTemplateNodeSyncProjectVo;
|
|
|
import com.rongwei.bsentity.vo.ZhcxItpTemplateNodesVo;
|
|
|
+import com.rongwei.bsentity.vo.report.ZhcxTempExport;
|
|
|
import com.rongwei.commonservice.service.dao.CommonSqlDao;
|
|
|
import com.rongwei.rwadmincommon.system.domain.SysDictDo;
|
|
|
import com.rongwei.rwadmincommon.system.domain.SysOrganizationDo;
|
|
|
import com.rongwei.rwadmincommon.system.service.SysDictService;
|
|
|
import com.rongwei.rwadmincommon.system.service.SysOrganizationService;
|
|
|
import com.rongwei.rwadmincommon.system.vo.SysUserVo;
|
|
|
+import com.rongwei.rwcommon.base.R;
|
|
|
import com.rongwei.rwcommon.base.exception.CustomException;
|
|
|
import com.rongwei.rwcommon.utils.SecurityUtil;
|
|
|
import com.rongwei.rwcommon.utils.StringUtils;
|
|
|
+import com.rongwei.rwcommoncomponent.excel.aspose.ExcelExportUtil;
|
|
|
+import com.rongwei.rwcommoncomponent.excel.vo.FormData;
|
|
|
+import com.rongwei.rwcommoncomponent.file.service.SysFileItemService;
|
|
|
+import com.rongwei.rwcommonentity.commonservers.domain.SysFileItemDo;
|
|
|
import lombok.val;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -83,6 +92,9 @@ public class ZhcxItpTemplateNodesServiceImpl extends ServiceImpl<ZhcxItpTemplate
|
|
|
|
|
|
@Autowired
|
|
|
private ZhcxCoreInspectionDetailService zhcxCoreInspectionDetailService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SysFileItemService sysFileItemService;
|
|
|
/**
|
|
|
* 新增的ITP模板节点同步到指定项目
|
|
|
* @param zhcxItpTemplateNodeSyncProjectVo
|
|
@@ -655,6 +667,77 @@ public class ZhcxItpTemplateNodesServiceImpl extends ServiceImpl<ZhcxItpTemplate
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public R cesProjectWordImport(Map<String, Object> map, HttpServletResponse response) {
|
|
|
+ if(ObjectUtil.isNull(map.get("projectId"))) {
|
|
|
+ return R.error("请选择项目工号");
|
|
|
+ }
|
|
|
+ if(ObjectUtil.isNull(map.get("machineno"))) {
|
|
|
+ return R.error("请选择机号");
|
|
|
+ }
|
|
|
+ // 从前端接收的基础信息
|
|
|
+ String projectId = (String) map.get("projectId");
|
|
|
+ String projectName = (String) map.get("projectName");
|
|
|
+ String projectCode = (String) map.get("projectCode");
|
|
|
+ String machineno = (String) map.get("machineno");
|
|
|
+ String machineid = (String) map.get("machineid");
|
|
|
+ // 获取模板信息
|
|
|
+ ZhcxTempExport tempExport = baseMapper.getFileIdByCes("CES");
|
|
|
+ if(ObjectUtil.isNull(tempExport) || ObjectUtil.isNotEmpty(tempExport.getFileId())) {
|
|
|
+ return R.error("获取word模板失败");
|
|
|
+ }
|
|
|
+ // 序号
|
|
|
+ //String serialNumbers = tempExport.getValued();
|
|
|
+ SysFileItemDo fileItemDo = sysFileItemService.getById(tempExport.getFileId().split("-;-")[1]);
|
|
|
+ if(Objects.isNull(fileItemDo) || ObjectUtil.isNotEmpty(fileItemDo.getFullpath())) {
|
|
|
+ return R.error("获取word模板失败");
|
|
|
+ }
|
|
|
+ // word参数值
|
|
|
+ FormData formData = new FormData();
|
|
|
+ List<Map<String, Object>> mainDataList = new ArrayList<>();
|
|
|
+ Map<String, Object> mainMap = new HashMap<>(16);
|
|
|
+ mainMap.put("projectName",projectName);
|
|
|
+ mainMap.put("projectCode",projectCode);
|
|
|
+ mainMap.put("machineno",machineno);
|
|
|
+ // 当前时间
|
|
|
+ mainMap.put("nowDate",DateUtil.today());
|
|
|
+ // 获取其他参数
|
|
|
+ List<ZhcxTempExport> temps = baseMapper.getOutSideInspectionItpListData(projectCode,machineno);
|
|
|
+ temps.forEach(temp -> {
|
|
|
+ mainMap.put(temp.getNum()+"result",temp.getConclusion());
|
|
|
+ mainMap.put(temp.getNum()+"by",temp.getSupervision());
|
|
|
+ if(temp.getChecktime() != null) {
|
|
|
+ mainMap.put(temp.getNum()+"date",DateUtil.format(temp.getChecktime(), "yyyy-MM-dd"));
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ mainDataList.add(mainMap);
|
|
|
+ formData.setMainDataList(mainDataList);
|
|
|
+ // word导出
|
|
|
+ Document document = ExcelExportUtil.fillWordDataByMap(fileItemDo.getFullpath(), formData);
|
|
|
+ exportWord(document, response);
|
|
|
+ return R.ok("导出成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 导出word
|
|
|
+ * @param doc
|
|
|
+ * @param response
|
|
|
+ */
|
|
|
+ public void exportWord(Document doc, HttpServletResponse response) {
|
|
|
+ try {
|
|
|
+ response.setContentType("application/octet-stream;charset=ISO8859-1");
|
|
|
+ response.setHeader("Content-Disposition", "attachment;filename=Accidentcompilation.docx");
|
|
|
+ doc.getMailMerge().setCleanupOptions(MailMergeCleanupOptions.REMOVE_UNUSED_FIELDS);
|
|
|
+ doc.getMailMerge().setCleanupOptions(MailMergeCleanupOptions.REMOVE_EMPTY_TABLE_ROWS);
|
|
|
+ doc.getMailMerge().deleteFields();
|
|
|
+ doc.save(response.getOutputStream(), com.aspose.words.SaveFormat.DOCX);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("生成检查项内容异常");
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 导入辅助
|
|
|
*
|