|
@@ -1,32 +1,44 @@
|
|
|
package com.rongwei.bscommon.sys.service.impl;
|
|
|
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
|
|
+import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.rongwei.bscommon.sys.dao.CommonDao;
|
|
|
import com.rongwei.bscommon.sys.dao.EquOverhaulPlanningTasksMapperDao;
|
|
|
import com.rongwei.bscommon.sys.service.EquOverhaulPlanningTasksService;
|
|
|
+import com.rongwei.bscommon.sys.service.EquipmentSendNotifyService;
|
|
|
import com.rongwei.bscommon.sys.utils.*;
|
|
|
+import com.rongwei.bsentity.domain.EquLubricationTaskDetailVo;
|
|
|
import com.rongwei.bsentity.domain.EquOverhaulPlanningTasksDo;
|
|
|
-import com.rongwei.bsentity.domain.EquWarrantyProviderDo;
|
|
|
+import com.rongwei.bsentity.domain.EquOverhaulPlanningTasksVo;
|
|
|
+import com.rongwei.rwadmincommon.system.domain.SysConfigFilesDo;
|
|
|
import com.rongwei.rwadmincommon.system.domain.SysDictDo;
|
|
|
import com.rongwei.rwadmincommon.system.vo.SysOrganizationVo;
|
|
|
import com.rongwei.rwadmincommon.system.vo.SysUserVo;
|
|
|
import com.rongwei.rwcommon.base.R;
|
|
|
import com.rongwei.rwcommon.utils.SecurityUtil;
|
|
|
import com.rongwei.rwcommon.utils.StringUtils;
|
|
|
+import com.rongwei.rwcommonentity.commonservers.domain.SysFileItemDo;
|
|
|
+import com.rongwei.safecommon.utils.CXCommonUtils;
|
|
|
import org.apache.poi.ss.usermodel.Row;
|
|
|
import org.apache.poi.ss.usermodel.Sheet;
|
|
|
+import org.apache.poi.ss.usermodel.Workbook;
|
|
|
import org.apache.poi.xssf.usermodel.XSSFCell;
|
|
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.io.FileOutputStream;
|
|
|
import java.io.IOException;
|
|
|
-import java.math.BigDecimal;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
+import java.nio.file.Files;
|
|
|
+import java.nio.file.Path;
|
|
|
+import java.nio.file.Paths;
|
|
|
+import java.nio.file.attribute.BasicFileAttributes;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -44,8 +56,13 @@ public class EquOverhaulPlanningTasksServiceImpl extends ServiceImpl<EquOverhaul
|
|
|
private EquOverhaulPlanningTasksService equOverhaulPlanningTasksService;
|
|
|
|
|
|
@Autowired
|
|
|
- private CommonDao commonDao;
|
|
|
+ private EquipmentSendNotifyService equipmentSendNotifyService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ EquOverhaulPlanningTasksMapperDao equOverhaulPlanningTasksMapperDao;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private CommonDao commonDao;
|
|
|
@Override
|
|
|
public R importEquOverhaulPlanningTasks(MultipartFile file) {
|
|
|
try {
|
|
@@ -127,4 +144,63 @@ public class EquOverhaulPlanningTasksServiceImpl extends ServiceImpl<EquOverhaul
|
|
|
}
|
|
|
return R.ok();
|
|
|
}
|
|
|
-}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R sendPlanTaskNotify(HttpServletResponse response) {
|
|
|
+ // 临时文件夹路径
|
|
|
+ Path tempDir = Paths.get("/upload_files/file_system");
|
|
|
+ List<EquOverhaulPlanningTasksVo> equOverhaulPlanningTasksDos = equOverhaulPlanningTasksMapperDao.selectAllOverdueTaskQuantity();
|
|
|
+ for (EquOverhaulPlanningTasksVo planningTasksVo:equOverhaulPlanningTasksDos){
|
|
|
+ if (planningTasksVo.getTaskquantity()>0){
|
|
|
+ List<EquOverhaulPlanningTasksVo> tasksVos = equOverhaulPlanningTasksMapperDao.selectTasksByFactoryId(planningTasksVo.getTenantid());
|
|
|
+ try {
|
|
|
+ // 读取模板文件
|
|
|
+ TemplateExportParams params = new TemplateExportParams("template/大修任务超期未完成.xls",0);
|
|
|
+ Map<String, Object> dataMap = new HashMap<>(16);
|
|
|
+ List<Map<String,Object>> dataList = new ArrayList<>();
|
|
|
+ for (EquOverhaulPlanningTasksVo equLubricationTaskDetailVo : tasksVos) {
|
|
|
+ dataList.add(JSONObject.parseObject(JSONObject.toJSONString(equLubricationTaskDetailVo), Map.class));
|
|
|
+ }
|
|
|
+ dataMap.put("list",dataList);
|
|
|
+ Workbook workbook = ExcelExportUtil.exportExcel(params,dataMap);
|
|
|
+ // 生成临时文件路径并写入 Word 文档
|
|
|
+ Path tempFile = Files.createTempFile(tempDir, "附件", ".xls");
|
|
|
+ try (FileOutputStream outputStream = new FileOutputStream(tempFile.toString())) {
|
|
|
+ workbook.write(outputStream);
|
|
|
+ }
|
|
|
+ BasicFileAttributes attributes = Files.readAttributes(tempFile, BasicFileAttributes.class);
|
|
|
+ long sizeInBytes = attributes.size();
|
|
|
+ System.out.println("xls文件已保存在 " + tempFile.toString());
|
|
|
+ String tempFilePath = tempFile.toString();
|
|
|
+ SysFileItemDo sysFileItemDo = new SysFileItemDo();
|
|
|
+ sysFileItemDo.setId(SecurityUtil.getUUID());
|
|
|
+ sysFileItemDo.setFilename("大修任务超期未完成");
|
|
|
+ //文件大小
|
|
|
+ sysFileItemDo.setFilesize(sizeInBytes);
|
|
|
+ sysFileItemDo.setFiletype("xls");
|
|
|
+ sysFileItemDo.setStoragetype("1");
|
|
|
+ sysFileItemDo.setRelationid(planningTasksVo.getId());
|
|
|
+ sysFileItemDo.setFullpath(tempFilePath);
|
|
|
+ sysFileItemDo.setUrlpath(tempFilePath);
|
|
|
+ sysFileItemDo.setExtends1("files");
|
|
|
+ sysFileItemDo.setDeleted("0");
|
|
|
+ sysFileItemDo.setCreatedate(DateUtil.date());
|
|
|
+ sysFileItemDo.setCreateuserid("7144ec7b69484007a07f2542cc1d90c7");
|
|
|
+ sysFileItemDo.setModifydate(DateUtil.date());
|
|
|
+ sysFileItemDo.setModifyuserid("7144ec7b69484007a07f2542cc1d90c7");
|
|
|
+ sysFileItemDo.setCreateusername("系统大修任务超期提醒");
|
|
|
+ sysFileItemDo.setModifyusername("系统大修任务超期提醒");
|
|
|
+ commonDao.insertFile(sysFileItemDo);
|
|
|
+ try {
|
|
|
+ equipmentSendNotifyService.sendPlanningTasksNotify(planningTasksVo.getPlanyear(),planningTasksVo.getBelongfactory(),planningTasksVo.getTaskquantity(),sysFileItemDo.getId());
|
|
|
+ }catch (Exception e){
|
|
|
+ ExceptionUtils.printExceptionDetail(e,"发送消息异常");
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ ExceptionUtils.printExceptionDetail(e,"读取模板异常");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+}
|