diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java index a797c7a..21c9912 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java @@ -295,6 +295,10 @@ @TableField(exist = false) private List measureDataElectricalSafetyList; + @ApiModelProperty(value = "检定数据-直流稳压电源(打印需要)", dataType = "List") + @TableField(exist = false) + private List measureDataDcPowerList; + @ApiModelProperty(value = "标准装置编号", dataType = "String") @TableField(exist = false) private String belongStandardEquipment; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java index a797c7a..21c9912 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java @@ -295,6 +295,10 @@ @TableField(exist = false) private List measureDataElectricalSafetyList; + @ApiModelProperty(value = "检定数据-直流稳压电源(打印需要)", dataType = "List") + @TableField(exist = false) + private List measureDataDcPowerList; + @ApiModelProperty(value = "标准装置编号", dataType = "String") @TableField(exist = false) private String belongStandardEquipment; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/DcPowerSupplyHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/DcPowerSupplyHandler.java new file mode 100644 index 0000000..283353f --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/DcPowerSupplyHandler.java @@ -0,0 +1,298 @@ +package com.casic.missiles.service.Impl.eqpt.standard.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.dto.business.deviceMeasure.MeasureEquipmentInfoDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.PrintFileModuleNameEnum; +import com.casic.missiles.enums.business.MeasureItemBelongStandardEquipmentDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.business.BizBusinessDeviceMeasureApprovalMapper; +import com.casic.missiles.mapper.business.BizBusinessDeviceMeasureEquipmentMapper; +import com.casic.missiles.mapper.business.BizBusinessDeviceMeasureInfoMapper; +import com.casic.missiles.model.business.BizBusinessDeviceMeasureApproval; +import com.casic.missiles.model.business.BizBusinessDeviceMeasureDataDcPower; +import com.casic.missiles.model.business.BizBusinessDeviceMeasureDataElectricalSafety; +import com.casic.missiles.model.business.BizBusinessDeviceMeasureInfo; +import com.casic.missiles.model.equipment.BizEquipmentStandardCheckRecordApproval; +import com.casic.missiles.service.Impl.eqpt.standard.StandardEquipmentPrint; +import com.casic.missiles.service.Impl.eqpt.standard.StandardEquipmentSupport; +import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.utils.DictCodeUtils; +import com.casic.missiles.utils.SnowflakeUtil; +import com.casic.missiles.utils.SpringContextUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @Author: TuT + * @CreateTime: 2024-02-21 15:30 + * @Description: DCPowerSupplyHandler + */ +@Component(MeasureItemBelongStandardEquipmentDictEnum.DC_POWER) +@RequiredArgsConstructor +@Slf4j +public class DcPowerSupplyHandler extends StandardEquipmentSupport implements PrintFileModuleNameEnum, StandardEquipmentPrint { + + private final BizBusinessDeviceMeasureInfoMapper bizBusinessDeviceMeasureInfoMapper; + + private final PrintFileRegister printFileRegister; + + private final BizBusinessDeviceMeasureEquipmentMapper bizBusinessDeviceMeasureEquipmentMapper; + + private final BizBusinessDeviceMeasureApprovalMapper bizBusinessDeviceMeasureApprovalMapper; + + @Override + public List doCheckCertificateFile(BizEquipmentStandardCheckRecordApproval request) { + return null; + } + + @Override + public String doCreateOriginalFile(BizBusinessDeviceMeasureApproval request) { + try { + if (ObjectUtil.isEmpty(request)) { + return null; + } + if (CollectionUtils.isEmpty(request.getMeasureDataDcPowerList())) { + List list = Collections.emptyList(); + request.setMeasureDataDcPowerList(list); + } + BizBusinessDeviceMeasureInfo measureInfo = bizBusinessDeviceMeasureInfoMapper.selectDetailById(request.getDataId()); + DictCodeUtils.convertDictCodeToName(request); + Map map = BeanUtil.beanToMap(request); + map.put("dataNo", measureInfo.getDataNo()); + + List equipmentList = bizBusinessDeviceMeasureEquipmentMapper.selectEquipmentListByDataId(request.getDataId()); + if (CollectionUtils.isEmpty(equipmentList)) { + equipmentList = new ArrayList<>(); + equipmentList.add(new MeasureEquipmentInfoDTO()); + } + map.put("equipmentList", equipmentList); + + prepareCustomCoverParams(map, request.getMeasureDataElectricalSafetyList()); + + List dcPowerList = request.getMeasureDataDcPowerList(); + + //电源电压调整率 + List powerSupplyVoltageAdjustmentList = dcPowerList.stream() + .filter(dcPower -> "1".equals(dcPower.getDataType())).map(dcPower -> { + dcPower.setTechnicalIndex(dcPower.getTechnicalIndexSymbol() + dcPower.getTechnicalIndex() + "%"); + dcPower.setVoltageRegulation(dcPower.getVoltageRegulation() + "%"); + return dcPower; + }).collect(Collectors.toList()); + + //负载调整率 + List loadRegulationList = dcPowerList.stream() + .filter(dcPower -> "2".equals(dcPower.getDataType())).map(dcPower -> { + dcPower.setTechnicalIndex(dcPower.getTechnicalIndexSymbol() + dcPower.getTechnicalIndex() + "%"); + dcPower.setVoltageRegulation(dcPower.getVoltageRegulation() + "%"); + return dcPower; + }).collect(Collectors.toList()); + + //电压表示值误差 + List voltageRepresentationErrorList = dcPowerList.stream() + .filter(dcPower -> "3".equals(dcPower.getDataType())).map(dcPower -> { + dcPower.setMaximumError(dcPower.getMaximumErrorUnit() + dcPower.getMaximumError()); + return dcPower; + }).collect(Collectors.toList()); + + //电流表示值误差(直接测量) + List directMeasurementList = dcPowerList.stream() + .filter(dcPower -> "4".equals(dcPower.getDataType())).map(dcPower -> { + dcPower.setMaximumError(dcPower.getMaximumErrorUnit() + dcPower.getMaximumError()); + return dcPower; + }).collect(Collectors.toList()); + + //电流表示值误差(间接测量) + List indirectMeasurementList = dcPowerList.stream() + .filter(dcPower -> "5".equals(dcPower.getDataType())).map(dcPower -> { + dcPower.setMaximumError(dcPower.getMaximumErrorUnit() + dcPower.getMaximumError()); + return dcPower; + }).collect(Collectors.toList()); + + //波纹电压 + List rippleList = dcPowerList.stream() + .filter(dcPower -> "6".equals(dcPower.getDataType())).map(dcPower -> { + dcPower.setTechnicalIndex(dcPower.getTechnicalIndexSymbol() + dcPower.getTechnicalIndex()); + return dcPower; + }).collect(Collectors.toList()); + + + map.put("powerSupplyVoltageAdjustmentList", powerSupplyVoltageAdjustmentList); + map.put("loadRegulationList", loadRegulationList); + map.put("voltageRepresentationErrorList", voltageRepresentationErrorList); + map.put("directMeasurementList", directMeasurementList); + map.put("indirectMeasurementList", indirectMeasurementList); + map.put("rippleList", rippleList); + + List templateUrls = new ArrayList<>(); + templateUrls.add(bizBusinessDeviceMeasureApprovalMapper.customTemplateUrl(MEASURE_DATA, "1", request.getItemCategoryName())); + //与证书模板区分 + SnowflakeUtil snowflakeUtil = new SnowflakeUtil(); + map.put("id", snowflakeUtil.nextId()); + log.debug("original before ----"); + //除了选用的模板不一致,模板配置流程是一致的 + String originalUrlFile = printFileRegister.registerPrintFile(MEASURE_DATA, "原始记录打印", null, map, true, null, templateUrls); + log.debug("originalUrlFile after------------{}", originalUrlFile); + return originalUrlFile; + } catch (Exception ex) { + log.debug("doCreateOriginalFile Exception is -----------{}", ex); + throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); + } + } + + /** + * 封面基本信息的定制化参数 + * + * @param map + * @param measureDataElectricalSafetyList + */ + private void prepareCustomCoverParams(Map map, List measureDataElectricalSafetyList) { + //定制参数 + //初始化方框 + map.put("test", "\uF0A3"); + map.put("calibrate", "\uF0A3"); + map.put("measure", "\uF0A3"); + //选择方框 + switch ((String) map.get("measureCategoryName")) { + case TEST_REPORT: + map.put("test", "\uF052"); + break; + case CALIBRATE_REPORT: + map.put("calibrate", "\uF052"); + break; + case MEASURE_REPORT: + map.put("measure", "\uF052"); + break; + default: + return; + } + //填充有效日期 + if (!ObjectUtils.isEmpty(map.get(MEASURE_TRACE_DATE))) { + String traceDate = (String) map.get(MEASURE_TRACE_DATE); + try { + map.put(MEASURE_TRACE_DATE, new SimpleDateFormat("yyyy年MM月dd日").format(new SimpleDateFormat("yyyy-MM-dd").parse(traceDate))); + } catch (Exception e) { + throw new BusinessException(1500, String.format(traceDate, "检定有效日期,格式不正确")); + } + } + } + + @Override + public List doCreateCertificateFile(BizBusinessDeviceMeasureApproval request) { + try { + //过滤不能生成证书的 + if (checkOutUnablePrint(request)) { + log.debug("该报告没有证书报告"); + return null; + } + if (CollectionUtils.isEmpty(request.getMeasureDataDcPowerList())) { + List list = new ArrayList<>(); + list.add(new BizBusinessDeviceMeasureDataDcPower()); + request.setMeasureDataDcPowerList(list); + } + Long dataId = request.getDataId(); + BizBusinessDeviceMeasureInfo measureInfo = bizBusinessDeviceMeasureInfoMapper.selectDetailById(dataId); + + DictCodeUtils.convertDictCodeToName(request); + Map map = BeanUtil.beanToMap(request); + map.put("dataNo", measureInfo.getDataNo()); + + List equipmentList = bizBusinessDeviceMeasureEquipmentMapper.selectEquipmentListByDataId(dataId); + if (CollectionUtils.isEmpty(equipmentList)) { + equipmentList = new ArrayList<>(); + equipmentList.add(new MeasureEquipmentInfoDTO()); + } + map.put("equipmentList", equipmentList); + List dcPowerList = request.getMeasureDataDcPowerList(); +// List powerList = dcPowerList.stream().collect(Collectors.toList()); +// Collections.copy(powerList,dcPowerList); + //电源电压调整率 + List powerSupplyVoltageAdjustmentList = dcPowerList.stream() + .filter(dcPower -> "1".equals(dcPower.getDataType())).collect(Collectors.toList()); + + //负载调整率 + List loadRegulationList = dcPowerList.stream() + .filter(dcPower -> "2".equals(dcPower.getDataType())).collect(Collectors.toList()); + + //电压表示值误差 + List voltageRepresentationErrorList = dcPowerList.stream() + .filter(dcPower -> "3".equals(dcPower.getDataType())).collect(Collectors.toList()); + + //电流表示值误差(直接测量) + List directMeasurementList = dcPowerList.stream() + .filter(dcPower -> "4".equals(dcPower.getDataType())).collect(Collectors.toList()); + + //电流表示值误差(间接测量) + List indirectMeasurementList = dcPowerList.stream() + .filter(dcPower -> "5".equals(dcPower.getDataType())).collect(Collectors.toList()); + + //波纹电压 + List rippleList = dcPowerList.stream() + .filter(dcPower -> "6".equals(dcPower.getDataType())).collect(Collectors.toList()); + + + map.put("powerSupplyVoltageAdjustmentList", powerSupplyVoltageAdjustmentList); + map.put("loadRegulationList", loadRegulationList); + map.put("voltageRepresentationErrorList", voltageRepresentationErrorList); + map.put("directMeasurementList", directMeasurementList); + map.put("indirectMeasurementList", indirectMeasurementList); + map.put("rippleList", rippleList); + + prepareCoverParams(map, request.getLabCode()); + List customTemplateUrls = new ArrayList<>(); + log.debug("--------get Certificate template is ...."); + //查询对应封面模板和检定证书模板 + customTemplateUrls.add(bizBusinessDeviceMeasureApprovalMapper.customTemplateUrl(MEASURE_DATA, "2", request.getMeasureCategoryName())); + customTemplateUrls.add(bizBusinessDeviceMeasureApprovalMapper.customTemplateUrl(MEASURE_DATA, "2", request.getItemCategoryName())); + SnowflakeUtil snowflakeUtil = new SnowflakeUtil(); + map.put("id", snowflakeUtil.nextId()); + map.put("pdfStatus", 1); + List urlList = new ArrayList<>(); + //除了选用的模板不一致,模板配置流程是一致的 + log.debug("certificate before------------"); + String wordUrl = printFileRegister.registerPrintFile(MEASURE_DATA, "证书打印", null, map, false, null, customTemplateUrls); + urlList.add(wordUrl); + if (map.containsKey("pdfUrl")) { + urlList.add((String) map.get("pdfUrl")); + } + log.debug("certificate after------------{}", wordUrl); + return urlList; + }catch (Exception ex){ + log.debug("doCreateCertificateFile Exception is------------{}", ex); + throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); + } + } + + /** + * 检查是否能生成证书 + */ + private Boolean checkOutUnablePrint(BizBusinessDeviceMeasureApproval measureItemInfo) { + //通过检定项名称,获取对应的模块配置列表 + if (StringUtils.isNotEmpty(measureItemInfo.getItemCategoryName())) { + if (MEASURE_ITEMS_WITHOUT_CERTIFICATE.contains(measureItemInfo.getItemCategoryName())) { + log.warn(BusinessExceptionEnum.ITEM_CATEGORY_NOT_NULL.getMessage()); + return true; + } + if (CHECKOUT_REPORT.equals(measureItemInfo.getMeasureCategoryName())) { + log.warn(BusinessExceptionEnum.TEST_CATEGORY_IS_NONE.getMessage()); + return true; + } + } else { + log.warn(BusinessExceptionEnum.ITEM_CATEGORY_IS_NULL.getMessage()); + return true; + } + return false; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java index a797c7a..21c9912 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureApproval.java @@ -295,6 +295,10 @@ @TableField(exist = false) private List measureDataElectricalSafetyList; + @ApiModelProperty(value = "检定数据-直流稳压电源(打印需要)", dataType = "List") + @TableField(exist = false) + private List measureDataDcPowerList; + @ApiModelProperty(value = "标准装置编号", dataType = "String") @TableField(exist = false) private String belongStandardEquipment; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/DcPowerSupplyHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/DcPowerSupplyHandler.java new file mode 100644 index 0000000..283353f --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/DcPowerSupplyHandler.java @@ -0,0 +1,298 @@ +package com.casic.missiles.service.Impl.eqpt.standard.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.dto.business.deviceMeasure.MeasureEquipmentInfoDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.PrintFileModuleNameEnum; +import com.casic.missiles.enums.business.MeasureItemBelongStandardEquipmentDictEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.business.BizBusinessDeviceMeasureApprovalMapper; +import com.casic.missiles.mapper.business.BizBusinessDeviceMeasureEquipmentMapper; +import com.casic.missiles.mapper.business.BizBusinessDeviceMeasureInfoMapper; +import com.casic.missiles.model.business.BizBusinessDeviceMeasureApproval; +import com.casic.missiles.model.business.BizBusinessDeviceMeasureDataDcPower; +import com.casic.missiles.model.business.BizBusinessDeviceMeasureDataElectricalSafety; +import com.casic.missiles.model.business.BizBusinessDeviceMeasureInfo; +import com.casic.missiles.model.equipment.BizEquipmentStandardCheckRecordApproval; +import com.casic.missiles.service.Impl.eqpt.standard.StandardEquipmentPrint; +import com.casic.missiles.service.Impl.eqpt.standard.StandardEquipmentSupport; +import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.utils.DictCodeUtils; +import com.casic.missiles.utils.SnowflakeUtil; +import com.casic.missiles.utils.SpringContextUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @Author: TuT + * @CreateTime: 2024-02-21 15:30 + * @Description: DCPowerSupplyHandler + */ +@Component(MeasureItemBelongStandardEquipmentDictEnum.DC_POWER) +@RequiredArgsConstructor +@Slf4j +public class DcPowerSupplyHandler extends StandardEquipmentSupport implements PrintFileModuleNameEnum, StandardEquipmentPrint { + + private final BizBusinessDeviceMeasureInfoMapper bizBusinessDeviceMeasureInfoMapper; + + private final PrintFileRegister printFileRegister; + + private final BizBusinessDeviceMeasureEquipmentMapper bizBusinessDeviceMeasureEquipmentMapper; + + private final BizBusinessDeviceMeasureApprovalMapper bizBusinessDeviceMeasureApprovalMapper; + + @Override + public List doCheckCertificateFile(BizEquipmentStandardCheckRecordApproval request) { + return null; + } + + @Override + public String doCreateOriginalFile(BizBusinessDeviceMeasureApproval request) { + try { + if (ObjectUtil.isEmpty(request)) { + return null; + } + if (CollectionUtils.isEmpty(request.getMeasureDataDcPowerList())) { + List list = Collections.emptyList(); + request.setMeasureDataDcPowerList(list); + } + BizBusinessDeviceMeasureInfo measureInfo = bizBusinessDeviceMeasureInfoMapper.selectDetailById(request.getDataId()); + DictCodeUtils.convertDictCodeToName(request); + Map map = BeanUtil.beanToMap(request); + map.put("dataNo", measureInfo.getDataNo()); + + List equipmentList = bizBusinessDeviceMeasureEquipmentMapper.selectEquipmentListByDataId(request.getDataId()); + if (CollectionUtils.isEmpty(equipmentList)) { + equipmentList = new ArrayList<>(); + equipmentList.add(new MeasureEquipmentInfoDTO()); + } + map.put("equipmentList", equipmentList); + + prepareCustomCoverParams(map, request.getMeasureDataElectricalSafetyList()); + + List dcPowerList = request.getMeasureDataDcPowerList(); + + //电源电压调整率 + List powerSupplyVoltageAdjustmentList = dcPowerList.stream() + .filter(dcPower -> "1".equals(dcPower.getDataType())).map(dcPower -> { + dcPower.setTechnicalIndex(dcPower.getTechnicalIndexSymbol() + dcPower.getTechnicalIndex() + "%"); + dcPower.setVoltageRegulation(dcPower.getVoltageRegulation() + "%"); + return dcPower; + }).collect(Collectors.toList()); + + //负载调整率 + List loadRegulationList = dcPowerList.stream() + .filter(dcPower -> "2".equals(dcPower.getDataType())).map(dcPower -> { + dcPower.setTechnicalIndex(dcPower.getTechnicalIndexSymbol() + dcPower.getTechnicalIndex() + "%"); + dcPower.setVoltageRegulation(dcPower.getVoltageRegulation() + "%"); + return dcPower; + }).collect(Collectors.toList()); + + //电压表示值误差 + List voltageRepresentationErrorList = dcPowerList.stream() + .filter(dcPower -> "3".equals(dcPower.getDataType())).map(dcPower -> { + dcPower.setMaximumError(dcPower.getMaximumErrorUnit() + dcPower.getMaximumError()); + return dcPower; + }).collect(Collectors.toList()); + + //电流表示值误差(直接测量) + List directMeasurementList = dcPowerList.stream() + .filter(dcPower -> "4".equals(dcPower.getDataType())).map(dcPower -> { + dcPower.setMaximumError(dcPower.getMaximumErrorUnit() + dcPower.getMaximumError()); + return dcPower; + }).collect(Collectors.toList()); + + //电流表示值误差(间接测量) + List indirectMeasurementList = dcPowerList.stream() + .filter(dcPower -> "5".equals(dcPower.getDataType())).map(dcPower -> { + dcPower.setMaximumError(dcPower.getMaximumErrorUnit() + dcPower.getMaximumError()); + return dcPower; + }).collect(Collectors.toList()); + + //波纹电压 + List rippleList = dcPowerList.stream() + .filter(dcPower -> "6".equals(dcPower.getDataType())).map(dcPower -> { + dcPower.setTechnicalIndex(dcPower.getTechnicalIndexSymbol() + dcPower.getTechnicalIndex()); + return dcPower; + }).collect(Collectors.toList()); + + + map.put("powerSupplyVoltageAdjustmentList", powerSupplyVoltageAdjustmentList); + map.put("loadRegulationList", loadRegulationList); + map.put("voltageRepresentationErrorList", voltageRepresentationErrorList); + map.put("directMeasurementList", directMeasurementList); + map.put("indirectMeasurementList", indirectMeasurementList); + map.put("rippleList", rippleList); + + List templateUrls = new ArrayList<>(); + templateUrls.add(bizBusinessDeviceMeasureApprovalMapper.customTemplateUrl(MEASURE_DATA, "1", request.getItemCategoryName())); + //与证书模板区分 + SnowflakeUtil snowflakeUtil = new SnowflakeUtil(); + map.put("id", snowflakeUtil.nextId()); + log.debug("original before ----"); + //除了选用的模板不一致,模板配置流程是一致的 + String originalUrlFile = printFileRegister.registerPrintFile(MEASURE_DATA, "原始记录打印", null, map, true, null, templateUrls); + log.debug("originalUrlFile after------------{}", originalUrlFile); + return originalUrlFile; + } catch (Exception ex) { + log.debug("doCreateOriginalFile Exception is -----------{}", ex); + throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); + } + } + + /** + * 封面基本信息的定制化参数 + * + * @param map + * @param measureDataElectricalSafetyList + */ + private void prepareCustomCoverParams(Map map, List measureDataElectricalSafetyList) { + //定制参数 + //初始化方框 + map.put("test", "\uF0A3"); + map.put("calibrate", "\uF0A3"); + map.put("measure", "\uF0A3"); + //选择方框 + switch ((String) map.get("measureCategoryName")) { + case TEST_REPORT: + map.put("test", "\uF052"); + break; + case CALIBRATE_REPORT: + map.put("calibrate", "\uF052"); + break; + case MEASURE_REPORT: + map.put("measure", "\uF052"); + break; + default: + return; + } + //填充有效日期 + if (!ObjectUtils.isEmpty(map.get(MEASURE_TRACE_DATE))) { + String traceDate = (String) map.get(MEASURE_TRACE_DATE); + try { + map.put(MEASURE_TRACE_DATE, new SimpleDateFormat("yyyy年MM月dd日").format(new SimpleDateFormat("yyyy-MM-dd").parse(traceDate))); + } catch (Exception e) { + throw new BusinessException(1500, String.format(traceDate, "检定有效日期,格式不正确")); + } + } + } + + @Override + public List doCreateCertificateFile(BizBusinessDeviceMeasureApproval request) { + try { + //过滤不能生成证书的 + if (checkOutUnablePrint(request)) { + log.debug("该报告没有证书报告"); + return null; + } + if (CollectionUtils.isEmpty(request.getMeasureDataDcPowerList())) { + List list = new ArrayList<>(); + list.add(new BizBusinessDeviceMeasureDataDcPower()); + request.setMeasureDataDcPowerList(list); + } + Long dataId = request.getDataId(); + BizBusinessDeviceMeasureInfo measureInfo = bizBusinessDeviceMeasureInfoMapper.selectDetailById(dataId); + + DictCodeUtils.convertDictCodeToName(request); + Map map = BeanUtil.beanToMap(request); + map.put("dataNo", measureInfo.getDataNo()); + + List equipmentList = bizBusinessDeviceMeasureEquipmentMapper.selectEquipmentListByDataId(dataId); + if (CollectionUtils.isEmpty(equipmentList)) { + equipmentList = new ArrayList<>(); + equipmentList.add(new MeasureEquipmentInfoDTO()); + } + map.put("equipmentList", equipmentList); + List dcPowerList = request.getMeasureDataDcPowerList(); +// List powerList = dcPowerList.stream().collect(Collectors.toList()); +// Collections.copy(powerList,dcPowerList); + //电源电压调整率 + List powerSupplyVoltageAdjustmentList = dcPowerList.stream() + .filter(dcPower -> "1".equals(dcPower.getDataType())).collect(Collectors.toList()); + + //负载调整率 + List loadRegulationList = dcPowerList.stream() + .filter(dcPower -> "2".equals(dcPower.getDataType())).collect(Collectors.toList()); + + //电压表示值误差 + List voltageRepresentationErrorList = dcPowerList.stream() + .filter(dcPower -> "3".equals(dcPower.getDataType())).collect(Collectors.toList()); + + //电流表示值误差(直接测量) + List directMeasurementList = dcPowerList.stream() + .filter(dcPower -> "4".equals(dcPower.getDataType())).collect(Collectors.toList()); + + //电流表示值误差(间接测量) + List indirectMeasurementList = dcPowerList.stream() + .filter(dcPower -> "5".equals(dcPower.getDataType())).collect(Collectors.toList()); + + //波纹电压 + List rippleList = dcPowerList.stream() + .filter(dcPower -> "6".equals(dcPower.getDataType())).collect(Collectors.toList()); + + + map.put("powerSupplyVoltageAdjustmentList", powerSupplyVoltageAdjustmentList); + map.put("loadRegulationList", loadRegulationList); + map.put("voltageRepresentationErrorList", voltageRepresentationErrorList); + map.put("directMeasurementList", directMeasurementList); + map.put("indirectMeasurementList", indirectMeasurementList); + map.put("rippleList", rippleList); + + prepareCoverParams(map, request.getLabCode()); + List customTemplateUrls = new ArrayList<>(); + log.debug("--------get Certificate template is ...."); + //查询对应封面模板和检定证书模板 + customTemplateUrls.add(bizBusinessDeviceMeasureApprovalMapper.customTemplateUrl(MEASURE_DATA, "2", request.getMeasureCategoryName())); + customTemplateUrls.add(bizBusinessDeviceMeasureApprovalMapper.customTemplateUrl(MEASURE_DATA, "2", request.getItemCategoryName())); + SnowflakeUtil snowflakeUtil = new SnowflakeUtil(); + map.put("id", snowflakeUtil.nextId()); + map.put("pdfStatus", 1); + List urlList = new ArrayList<>(); + //除了选用的模板不一致,模板配置流程是一致的 + log.debug("certificate before------------"); + String wordUrl = printFileRegister.registerPrintFile(MEASURE_DATA, "证书打印", null, map, false, null, customTemplateUrls); + urlList.add(wordUrl); + if (map.containsKey("pdfUrl")) { + urlList.add((String) map.get("pdfUrl")); + } + log.debug("certificate after------------{}", wordUrl); + return urlList; + }catch (Exception ex){ + log.debug("doCreateCertificateFile Exception is------------{}", ex); + throw new BusinessException(BusinessExceptionEnum.MEASURE_APPROVAL_UPDATE_FAILED); + } + } + + /** + * 检查是否能生成证书 + */ + private Boolean checkOutUnablePrint(BizBusinessDeviceMeasureApproval measureItemInfo) { + //通过检定项名称,获取对应的模块配置列表 + if (StringUtils.isNotEmpty(measureItemInfo.getItemCategoryName())) { + if (MEASURE_ITEMS_WITHOUT_CERTIFICATE.contains(measureItemInfo.getItemCategoryName())) { + log.warn(BusinessExceptionEnum.ITEM_CATEGORY_NOT_NULL.getMessage()); + return true; + } + if (CHECKOUT_REPORT.equals(measureItemInfo.getMeasureCategoryName())) { + log.warn(BusinessExceptionEnum.TEST_CATEGORY_IS_NONE.getMessage()); + return true; + } + } else { + log.warn(BusinessExceptionEnum.ITEM_CATEGORY_IS_NULL.getMessage()); + return true; + } + return false; + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiElectricalHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiElectricalHandler.java index c1f22a0..a903cc9 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiElectricalHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/MultiElectricalHandler.java @@ -33,6 +33,7 @@ import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; +import java.util.stream.Stream; /** * @Author: TuT @@ -170,16 +171,11 @@ List electricalSafetyList = request.getMeasureDataElectricalSafetyList(); - List voltageList = new ArrayList<>(); - List indicationErrorList = new ArrayList<>(); - for (BizBusinessDeviceMeasureDataElectricalSafety electricalSafety : electricalSafetyList) { - String dataType = electricalSafety.getDataType(); - if ("1".equals(dataType)) { - voltageList.add(electricalSafety); - } else if ("2".equals(dataType)) { - indicationErrorList.add(electricalSafety); - } - } + List voltageList = electricalSafetyList.stream() + .filter(e -> "1".equals(e.getDataType())).collect(Collectors.toList()); + List indicationErrorList = electricalSafetyList.stream() + .filter(e -> "2".equals(e.getDataType())).collect(Collectors.toList()); + doCustomParam(indicationErrorList); map.put("voltageList", voltageList); map.put("errorList", indicationErrorList); @@ -275,17 +271,11 @@ map.put("equipmentList", equipmentList); prepareCustomCoverParams(map, request.getMeasureDataElectricalSafetyList()); List electricalSafetyList = request.getMeasureDataElectricalSafetyList(); - List voltageList = new ArrayList<>(); - List indicationErrorList = new ArrayList<>(); - for (BizBusinessDeviceMeasureDataElectricalSafety electricalSafety : electricalSafetyList) { - String dataType = electricalSafety.getDataType(); - if ("1".equals(dataType)) { - voltageList.add(electricalSafety); - } else if ("2".equals(dataType)) { - indicationErrorList.add(electricalSafety); - } - } -// doCustomParam(indicationErrorList); + List voltageList = electricalSafetyList.stream() + .filter(e -> "1".equals(e.getDataType())).collect(Collectors.toList()); + List indicationErrorList = electricalSafetyList.stream() + .filter(e -> "2".equals(e.getDataType())).collect(Collectors.toList()); + map.put("voltageList", voltageList); map.put("errorList", indicationErrorList); //准备封面参数