diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java index 0af5ea3..bb5c6a7 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java @@ -3,6 +3,7 @@ import cn.afterturn.easypoi.word.WordExportUtil; import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.casic.missiles.dto.business.certificate.ElectronicImage; import com.casic.missiles.dto.business.certificate.FilePrintRegister; @@ -54,30 +55,32 @@ // electronicSeal.setElectronicSealImageUrl(imagePath); // saveFile(electronSealImage, imageCutOffContents[imageCutOffContents.length - 1], imagePath); // } - //按关键字进行分组 - Map> sameKeyWordSealMaps = filePrintRegister.getElectronicImageList().stream() - .filter(electronicImage -> StringUtils.isNotEmpty(electronicImage.getKeyWord())) - .collect( - Collectors.groupingBy(ElectronicImage::getKeyWord) - ); // 初始化world,pdf名称参数 String wordNewUrl = filePrintRegister.getTemplatePath(); //默认转为docx,只需要进行docx的替换即可 String pdfNewUrl = filePrintRegister.getTemplatePath().replaceAll("docx", "pdf"); - //3、根据关键字进行添加签章和签字 - for (Map.Entry> entry : sameKeyWordSealMaps.entrySet()) { - List electronicSeals = entry.getValue(); - addSameKeyWordStamp(wordOldUrl, wordNewUrl, electronicSeals); - } + if(CollectionUtils.isNotEmpty(filePrintRegister.getElectronicImageList())){ + //按关键字进行分组 + Map> sameKeyWordSealMaps = filePrintRegister.getElectronicImageList().stream() + .filter(electronicImage -> StringUtils.isNotEmpty(electronicImage.getKeyWord())) + .collect( + Collectors.groupingBy(ElectronicImage::getKeyWord) + ); + //3、根据关键字进行添加签章和签字 + for (Map.Entry> entry : sameKeyWordSealMaps.entrySet()) { + List electronicSeals = entry.getValue(); + addSameKeyWordStamp(wordOldUrl, wordNewUrl, electronicSeals); + } - //获取没有关键字的图片,即绝对路径的图片 - List absolutePathImageList = filePrintRegister.getElectronicImageList().stream() - .filter(electronicImage -> StringUtils.isEmpty(electronicImage.getKeyWord())) - .collect(Collectors.toList()); - //根据设置的绝对路径进行图片的填充 - for (ElectronicImage absolutePathImage : absolutePathImageList) { - addAbsolutePathStamp(wordOldUrl, wordNewUrl, absolutePathImage); + //获取没有关键字的图片,即绝对路径的图片 + List absolutePathImageList = filePrintRegister.getElectronicImageList().stream() + .filter(electronicImage -> StringUtils.isEmpty(electronicImage.getKeyWord())) + .collect(Collectors.toList()); + //根据设置的绝对路径进行图片的填充 + for (ElectronicImage absolutePathImage : absolutePathImageList) { + addAbsolutePathStamp(wordOldUrl, wordNewUrl, absolutePathImage); + } } // 4、将新word转化为pdf文件 wordToPdf(wordNewUrl, pdfNewUrl); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java index 0af5ea3..bb5c6a7 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java @@ -3,6 +3,7 @@ import cn.afterturn.easypoi.word.WordExportUtil; import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.casic.missiles.dto.business.certificate.ElectronicImage; import com.casic.missiles.dto.business.certificate.FilePrintRegister; @@ -54,30 +55,32 @@ // electronicSeal.setElectronicSealImageUrl(imagePath); // saveFile(electronSealImage, imageCutOffContents[imageCutOffContents.length - 1], imagePath); // } - //按关键字进行分组 - Map> sameKeyWordSealMaps = filePrintRegister.getElectronicImageList().stream() - .filter(electronicImage -> StringUtils.isNotEmpty(electronicImage.getKeyWord())) - .collect( - Collectors.groupingBy(ElectronicImage::getKeyWord) - ); // 初始化world,pdf名称参数 String wordNewUrl = filePrintRegister.getTemplatePath(); //默认转为docx,只需要进行docx的替换即可 String pdfNewUrl = filePrintRegister.getTemplatePath().replaceAll("docx", "pdf"); - //3、根据关键字进行添加签章和签字 - for (Map.Entry> entry : sameKeyWordSealMaps.entrySet()) { - List electronicSeals = entry.getValue(); - addSameKeyWordStamp(wordOldUrl, wordNewUrl, electronicSeals); - } + if(CollectionUtils.isNotEmpty(filePrintRegister.getElectronicImageList())){ + //按关键字进行分组 + Map> sameKeyWordSealMaps = filePrintRegister.getElectronicImageList().stream() + .filter(electronicImage -> StringUtils.isNotEmpty(electronicImage.getKeyWord())) + .collect( + Collectors.groupingBy(ElectronicImage::getKeyWord) + ); + //3、根据关键字进行添加签章和签字 + for (Map.Entry> entry : sameKeyWordSealMaps.entrySet()) { + List electronicSeals = entry.getValue(); + addSameKeyWordStamp(wordOldUrl, wordNewUrl, electronicSeals); + } - //获取没有关键字的图片,即绝对路径的图片 - List absolutePathImageList = filePrintRegister.getElectronicImageList().stream() - .filter(electronicImage -> StringUtils.isEmpty(electronicImage.getKeyWord())) - .collect(Collectors.toList()); - //根据设置的绝对路径进行图片的填充 - for (ElectronicImage absolutePathImage : absolutePathImageList) { - addAbsolutePathStamp(wordOldUrl, wordNewUrl, absolutePathImage); + //获取没有关键字的图片,即绝对路径的图片 + List absolutePathImageList = filePrintRegister.getElectronicImageList().stream() + .filter(electronicImage -> StringUtils.isEmpty(electronicImage.getKeyWord())) + .collect(Collectors.toList()); + //根据设置的绝对路径进行图片的填充 + for (ElectronicImage absolutePathImage : absolutePathImageList) { + addAbsolutePathStamp(wordOldUrl, wordNewUrl, absolutePathImage); + } } // 4、将新word转化为pdf文件 wordToPdf(wordNewUrl, pdfNewUrl); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/site/EnvironmentalRecordData.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/site/EnvironmentalRecordData.java index 9d65081..8a3710a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/site/EnvironmentalRecordData.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/data/site/EnvironmentalRecordData.java @@ -1,6 +1,7 @@ package com.casic.missiles.service.listeners.register.data.site; import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.casic.missiles.dto.business.certificate.FilePrintRegister; import com.casic.missiles.enums.notifyevent.PrintFileDataBeanNameAliasEnum; import com.casic.missiles.model.business.BusinessSiteExecutiveEquipmentRelation; @@ -74,12 +75,14 @@ */ private Map resolveRecordTime(String recorderDateStr, int index) { Map filePrintDataParams = new HashMap<>(); - Date recordDate = DateUtil.parse(recorderDateStr, "yyyy-MM-dd HH:mm:ss"); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(recordDate); - filePrintDataParams.put("y" + index, calendar.get(Calendar.YEAR)); - filePrintDataParams.put("m" + index, calendar.get(Calendar.MONTH) + 1); - filePrintDataParams.put("d" + index, calendar.get(Calendar.DAY_OF_MONTH)); + if(StringUtils.isNotEmpty(recorderDateStr)){ + Date recordDate = DateUtil.parse(recorderDateStr, "yyyy-MM-dd HH:mm:ss"); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(recordDate); + filePrintDataParams.put("y" + index, calendar.get(Calendar.YEAR)); + filePrintDataParams.put("m" + index, calendar.get(Calendar.MONTH) + 1); + filePrintDataParams.put("d" + index, calendar.get(Calendar.DAY_OF_MONTH)); + } return filePrintDataParams; } @@ -90,7 +93,9 @@ String realUserNameValues = ""; //获取人员ids for (Long userId : workUserIds) { - realUserNameValues += userMapper.selectById(userId).getName() + ","; + if (ObjectUtils.isNotEmpty(userId)) { + realUserNameValues += userMapper.selectById(userId).getName() + ","; + } } //处理人员后缀多余逗号 if (!StringUtils.isEmpty(realUserNameValues)) { @@ -106,7 +111,7 @@ */ private EnvironmentalRecordData equipmentRelation(FilePrintRegister filePrintRegister, BusinessSiteExecutiveLog metaData) { List> siteEquipments = new ArrayList<>(); - Map params=new HashMap<>(); + Map params = new HashMap<>(); for (BusinessSiteExecutiveEquipmentRelation equipmentRelation : metaData.getSiteExecutiveEquipmentRelationList()) { Map equipmentFixedAssetsMap = new HashMap<>(); equipmentFixedAssetsMap.put("beforeWorkResult ", equipmentRelation.getBeforeWorkCheck()); @@ -129,7 +134,7 @@ * @param equipmentRelationList */ private EnvironmentalRecordData resolveSiteEquipmentsStatus(FilePrintRegister filePrintRegister, List equipmentRelationList) { - //处理测量设备前人员 + //处理测量设备前人员equipmentRelationList = {ArrayList@16172} size = 1 filePrintRegister.getParams().putAll(resolveRecordUser(equipmentRelationList.stream() .map(BusinessSiteExecutiveEquipmentRelation::getBeforeWorkRecorderId).distinct().collect(Collectors.toList()), "beforeWorkUsers")); //处理测量设备后人员