diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java index aa8cba7..19b2f23 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java @@ -10,6 +10,7 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.resource.BizResourceSystemFile; import com.casic.missiles.service.equipment.*; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java index aa8cba7..19b2f23 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java @@ -10,6 +10,7 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.resource.BizResourceSystemFile; import com.casic.missiles.service.equipment.*; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 368934f..0abe025 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -400,5 +400,12 @@ return successResult; } + @ApiOperation("获取用户base64加密后的签名") + @GetMapping("/sign/getBase64SignImgs") + @ResponseBody + public ReturnDTO getBase64SignImgs(@ApiParam("用户id") Long userId){ + return signService.getBase64SignImgs(userId); + } + // TODO: 2023/7/25 系统管理仅差到期提醒管理和数据同步,到期提醒参考受检设备系统 } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java index aa8cba7..19b2f23 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java @@ -10,6 +10,7 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.resource.BizResourceSystemFile; import com.casic.missiles.service.equipment.*; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 368934f..0abe025 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -400,5 +400,12 @@ return successResult; } + @ApiOperation("获取用户base64加密后的签名") + @GetMapping("/sign/getBase64SignImgs") + @ResponseBody + public ReturnDTO getBase64SignImgs(@ApiParam("用户id") Long userId){ + return signService.getBase64SignImgs(userId); + } + // TODO: 2023/7/25 系统管理仅差到期提醒管理和数据同步,到期提醒参考受检设备系统 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e6e55fa..797e293 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -138,6 +138,11 @@ * 工作台 */ BATCH_TO_READ_FAIL(2600, "一键已读操作失败"), + /** + * 系统管理 + */ + USER_SIGN_NOT_EXISTS(2601,"该用户签名不存在,请配置签名"), + USER_ID_CANNOT_BE_NULL(2602,"用户id不能为空"), /** * 表单生成及打印 diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java index aa8cba7..19b2f23 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java @@ -10,6 +10,7 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.resource.BizResourceSystemFile; import com.casic.missiles.service.equipment.*; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 368934f..0abe025 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -400,5 +400,12 @@ return successResult; } + @ApiOperation("获取用户base64加密后的签名") + @GetMapping("/sign/getBase64SignImgs") + @ResponseBody + public ReturnDTO getBase64SignImgs(@ApiParam("用户id") Long userId){ + return signService.getBase64SignImgs(userId); + } + // TODO: 2023/7/25 系统管理仅差到期提醒管理和数据同步,到期提醒参考受检设备系统 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e6e55fa..797e293 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -138,6 +138,11 @@ * 工作台 */ BATCH_TO_READ_FAIL(2600, "一键已读操作失败"), + /** + * 系统管理 + */ + USER_SIGN_NOT_EXISTS(2601,"该用户签名不存在,请配置签名"), + USER_ID_CANNOT_BE_NULL(2602,"用户id不能为空"), /** * 表单生成及打印 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java index d85d0a6..ef9fc8d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java @@ -1,9 +1,6 @@ package com.casic.missiles.service.Impl.eqpt.standard.impl; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.convert.NumberChineseFormatter; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.dto.certificate.RegisterCustomParameters; import com.casic.missiles.dto.certificate.ToBeRemoveDataItem; @@ -26,13 +23,11 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.beanutils.BeanUtils; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -72,18 +67,18 @@ processCheckAccord(map, request.getLabCode()); readyForCheckParams(map, request.getCheckDataOscilloscopeList()); replaceSlash(map); - List dataItems = removeCheckItem(request, 3, map); + List dataItems = removeCheckItem(request, 2, map); map.put("pdfStatus", 1); //除了选用的模板不一致,模板配置流程是一致的 map.put("surveyor", "{{@surveyor}}"); map.put("auditor", "{{@auditor}}"); String wordUrl = printFileRegister.registerPrintFile(OSCILLOSCOPE_CHECK_DATA, "数据打印", null, RegisterCustomParameters.builder() - .customParam(map) - .dataItems(dataItems) - .pdf(false) - .customTemplateUrls(null) - .build()); + .customParam(map) + .dataItems(dataItems) + .pdf(false) + .customTemplateUrls(null) + .build()); List urlList = new ArrayList<>(); if (StringUtils.isNotEmpty(wordUrl)) { urlList.add(wordUrl); @@ -98,65 +93,100 @@ } } + /** + * 备注:每个核查项的判断都需要和模板的表格顺序一致 + * @param request + * @param startIndex + * @param map + * @return + */ private List removeCheckItem(BizEquipmentStandardCheckRecordApproval request, int startIndex, Map map) { List dataItems = new ArrayList<>(); - int repIndex = 1, staIndex = 9; - Map> dataMap = request.getCheckDataSpectrumAnalyzerList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSpectrumAnalyzer::getParams)); - if (!dataMap.containsKey("1")) { - addDataRemoveItem(dataItems, startIndex + repIndex, "时标"); - addDataRemoveItem(dataItems, startIndex + staIndex, "时标"); + int repIndex = 1; + Map> typeMap = request.getCheckDataOscilloscopeList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataOscilloscope::getCheckType)); + List repList = typeMap.get(REPEATABILITY); + Map> repDataMap = repList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataOscilloscope::getParams)); + if (!repDataMap.containsKey(HOUR_MARKERS)) { + addDataRemoveItem(dataItems, startIndex + 1, "时标"); } else { map.put("zeroRepSeq", (repIndex++) + "、"); - map.put("zeroStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("2")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 1, "方波电压(50Ω)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 1, "方波电压(50Ω)"); + if (!repDataMap.containsKey(SQUARE_WAVE_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 2, "方波电压(50Ω)"); } else { map.put("firstRepSeq", (repIndex++) + "、"); - map.put("firstStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("3")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 2, "方波电压(1MΩ)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 2, "方波电压(1MΩ)"); + if (!repDataMap.containsKey(SQUARE_WAVE_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 3, "方波电压(1MΩ)"); } else { map.put("secondRepSeq", (repIndex++) + "、"); - map.put("secondStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("4")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 3, "直流电压(50Ω)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 3, "直流电压(50Ω)"); + if (!repDataMap.containsKey(DC_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 4, "直流电压(50Ω)"); } else { map.put("thirdRepSeq", (repIndex++) + "、"); - map.put("thirdStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("5")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 4, "直流电压(1MΩ)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 4, "直流电压(1MΩ)"); + if (!repDataMap.containsKey(DC_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 5, "直流电压(1MΩ)"); } else { map.put("fourthRepSeq", (repIndex++) + "、"); - map.put("fourthStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("6")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 5, "输入阻抗"); - addDataRemoveItem(dataItems, startIndex + staIndex + 5, "输入阻抗"); + if (!repDataMap.containsKey(INPUT_IMPEDANCE)) { + addDataRemoveItem(dataItems, startIndex + 6, "输入阻抗"); } else { map.put("fifthRepSeq", (repIndex++) + "、"); - map.put("fifthStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("7")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 6, "正弦信号平坦度"); - addDataRemoveItem(dataItems, startIndex + staIndex + 6, "正弦信号平坦度"); + if (!repDataMap.containsKey(SINE_SIGNAL_FLATNESS)) { + addDataRemoveItem(dataItems, startIndex + 7, "正弦信号平坦度"); } else { map.put("sixthRepSeq", (repIndex++) + "、"); - map.put("sixthStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("8")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 7, "上升时间"); - addDataRemoveItem(dataItems, startIndex + staIndex + 7, "上升时间"); + if (!repDataMap.containsKey(RISE_TIME_CHECK)) { + addDataRemoveItem(dataItems, startIndex + 8, "上升时间"); } else { map.put("seventhRepSeq", (repIndex++) + "、"); - map.put("seventhStaSeq", (staIndex++) + "、"); + } + List staList = typeMap.get(STABILITY); + Map> staDataMap = staList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataOscilloscope::getParams)); + if (!staDataMap.containsKey(HOUR_MARKERS)) { + addDataRemoveItem(dataItems, startIndex + 9, "时标"); + } else { + map.put("zeroStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(SQUARE_WAVE_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 10, "方波电压(50Ω)"); + } else { + map.put("firstStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(SQUARE_WAVE_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 11, "方波电压(1MΩ)"); + } else { + map.put("secondStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(DC_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 12, "直流电压(50Ω)"); + } else { + map.put("thirdStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(DC_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 13, "直流电压(1MΩ)"); + } else { + map.put("fourthStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(INPUT_IMPEDANCE)) { + addDataRemoveItem(dataItems, startIndex + 14, "输入阻抗"); + } else { + map.put("fifthStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(SINE_SIGNAL_FLATNESS)) { + addDataRemoveItem(dataItems, startIndex + 15, "正弦信号平坦度"); + } else { + map.put("sixthStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(RISE_TIME_CHECK)) { + addDataRemoveItem(dataItems, startIndex + 16, "上升时间"); + } else { + map.put("seventhStaSeq", (repIndex++) + "、"); } return dataItems; } @@ -180,8 +210,9 @@ return o; }) .collect(Collectors.toList()); - map.put(REPEAT_PREFIX + (i + 1), repList); - + if (CollectionUtils.isNotEmpty(repList)) { + map.put(REPEAT_PREFIX + (i + 1), repList); + } List staList = oscilloscopeList.stream() .filter(o -> param.equals(o.getParams()) && checkType[1].equals(o.getCheckType())) .map(o -> { @@ -195,14 +226,16 @@ return o; }) .collect(Collectors.toList()); - map.put(STA_PREFIX + (i + 1), staList); - BizEquipmentStandardCheckDataOscilloscope oscilloscope = staList.get(0); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, oscilloscope.getTestValueOneDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, oscilloscope.getTestValueTwoDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, oscilloscope.getTestValueThreeDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, oscilloscope.getTestValueFourDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, oscilloscope.getTestValueFiveDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, oscilloscope.getTestValueSixDate()); + if (CollectionUtils.isNotEmpty(staList)) { + map.put(STA_PREFIX + (i + 1), staList); + BizEquipmentStandardCheckDataOscilloscope oscilloscope = staList.get(0); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, oscilloscope.getTestValueOneDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, oscilloscope.getTestValueTwoDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, oscilloscope.getTestValueThreeDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, oscilloscope.getTestValueFourDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, oscilloscope.getTestValueFiveDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, oscilloscope.getTestValueSixDate()); + } } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java index aa8cba7..19b2f23 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java @@ -10,6 +10,7 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.resource.BizResourceSystemFile; import com.casic.missiles.service.equipment.*; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 368934f..0abe025 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -400,5 +400,12 @@ return successResult; } + @ApiOperation("获取用户base64加密后的签名") + @GetMapping("/sign/getBase64SignImgs") + @ResponseBody + public ReturnDTO getBase64SignImgs(@ApiParam("用户id") Long userId){ + return signService.getBase64SignImgs(userId); + } + // TODO: 2023/7/25 系统管理仅差到期提醒管理和数据同步,到期提醒参考受检设备系统 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e6e55fa..797e293 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -138,6 +138,11 @@ * 工作台 */ BATCH_TO_READ_FAIL(2600, "一键已读操作失败"), + /** + * 系统管理 + */ + USER_SIGN_NOT_EXISTS(2601,"该用户签名不存在,请配置签名"), + USER_ID_CANNOT_BE_NULL(2602,"用户id不能为空"), /** * 表单生成及打印 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java index d85d0a6..ef9fc8d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java @@ -1,9 +1,6 @@ package com.casic.missiles.service.Impl.eqpt.standard.impl; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.convert.NumberChineseFormatter; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.dto.certificate.RegisterCustomParameters; import com.casic.missiles.dto.certificate.ToBeRemoveDataItem; @@ -26,13 +23,11 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.beanutils.BeanUtils; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -72,18 +67,18 @@ processCheckAccord(map, request.getLabCode()); readyForCheckParams(map, request.getCheckDataOscilloscopeList()); replaceSlash(map); - List dataItems = removeCheckItem(request, 3, map); + List dataItems = removeCheckItem(request, 2, map); map.put("pdfStatus", 1); //除了选用的模板不一致,模板配置流程是一致的 map.put("surveyor", "{{@surveyor}}"); map.put("auditor", "{{@auditor}}"); String wordUrl = printFileRegister.registerPrintFile(OSCILLOSCOPE_CHECK_DATA, "数据打印", null, RegisterCustomParameters.builder() - .customParam(map) - .dataItems(dataItems) - .pdf(false) - .customTemplateUrls(null) - .build()); + .customParam(map) + .dataItems(dataItems) + .pdf(false) + .customTemplateUrls(null) + .build()); List urlList = new ArrayList<>(); if (StringUtils.isNotEmpty(wordUrl)) { urlList.add(wordUrl); @@ -98,65 +93,100 @@ } } + /** + * 备注:每个核查项的判断都需要和模板的表格顺序一致 + * @param request + * @param startIndex + * @param map + * @return + */ private List removeCheckItem(BizEquipmentStandardCheckRecordApproval request, int startIndex, Map map) { List dataItems = new ArrayList<>(); - int repIndex = 1, staIndex = 9; - Map> dataMap = request.getCheckDataSpectrumAnalyzerList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSpectrumAnalyzer::getParams)); - if (!dataMap.containsKey("1")) { - addDataRemoveItem(dataItems, startIndex + repIndex, "时标"); - addDataRemoveItem(dataItems, startIndex + staIndex, "时标"); + int repIndex = 1; + Map> typeMap = request.getCheckDataOscilloscopeList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataOscilloscope::getCheckType)); + List repList = typeMap.get(REPEATABILITY); + Map> repDataMap = repList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataOscilloscope::getParams)); + if (!repDataMap.containsKey(HOUR_MARKERS)) { + addDataRemoveItem(dataItems, startIndex + 1, "时标"); } else { map.put("zeroRepSeq", (repIndex++) + "、"); - map.put("zeroStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("2")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 1, "方波电压(50Ω)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 1, "方波电压(50Ω)"); + if (!repDataMap.containsKey(SQUARE_WAVE_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 2, "方波电压(50Ω)"); } else { map.put("firstRepSeq", (repIndex++) + "、"); - map.put("firstStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("3")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 2, "方波电压(1MΩ)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 2, "方波电压(1MΩ)"); + if (!repDataMap.containsKey(SQUARE_WAVE_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 3, "方波电压(1MΩ)"); } else { map.put("secondRepSeq", (repIndex++) + "、"); - map.put("secondStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("4")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 3, "直流电压(50Ω)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 3, "直流电压(50Ω)"); + if (!repDataMap.containsKey(DC_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 4, "直流电压(50Ω)"); } else { map.put("thirdRepSeq", (repIndex++) + "、"); - map.put("thirdStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("5")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 4, "直流电压(1MΩ)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 4, "直流电压(1MΩ)"); + if (!repDataMap.containsKey(DC_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 5, "直流电压(1MΩ)"); } else { map.put("fourthRepSeq", (repIndex++) + "、"); - map.put("fourthStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("6")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 5, "输入阻抗"); - addDataRemoveItem(dataItems, startIndex + staIndex + 5, "输入阻抗"); + if (!repDataMap.containsKey(INPUT_IMPEDANCE)) { + addDataRemoveItem(dataItems, startIndex + 6, "输入阻抗"); } else { map.put("fifthRepSeq", (repIndex++) + "、"); - map.put("fifthStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("7")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 6, "正弦信号平坦度"); - addDataRemoveItem(dataItems, startIndex + staIndex + 6, "正弦信号平坦度"); + if (!repDataMap.containsKey(SINE_SIGNAL_FLATNESS)) { + addDataRemoveItem(dataItems, startIndex + 7, "正弦信号平坦度"); } else { map.put("sixthRepSeq", (repIndex++) + "、"); - map.put("sixthStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("8")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 7, "上升时间"); - addDataRemoveItem(dataItems, startIndex + staIndex + 7, "上升时间"); + if (!repDataMap.containsKey(RISE_TIME_CHECK)) { + addDataRemoveItem(dataItems, startIndex + 8, "上升时间"); } else { map.put("seventhRepSeq", (repIndex++) + "、"); - map.put("seventhStaSeq", (staIndex++) + "、"); + } + List staList = typeMap.get(STABILITY); + Map> staDataMap = staList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataOscilloscope::getParams)); + if (!staDataMap.containsKey(HOUR_MARKERS)) { + addDataRemoveItem(dataItems, startIndex + 9, "时标"); + } else { + map.put("zeroStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(SQUARE_WAVE_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 10, "方波电压(50Ω)"); + } else { + map.put("firstStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(SQUARE_WAVE_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 11, "方波电压(1MΩ)"); + } else { + map.put("secondStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(DC_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 12, "直流电压(50Ω)"); + } else { + map.put("thirdStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(DC_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 13, "直流电压(1MΩ)"); + } else { + map.put("fourthStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(INPUT_IMPEDANCE)) { + addDataRemoveItem(dataItems, startIndex + 14, "输入阻抗"); + } else { + map.put("fifthStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(SINE_SIGNAL_FLATNESS)) { + addDataRemoveItem(dataItems, startIndex + 15, "正弦信号平坦度"); + } else { + map.put("sixthStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(RISE_TIME_CHECK)) { + addDataRemoveItem(dataItems, startIndex + 16, "上升时间"); + } else { + map.put("seventhStaSeq", (repIndex++) + "、"); } return dataItems; } @@ -180,8 +210,9 @@ return o; }) .collect(Collectors.toList()); - map.put(REPEAT_PREFIX + (i + 1), repList); - + if (CollectionUtils.isNotEmpty(repList)) { + map.put(REPEAT_PREFIX + (i + 1), repList); + } List staList = oscilloscopeList.stream() .filter(o -> param.equals(o.getParams()) && checkType[1].equals(o.getCheckType())) .map(o -> { @@ -195,14 +226,16 @@ return o; }) .collect(Collectors.toList()); - map.put(STA_PREFIX + (i + 1), staList); - BizEquipmentStandardCheckDataOscilloscope oscilloscope = staList.get(0); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, oscilloscope.getTestValueOneDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, oscilloscope.getTestValueTwoDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, oscilloscope.getTestValueThreeDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, oscilloscope.getTestValueFourDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, oscilloscope.getTestValueFiveDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, oscilloscope.getTestValueSixDate()); + if (CollectionUtils.isNotEmpty(staList)) { + map.put(STA_PREFIX + (i + 1), staList); + BizEquipmentStandardCheckDataOscilloscope oscilloscope = staList.get(0); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, oscilloscope.getTestValueOneDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, oscilloscope.getTestValueTwoDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, oscilloscope.getTestValueThreeDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, oscilloscope.getTestValueFourDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, oscilloscope.getTestValueFiveDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, oscilloscope.getTestValueSixDate()); + } } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java index eb047b2..5de2f15 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java @@ -71,7 +71,7 @@ processCheckAccord(map, request.getLabCode()); readyForCheckParams(map, request.getCheckDataSignalGeneratorList()); replaceSlash(map); - List dataItems = removeCheckItem(request, 2, map); + List dataItems = removeCheckItem(request, 1, map); map.put("pdfStatus", 1); //除了选用的模板不一致,模板配置流程是一致的 map.put("surveyor", "{{@surveyor}}"); @@ -79,7 +79,7 @@ String wordUrl = printFileRegister.registerPrintFile(SIGNAL_GENERATOR_CHECK_DATA, "数据打印", null, RegisterCustomParameters.builder() .customParam(map) -// .dataItems(dataItems) + .dataItems(dataItems) .pdf(false) .customTemplateUrls(null) .build()); @@ -99,56 +99,82 @@ private List removeCheckItem(BizEquipmentStandardCheckRecordApproval request, int startIndex, Map map) { List dataItems = new ArrayList<>(); - int repIndex = 1, staIndex = 8; - Map> dataMap = request.getCheckDataSpectrumAnalyzerList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSpectrumAnalyzer::getParams)); - if (!map.containsKey("1")) { - addDataRemoveItem(dataItems, startIndex + repIndex, "射频频率"); - addDataRemoveItem(dataItems, startIndex + staIndex, "射频频率:合成标准不确定度(k=2): 1.2×10-8~3.2×10-11"); + int repIndex = 1; + Map> typeMap = request.getCheckDataSignalGeneratorList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSignalGenerator::getCheckType)); + List repList = typeMap.get(REPEATABILITY); + Map> repDataMap = repList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSignalGenerator::getParams)); + if (!repDataMap.containsKey(FREQUENCY_CN)) { + addDataRemoveItem(dataItems, startIndex + 1, "射频频率"); } else { map.put("zeroRepSeq", (repIndex++) + "."); - map.put("zeroStaSeq", (staIndex++) + "."); } - if (!map.containsKey("2")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 1, "功率电平"); - addDataRemoveItem(dataItems, startIndex + staIndex + 1, "功率电平:合成标准不确定度(k=2): 0.14dB~0.29dB"); + if (!repDataMap.containsKey(EFFICIENCY)) { + addDataRemoveItem(dataItems, startIndex + 2, "功率电平"); } else { map.put("firstRepSeq", (repIndex++) + "."); - map.put("firstStaSeq", (staIndex++) + "."); } - if (!map.containsKey("3")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 2, "相对电平"); - addDataRemoveItem(dataItems, startIndex + staIndex + 2, "相对电平:合成标准不确定度(k=2): 0.08dB~0.28dB"); + if (!repDataMap.containsKey(RELATIVE_LEVEL_ONE)) { + addDataRemoveItem(dataItems, startIndex + 3, "相对电平"); } else { map.put("secondRepSeq", (repIndex++) + "."); - map.put("secondStaSeq", (staIndex++) + "."); } - if (!map.containsKey("4")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 3, "调幅深度"); - addDataRemoveItem(dataItems, startIndex + staIndex + 3, "调幅深度:合成标准不确定度(k=2):1.3%"); + if (!repDataMap.containsKey(AMPLITUDE_ADJUSTMENT)) { + addDataRemoveItem(dataItems, startIndex + 4, "调幅深度"); } else { map.put("thirdRepSeq", (repIndex++) + "."); - map.put("thirdStaSeq", (staIndex++) + "."); } - if (!map.containsKey("5")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 4, "调频频偏"); - addDataRemoveItem(dataItems, startIndex + staIndex + 4, "调频频偏:合成标准不确定度(k=2):1.3%"); + if (!repDataMap.containsKey(FREQUENCY_MODULATION_FREQUENCY_OFFSET)) { + addDataRemoveItem(dataItems, startIndex + 5, "调频频偏"); } else { map.put("fourthRepSeq", (repIndex++) + "."); - map.put("fourthStaSeq", (staIndex++) + "."); } - if (!map.containsKey("6")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 5, "调相相偏"); - addDataRemoveItem(dataItems, startIndex + staIndex + 5, "调相相偏:合成标准不确定度(k=2):1.3%"); + if (!repDataMap.containsKey(PHASE_MODULATION_PHASE_DEVIATION)) { + addDataRemoveItem(dataItems, startIndex + 6, "调相相偏"); } else { map.put("fifthRepSeq", (repIndex++) + "."); - map.put("fifthStaSeq", (staIndex++) + "."); } - if (!map.containsKey("7")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 6, "谐波:10MHz、1GHz,RBW/VBW:1kHz,接收机参考电平:-20dBm;8GHz,RBW/VBW:1kHz,接收机参考电平:-50dBm"); - addDataRemoveItem(dataItems, startIndex + staIndex + 6, "谐波抑制:合成标准不确定度(k=2): 0.20dB~1.1dB"); + if (!repDataMap.containsKey(HARMONIC)) { + addDataRemoveItem(dataItems, startIndex + 7, "谐波"); } else { map.put("sixthRepSeq", (repIndex++) + "."); - map.put("sixthStaSeq", (staIndex++) + "."); + } + + List staList = typeMap.get(STABILITY); + Map> staDataMap = staList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSignalGenerator::getParams)); + if (!staDataMap.containsKey(FREQUENCY_CN)) { + addDataRemoveItem(dataItems, startIndex + 8, "射频频率"); + } else { + map.put("zeroStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(EFFICIENCY)) { + addDataRemoveItem(dataItems, startIndex + 9, "功率电平"); + } else { + map.put("firstStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(RELATIVE_LEVEL_ONE)) { + addDataRemoveItem(dataItems, startIndex + 10, "相对电平"); + } else { + map.put("secondStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(AMPLITUDE_ADJUSTMENT)) { + addDataRemoveItem(dataItems, startIndex + 11, "调幅深度"); + } else { + map.put("thirdStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(FREQUENCY_MODULATION_FREQUENCY_OFFSET)) { + addDataRemoveItem(dataItems, startIndex + 12, "调频频偏"); + } else { + map.put("fourthStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(PHASE_MODULATION_PHASE_DEVIATION)) { + addDataRemoveItem(dataItems, startIndex + 13, "调相相偏"); + } else { + map.put("fifthStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(HARMONIC)) { + addDataRemoveItem(dataItems, startIndex + 14, "谐波抑制"); + } else { + map.put("sixthStaSeq", (repIndex++) + "."); } return dataItems; } @@ -165,20 +191,23 @@ && param.equals(signalGenerator.getParams())) .peek(this::appendUnits) .collect(Collectors.toList()); - map.put(REPEAT_PREFIX + (i + 1), rep); + if (!CollectionUtils.isEmpty(rep)){ + map.put(REPEAT_PREFIX + (i + 1), rep); + } List sta = signalGeneratorList.stream() .filter(s -> checkType[1].equals(s.getCheckType()) && param.equals(s.getParams())) .peek(this::appendUnits).collect(Collectors.toList()); map.put(STA_PREFIX + (i + 1), sta); - - BizEquipmentStandardCheckDataSignalGenerator signalGenerator = sta.get(0); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, signalGenerator.getTestValueOneDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, signalGenerator.getTestValueTwoDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, signalGenerator.getTestValueThreeDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, signalGenerator.getTestValueFourDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, signalGenerator.getTestValueFiveDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, signalGenerator.getTestValueSixDate()); + if (!CollectionUtils.isEmpty(sta)){ + BizEquipmentStandardCheckDataSignalGenerator signalGenerator = sta.get(0); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, signalGenerator.getTestValueOneDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, signalGenerator.getTestValueTwoDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, signalGenerator.getTestValueThreeDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, signalGenerator.getTestValueFourDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, signalGenerator.getTestValueFiveDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, signalGenerator.getTestValueSixDate()); + } } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java index aa8cba7..19b2f23 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java @@ -10,6 +10,7 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.resource.BizResourceSystemFile; import com.casic.missiles.service.equipment.*; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 368934f..0abe025 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -400,5 +400,12 @@ return successResult; } + @ApiOperation("获取用户base64加密后的签名") + @GetMapping("/sign/getBase64SignImgs") + @ResponseBody + public ReturnDTO getBase64SignImgs(@ApiParam("用户id") Long userId){ + return signService.getBase64SignImgs(userId); + } + // TODO: 2023/7/25 系统管理仅差到期提醒管理和数据同步,到期提醒参考受检设备系统 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e6e55fa..797e293 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -138,6 +138,11 @@ * 工作台 */ BATCH_TO_READ_FAIL(2600, "一键已读操作失败"), + /** + * 系统管理 + */ + USER_SIGN_NOT_EXISTS(2601,"该用户签名不存在,请配置签名"), + USER_ID_CANNOT_BE_NULL(2602,"用户id不能为空"), /** * 表单生成及打印 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java index d85d0a6..ef9fc8d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java @@ -1,9 +1,6 @@ package com.casic.missiles.service.Impl.eqpt.standard.impl; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.convert.NumberChineseFormatter; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.dto.certificate.RegisterCustomParameters; import com.casic.missiles.dto.certificate.ToBeRemoveDataItem; @@ -26,13 +23,11 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.beanutils.BeanUtils; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -72,18 +67,18 @@ processCheckAccord(map, request.getLabCode()); readyForCheckParams(map, request.getCheckDataOscilloscopeList()); replaceSlash(map); - List dataItems = removeCheckItem(request, 3, map); + List dataItems = removeCheckItem(request, 2, map); map.put("pdfStatus", 1); //除了选用的模板不一致,模板配置流程是一致的 map.put("surveyor", "{{@surveyor}}"); map.put("auditor", "{{@auditor}}"); String wordUrl = printFileRegister.registerPrintFile(OSCILLOSCOPE_CHECK_DATA, "数据打印", null, RegisterCustomParameters.builder() - .customParam(map) - .dataItems(dataItems) - .pdf(false) - .customTemplateUrls(null) - .build()); + .customParam(map) + .dataItems(dataItems) + .pdf(false) + .customTemplateUrls(null) + .build()); List urlList = new ArrayList<>(); if (StringUtils.isNotEmpty(wordUrl)) { urlList.add(wordUrl); @@ -98,65 +93,100 @@ } } + /** + * 备注:每个核查项的判断都需要和模板的表格顺序一致 + * @param request + * @param startIndex + * @param map + * @return + */ private List removeCheckItem(BizEquipmentStandardCheckRecordApproval request, int startIndex, Map map) { List dataItems = new ArrayList<>(); - int repIndex = 1, staIndex = 9; - Map> dataMap = request.getCheckDataSpectrumAnalyzerList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSpectrumAnalyzer::getParams)); - if (!dataMap.containsKey("1")) { - addDataRemoveItem(dataItems, startIndex + repIndex, "时标"); - addDataRemoveItem(dataItems, startIndex + staIndex, "时标"); + int repIndex = 1; + Map> typeMap = request.getCheckDataOscilloscopeList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataOscilloscope::getCheckType)); + List repList = typeMap.get(REPEATABILITY); + Map> repDataMap = repList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataOscilloscope::getParams)); + if (!repDataMap.containsKey(HOUR_MARKERS)) { + addDataRemoveItem(dataItems, startIndex + 1, "时标"); } else { map.put("zeroRepSeq", (repIndex++) + "、"); - map.put("zeroStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("2")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 1, "方波电压(50Ω)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 1, "方波电压(50Ω)"); + if (!repDataMap.containsKey(SQUARE_WAVE_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 2, "方波电压(50Ω)"); } else { map.put("firstRepSeq", (repIndex++) + "、"); - map.put("firstStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("3")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 2, "方波电压(1MΩ)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 2, "方波电压(1MΩ)"); + if (!repDataMap.containsKey(SQUARE_WAVE_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 3, "方波电压(1MΩ)"); } else { map.put("secondRepSeq", (repIndex++) + "、"); - map.put("secondStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("4")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 3, "直流电压(50Ω)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 3, "直流电压(50Ω)"); + if (!repDataMap.containsKey(DC_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 4, "直流电压(50Ω)"); } else { map.put("thirdRepSeq", (repIndex++) + "、"); - map.put("thirdStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("5")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 4, "直流电压(1MΩ)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 4, "直流电压(1MΩ)"); + if (!repDataMap.containsKey(DC_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 5, "直流电压(1MΩ)"); } else { map.put("fourthRepSeq", (repIndex++) + "、"); - map.put("fourthStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("6")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 5, "输入阻抗"); - addDataRemoveItem(dataItems, startIndex + staIndex + 5, "输入阻抗"); + if (!repDataMap.containsKey(INPUT_IMPEDANCE)) { + addDataRemoveItem(dataItems, startIndex + 6, "输入阻抗"); } else { map.put("fifthRepSeq", (repIndex++) + "、"); - map.put("fifthStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("7")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 6, "正弦信号平坦度"); - addDataRemoveItem(dataItems, startIndex + staIndex + 6, "正弦信号平坦度"); + if (!repDataMap.containsKey(SINE_SIGNAL_FLATNESS)) { + addDataRemoveItem(dataItems, startIndex + 7, "正弦信号平坦度"); } else { map.put("sixthRepSeq", (repIndex++) + "、"); - map.put("sixthStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("8")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 7, "上升时间"); - addDataRemoveItem(dataItems, startIndex + staIndex + 7, "上升时间"); + if (!repDataMap.containsKey(RISE_TIME_CHECK)) { + addDataRemoveItem(dataItems, startIndex + 8, "上升时间"); } else { map.put("seventhRepSeq", (repIndex++) + "、"); - map.put("seventhStaSeq", (staIndex++) + "、"); + } + List staList = typeMap.get(STABILITY); + Map> staDataMap = staList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataOscilloscope::getParams)); + if (!staDataMap.containsKey(HOUR_MARKERS)) { + addDataRemoveItem(dataItems, startIndex + 9, "时标"); + } else { + map.put("zeroStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(SQUARE_WAVE_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 10, "方波电压(50Ω)"); + } else { + map.put("firstStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(SQUARE_WAVE_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 11, "方波电压(1MΩ)"); + } else { + map.put("secondStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(DC_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 12, "直流电压(50Ω)"); + } else { + map.put("thirdStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(DC_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 13, "直流电压(1MΩ)"); + } else { + map.put("fourthStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(INPUT_IMPEDANCE)) { + addDataRemoveItem(dataItems, startIndex + 14, "输入阻抗"); + } else { + map.put("fifthStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(SINE_SIGNAL_FLATNESS)) { + addDataRemoveItem(dataItems, startIndex + 15, "正弦信号平坦度"); + } else { + map.put("sixthStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(RISE_TIME_CHECK)) { + addDataRemoveItem(dataItems, startIndex + 16, "上升时间"); + } else { + map.put("seventhStaSeq", (repIndex++) + "、"); } return dataItems; } @@ -180,8 +210,9 @@ return o; }) .collect(Collectors.toList()); - map.put(REPEAT_PREFIX + (i + 1), repList); - + if (CollectionUtils.isNotEmpty(repList)) { + map.put(REPEAT_PREFIX + (i + 1), repList); + } List staList = oscilloscopeList.stream() .filter(o -> param.equals(o.getParams()) && checkType[1].equals(o.getCheckType())) .map(o -> { @@ -195,14 +226,16 @@ return o; }) .collect(Collectors.toList()); - map.put(STA_PREFIX + (i + 1), staList); - BizEquipmentStandardCheckDataOscilloscope oscilloscope = staList.get(0); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, oscilloscope.getTestValueOneDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, oscilloscope.getTestValueTwoDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, oscilloscope.getTestValueThreeDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, oscilloscope.getTestValueFourDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, oscilloscope.getTestValueFiveDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, oscilloscope.getTestValueSixDate()); + if (CollectionUtils.isNotEmpty(staList)) { + map.put(STA_PREFIX + (i + 1), staList); + BizEquipmentStandardCheckDataOscilloscope oscilloscope = staList.get(0); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, oscilloscope.getTestValueOneDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, oscilloscope.getTestValueTwoDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, oscilloscope.getTestValueThreeDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, oscilloscope.getTestValueFourDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, oscilloscope.getTestValueFiveDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, oscilloscope.getTestValueSixDate()); + } } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java index eb047b2..5de2f15 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java @@ -71,7 +71,7 @@ processCheckAccord(map, request.getLabCode()); readyForCheckParams(map, request.getCheckDataSignalGeneratorList()); replaceSlash(map); - List dataItems = removeCheckItem(request, 2, map); + List dataItems = removeCheckItem(request, 1, map); map.put("pdfStatus", 1); //除了选用的模板不一致,模板配置流程是一致的 map.put("surveyor", "{{@surveyor}}"); @@ -79,7 +79,7 @@ String wordUrl = printFileRegister.registerPrintFile(SIGNAL_GENERATOR_CHECK_DATA, "数据打印", null, RegisterCustomParameters.builder() .customParam(map) -// .dataItems(dataItems) + .dataItems(dataItems) .pdf(false) .customTemplateUrls(null) .build()); @@ -99,56 +99,82 @@ private List removeCheckItem(BizEquipmentStandardCheckRecordApproval request, int startIndex, Map map) { List dataItems = new ArrayList<>(); - int repIndex = 1, staIndex = 8; - Map> dataMap = request.getCheckDataSpectrumAnalyzerList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSpectrumAnalyzer::getParams)); - if (!map.containsKey("1")) { - addDataRemoveItem(dataItems, startIndex + repIndex, "射频频率"); - addDataRemoveItem(dataItems, startIndex + staIndex, "射频频率:合成标准不确定度(k=2): 1.2×10-8~3.2×10-11"); + int repIndex = 1; + Map> typeMap = request.getCheckDataSignalGeneratorList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSignalGenerator::getCheckType)); + List repList = typeMap.get(REPEATABILITY); + Map> repDataMap = repList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSignalGenerator::getParams)); + if (!repDataMap.containsKey(FREQUENCY_CN)) { + addDataRemoveItem(dataItems, startIndex + 1, "射频频率"); } else { map.put("zeroRepSeq", (repIndex++) + "."); - map.put("zeroStaSeq", (staIndex++) + "."); } - if (!map.containsKey("2")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 1, "功率电平"); - addDataRemoveItem(dataItems, startIndex + staIndex + 1, "功率电平:合成标准不确定度(k=2): 0.14dB~0.29dB"); + if (!repDataMap.containsKey(EFFICIENCY)) { + addDataRemoveItem(dataItems, startIndex + 2, "功率电平"); } else { map.put("firstRepSeq", (repIndex++) + "."); - map.put("firstStaSeq", (staIndex++) + "."); } - if (!map.containsKey("3")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 2, "相对电平"); - addDataRemoveItem(dataItems, startIndex + staIndex + 2, "相对电平:合成标准不确定度(k=2): 0.08dB~0.28dB"); + if (!repDataMap.containsKey(RELATIVE_LEVEL_ONE)) { + addDataRemoveItem(dataItems, startIndex + 3, "相对电平"); } else { map.put("secondRepSeq", (repIndex++) + "."); - map.put("secondStaSeq", (staIndex++) + "."); } - if (!map.containsKey("4")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 3, "调幅深度"); - addDataRemoveItem(dataItems, startIndex + staIndex + 3, "调幅深度:合成标准不确定度(k=2):1.3%"); + if (!repDataMap.containsKey(AMPLITUDE_ADJUSTMENT)) { + addDataRemoveItem(dataItems, startIndex + 4, "调幅深度"); } else { map.put("thirdRepSeq", (repIndex++) + "."); - map.put("thirdStaSeq", (staIndex++) + "."); } - if (!map.containsKey("5")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 4, "调频频偏"); - addDataRemoveItem(dataItems, startIndex + staIndex + 4, "调频频偏:合成标准不确定度(k=2):1.3%"); + if (!repDataMap.containsKey(FREQUENCY_MODULATION_FREQUENCY_OFFSET)) { + addDataRemoveItem(dataItems, startIndex + 5, "调频频偏"); } else { map.put("fourthRepSeq", (repIndex++) + "."); - map.put("fourthStaSeq", (staIndex++) + "."); } - if (!map.containsKey("6")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 5, "调相相偏"); - addDataRemoveItem(dataItems, startIndex + staIndex + 5, "调相相偏:合成标准不确定度(k=2):1.3%"); + if (!repDataMap.containsKey(PHASE_MODULATION_PHASE_DEVIATION)) { + addDataRemoveItem(dataItems, startIndex + 6, "调相相偏"); } else { map.put("fifthRepSeq", (repIndex++) + "."); - map.put("fifthStaSeq", (staIndex++) + "."); } - if (!map.containsKey("7")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 6, "谐波:10MHz、1GHz,RBW/VBW:1kHz,接收机参考电平:-20dBm;8GHz,RBW/VBW:1kHz,接收机参考电平:-50dBm"); - addDataRemoveItem(dataItems, startIndex + staIndex + 6, "谐波抑制:合成标准不确定度(k=2): 0.20dB~1.1dB"); + if (!repDataMap.containsKey(HARMONIC)) { + addDataRemoveItem(dataItems, startIndex + 7, "谐波"); } else { map.put("sixthRepSeq", (repIndex++) + "."); - map.put("sixthStaSeq", (staIndex++) + "."); + } + + List staList = typeMap.get(STABILITY); + Map> staDataMap = staList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSignalGenerator::getParams)); + if (!staDataMap.containsKey(FREQUENCY_CN)) { + addDataRemoveItem(dataItems, startIndex + 8, "射频频率"); + } else { + map.put("zeroStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(EFFICIENCY)) { + addDataRemoveItem(dataItems, startIndex + 9, "功率电平"); + } else { + map.put("firstStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(RELATIVE_LEVEL_ONE)) { + addDataRemoveItem(dataItems, startIndex + 10, "相对电平"); + } else { + map.put("secondStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(AMPLITUDE_ADJUSTMENT)) { + addDataRemoveItem(dataItems, startIndex + 11, "调幅深度"); + } else { + map.put("thirdStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(FREQUENCY_MODULATION_FREQUENCY_OFFSET)) { + addDataRemoveItem(dataItems, startIndex + 12, "调频频偏"); + } else { + map.put("fourthStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(PHASE_MODULATION_PHASE_DEVIATION)) { + addDataRemoveItem(dataItems, startIndex + 13, "调相相偏"); + } else { + map.put("fifthStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(HARMONIC)) { + addDataRemoveItem(dataItems, startIndex + 14, "谐波抑制"); + } else { + map.put("sixthStaSeq", (repIndex++) + "."); } return dataItems; } @@ -165,20 +191,23 @@ && param.equals(signalGenerator.getParams())) .peek(this::appendUnits) .collect(Collectors.toList()); - map.put(REPEAT_PREFIX + (i + 1), rep); + if (!CollectionUtils.isEmpty(rep)){ + map.put(REPEAT_PREFIX + (i + 1), rep); + } List sta = signalGeneratorList.stream() .filter(s -> checkType[1].equals(s.getCheckType()) && param.equals(s.getParams())) .peek(this::appendUnits).collect(Collectors.toList()); map.put(STA_PREFIX + (i + 1), sta); - - BizEquipmentStandardCheckDataSignalGenerator signalGenerator = sta.get(0); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, signalGenerator.getTestValueOneDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, signalGenerator.getTestValueTwoDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, signalGenerator.getTestValueThreeDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, signalGenerator.getTestValueFourDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, signalGenerator.getTestValueFiveDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, signalGenerator.getTestValueSixDate()); + if (!CollectionUtils.isEmpty(sta)){ + BizEquipmentStandardCheckDataSignalGenerator signalGenerator = sta.get(0); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, signalGenerator.getTestValueOneDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, signalGenerator.getTestValueTwoDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, signalGenerator.getTestValueThreeDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, signalGenerator.getTestValueFourDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, signalGenerator.getTestValueFiveDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, signalGenerator.getTestValueSixDate()); + } } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentInfoServiceImpl.java index b54c607..56c2a24 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentInfoServiceImpl.java @@ -44,6 +44,7 @@ import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.service.listeners.CommonExcelListener; import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.service.workbench.IBizWorkbenchService; import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; @@ -139,6 +140,8 @@ private BizResourceSupplierInfoMapper supplierInfoMapper; @Autowired private PrintFileRegister printFileRegister; + @Autowired + private WorkbenchRemindMessageMapper remindMessageMapper; @Override public Page approvalListPage(Page page, EquipmentApprovalListRequest request) throws Exception { @@ -1263,6 +1266,14 @@ String standardName = standardInfoList.stream().map(BizEquipmentStandardInfo::getStandardName).collect(Collectors.joining(",")); equipmentInfo.setMeterStandardName(standardName); //设置行颜色标识 + //todo 设备有效期达到到期提醒模块配置时间,需要标注黄色 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(WorkbenchRemindMessage::getBusinessId, equipmentInfo.getId()); + queryWrapper.eq(WorkbenchRemindMessage::getStatus, "0"); + List messageList = remindMessageMapper.selectList(queryWrapper); + if (messageList != null && messageList.size() > 0) { + equipmentInfo.setColorMark(2); + } DateTime today = DateUtil.parse(DateUtil.today()); if (StringUtils.isNotBlank(equipmentInfo.getMeasureValidDate())) { DateTime validDate = DateUtil.parse(equipmentInfo.getMeasureValidDate()); @@ -1271,7 +1282,6 @@ equipmentInfo.setColorMark(1); } } - //todo 设备有效期达到到期提醒模块配置时间,需要标注黄色 } if (StringUtils.isNotBlank(request.getMeterStandardName())) { List recordList = resultApprovalPage.getRecords().stream().filter(e -> e.getMeterStandardName().contains(request.getMeterStandardName())).collect(Collectors.toList()); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java index aa8cba7..19b2f23 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java @@ -10,6 +10,7 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.resource.BizResourceSystemFile; import com.casic.missiles.service.equipment.*; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 368934f..0abe025 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -400,5 +400,12 @@ return successResult; } + @ApiOperation("获取用户base64加密后的签名") + @GetMapping("/sign/getBase64SignImgs") + @ResponseBody + public ReturnDTO getBase64SignImgs(@ApiParam("用户id") Long userId){ + return signService.getBase64SignImgs(userId); + } + // TODO: 2023/7/25 系统管理仅差到期提醒管理和数据同步,到期提醒参考受检设备系统 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e6e55fa..797e293 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -138,6 +138,11 @@ * 工作台 */ BATCH_TO_READ_FAIL(2600, "一键已读操作失败"), + /** + * 系统管理 + */ + USER_SIGN_NOT_EXISTS(2601,"该用户签名不存在,请配置签名"), + USER_ID_CANNOT_BE_NULL(2602,"用户id不能为空"), /** * 表单生成及打印 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java index d85d0a6..ef9fc8d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java @@ -1,9 +1,6 @@ package com.casic.missiles.service.Impl.eqpt.standard.impl; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.convert.NumberChineseFormatter; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.dto.certificate.RegisterCustomParameters; import com.casic.missiles.dto.certificate.ToBeRemoveDataItem; @@ -26,13 +23,11 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.beanutils.BeanUtils; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -72,18 +67,18 @@ processCheckAccord(map, request.getLabCode()); readyForCheckParams(map, request.getCheckDataOscilloscopeList()); replaceSlash(map); - List dataItems = removeCheckItem(request, 3, map); + List dataItems = removeCheckItem(request, 2, map); map.put("pdfStatus", 1); //除了选用的模板不一致,模板配置流程是一致的 map.put("surveyor", "{{@surveyor}}"); map.put("auditor", "{{@auditor}}"); String wordUrl = printFileRegister.registerPrintFile(OSCILLOSCOPE_CHECK_DATA, "数据打印", null, RegisterCustomParameters.builder() - .customParam(map) - .dataItems(dataItems) - .pdf(false) - .customTemplateUrls(null) - .build()); + .customParam(map) + .dataItems(dataItems) + .pdf(false) + .customTemplateUrls(null) + .build()); List urlList = new ArrayList<>(); if (StringUtils.isNotEmpty(wordUrl)) { urlList.add(wordUrl); @@ -98,65 +93,100 @@ } } + /** + * 备注:每个核查项的判断都需要和模板的表格顺序一致 + * @param request + * @param startIndex + * @param map + * @return + */ private List removeCheckItem(BizEquipmentStandardCheckRecordApproval request, int startIndex, Map map) { List dataItems = new ArrayList<>(); - int repIndex = 1, staIndex = 9; - Map> dataMap = request.getCheckDataSpectrumAnalyzerList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSpectrumAnalyzer::getParams)); - if (!dataMap.containsKey("1")) { - addDataRemoveItem(dataItems, startIndex + repIndex, "时标"); - addDataRemoveItem(dataItems, startIndex + staIndex, "时标"); + int repIndex = 1; + Map> typeMap = request.getCheckDataOscilloscopeList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataOscilloscope::getCheckType)); + List repList = typeMap.get(REPEATABILITY); + Map> repDataMap = repList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataOscilloscope::getParams)); + if (!repDataMap.containsKey(HOUR_MARKERS)) { + addDataRemoveItem(dataItems, startIndex + 1, "时标"); } else { map.put("zeroRepSeq", (repIndex++) + "、"); - map.put("zeroStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("2")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 1, "方波电压(50Ω)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 1, "方波电压(50Ω)"); + if (!repDataMap.containsKey(SQUARE_WAVE_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 2, "方波电压(50Ω)"); } else { map.put("firstRepSeq", (repIndex++) + "、"); - map.put("firstStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("3")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 2, "方波电压(1MΩ)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 2, "方波电压(1MΩ)"); + if (!repDataMap.containsKey(SQUARE_WAVE_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 3, "方波电压(1MΩ)"); } else { map.put("secondRepSeq", (repIndex++) + "、"); - map.put("secondStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("4")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 3, "直流电压(50Ω)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 3, "直流电压(50Ω)"); + if (!repDataMap.containsKey(DC_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 4, "直流电压(50Ω)"); } else { map.put("thirdRepSeq", (repIndex++) + "、"); - map.put("thirdStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("5")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 4, "直流电压(1MΩ)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 4, "直流电压(1MΩ)"); + if (!repDataMap.containsKey(DC_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 5, "直流电压(1MΩ)"); } else { map.put("fourthRepSeq", (repIndex++) + "、"); - map.put("fourthStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("6")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 5, "输入阻抗"); - addDataRemoveItem(dataItems, startIndex + staIndex + 5, "输入阻抗"); + if (!repDataMap.containsKey(INPUT_IMPEDANCE)) { + addDataRemoveItem(dataItems, startIndex + 6, "输入阻抗"); } else { map.put("fifthRepSeq", (repIndex++) + "、"); - map.put("fifthStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("7")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 6, "正弦信号平坦度"); - addDataRemoveItem(dataItems, startIndex + staIndex + 6, "正弦信号平坦度"); + if (!repDataMap.containsKey(SINE_SIGNAL_FLATNESS)) { + addDataRemoveItem(dataItems, startIndex + 7, "正弦信号平坦度"); } else { map.put("sixthRepSeq", (repIndex++) + "、"); - map.put("sixthStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("8")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 7, "上升时间"); - addDataRemoveItem(dataItems, startIndex + staIndex + 7, "上升时间"); + if (!repDataMap.containsKey(RISE_TIME_CHECK)) { + addDataRemoveItem(dataItems, startIndex + 8, "上升时间"); } else { map.put("seventhRepSeq", (repIndex++) + "、"); - map.put("seventhStaSeq", (staIndex++) + "、"); + } + List staList = typeMap.get(STABILITY); + Map> staDataMap = staList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataOscilloscope::getParams)); + if (!staDataMap.containsKey(HOUR_MARKERS)) { + addDataRemoveItem(dataItems, startIndex + 9, "时标"); + } else { + map.put("zeroStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(SQUARE_WAVE_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 10, "方波电压(50Ω)"); + } else { + map.put("firstStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(SQUARE_WAVE_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 11, "方波电压(1MΩ)"); + } else { + map.put("secondStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(DC_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 12, "直流电压(50Ω)"); + } else { + map.put("thirdStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(DC_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 13, "直流电压(1MΩ)"); + } else { + map.put("fourthStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(INPUT_IMPEDANCE)) { + addDataRemoveItem(dataItems, startIndex + 14, "输入阻抗"); + } else { + map.put("fifthStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(SINE_SIGNAL_FLATNESS)) { + addDataRemoveItem(dataItems, startIndex + 15, "正弦信号平坦度"); + } else { + map.put("sixthStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(RISE_TIME_CHECK)) { + addDataRemoveItem(dataItems, startIndex + 16, "上升时间"); + } else { + map.put("seventhStaSeq", (repIndex++) + "、"); } return dataItems; } @@ -180,8 +210,9 @@ return o; }) .collect(Collectors.toList()); - map.put(REPEAT_PREFIX + (i + 1), repList); - + if (CollectionUtils.isNotEmpty(repList)) { + map.put(REPEAT_PREFIX + (i + 1), repList); + } List staList = oscilloscopeList.stream() .filter(o -> param.equals(o.getParams()) && checkType[1].equals(o.getCheckType())) .map(o -> { @@ -195,14 +226,16 @@ return o; }) .collect(Collectors.toList()); - map.put(STA_PREFIX + (i + 1), staList); - BizEquipmentStandardCheckDataOscilloscope oscilloscope = staList.get(0); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, oscilloscope.getTestValueOneDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, oscilloscope.getTestValueTwoDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, oscilloscope.getTestValueThreeDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, oscilloscope.getTestValueFourDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, oscilloscope.getTestValueFiveDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, oscilloscope.getTestValueSixDate()); + if (CollectionUtils.isNotEmpty(staList)) { + map.put(STA_PREFIX + (i + 1), staList); + BizEquipmentStandardCheckDataOscilloscope oscilloscope = staList.get(0); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, oscilloscope.getTestValueOneDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, oscilloscope.getTestValueTwoDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, oscilloscope.getTestValueThreeDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, oscilloscope.getTestValueFourDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, oscilloscope.getTestValueFiveDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, oscilloscope.getTestValueSixDate()); + } } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java index eb047b2..5de2f15 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java @@ -71,7 +71,7 @@ processCheckAccord(map, request.getLabCode()); readyForCheckParams(map, request.getCheckDataSignalGeneratorList()); replaceSlash(map); - List dataItems = removeCheckItem(request, 2, map); + List dataItems = removeCheckItem(request, 1, map); map.put("pdfStatus", 1); //除了选用的模板不一致,模板配置流程是一致的 map.put("surveyor", "{{@surveyor}}"); @@ -79,7 +79,7 @@ String wordUrl = printFileRegister.registerPrintFile(SIGNAL_GENERATOR_CHECK_DATA, "数据打印", null, RegisterCustomParameters.builder() .customParam(map) -// .dataItems(dataItems) + .dataItems(dataItems) .pdf(false) .customTemplateUrls(null) .build()); @@ -99,56 +99,82 @@ private List removeCheckItem(BizEquipmentStandardCheckRecordApproval request, int startIndex, Map map) { List dataItems = new ArrayList<>(); - int repIndex = 1, staIndex = 8; - Map> dataMap = request.getCheckDataSpectrumAnalyzerList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSpectrumAnalyzer::getParams)); - if (!map.containsKey("1")) { - addDataRemoveItem(dataItems, startIndex + repIndex, "射频频率"); - addDataRemoveItem(dataItems, startIndex + staIndex, "射频频率:合成标准不确定度(k=2): 1.2×10-8~3.2×10-11"); + int repIndex = 1; + Map> typeMap = request.getCheckDataSignalGeneratorList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSignalGenerator::getCheckType)); + List repList = typeMap.get(REPEATABILITY); + Map> repDataMap = repList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSignalGenerator::getParams)); + if (!repDataMap.containsKey(FREQUENCY_CN)) { + addDataRemoveItem(dataItems, startIndex + 1, "射频频率"); } else { map.put("zeroRepSeq", (repIndex++) + "."); - map.put("zeroStaSeq", (staIndex++) + "."); } - if (!map.containsKey("2")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 1, "功率电平"); - addDataRemoveItem(dataItems, startIndex + staIndex + 1, "功率电平:合成标准不确定度(k=2): 0.14dB~0.29dB"); + if (!repDataMap.containsKey(EFFICIENCY)) { + addDataRemoveItem(dataItems, startIndex + 2, "功率电平"); } else { map.put("firstRepSeq", (repIndex++) + "."); - map.put("firstStaSeq", (staIndex++) + "."); } - if (!map.containsKey("3")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 2, "相对电平"); - addDataRemoveItem(dataItems, startIndex + staIndex + 2, "相对电平:合成标准不确定度(k=2): 0.08dB~0.28dB"); + if (!repDataMap.containsKey(RELATIVE_LEVEL_ONE)) { + addDataRemoveItem(dataItems, startIndex + 3, "相对电平"); } else { map.put("secondRepSeq", (repIndex++) + "."); - map.put("secondStaSeq", (staIndex++) + "."); } - if (!map.containsKey("4")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 3, "调幅深度"); - addDataRemoveItem(dataItems, startIndex + staIndex + 3, "调幅深度:合成标准不确定度(k=2):1.3%"); + if (!repDataMap.containsKey(AMPLITUDE_ADJUSTMENT)) { + addDataRemoveItem(dataItems, startIndex + 4, "调幅深度"); } else { map.put("thirdRepSeq", (repIndex++) + "."); - map.put("thirdStaSeq", (staIndex++) + "."); } - if (!map.containsKey("5")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 4, "调频频偏"); - addDataRemoveItem(dataItems, startIndex + staIndex + 4, "调频频偏:合成标准不确定度(k=2):1.3%"); + if (!repDataMap.containsKey(FREQUENCY_MODULATION_FREQUENCY_OFFSET)) { + addDataRemoveItem(dataItems, startIndex + 5, "调频频偏"); } else { map.put("fourthRepSeq", (repIndex++) + "."); - map.put("fourthStaSeq", (staIndex++) + "."); } - if (!map.containsKey("6")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 5, "调相相偏"); - addDataRemoveItem(dataItems, startIndex + staIndex + 5, "调相相偏:合成标准不确定度(k=2):1.3%"); + if (!repDataMap.containsKey(PHASE_MODULATION_PHASE_DEVIATION)) { + addDataRemoveItem(dataItems, startIndex + 6, "调相相偏"); } else { map.put("fifthRepSeq", (repIndex++) + "."); - map.put("fifthStaSeq", (staIndex++) + "."); } - if (!map.containsKey("7")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 6, "谐波:10MHz、1GHz,RBW/VBW:1kHz,接收机参考电平:-20dBm;8GHz,RBW/VBW:1kHz,接收机参考电平:-50dBm"); - addDataRemoveItem(dataItems, startIndex + staIndex + 6, "谐波抑制:合成标准不确定度(k=2): 0.20dB~1.1dB"); + if (!repDataMap.containsKey(HARMONIC)) { + addDataRemoveItem(dataItems, startIndex + 7, "谐波"); } else { map.put("sixthRepSeq", (repIndex++) + "."); - map.put("sixthStaSeq", (staIndex++) + "."); + } + + List staList = typeMap.get(STABILITY); + Map> staDataMap = staList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSignalGenerator::getParams)); + if (!staDataMap.containsKey(FREQUENCY_CN)) { + addDataRemoveItem(dataItems, startIndex + 8, "射频频率"); + } else { + map.put("zeroStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(EFFICIENCY)) { + addDataRemoveItem(dataItems, startIndex + 9, "功率电平"); + } else { + map.put("firstStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(RELATIVE_LEVEL_ONE)) { + addDataRemoveItem(dataItems, startIndex + 10, "相对电平"); + } else { + map.put("secondStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(AMPLITUDE_ADJUSTMENT)) { + addDataRemoveItem(dataItems, startIndex + 11, "调幅深度"); + } else { + map.put("thirdStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(FREQUENCY_MODULATION_FREQUENCY_OFFSET)) { + addDataRemoveItem(dataItems, startIndex + 12, "调频频偏"); + } else { + map.put("fourthStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(PHASE_MODULATION_PHASE_DEVIATION)) { + addDataRemoveItem(dataItems, startIndex + 13, "调相相偏"); + } else { + map.put("fifthStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(HARMONIC)) { + addDataRemoveItem(dataItems, startIndex + 14, "谐波抑制"); + } else { + map.put("sixthStaSeq", (repIndex++) + "."); } return dataItems; } @@ -165,20 +191,23 @@ && param.equals(signalGenerator.getParams())) .peek(this::appendUnits) .collect(Collectors.toList()); - map.put(REPEAT_PREFIX + (i + 1), rep); + if (!CollectionUtils.isEmpty(rep)){ + map.put(REPEAT_PREFIX + (i + 1), rep); + } List sta = signalGeneratorList.stream() .filter(s -> checkType[1].equals(s.getCheckType()) && param.equals(s.getParams())) .peek(this::appendUnits).collect(Collectors.toList()); map.put(STA_PREFIX + (i + 1), sta); - - BizEquipmentStandardCheckDataSignalGenerator signalGenerator = sta.get(0); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, signalGenerator.getTestValueOneDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, signalGenerator.getTestValueTwoDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, signalGenerator.getTestValueThreeDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, signalGenerator.getTestValueFourDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, signalGenerator.getTestValueFiveDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, signalGenerator.getTestValueSixDate()); + if (!CollectionUtils.isEmpty(sta)){ + BizEquipmentStandardCheckDataSignalGenerator signalGenerator = sta.get(0); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, signalGenerator.getTestValueOneDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, signalGenerator.getTestValueTwoDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, signalGenerator.getTestValueThreeDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, signalGenerator.getTestValueFourDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, signalGenerator.getTestValueFiveDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, signalGenerator.getTestValueSixDate()); + } } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentInfoServiceImpl.java index b54c607..56c2a24 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentInfoServiceImpl.java @@ -44,6 +44,7 @@ import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.service.listeners.CommonExcelListener; import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.service.workbench.IBizWorkbenchService; import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; @@ -139,6 +140,8 @@ private BizResourceSupplierInfoMapper supplierInfoMapper; @Autowired private PrintFileRegister printFileRegister; + @Autowired + private WorkbenchRemindMessageMapper remindMessageMapper; @Override public Page approvalListPage(Page page, EquipmentApprovalListRequest request) throws Exception { @@ -1263,6 +1266,14 @@ String standardName = standardInfoList.stream().map(BizEquipmentStandardInfo::getStandardName).collect(Collectors.joining(",")); equipmentInfo.setMeterStandardName(standardName); //设置行颜色标识 + //todo 设备有效期达到到期提醒模块配置时间,需要标注黄色 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(WorkbenchRemindMessage::getBusinessId, equipmentInfo.getId()); + queryWrapper.eq(WorkbenchRemindMessage::getStatus, "0"); + List messageList = remindMessageMapper.selectList(queryWrapper); + if (messageList != null && messageList.size() > 0) { + equipmentInfo.setColorMark(2); + } DateTime today = DateUtil.parse(DateUtil.today()); if (StringUtils.isNotBlank(equipmentInfo.getMeasureValidDate())) { DateTime validDate = DateUtil.parse(equipmentInfo.getMeasureValidDate()); @@ -1271,7 +1282,6 @@ equipmentInfo.setColorMark(1); } } - //todo 设备有效期达到到期提醒模块配置时间,需要标注黄色 } if (StringUtils.isNotBlank(request.getMeterStandardName())) { List recordList = resultApprovalPage.getRecords().stream().filter(e -> e.getMeterStandardName().contains(request.getMeterStandardName())).collect(Collectors.toList()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardCheckRecordApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardCheckRecordApprovalServiceImpl.java index 17e0c98..e56ad4f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardCheckRecordApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardCheckRecordApprovalServiceImpl.java @@ -59,23 +59,31 @@ if (CollectionUtils.isNotEmpty(existList)) { throw new BusinessException(BusinessExceptionEnum.CHECK_RECORD_ALREADY_EXIST); } - //生成编号 - String labCode = request.getLabCode(); - String groupCode = request.getGroupCode(); - Long maxNo = this.baseMapper.selectMaxNo(); - String recordNo = NoGeneratorUtil.getCode(NoGenerateFileCodeEnum.AA, labCode, NoGenerateRecordTypeCodeEnum.ELECTRICITY_INFO, groupCode, maxNo); - request.setCreateUserId(request.getUserId()); - request.setCreateUserName(request.getUserName()); - request.setApprovalStatus(ApprovalStatusEnum.DRAFT); //草稿箱状态 - request.setRecordNo(recordNo); - int row = this.baseMapper.insert(request); - Assert.isFalse(row <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.CHECK_APPROVAL_SAVE_FAILED); - }); - genericEqptDataProvider.checkCertificateTask(request); - StandardCheckRecordApprovalSaveResponse saveResponse = new StandardCheckRecordApprovalSaveResponse(); - saveResponse.setId(request.getId()); - saveResponse.setRecordNo(recordNo); + StandardCheckRecordApprovalSaveResponse saveResponse = null; + try { + //生成编号 + String labCode = request.getLabCode(); + String groupCode = request.getGroupCode(); + Long maxNo = this.baseMapper.selectMaxNo(); + String recordNo = NoGeneratorUtil.getCode(NoGenerateFileCodeEnum.AA, labCode, NoGenerateRecordTypeCodeEnum.ELECTRICITY_INFO, groupCode, maxNo); + request.setCreateUserId(request.getUserId()); + request.setCreateUserName(request.getUserName()); + request.setApprovalStatus(ApprovalStatusEnum.DRAFT); //草稿箱状态 + request.setRecordNo(recordNo); + int row = this.baseMapper.insert(request); + Assert.isFalse(row <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.CHECK_APPROVAL_SAVE_FAILED); + }); + genericEqptDataProvider.checkCertificateTask(request); + saveResponse = new StandardCheckRecordApprovalSaveResponse(); + saveResponse.setId(request.getId()); + saveResponse.setRecordNo(recordNo); + } finally { + if (saveResponse == null) { + log.debug("执行手动回滚操作==========>"); + this.baseMapper.deleteById(request); + } + } return ReturnUtil.success(saveResponse); } @@ -172,14 +180,14 @@ */ @Override public ReturnDTO getCertByCertNo(String recordNo) { - if (StringUtils.isBlank(recordNo)){ + if (StringUtils.isBlank(recordNo)) { return ReturnUtil.failed("文件编号不能为空"); } LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(BizEquipmentStandardCheckRecordApproval::getRecordNo,recordNo); + queryWrapper.eq(BizEquipmentStandardCheckRecordApproval::getRecordNo, recordNo); queryWrapper.last("limit 1"); BizEquipmentStandardCheckRecordApproval approval = this.baseMapper.selectOne(queryWrapper); - if (Objects.isNull(approval)){ + if (Objects.isNull(approval)) { return ReturnUtil.failed("未查询到该核查记录"); } return ReturnUtil.success(approval); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java index aa8cba7..19b2f23 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java @@ -10,6 +10,7 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.resource.BizResourceSystemFile; import com.casic.missiles.service.equipment.*; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 368934f..0abe025 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -400,5 +400,12 @@ return successResult; } + @ApiOperation("获取用户base64加密后的签名") + @GetMapping("/sign/getBase64SignImgs") + @ResponseBody + public ReturnDTO getBase64SignImgs(@ApiParam("用户id") Long userId){ + return signService.getBase64SignImgs(userId); + } + // TODO: 2023/7/25 系统管理仅差到期提醒管理和数据同步,到期提醒参考受检设备系统 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e6e55fa..797e293 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -138,6 +138,11 @@ * 工作台 */ BATCH_TO_READ_FAIL(2600, "一键已读操作失败"), + /** + * 系统管理 + */ + USER_SIGN_NOT_EXISTS(2601,"该用户签名不存在,请配置签名"), + USER_ID_CANNOT_BE_NULL(2602,"用户id不能为空"), /** * 表单生成及打印 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java index d85d0a6..ef9fc8d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java @@ -1,9 +1,6 @@ package com.casic.missiles.service.Impl.eqpt.standard.impl; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.convert.NumberChineseFormatter; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.dto.certificate.RegisterCustomParameters; import com.casic.missiles.dto.certificate.ToBeRemoveDataItem; @@ -26,13 +23,11 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.beanutils.BeanUtils; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -72,18 +67,18 @@ processCheckAccord(map, request.getLabCode()); readyForCheckParams(map, request.getCheckDataOscilloscopeList()); replaceSlash(map); - List dataItems = removeCheckItem(request, 3, map); + List dataItems = removeCheckItem(request, 2, map); map.put("pdfStatus", 1); //除了选用的模板不一致,模板配置流程是一致的 map.put("surveyor", "{{@surveyor}}"); map.put("auditor", "{{@auditor}}"); String wordUrl = printFileRegister.registerPrintFile(OSCILLOSCOPE_CHECK_DATA, "数据打印", null, RegisterCustomParameters.builder() - .customParam(map) - .dataItems(dataItems) - .pdf(false) - .customTemplateUrls(null) - .build()); + .customParam(map) + .dataItems(dataItems) + .pdf(false) + .customTemplateUrls(null) + .build()); List urlList = new ArrayList<>(); if (StringUtils.isNotEmpty(wordUrl)) { urlList.add(wordUrl); @@ -98,65 +93,100 @@ } } + /** + * 备注:每个核查项的判断都需要和模板的表格顺序一致 + * @param request + * @param startIndex + * @param map + * @return + */ private List removeCheckItem(BizEquipmentStandardCheckRecordApproval request, int startIndex, Map map) { List dataItems = new ArrayList<>(); - int repIndex = 1, staIndex = 9; - Map> dataMap = request.getCheckDataSpectrumAnalyzerList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSpectrumAnalyzer::getParams)); - if (!dataMap.containsKey("1")) { - addDataRemoveItem(dataItems, startIndex + repIndex, "时标"); - addDataRemoveItem(dataItems, startIndex + staIndex, "时标"); + int repIndex = 1; + Map> typeMap = request.getCheckDataOscilloscopeList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataOscilloscope::getCheckType)); + List repList = typeMap.get(REPEATABILITY); + Map> repDataMap = repList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataOscilloscope::getParams)); + if (!repDataMap.containsKey(HOUR_MARKERS)) { + addDataRemoveItem(dataItems, startIndex + 1, "时标"); } else { map.put("zeroRepSeq", (repIndex++) + "、"); - map.put("zeroStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("2")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 1, "方波电压(50Ω)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 1, "方波电压(50Ω)"); + if (!repDataMap.containsKey(SQUARE_WAVE_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 2, "方波电压(50Ω)"); } else { map.put("firstRepSeq", (repIndex++) + "、"); - map.put("firstStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("3")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 2, "方波电压(1MΩ)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 2, "方波电压(1MΩ)"); + if (!repDataMap.containsKey(SQUARE_WAVE_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 3, "方波电压(1MΩ)"); } else { map.put("secondRepSeq", (repIndex++) + "、"); - map.put("secondStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("4")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 3, "直流电压(50Ω)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 3, "直流电压(50Ω)"); + if (!repDataMap.containsKey(DC_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 4, "直流电压(50Ω)"); } else { map.put("thirdRepSeq", (repIndex++) + "、"); - map.put("thirdStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("5")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 4, "直流电压(1MΩ)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 4, "直流电压(1MΩ)"); + if (!repDataMap.containsKey(DC_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 5, "直流电压(1MΩ)"); } else { map.put("fourthRepSeq", (repIndex++) + "、"); - map.put("fourthStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("6")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 5, "输入阻抗"); - addDataRemoveItem(dataItems, startIndex + staIndex + 5, "输入阻抗"); + if (!repDataMap.containsKey(INPUT_IMPEDANCE)) { + addDataRemoveItem(dataItems, startIndex + 6, "输入阻抗"); } else { map.put("fifthRepSeq", (repIndex++) + "、"); - map.put("fifthStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("7")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 6, "正弦信号平坦度"); - addDataRemoveItem(dataItems, startIndex + staIndex + 6, "正弦信号平坦度"); + if (!repDataMap.containsKey(SINE_SIGNAL_FLATNESS)) { + addDataRemoveItem(dataItems, startIndex + 7, "正弦信号平坦度"); } else { map.put("sixthRepSeq", (repIndex++) + "、"); - map.put("sixthStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("8")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 7, "上升时间"); - addDataRemoveItem(dataItems, startIndex + staIndex + 7, "上升时间"); + if (!repDataMap.containsKey(RISE_TIME_CHECK)) { + addDataRemoveItem(dataItems, startIndex + 8, "上升时间"); } else { map.put("seventhRepSeq", (repIndex++) + "、"); - map.put("seventhStaSeq", (staIndex++) + "、"); + } + List staList = typeMap.get(STABILITY); + Map> staDataMap = staList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataOscilloscope::getParams)); + if (!staDataMap.containsKey(HOUR_MARKERS)) { + addDataRemoveItem(dataItems, startIndex + 9, "时标"); + } else { + map.put("zeroStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(SQUARE_WAVE_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 10, "方波电压(50Ω)"); + } else { + map.put("firstStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(SQUARE_WAVE_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 11, "方波电压(1MΩ)"); + } else { + map.put("secondStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(DC_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 12, "直流电压(50Ω)"); + } else { + map.put("thirdStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(DC_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 13, "直流电压(1MΩ)"); + } else { + map.put("fourthStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(INPUT_IMPEDANCE)) { + addDataRemoveItem(dataItems, startIndex + 14, "输入阻抗"); + } else { + map.put("fifthStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(SINE_SIGNAL_FLATNESS)) { + addDataRemoveItem(dataItems, startIndex + 15, "正弦信号平坦度"); + } else { + map.put("sixthStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(RISE_TIME_CHECK)) { + addDataRemoveItem(dataItems, startIndex + 16, "上升时间"); + } else { + map.put("seventhStaSeq", (repIndex++) + "、"); } return dataItems; } @@ -180,8 +210,9 @@ return o; }) .collect(Collectors.toList()); - map.put(REPEAT_PREFIX + (i + 1), repList); - + if (CollectionUtils.isNotEmpty(repList)) { + map.put(REPEAT_PREFIX + (i + 1), repList); + } List staList = oscilloscopeList.stream() .filter(o -> param.equals(o.getParams()) && checkType[1].equals(o.getCheckType())) .map(o -> { @@ -195,14 +226,16 @@ return o; }) .collect(Collectors.toList()); - map.put(STA_PREFIX + (i + 1), staList); - BizEquipmentStandardCheckDataOscilloscope oscilloscope = staList.get(0); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, oscilloscope.getTestValueOneDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, oscilloscope.getTestValueTwoDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, oscilloscope.getTestValueThreeDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, oscilloscope.getTestValueFourDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, oscilloscope.getTestValueFiveDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, oscilloscope.getTestValueSixDate()); + if (CollectionUtils.isNotEmpty(staList)) { + map.put(STA_PREFIX + (i + 1), staList); + BizEquipmentStandardCheckDataOscilloscope oscilloscope = staList.get(0); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, oscilloscope.getTestValueOneDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, oscilloscope.getTestValueTwoDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, oscilloscope.getTestValueThreeDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, oscilloscope.getTestValueFourDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, oscilloscope.getTestValueFiveDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, oscilloscope.getTestValueSixDate()); + } } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java index eb047b2..5de2f15 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java @@ -71,7 +71,7 @@ processCheckAccord(map, request.getLabCode()); readyForCheckParams(map, request.getCheckDataSignalGeneratorList()); replaceSlash(map); - List dataItems = removeCheckItem(request, 2, map); + List dataItems = removeCheckItem(request, 1, map); map.put("pdfStatus", 1); //除了选用的模板不一致,模板配置流程是一致的 map.put("surveyor", "{{@surveyor}}"); @@ -79,7 +79,7 @@ String wordUrl = printFileRegister.registerPrintFile(SIGNAL_GENERATOR_CHECK_DATA, "数据打印", null, RegisterCustomParameters.builder() .customParam(map) -// .dataItems(dataItems) + .dataItems(dataItems) .pdf(false) .customTemplateUrls(null) .build()); @@ -99,56 +99,82 @@ private List removeCheckItem(BizEquipmentStandardCheckRecordApproval request, int startIndex, Map map) { List dataItems = new ArrayList<>(); - int repIndex = 1, staIndex = 8; - Map> dataMap = request.getCheckDataSpectrumAnalyzerList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSpectrumAnalyzer::getParams)); - if (!map.containsKey("1")) { - addDataRemoveItem(dataItems, startIndex + repIndex, "射频频率"); - addDataRemoveItem(dataItems, startIndex + staIndex, "射频频率:合成标准不确定度(k=2): 1.2×10-8~3.2×10-11"); + int repIndex = 1; + Map> typeMap = request.getCheckDataSignalGeneratorList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSignalGenerator::getCheckType)); + List repList = typeMap.get(REPEATABILITY); + Map> repDataMap = repList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSignalGenerator::getParams)); + if (!repDataMap.containsKey(FREQUENCY_CN)) { + addDataRemoveItem(dataItems, startIndex + 1, "射频频率"); } else { map.put("zeroRepSeq", (repIndex++) + "."); - map.put("zeroStaSeq", (staIndex++) + "."); } - if (!map.containsKey("2")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 1, "功率电平"); - addDataRemoveItem(dataItems, startIndex + staIndex + 1, "功率电平:合成标准不确定度(k=2): 0.14dB~0.29dB"); + if (!repDataMap.containsKey(EFFICIENCY)) { + addDataRemoveItem(dataItems, startIndex + 2, "功率电平"); } else { map.put("firstRepSeq", (repIndex++) + "."); - map.put("firstStaSeq", (staIndex++) + "."); } - if (!map.containsKey("3")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 2, "相对电平"); - addDataRemoveItem(dataItems, startIndex + staIndex + 2, "相对电平:合成标准不确定度(k=2): 0.08dB~0.28dB"); + if (!repDataMap.containsKey(RELATIVE_LEVEL_ONE)) { + addDataRemoveItem(dataItems, startIndex + 3, "相对电平"); } else { map.put("secondRepSeq", (repIndex++) + "."); - map.put("secondStaSeq", (staIndex++) + "."); } - if (!map.containsKey("4")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 3, "调幅深度"); - addDataRemoveItem(dataItems, startIndex + staIndex + 3, "调幅深度:合成标准不确定度(k=2):1.3%"); + if (!repDataMap.containsKey(AMPLITUDE_ADJUSTMENT)) { + addDataRemoveItem(dataItems, startIndex + 4, "调幅深度"); } else { map.put("thirdRepSeq", (repIndex++) + "."); - map.put("thirdStaSeq", (staIndex++) + "."); } - if (!map.containsKey("5")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 4, "调频频偏"); - addDataRemoveItem(dataItems, startIndex + staIndex + 4, "调频频偏:合成标准不确定度(k=2):1.3%"); + if (!repDataMap.containsKey(FREQUENCY_MODULATION_FREQUENCY_OFFSET)) { + addDataRemoveItem(dataItems, startIndex + 5, "调频频偏"); } else { map.put("fourthRepSeq", (repIndex++) + "."); - map.put("fourthStaSeq", (staIndex++) + "."); } - if (!map.containsKey("6")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 5, "调相相偏"); - addDataRemoveItem(dataItems, startIndex + staIndex + 5, "调相相偏:合成标准不确定度(k=2):1.3%"); + if (!repDataMap.containsKey(PHASE_MODULATION_PHASE_DEVIATION)) { + addDataRemoveItem(dataItems, startIndex + 6, "调相相偏"); } else { map.put("fifthRepSeq", (repIndex++) + "."); - map.put("fifthStaSeq", (staIndex++) + "."); } - if (!map.containsKey("7")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 6, "谐波:10MHz、1GHz,RBW/VBW:1kHz,接收机参考电平:-20dBm;8GHz,RBW/VBW:1kHz,接收机参考电平:-50dBm"); - addDataRemoveItem(dataItems, startIndex + staIndex + 6, "谐波抑制:合成标准不确定度(k=2): 0.20dB~1.1dB"); + if (!repDataMap.containsKey(HARMONIC)) { + addDataRemoveItem(dataItems, startIndex + 7, "谐波"); } else { map.put("sixthRepSeq", (repIndex++) + "."); - map.put("sixthStaSeq", (staIndex++) + "."); + } + + List staList = typeMap.get(STABILITY); + Map> staDataMap = staList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSignalGenerator::getParams)); + if (!staDataMap.containsKey(FREQUENCY_CN)) { + addDataRemoveItem(dataItems, startIndex + 8, "射频频率"); + } else { + map.put("zeroStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(EFFICIENCY)) { + addDataRemoveItem(dataItems, startIndex + 9, "功率电平"); + } else { + map.put("firstStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(RELATIVE_LEVEL_ONE)) { + addDataRemoveItem(dataItems, startIndex + 10, "相对电平"); + } else { + map.put("secondStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(AMPLITUDE_ADJUSTMENT)) { + addDataRemoveItem(dataItems, startIndex + 11, "调幅深度"); + } else { + map.put("thirdStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(FREQUENCY_MODULATION_FREQUENCY_OFFSET)) { + addDataRemoveItem(dataItems, startIndex + 12, "调频频偏"); + } else { + map.put("fourthStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(PHASE_MODULATION_PHASE_DEVIATION)) { + addDataRemoveItem(dataItems, startIndex + 13, "调相相偏"); + } else { + map.put("fifthStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(HARMONIC)) { + addDataRemoveItem(dataItems, startIndex + 14, "谐波抑制"); + } else { + map.put("sixthStaSeq", (repIndex++) + "."); } return dataItems; } @@ -165,20 +191,23 @@ && param.equals(signalGenerator.getParams())) .peek(this::appendUnits) .collect(Collectors.toList()); - map.put(REPEAT_PREFIX + (i + 1), rep); + if (!CollectionUtils.isEmpty(rep)){ + map.put(REPEAT_PREFIX + (i + 1), rep); + } List sta = signalGeneratorList.stream() .filter(s -> checkType[1].equals(s.getCheckType()) && param.equals(s.getParams())) .peek(this::appendUnits).collect(Collectors.toList()); map.put(STA_PREFIX + (i + 1), sta); - - BizEquipmentStandardCheckDataSignalGenerator signalGenerator = sta.get(0); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, signalGenerator.getTestValueOneDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, signalGenerator.getTestValueTwoDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, signalGenerator.getTestValueThreeDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, signalGenerator.getTestValueFourDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, signalGenerator.getTestValueFiveDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, signalGenerator.getTestValueSixDate()); + if (!CollectionUtils.isEmpty(sta)){ + BizEquipmentStandardCheckDataSignalGenerator signalGenerator = sta.get(0); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, signalGenerator.getTestValueOneDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, signalGenerator.getTestValueTwoDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, signalGenerator.getTestValueThreeDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, signalGenerator.getTestValueFourDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, signalGenerator.getTestValueFiveDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, signalGenerator.getTestValueSixDate()); + } } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentInfoServiceImpl.java index b54c607..56c2a24 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentInfoServiceImpl.java @@ -44,6 +44,7 @@ import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.service.listeners.CommonExcelListener; import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.service.workbench.IBizWorkbenchService; import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; @@ -139,6 +140,8 @@ private BizResourceSupplierInfoMapper supplierInfoMapper; @Autowired private PrintFileRegister printFileRegister; + @Autowired + private WorkbenchRemindMessageMapper remindMessageMapper; @Override public Page approvalListPage(Page page, EquipmentApprovalListRequest request) throws Exception { @@ -1263,6 +1266,14 @@ String standardName = standardInfoList.stream().map(BizEquipmentStandardInfo::getStandardName).collect(Collectors.joining(",")); equipmentInfo.setMeterStandardName(standardName); //设置行颜色标识 + //todo 设备有效期达到到期提醒模块配置时间,需要标注黄色 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(WorkbenchRemindMessage::getBusinessId, equipmentInfo.getId()); + queryWrapper.eq(WorkbenchRemindMessage::getStatus, "0"); + List messageList = remindMessageMapper.selectList(queryWrapper); + if (messageList != null && messageList.size() > 0) { + equipmentInfo.setColorMark(2); + } DateTime today = DateUtil.parse(DateUtil.today()); if (StringUtils.isNotBlank(equipmentInfo.getMeasureValidDate())) { DateTime validDate = DateUtil.parse(equipmentInfo.getMeasureValidDate()); @@ -1271,7 +1282,6 @@ equipmentInfo.setColorMark(1); } } - //todo 设备有效期达到到期提醒模块配置时间,需要标注黄色 } if (StringUtils.isNotBlank(request.getMeterStandardName())) { List recordList = resultApprovalPage.getRecords().stream().filter(e -> e.getMeterStandardName().contains(request.getMeterStandardName())).collect(Collectors.toList()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardCheckRecordApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardCheckRecordApprovalServiceImpl.java index 17e0c98..e56ad4f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardCheckRecordApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardCheckRecordApprovalServiceImpl.java @@ -59,23 +59,31 @@ if (CollectionUtils.isNotEmpty(existList)) { throw new BusinessException(BusinessExceptionEnum.CHECK_RECORD_ALREADY_EXIST); } - //生成编号 - String labCode = request.getLabCode(); - String groupCode = request.getGroupCode(); - Long maxNo = this.baseMapper.selectMaxNo(); - String recordNo = NoGeneratorUtil.getCode(NoGenerateFileCodeEnum.AA, labCode, NoGenerateRecordTypeCodeEnum.ELECTRICITY_INFO, groupCode, maxNo); - request.setCreateUserId(request.getUserId()); - request.setCreateUserName(request.getUserName()); - request.setApprovalStatus(ApprovalStatusEnum.DRAFT); //草稿箱状态 - request.setRecordNo(recordNo); - int row = this.baseMapper.insert(request); - Assert.isFalse(row <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.CHECK_APPROVAL_SAVE_FAILED); - }); - genericEqptDataProvider.checkCertificateTask(request); - StandardCheckRecordApprovalSaveResponse saveResponse = new StandardCheckRecordApprovalSaveResponse(); - saveResponse.setId(request.getId()); - saveResponse.setRecordNo(recordNo); + StandardCheckRecordApprovalSaveResponse saveResponse = null; + try { + //生成编号 + String labCode = request.getLabCode(); + String groupCode = request.getGroupCode(); + Long maxNo = this.baseMapper.selectMaxNo(); + String recordNo = NoGeneratorUtil.getCode(NoGenerateFileCodeEnum.AA, labCode, NoGenerateRecordTypeCodeEnum.ELECTRICITY_INFO, groupCode, maxNo); + request.setCreateUserId(request.getUserId()); + request.setCreateUserName(request.getUserName()); + request.setApprovalStatus(ApprovalStatusEnum.DRAFT); //草稿箱状态 + request.setRecordNo(recordNo); + int row = this.baseMapper.insert(request); + Assert.isFalse(row <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.CHECK_APPROVAL_SAVE_FAILED); + }); + genericEqptDataProvider.checkCertificateTask(request); + saveResponse = new StandardCheckRecordApprovalSaveResponse(); + saveResponse.setId(request.getId()); + saveResponse.setRecordNo(recordNo); + } finally { + if (saveResponse == null) { + log.debug("执行手动回滚操作==========>"); + this.baseMapper.deleteById(request); + } + } return ReturnUtil.success(saveResponse); } @@ -172,14 +180,14 @@ */ @Override public ReturnDTO getCertByCertNo(String recordNo) { - if (StringUtils.isBlank(recordNo)){ + if (StringUtils.isBlank(recordNo)) { return ReturnUtil.failed("文件编号不能为空"); } LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(BizEquipmentStandardCheckRecordApproval::getRecordNo,recordNo); + queryWrapper.eq(BizEquipmentStandardCheckRecordApproval::getRecordNo, recordNo); queryWrapper.last("limit 1"); BizEquipmentStandardCheckRecordApproval approval = this.baseMapper.selectOne(queryWrapper); - if (Objects.isNull(approval)){ + if (Objects.isNull(approval)) { return ReturnUtil.failed("未查询到该核查记录"); } return ReturnUtil.success(approval); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardInfoServiceImpl.java index 4b813a8..0aed230 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardInfoServiceImpl.java @@ -120,6 +120,8 @@ private PrintFileRegister printFileRegister; @Value("${casic.file.dir}") private String localFileDir; + @Autowired + private WorkbenchRemindMessageMapper remindMessageMapper; @Override public Page approvalListPage(Page page, StandardApprovalListRequest request) throws Exception { @@ -1002,16 +1004,21 @@ standardInfo.setStandardCertFile(certificateList.get(0).getAttachmentFile()); } DictCodeUtils.convertDictCodeToName(standardInfo); + //todo 下次复查日期达到到期提醒模块配置时间,需要标注黄色 + LambdaQueryWrapper messageWrapper = new LambdaQueryWrapper<>(); + messageWrapper.eq(WorkbenchRemindMessage::getBusinessId, standardInfo.getId()); + messageWrapper.eq(WorkbenchRemindMessage::getStatus,"0"); + List messageList = remindMessageMapper.selectList(messageWrapper); + if (messageList != null && messageList.size() > 0){ + standardInfo.setColorMark(2); + } DateTime today = DateUtil.parse(DateUtil.today()); if (StringUtils.isNotBlank(standardInfo.getNextReviewDate())) { -// DateTime nextReviewDate = DateUtil.parse(standardInfo.getNextReviewDate()); -// boolean before = nextReviewDate.isBefore(today); boolean after = today.isAfter(DateUtil.parse(standardInfo.getNextReviewDate())); if (after) { standardInfo.setColorMark(1); } } - //todo 下次复查日期达到到期提醒模块配置时间,需要标注黄色 } return resultApprovalPage; } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java index aa8cba7..19b2f23 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java @@ -10,6 +10,7 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.resource.BizResourceSystemFile; import com.casic.missiles.service.equipment.*; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 368934f..0abe025 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -400,5 +400,12 @@ return successResult; } + @ApiOperation("获取用户base64加密后的签名") + @GetMapping("/sign/getBase64SignImgs") + @ResponseBody + public ReturnDTO getBase64SignImgs(@ApiParam("用户id") Long userId){ + return signService.getBase64SignImgs(userId); + } + // TODO: 2023/7/25 系统管理仅差到期提醒管理和数据同步,到期提醒参考受检设备系统 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e6e55fa..797e293 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -138,6 +138,11 @@ * 工作台 */ BATCH_TO_READ_FAIL(2600, "一键已读操作失败"), + /** + * 系统管理 + */ + USER_SIGN_NOT_EXISTS(2601,"该用户签名不存在,请配置签名"), + USER_ID_CANNOT_BE_NULL(2602,"用户id不能为空"), /** * 表单生成及打印 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java index d85d0a6..ef9fc8d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java @@ -1,9 +1,6 @@ package com.casic.missiles.service.Impl.eqpt.standard.impl; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.convert.NumberChineseFormatter; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.dto.certificate.RegisterCustomParameters; import com.casic.missiles.dto.certificate.ToBeRemoveDataItem; @@ -26,13 +23,11 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.beanutils.BeanUtils; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -72,18 +67,18 @@ processCheckAccord(map, request.getLabCode()); readyForCheckParams(map, request.getCheckDataOscilloscopeList()); replaceSlash(map); - List dataItems = removeCheckItem(request, 3, map); + List dataItems = removeCheckItem(request, 2, map); map.put("pdfStatus", 1); //除了选用的模板不一致,模板配置流程是一致的 map.put("surveyor", "{{@surveyor}}"); map.put("auditor", "{{@auditor}}"); String wordUrl = printFileRegister.registerPrintFile(OSCILLOSCOPE_CHECK_DATA, "数据打印", null, RegisterCustomParameters.builder() - .customParam(map) - .dataItems(dataItems) - .pdf(false) - .customTemplateUrls(null) - .build()); + .customParam(map) + .dataItems(dataItems) + .pdf(false) + .customTemplateUrls(null) + .build()); List urlList = new ArrayList<>(); if (StringUtils.isNotEmpty(wordUrl)) { urlList.add(wordUrl); @@ -98,65 +93,100 @@ } } + /** + * 备注:每个核查项的判断都需要和模板的表格顺序一致 + * @param request + * @param startIndex + * @param map + * @return + */ private List removeCheckItem(BizEquipmentStandardCheckRecordApproval request, int startIndex, Map map) { List dataItems = new ArrayList<>(); - int repIndex = 1, staIndex = 9; - Map> dataMap = request.getCheckDataSpectrumAnalyzerList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSpectrumAnalyzer::getParams)); - if (!dataMap.containsKey("1")) { - addDataRemoveItem(dataItems, startIndex + repIndex, "时标"); - addDataRemoveItem(dataItems, startIndex + staIndex, "时标"); + int repIndex = 1; + Map> typeMap = request.getCheckDataOscilloscopeList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataOscilloscope::getCheckType)); + List repList = typeMap.get(REPEATABILITY); + Map> repDataMap = repList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataOscilloscope::getParams)); + if (!repDataMap.containsKey(HOUR_MARKERS)) { + addDataRemoveItem(dataItems, startIndex + 1, "时标"); } else { map.put("zeroRepSeq", (repIndex++) + "、"); - map.put("zeroStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("2")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 1, "方波电压(50Ω)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 1, "方波电压(50Ω)"); + if (!repDataMap.containsKey(SQUARE_WAVE_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 2, "方波电压(50Ω)"); } else { map.put("firstRepSeq", (repIndex++) + "、"); - map.put("firstStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("3")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 2, "方波电压(1MΩ)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 2, "方波电压(1MΩ)"); + if (!repDataMap.containsKey(SQUARE_WAVE_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 3, "方波电压(1MΩ)"); } else { map.put("secondRepSeq", (repIndex++) + "、"); - map.put("secondStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("4")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 3, "直流电压(50Ω)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 3, "直流电压(50Ω)"); + if (!repDataMap.containsKey(DC_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 4, "直流电压(50Ω)"); } else { map.put("thirdRepSeq", (repIndex++) + "、"); - map.put("thirdStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("5")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 4, "直流电压(1MΩ)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 4, "直流电压(1MΩ)"); + if (!repDataMap.containsKey(DC_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 5, "直流电压(1MΩ)"); } else { map.put("fourthRepSeq", (repIndex++) + "、"); - map.put("fourthStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("6")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 5, "输入阻抗"); - addDataRemoveItem(dataItems, startIndex + staIndex + 5, "输入阻抗"); + if (!repDataMap.containsKey(INPUT_IMPEDANCE)) { + addDataRemoveItem(dataItems, startIndex + 6, "输入阻抗"); } else { map.put("fifthRepSeq", (repIndex++) + "、"); - map.put("fifthStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("7")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 6, "正弦信号平坦度"); - addDataRemoveItem(dataItems, startIndex + staIndex + 6, "正弦信号平坦度"); + if (!repDataMap.containsKey(SINE_SIGNAL_FLATNESS)) { + addDataRemoveItem(dataItems, startIndex + 7, "正弦信号平坦度"); } else { map.put("sixthRepSeq", (repIndex++) + "、"); - map.put("sixthStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("8")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 7, "上升时间"); - addDataRemoveItem(dataItems, startIndex + staIndex + 7, "上升时间"); + if (!repDataMap.containsKey(RISE_TIME_CHECK)) { + addDataRemoveItem(dataItems, startIndex + 8, "上升时间"); } else { map.put("seventhRepSeq", (repIndex++) + "、"); - map.put("seventhStaSeq", (staIndex++) + "、"); + } + List staList = typeMap.get(STABILITY); + Map> staDataMap = staList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataOscilloscope::getParams)); + if (!staDataMap.containsKey(HOUR_MARKERS)) { + addDataRemoveItem(dataItems, startIndex + 9, "时标"); + } else { + map.put("zeroStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(SQUARE_WAVE_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 10, "方波电压(50Ω)"); + } else { + map.put("firstStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(SQUARE_WAVE_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 11, "方波电压(1MΩ)"); + } else { + map.put("secondStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(DC_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 12, "直流电压(50Ω)"); + } else { + map.put("thirdStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(DC_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 13, "直流电压(1MΩ)"); + } else { + map.put("fourthStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(INPUT_IMPEDANCE)) { + addDataRemoveItem(dataItems, startIndex + 14, "输入阻抗"); + } else { + map.put("fifthStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(SINE_SIGNAL_FLATNESS)) { + addDataRemoveItem(dataItems, startIndex + 15, "正弦信号平坦度"); + } else { + map.put("sixthStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(RISE_TIME_CHECK)) { + addDataRemoveItem(dataItems, startIndex + 16, "上升时间"); + } else { + map.put("seventhStaSeq", (repIndex++) + "、"); } return dataItems; } @@ -180,8 +210,9 @@ return o; }) .collect(Collectors.toList()); - map.put(REPEAT_PREFIX + (i + 1), repList); - + if (CollectionUtils.isNotEmpty(repList)) { + map.put(REPEAT_PREFIX + (i + 1), repList); + } List staList = oscilloscopeList.stream() .filter(o -> param.equals(o.getParams()) && checkType[1].equals(o.getCheckType())) .map(o -> { @@ -195,14 +226,16 @@ return o; }) .collect(Collectors.toList()); - map.put(STA_PREFIX + (i + 1), staList); - BizEquipmentStandardCheckDataOscilloscope oscilloscope = staList.get(0); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, oscilloscope.getTestValueOneDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, oscilloscope.getTestValueTwoDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, oscilloscope.getTestValueThreeDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, oscilloscope.getTestValueFourDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, oscilloscope.getTestValueFiveDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, oscilloscope.getTestValueSixDate()); + if (CollectionUtils.isNotEmpty(staList)) { + map.put(STA_PREFIX + (i + 1), staList); + BizEquipmentStandardCheckDataOscilloscope oscilloscope = staList.get(0); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, oscilloscope.getTestValueOneDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, oscilloscope.getTestValueTwoDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, oscilloscope.getTestValueThreeDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, oscilloscope.getTestValueFourDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, oscilloscope.getTestValueFiveDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, oscilloscope.getTestValueSixDate()); + } } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java index eb047b2..5de2f15 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java @@ -71,7 +71,7 @@ processCheckAccord(map, request.getLabCode()); readyForCheckParams(map, request.getCheckDataSignalGeneratorList()); replaceSlash(map); - List dataItems = removeCheckItem(request, 2, map); + List dataItems = removeCheckItem(request, 1, map); map.put("pdfStatus", 1); //除了选用的模板不一致,模板配置流程是一致的 map.put("surveyor", "{{@surveyor}}"); @@ -79,7 +79,7 @@ String wordUrl = printFileRegister.registerPrintFile(SIGNAL_GENERATOR_CHECK_DATA, "数据打印", null, RegisterCustomParameters.builder() .customParam(map) -// .dataItems(dataItems) + .dataItems(dataItems) .pdf(false) .customTemplateUrls(null) .build()); @@ -99,56 +99,82 @@ private List removeCheckItem(BizEquipmentStandardCheckRecordApproval request, int startIndex, Map map) { List dataItems = new ArrayList<>(); - int repIndex = 1, staIndex = 8; - Map> dataMap = request.getCheckDataSpectrumAnalyzerList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSpectrumAnalyzer::getParams)); - if (!map.containsKey("1")) { - addDataRemoveItem(dataItems, startIndex + repIndex, "射频频率"); - addDataRemoveItem(dataItems, startIndex + staIndex, "射频频率:合成标准不确定度(k=2): 1.2×10-8~3.2×10-11"); + int repIndex = 1; + Map> typeMap = request.getCheckDataSignalGeneratorList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSignalGenerator::getCheckType)); + List repList = typeMap.get(REPEATABILITY); + Map> repDataMap = repList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSignalGenerator::getParams)); + if (!repDataMap.containsKey(FREQUENCY_CN)) { + addDataRemoveItem(dataItems, startIndex + 1, "射频频率"); } else { map.put("zeroRepSeq", (repIndex++) + "."); - map.put("zeroStaSeq", (staIndex++) + "."); } - if (!map.containsKey("2")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 1, "功率电平"); - addDataRemoveItem(dataItems, startIndex + staIndex + 1, "功率电平:合成标准不确定度(k=2): 0.14dB~0.29dB"); + if (!repDataMap.containsKey(EFFICIENCY)) { + addDataRemoveItem(dataItems, startIndex + 2, "功率电平"); } else { map.put("firstRepSeq", (repIndex++) + "."); - map.put("firstStaSeq", (staIndex++) + "."); } - if (!map.containsKey("3")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 2, "相对电平"); - addDataRemoveItem(dataItems, startIndex + staIndex + 2, "相对电平:合成标准不确定度(k=2): 0.08dB~0.28dB"); + if (!repDataMap.containsKey(RELATIVE_LEVEL_ONE)) { + addDataRemoveItem(dataItems, startIndex + 3, "相对电平"); } else { map.put("secondRepSeq", (repIndex++) + "."); - map.put("secondStaSeq", (staIndex++) + "."); } - if (!map.containsKey("4")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 3, "调幅深度"); - addDataRemoveItem(dataItems, startIndex + staIndex + 3, "调幅深度:合成标准不确定度(k=2):1.3%"); + if (!repDataMap.containsKey(AMPLITUDE_ADJUSTMENT)) { + addDataRemoveItem(dataItems, startIndex + 4, "调幅深度"); } else { map.put("thirdRepSeq", (repIndex++) + "."); - map.put("thirdStaSeq", (staIndex++) + "."); } - if (!map.containsKey("5")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 4, "调频频偏"); - addDataRemoveItem(dataItems, startIndex + staIndex + 4, "调频频偏:合成标准不确定度(k=2):1.3%"); + if (!repDataMap.containsKey(FREQUENCY_MODULATION_FREQUENCY_OFFSET)) { + addDataRemoveItem(dataItems, startIndex + 5, "调频频偏"); } else { map.put("fourthRepSeq", (repIndex++) + "."); - map.put("fourthStaSeq", (staIndex++) + "."); } - if (!map.containsKey("6")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 5, "调相相偏"); - addDataRemoveItem(dataItems, startIndex + staIndex + 5, "调相相偏:合成标准不确定度(k=2):1.3%"); + if (!repDataMap.containsKey(PHASE_MODULATION_PHASE_DEVIATION)) { + addDataRemoveItem(dataItems, startIndex + 6, "调相相偏"); } else { map.put("fifthRepSeq", (repIndex++) + "."); - map.put("fifthStaSeq", (staIndex++) + "."); } - if (!map.containsKey("7")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 6, "谐波:10MHz、1GHz,RBW/VBW:1kHz,接收机参考电平:-20dBm;8GHz,RBW/VBW:1kHz,接收机参考电平:-50dBm"); - addDataRemoveItem(dataItems, startIndex + staIndex + 6, "谐波抑制:合成标准不确定度(k=2): 0.20dB~1.1dB"); + if (!repDataMap.containsKey(HARMONIC)) { + addDataRemoveItem(dataItems, startIndex + 7, "谐波"); } else { map.put("sixthRepSeq", (repIndex++) + "."); - map.put("sixthStaSeq", (staIndex++) + "."); + } + + List staList = typeMap.get(STABILITY); + Map> staDataMap = staList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSignalGenerator::getParams)); + if (!staDataMap.containsKey(FREQUENCY_CN)) { + addDataRemoveItem(dataItems, startIndex + 8, "射频频率"); + } else { + map.put("zeroStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(EFFICIENCY)) { + addDataRemoveItem(dataItems, startIndex + 9, "功率电平"); + } else { + map.put("firstStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(RELATIVE_LEVEL_ONE)) { + addDataRemoveItem(dataItems, startIndex + 10, "相对电平"); + } else { + map.put("secondStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(AMPLITUDE_ADJUSTMENT)) { + addDataRemoveItem(dataItems, startIndex + 11, "调幅深度"); + } else { + map.put("thirdStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(FREQUENCY_MODULATION_FREQUENCY_OFFSET)) { + addDataRemoveItem(dataItems, startIndex + 12, "调频频偏"); + } else { + map.put("fourthStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(PHASE_MODULATION_PHASE_DEVIATION)) { + addDataRemoveItem(dataItems, startIndex + 13, "调相相偏"); + } else { + map.put("fifthStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(HARMONIC)) { + addDataRemoveItem(dataItems, startIndex + 14, "谐波抑制"); + } else { + map.put("sixthStaSeq", (repIndex++) + "."); } return dataItems; } @@ -165,20 +191,23 @@ && param.equals(signalGenerator.getParams())) .peek(this::appendUnits) .collect(Collectors.toList()); - map.put(REPEAT_PREFIX + (i + 1), rep); + if (!CollectionUtils.isEmpty(rep)){ + map.put(REPEAT_PREFIX + (i + 1), rep); + } List sta = signalGeneratorList.stream() .filter(s -> checkType[1].equals(s.getCheckType()) && param.equals(s.getParams())) .peek(this::appendUnits).collect(Collectors.toList()); map.put(STA_PREFIX + (i + 1), sta); - - BizEquipmentStandardCheckDataSignalGenerator signalGenerator = sta.get(0); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, signalGenerator.getTestValueOneDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, signalGenerator.getTestValueTwoDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, signalGenerator.getTestValueThreeDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, signalGenerator.getTestValueFourDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, signalGenerator.getTestValueFiveDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, signalGenerator.getTestValueSixDate()); + if (!CollectionUtils.isEmpty(sta)){ + BizEquipmentStandardCheckDataSignalGenerator signalGenerator = sta.get(0); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, signalGenerator.getTestValueOneDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, signalGenerator.getTestValueTwoDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, signalGenerator.getTestValueThreeDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, signalGenerator.getTestValueFourDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, signalGenerator.getTestValueFiveDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, signalGenerator.getTestValueSixDate()); + } } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentInfoServiceImpl.java index b54c607..56c2a24 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentInfoServiceImpl.java @@ -44,6 +44,7 @@ import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.service.listeners.CommonExcelListener; import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.service.workbench.IBizWorkbenchService; import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; @@ -139,6 +140,8 @@ private BizResourceSupplierInfoMapper supplierInfoMapper; @Autowired private PrintFileRegister printFileRegister; + @Autowired + private WorkbenchRemindMessageMapper remindMessageMapper; @Override public Page approvalListPage(Page page, EquipmentApprovalListRequest request) throws Exception { @@ -1263,6 +1266,14 @@ String standardName = standardInfoList.stream().map(BizEquipmentStandardInfo::getStandardName).collect(Collectors.joining(",")); equipmentInfo.setMeterStandardName(standardName); //设置行颜色标识 + //todo 设备有效期达到到期提醒模块配置时间,需要标注黄色 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(WorkbenchRemindMessage::getBusinessId, equipmentInfo.getId()); + queryWrapper.eq(WorkbenchRemindMessage::getStatus, "0"); + List messageList = remindMessageMapper.selectList(queryWrapper); + if (messageList != null && messageList.size() > 0) { + equipmentInfo.setColorMark(2); + } DateTime today = DateUtil.parse(DateUtil.today()); if (StringUtils.isNotBlank(equipmentInfo.getMeasureValidDate())) { DateTime validDate = DateUtil.parse(equipmentInfo.getMeasureValidDate()); @@ -1271,7 +1282,6 @@ equipmentInfo.setColorMark(1); } } - //todo 设备有效期达到到期提醒模块配置时间,需要标注黄色 } if (StringUtils.isNotBlank(request.getMeterStandardName())) { List recordList = resultApprovalPage.getRecords().stream().filter(e -> e.getMeterStandardName().contains(request.getMeterStandardName())).collect(Collectors.toList()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardCheckRecordApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardCheckRecordApprovalServiceImpl.java index 17e0c98..e56ad4f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardCheckRecordApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardCheckRecordApprovalServiceImpl.java @@ -59,23 +59,31 @@ if (CollectionUtils.isNotEmpty(existList)) { throw new BusinessException(BusinessExceptionEnum.CHECK_RECORD_ALREADY_EXIST); } - //生成编号 - String labCode = request.getLabCode(); - String groupCode = request.getGroupCode(); - Long maxNo = this.baseMapper.selectMaxNo(); - String recordNo = NoGeneratorUtil.getCode(NoGenerateFileCodeEnum.AA, labCode, NoGenerateRecordTypeCodeEnum.ELECTRICITY_INFO, groupCode, maxNo); - request.setCreateUserId(request.getUserId()); - request.setCreateUserName(request.getUserName()); - request.setApprovalStatus(ApprovalStatusEnum.DRAFT); //草稿箱状态 - request.setRecordNo(recordNo); - int row = this.baseMapper.insert(request); - Assert.isFalse(row <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.CHECK_APPROVAL_SAVE_FAILED); - }); - genericEqptDataProvider.checkCertificateTask(request); - StandardCheckRecordApprovalSaveResponse saveResponse = new StandardCheckRecordApprovalSaveResponse(); - saveResponse.setId(request.getId()); - saveResponse.setRecordNo(recordNo); + StandardCheckRecordApprovalSaveResponse saveResponse = null; + try { + //生成编号 + String labCode = request.getLabCode(); + String groupCode = request.getGroupCode(); + Long maxNo = this.baseMapper.selectMaxNo(); + String recordNo = NoGeneratorUtil.getCode(NoGenerateFileCodeEnum.AA, labCode, NoGenerateRecordTypeCodeEnum.ELECTRICITY_INFO, groupCode, maxNo); + request.setCreateUserId(request.getUserId()); + request.setCreateUserName(request.getUserName()); + request.setApprovalStatus(ApprovalStatusEnum.DRAFT); //草稿箱状态 + request.setRecordNo(recordNo); + int row = this.baseMapper.insert(request); + Assert.isFalse(row <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.CHECK_APPROVAL_SAVE_FAILED); + }); + genericEqptDataProvider.checkCertificateTask(request); + saveResponse = new StandardCheckRecordApprovalSaveResponse(); + saveResponse.setId(request.getId()); + saveResponse.setRecordNo(recordNo); + } finally { + if (saveResponse == null) { + log.debug("执行手动回滚操作==========>"); + this.baseMapper.deleteById(request); + } + } return ReturnUtil.success(saveResponse); } @@ -172,14 +180,14 @@ */ @Override public ReturnDTO getCertByCertNo(String recordNo) { - if (StringUtils.isBlank(recordNo)){ + if (StringUtils.isBlank(recordNo)) { return ReturnUtil.failed("文件编号不能为空"); } LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(BizEquipmentStandardCheckRecordApproval::getRecordNo,recordNo); + queryWrapper.eq(BizEquipmentStandardCheckRecordApproval::getRecordNo, recordNo); queryWrapper.last("limit 1"); BizEquipmentStandardCheckRecordApproval approval = this.baseMapper.selectOne(queryWrapper); - if (Objects.isNull(approval)){ + if (Objects.isNull(approval)) { return ReturnUtil.failed("未查询到该核查记录"); } return ReturnUtil.success(approval); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardInfoServiceImpl.java index 4b813a8..0aed230 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardInfoServiceImpl.java @@ -120,6 +120,8 @@ private PrintFileRegister printFileRegister; @Value("${casic.file.dir}") private String localFileDir; + @Autowired + private WorkbenchRemindMessageMapper remindMessageMapper; @Override public Page approvalListPage(Page page, StandardApprovalListRequest request) throws Exception { @@ -1002,16 +1004,21 @@ standardInfo.setStandardCertFile(certificateList.get(0).getAttachmentFile()); } DictCodeUtils.convertDictCodeToName(standardInfo); + //todo 下次复查日期达到到期提醒模块配置时间,需要标注黄色 + LambdaQueryWrapper messageWrapper = new LambdaQueryWrapper<>(); + messageWrapper.eq(WorkbenchRemindMessage::getBusinessId, standardInfo.getId()); + messageWrapper.eq(WorkbenchRemindMessage::getStatus,"0"); + List messageList = remindMessageMapper.selectList(messageWrapper); + if (messageList != null && messageList.size() > 0){ + standardInfo.setColorMark(2); + } DateTime today = DateUtil.parse(DateUtil.today()); if (StringUtils.isNotBlank(standardInfo.getNextReviewDate())) { -// DateTime nextReviewDate = DateUtil.parse(standardInfo.getNextReviewDate()); -// boolean before = nextReviewDate.isBefore(today); boolean after = today.isAfter(DateUtil.parse(standardInfo.getNextReviewDate())); if (after) { standardInfo.setColorMark(1); } } - //todo 下次复查日期达到到期提醒模块配置时间,需要标注黄色 } return resultApprovalPage; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java index ed31ca9..3c1c0f4 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java @@ -1,6 +1,7 @@ package com.casic.missiles.service.Impl.system; import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -23,9 +24,11 @@ import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemSignUserRelationService; import com.casic.missiles.utils.ConvertUtils; +import com.casic.missiles.utils.MinioUtil; import com.casic.missiles.utils.NumberGeneratorUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -50,6 +53,8 @@ private SystemSignUserRelationMapper userRelationMapper; @Autowired private UserMapper userMapper; + @Autowired + private MinioUtil minioUtil; @Override public Page listPage(Page page, SignListRequest request) { @@ -66,7 +71,7 @@ @Override public ReturnDTO signDetail(Long id) { SignDetailResponse signDetailResponse = signMapper.selectSignDetailById(id); - if(!Objects.isNull(signDetailResponse.getSignUserId())){ + if (!Objects.isNull(signDetailResponse.getSignUserId())) { User user = userMapper.selectById(signDetailResponse.getSignUserId()); signDetailResponse.setSignUserName(user.getName()); } @@ -74,6 +79,25 @@ } @Override + public ReturnDTO getBase64SignImgs(Long userId) { + if (userId == null) { + throw new BusinessException(BusinessExceptionEnum.USER_ID_CANNOT_BE_NULL); + } + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SystemSign::getSignUserId, userId); + queryWrapper.last("limit 1"); + SystemSign systemSign = signMapper.selectOne(queryWrapper); + if (Objects.isNull(systemSign)) { + throw new BusinessException(BusinessExceptionEnum.USER_SIGN_NOT_EXISTS); + } + String minioFileName = systemSign.getMinioFileName(); + ResponseEntity responseEntity = minioUtil.download(minioFileName); + byte[] images = responseEntity.getBody(); + String base64Images = Base64.getEncoder().encodeToString(images); + return ReturnUtil.success(base64Images); + } + + @Override @Transactional public ReturnDTO addSign(SignAddRequest request) { //生成编号 @@ -89,7 +113,7 @@ List distinctUserIdList = userIdList.stream().distinct().collect(Collectors.toList()); List userRelationList = getUserRelations(distinctUserIdList, systemSign.getId()); boolean saveBatch = userRelationService.saveBatch(userRelationList); - if(insertFlag > 0 && saveBatch){ + if (insertFlag > 0 && saveBatch) { return ReturnUtil.success(); } return ReturnUtil.failed("新建失败"); @@ -109,7 +133,7 @@ List userRelationList = getUserRelations(systemSign.getUserIdList(), systemSign.getId()); boolean saveBatch = userRelationService.saveBatch(userRelationList); - if(updateFlag > 0 && deleteFlag > 0 && saveBatch){ + if (updateFlag > 0 && deleteFlag > 0 && saveBatch) { return ReturnUtil.success(); } return ReturnUtil.failed("更新失败"); @@ -117,7 +141,7 @@ @Override public ReturnDTO deleteSign(Long id) { - if(signMapper.deleteById(id) > 0){ + if (signMapper.deleteById(id) > 0) { return ReturnUtil.success(); } return ReturnUtil.failed("刪除失败"); @@ -125,7 +149,7 @@ @Override public ReturnDTO deleteBatchSign(List ids) { - if(signMapper.deleteBatchIds(ids) > 0){ + if (signMapper.deleteBatchIds(ids) > 0) { return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java index aa8cba7..19b2f23 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/BizEquipmentStandardInfoController.java @@ -10,6 +10,7 @@ import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.resource.BizResourceSystemFile; import com.casic.missiles.service.equipment.*; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 368934f..0abe025 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -400,5 +400,12 @@ return successResult; } + @ApiOperation("获取用户base64加密后的签名") + @GetMapping("/sign/getBase64SignImgs") + @ResponseBody + public ReturnDTO getBase64SignImgs(@ApiParam("用户id") Long userId){ + return signService.getBase64SignImgs(userId); + } + // TODO: 2023/7/25 系统管理仅差到期提醒管理和数据同步,到期提醒参考受检设备系统 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e6e55fa..797e293 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -138,6 +138,11 @@ * 工作台 */ BATCH_TO_READ_FAIL(2600, "一键已读操作失败"), + /** + * 系统管理 + */ + USER_SIGN_NOT_EXISTS(2601,"该用户签名不存在,请配置签名"), + USER_ID_CANNOT_BE_NULL(2602,"用户id不能为空"), /** * 表单生成及打印 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java index d85d0a6..ef9fc8d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/OscilloScopeHandler.java @@ -1,9 +1,6 @@ package com.casic.missiles.service.Impl.eqpt.standard.impl; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.convert.NumberChineseFormatter; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.dto.certificate.RegisterCustomParameters; import com.casic.missiles.dto.certificate.ToBeRemoveDataItem; @@ -26,13 +23,11 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.beanutils.BeanUtils; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -72,18 +67,18 @@ processCheckAccord(map, request.getLabCode()); readyForCheckParams(map, request.getCheckDataOscilloscopeList()); replaceSlash(map); - List dataItems = removeCheckItem(request, 3, map); + List dataItems = removeCheckItem(request, 2, map); map.put("pdfStatus", 1); //除了选用的模板不一致,模板配置流程是一致的 map.put("surveyor", "{{@surveyor}}"); map.put("auditor", "{{@auditor}}"); String wordUrl = printFileRegister.registerPrintFile(OSCILLOSCOPE_CHECK_DATA, "数据打印", null, RegisterCustomParameters.builder() - .customParam(map) - .dataItems(dataItems) - .pdf(false) - .customTemplateUrls(null) - .build()); + .customParam(map) + .dataItems(dataItems) + .pdf(false) + .customTemplateUrls(null) + .build()); List urlList = new ArrayList<>(); if (StringUtils.isNotEmpty(wordUrl)) { urlList.add(wordUrl); @@ -98,65 +93,100 @@ } } + /** + * 备注:每个核查项的判断都需要和模板的表格顺序一致 + * @param request + * @param startIndex + * @param map + * @return + */ private List removeCheckItem(BizEquipmentStandardCheckRecordApproval request, int startIndex, Map map) { List dataItems = new ArrayList<>(); - int repIndex = 1, staIndex = 9; - Map> dataMap = request.getCheckDataSpectrumAnalyzerList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSpectrumAnalyzer::getParams)); - if (!dataMap.containsKey("1")) { - addDataRemoveItem(dataItems, startIndex + repIndex, "时标"); - addDataRemoveItem(dataItems, startIndex + staIndex, "时标"); + int repIndex = 1; + Map> typeMap = request.getCheckDataOscilloscopeList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataOscilloscope::getCheckType)); + List repList = typeMap.get(REPEATABILITY); + Map> repDataMap = repList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataOscilloscope::getParams)); + if (!repDataMap.containsKey(HOUR_MARKERS)) { + addDataRemoveItem(dataItems, startIndex + 1, "时标"); } else { map.put("zeroRepSeq", (repIndex++) + "、"); - map.put("zeroStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("2")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 1, "方波电压(50Ω)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 1, "方波电压(50Ω)"); + if (!repDataMap.containsKey(SQUARE_WAVE_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 2, "方波电压(50Ω)"); } else { map.put("firstRepSeq", (repIndex++) + "、"); - map.put("firstStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("3")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 2, "方波电压(1MΩ)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 2, "方波电压(1MΩ)"); + if (!repDataMap.containsKey(SQUARE_WAVE_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 3, "方波电压(1MΩ)"); } else { map.put("secondRepSeq", (repIndex++) + "、"); - map.put("secondStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("4")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 3, "直流电压(50Ω)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 3, "直流电压(50Ω)"); + if (!repDataMap.containsKey(DC_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 4, "直流电压(50Ω)"); } else { map.put("thirdRepSeq", (repIndex++) + "、"); - map.put("thirdStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("5")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 4, "直流电压(1MΩ)"); - addDataRemoveItem(dataItems, startIndex + staIndex + 4, "直流电压(1MΩ)"); + if (!repDataMap.containsKey(DC_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 5, "直流电压(1MΩ)"); } else { map.put("fourthRepSeq", (repIndex++) + "、"); - map.put("fourthStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("6")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 5, "输入阻抗"); - addDataRemoveItem(dataItems, startIndex + staIndex + 5, "输入阻抗"); + if (!repDataMap.containsKey(INPUT_IMPEDANCE)) { + addDataRemoveItem(dataItems, startIndex + 6, "输入阻抗"); } else { map.put("fifthRepSeq", (repIndex++) + "、"); - map.put("fifthStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("7")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 6, "正弦信号平坦度"); - addDataRemoveItem(dataItems, startIndex + staIndex + 6, "正弦信号平坦度"); + if (!repDataMap.containsKey(SINE_SIGNAL_FLATNESS)) { + addDataRemoveItem(dataItems, startIndex + 7, "正弦信号平坦度"); } else { map.put("sixthRepSeq", (repIndex++) + "、"); - map.put("sixthStaSeq", (staIndex++) + "、"); } - if (!dataMap.containsKey("8")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 7, "上升时间"); - addDataRemoveItem(dataItems, startIndex + staIndex + 7, "上升时间"); + if (!repDataMap.containsKey(RISE_TIME_CHECK)) { + addDataRemoveItem(dataItems, startIndex + 8, "上升时间"); } else { map.put("seventhRepSeq", (repIndex++) + "、"); - map.put("seventhStaSeq", (staIndex++) + "、"); + } + List staList = typeMap.get(STABILITY); + Map> staDataMap = staList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataOscilloscope::getParams)); + if (!staDataMap.containsKey(HOUR_MARKERS)) { + addDataRemoveItem(dataItems, startIndex + 9, "时标"); + } else { + map.put("zeroStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(SQUARE_WAVE_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 10, "方波电压(50Ω)"); + } else { + map.put("firstStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(SQUARE_WAVE_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 11, "方波电压(1MΩ)"); + } else { + map.put("secondStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(DC_VOLTAGE_50)) { + addDataRemoveItem(dataItems, startIndex + 12, "直流电压(50Ω)"); + } else { + map.put("thirdStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(DC_VOLTAGE_1M)) { + addDataRemoveItem(dataItems, startIndex + 13, "直流电压(1MΩ)"); + } else { + map.put("fourthStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(INPUT_IMPEDANCE)) { + addDataRemoveItem(dataItems, startIndex + 14, "输入阻抗"); + } else { + map.put("fifthStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(SINE_SIGNAL_FLATNESS)) { + addDataRemoveItem(dataItems, startIndex + 15, "正弦信号平坦度"); + } else { + map.put("sixthStaSeq", (repIndex++) + "、"); + } + if (!staDataMap.containsKey(RISE_TIME_CHECK)) { + addDataRemoveItem(dataItems, startIndex + 16, "上升时间"); + } else { + map.put("seventhStaSeq", (repIndex++) + "、"); } return dataItems; } @@ -180,8 +210,9 @@ return o; }) .collect(Collectors.toList()); - map.put(REPEAT_PREFIX + (i + 1), repList); - + if (CollectionUtils.isNotEmpty(repList)) { + map.put(REPEAT_PREFIX + (i + 1), repList); + } List staList = oscilloscopeList.stream() .filter(o -> param.equals(o.getParams()) && checkType[1].equals(o.getCheckType())) .map(o -> { @@ -195,14 +226,16 @@ return o; }) .collect(Collectors.toList()); - map.put(STA_PREFIX + (i + 1), staList); - BizEquipmentStandardCheckDataOscilloscope oscilloscope = staList.get(0); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, oscilloscope.getTestValueOneDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, oscilloscope.getTestValueTwoDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, oscilloscope.getTestValueThreeDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, oscilloscope.getTestValueFourDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, oscilloscope.getTestValueFiveDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, oscilloscope.getTestValueSixDate()); + if (CollectionUtils.isNotEmpty(staList)) { + map.put(STA_PREFIX + (i + 1), staList); + BizEquipmentStandardCheckDataOscilloscope oscilloscope = staList.get(0); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, oscilloscope.getTestValueOneDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, oscilloscope.getTestValueTwoDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, oscilloscope.getTestValueThreeDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, oscilloscope.getTestValueFourDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, oscilloscope.getTestValueFiveDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, oscilloscope.getTestValueSixDate()); + } } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java index eb047b2..5de2f15 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/SignalGeneratorHandler.java @@ -71,7 +71,7 @@ processCheckAccord(map, request.getLabCode()); readyForCheckParams(map, request.getCheckDataSignalGeneratorList()); replaceSlash(map); - List dataItems = removeCheckItem(request, 2, map); + List dataItems = removeCheckItem(request, 1, map); map.put("pdfStatus", 1); //除了选用的模板不一致,模板配置流程是一致的 map.put("surveyor", "{{@surveyor}}"); @@ -79,7 +79,7 @@ String wordUrl = printFileRegister.registerPrintFile(SIGNAL_GENERATOR_CHECK_DATA, "数据打印", null, RegisterCustomParameters.builder() .customParam(map) -// .dataItems(dataItems) + .dataItems(dataItems) .pdf(false) .customTemplateUrls(null) .build()); @@ -99,56 +99,82 @@ private List removeCheckItem(BizEquipmentStandardCheckRecordApproval request, int startIndex, Map map) { List dataItems = new ArrayList<>(); - int repIndex = 1, staIndex = 8; - Map> dataMap = request.getCheckDataSpectrumAnalyzerList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSpectrumAnalyzer::getParams)); - if (!map.containsKey("1")) { - addDataRemoveItem(dataItems, startIndex + repIndex, "射频频率"); - addDataRemoveItem(dataItems, startIndex + staIndex, "射频频率:合成标准不确定度(k=2): 1.2×10-8~3.2×10-11"); + int repIndex = 1; + Map> typeMap = request.getCheckDataSignalGeneratorList().stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSignalGenerator::getCheckType)); + List repList = typeMap.get(REPEATABILITY); + Map> repDataMap = repList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSignalGenerator::getParams)); + if (!repDataMap.containsKey(FREQUENCY_CN)) { + addDataRemoveItem(dataItems, startIndex + 1, "射频频率"); } else { map.put("zeroRepSeq", (repIndex++) + "."); - map.put("zeroStaSeq", (staIndex++) + "."); } - if (!map.containsKey("2")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 1, "功率电平"); - addDataRemoveItem(dataItems, startIndex + staIndex + 1, "功率电平:合成标准不确定度(k=2): 0.14dB~0.29dB"); + if (!repDataMap.containsKey(EFFICIENCY)) { + addDataRemoveItem(dataItems, startIndex + 2, "功率电平"); } else { map.put("firstRepSeq", (repIndex++) + "."); - map.put("firstStaSeq", (staIndex++) + "."); } - if (!map.containsKey("3")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 2, "相对电平"); - addDataRemoveItem(dataItems, startIndex + staIndex + 2, "相对电平:合成标准不确定度(k=2): 0.08dB~0.28dB"); + if (!repDataMap.containsKey(RELATIVE_LEVEL_ONE)) { + addDataRemoveItem(dataItems, startIndex + 3, "相对电平"); } else { map.put("secondRepSeq", (repIndex++) + "."); - map.put("secondStaSeq", (staIndex++) + "."); } - if (!map.containsKey("4")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 3, "调幅深度"); - addDataRemoveItem(dataItems, startIndex + staIndex + 3, "调幅深度:合成标准不确定度(k=2):1.3%"); + if (!repDataMap.containsKey(AMPLITUDE_ADJUSTMENT)) { + addDataRemoveItem(dataItems, startIndex + 4, "调幅深度"); } else { map.put("thirdRepSeq", (repIndex++) + "."); - map.put("thirdStaSeq", (staIndex++) + "."); } - if (!map.containsKey("5")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 4, "调频频偏"); - addDataRemoveItem(dataItems, startIndex + staIndex + 4, "调频频偏:合成标准不确定度(k=2):1.3%"); + if (!repDataMap.containsKey(FREQUENCY_MODULATION_FREQUENCY_OFFSET)) { + addDataRemoveItem(dataItems, startIndex + 5, "调频频偏"); } else { map.put("fourthRepSeq", (repIndex++) + "."); - map.put("fourthStaSeq", (staIndex++) + "."); } - if (!map.containsKey("6")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 5, "调相相偏"); - addDataRemoveItem(dataItems, startIndex + staIndex + 5, "调相相偏:合成标准不确定度(k=2):1.3%"); + if (!repDataMap.containsKey(PHASE_MODULATION_PHASE_DEVIATION)) { + addDataRemoveItem(dataItems, startIndex + 6, "调相相偏"); } else { map.put("fifthRepSeq", (repIndex++) + "."); - map.put("fifthStaSeq", (staIndex++) + "."); } - if (!map.containsKey("7")) { - addDataRemoveItem(dataItems, startIndex + repIndex + 6, "谐波:10MHz、1GHz,RBW/VBW:1kHz,接收机参考电平:-20dBm;8GHz,RBW/VBW:1kHz,接收机参考电平:-50dBm"); - addDataRemoveItem(dataItems, startIndex + staIndex + 6, "谐波抑制:合成标准不确定度(k=2): 0.20dB~1.1dB"); + if (!repDataMap.containsKey(HARMONIC)) { + addDataRemoveItem(dataItems, startIndex + 7, "谐波"); } else { map.put("sixthRepSeq", (repIndex++) + "."); - map.put("sixthStaSeq", (staIndex++) + "."); + } + + List staList = typeMap.get(STABILITY); + Map> staDataMap = staList.stream().collect(Collectors.groupingBy(BizEquipmentStandardCheckDataSignalGenerator::getParams)); + if (!staDataMap.containsKey(FREQUENCY_CN)) { + addDataRemoveItem(dataItems, startIndex + 8, "射频频率"); + } else { + map.put("zeroStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(EFFICIENCY)) { + addDataRemoveItem(dataItems, startIndex + 9, "功率电平"); + } else { + map.put("firstStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(RELATIVE_LEVEL_ONE)) { + addDataRemoveItem(dataItems, startIndex + 10, "相对电平"); + } else { + map.put("secondStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(AMPLITUDE_ADJUSTMENT)) { + addDataRemoveItem(dataItems, startIndex + 11, "调幅深度"); + } else { + map.put("thirdStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(FREQUENCY_MODULATION_FREQUENCY_OFFSET)) { + addDataRemoveItem(dataItems, startIndex + 12, "调频频偏"); + } else { + map.put("fourthStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(PHASE_MODULATION_PHASE_DEVIATION)) { + addDataRemoveItem(dataItems, startIndex + 13, "调相相偏"); + } else { + map.put("fifthStaSeq", (repIndex++) + "."); + } + if (!staDataMap.containsKey(HARMONIC)) { + addDataRemoveItem(dataItems, startIndex + 14, "谐波抑制"); + } else { + map.put("sixthStaSeq", (repIndex++) + "."); } return dataItems; } @@ -165,20 +191,23 @@ && param.equals(signalGenerator.getParams())) .peek(this::appendUnits) .collect(Collectors.toList()); - map.put(REPEAT_PREFIX + (i + 1), rep); + if (!CollectionUtils.isEmpty(rep)){ + map.put(REPEAT_PREFIX + (i + 1), rep); + } List sta = signalGeneratorList.stream() .filter(s -> checkType[1].equals(s.getCheckType()) && param.equals(s.getParams())) .peek(this::appendUnits).collect(Collectors.toList()); map.put(STA_PREFIX + (i + 1), sta); - - BizEquipmentStandardCheckDataSignalGenerator signalGenerator = sta.get(0); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, signalGenerator.getTestValueOneDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, signalGenerator.getTestValueTwoDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, signalGenerator.getTestValueThreeDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, signalGenerator.getTestValueFourDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, signalGenerator.getTestValueFiveDate()); - map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, signalGenerator.getTestValueSixDate()); + if (!CollectionUtils.isEmpty(sta)){ + BizEquipmentStandardCheckDataSignalGenerator signalGenerator = sta.get(0); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 1, signalGenerator.getTestValueOneDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 2, signalGenerator.getTestValueTwoDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 3, signalGenerator.getTestValueThreeDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 4, signalGenerator.getTestValueFourDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 5, signalGenerator.getTestValueFiveDate()); + map.put(STA_PREFIX + (i + 1) + DATE_PREFIX + 6, signalGenerator.getTestValueSixDate()); + } } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentInfoServiceImpl.java index b54c607..56c2a24 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentInfoServiceImpl.java @@ -44,6 +44,7 @@ import com.casic.missiles.service.flowable.ApprovalOperateService; import com.casic.missiles.service.listeners.CommonExcelListener; import com.casic.missiles.service.listeners.register.PrintFileRegister; +import com.casic.missiles.service.workbench.IBizWorkbenchService; import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; @@ -139,6 +140,8 @@ private BizResourceSupplierInfoMapper supplierInfoMapper; @Autowired private PrintFileRegister printFileRegister; + @Autowired + private WorkbenchRemindMessageMapper remindMessageMapper; @Override public Page approvalListPage(Page page, EquipmentApprovalListRequest request) throws Exception { @@ -1263,6 +1266,14 @@ String standardName = standardInfoList.stream().map(BizEquipmentStandardInfo::getStandardName).collect(Collectors.joining(",")); equipmentInfo.setMeterStandardName(standardName); //设置行颜色标识 + //todo 设备有效期达到到期提醒模块配置时间,需要标注黄色 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(WorkbenchRemindMessage::getBusinessId, equipmentInfo.getId()); + queryWrapper.eq(WorkbenchRemindMessage::getStatus, "0"); + List messageList = remindMessageMapper.selectList(queryWrapper); + if (messageList != null && messageList.size() > 0) { + equipmentInfo.setColorMark(2); + } DateTime today = DateUtil.parse(DateUtil.today()); if (StringUtils.isNotBlank(equipmentInfo.getMeasureValidDate())) { DateTime validDate = DateUtil.parse(equipmentInfo.getMeasureValidDate()); @@ -1271,7 +1282,6 @@ equipmentInfo.setColorMark(1); } } - //todo 设备有效期达到到期提醒模块配置时间,需要标注黄色 } if (StringUtils.isNotBlank(request.getMeterStandardName())) { List recordList = resultApprovalPage.getRecords().stream().filter(e -> e.getMeterStandardName().contains(request.getMeterStandardName())).collect(Collectors.toList()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardCheckRecordApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardCheckRecordApprovalServiceImpl.java index 17e0c98..e56ad4f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardCheckRecordApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardCheckRecordApprovalServiceImpl.java @@ -59,23 +59,31 @@ if (CollectionUtils.isNotEmpty(existList)) { throw new BusinessException(BusinessExceptionEnum.CHECK_RECORD_ALREADY_EXIST); } - //生成编号 - String labCode = request.getLabCode(); - String groupCode = request.getGroupCode(); - Long maxNo = this.baseMapper.selectMaxNo(); - String recordNo = NoGeneratorUtil.getCode(NoGenerateFileCodeEnum.AA, labCode, NoGenerateRecordTypeCodeEnum.ELECTRICITY_INFO, groupCode, maxNo); - request.setCreateUserId(request.getUserId()); - request.setCreateUserName(request.getUserName()); - request.setApprovalStatus(ApprovalStatusEnum.DRAFT); //草稿箱状态 - request.setRecordNo(recordNo); - int row = this.baseMapper.insert(request); - Assert.isFalse(row <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.CHECK_APPROVAL_SAVE_FAILED); - }); - genericEqptDataProvider.checkCertificateTask(request); - StandardCheckRecordApprovalSaveResponse saveResponse = new StandardCheckRecordApprovalSaveResponse(); - saveResponse.setId(request.getId()); - saveResponse.setRecordNo(recordNo); + StandardCheckRecordApprovalSaveResponse saveResponse = null; + try { + //生成编号 + String labCode = request.getLabCode(); + String groupCode = request.getGroupCode(); + Long maxNo = this.baseMapper.selectMaxNo(); + String recordNo = NoGeneratorUtil.getCode(NoGenerateFileCodeEnum.AA, labCode, NoGenerateRecordTypeCodeEnum.ELECTRICITY_INFO, groupCode, maxNo); + request.setCreateUserId(request.getUserId()); + request.setCreateUserName(request.getUserName()); + request.setApprovalStatus(ApprovalStatusEnum.DRAFT); //草稿箱状态 + request.setRecordNo(recordNo); + int row = this.baseMapper.insert(request); + Assert.isFalse(row <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.CHECK_APPROVAL_SAVE_FAILED); + }); + genericEqptDataProvider.checkCertificateTask(request); + saveResponse = new StandardCheckRecordApprovalSaveResponse(); + saveResponse.setId(request.getId()); + saveResponse.setRecordNo(recordNo); + } finally { + if (saveResponse == null) { + log.debug("执行手动回滚操作==========>"); + this.baseMapper.deleteById(request); + } + } return ReturnUtil.success(saveResponse); } @@ -172,14 +180,14 @@ */ @Override public ReturnDTO getCertByCertNo(String recordNo) { - if (StringUtils.isBlank(recordNo)){ + if (StringUtils.isBlank(recordNo)) { return ReturnUtil.failed("文件编号不能为空"); } LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(BizEquipmentStandardCheckRecordApproval::getRecordNo,recordNo); + queryWrapper.eq(BizEquipmentStandardCheckRecordApproval::getRecordNo, recordNo); queryWrapper.last("limit 1"); BizEquipmentStandardCheckRecordApproval approval = this.baseMapper.selectOne(queryWrapper); - if (Objects.isNull(approval)){ + if (Objects.isNull(approval)) { return ReturnUtil.failed("未查询到该核查记录"); } return ReturnUtil.success(approval); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardInfoServiceImpl.java index 4b813a8..0aed230 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/BizEquipmentStandardInfoServiceImpl.java @@ -120,6 +120,8 @@ private PrintFileRegister printFileRegister; @Value("${casic.file.dir}") private String localFileDir; + @Autowired + private WorkbenchRemindMessageMapper remindMessageMapper; @Override public Page approvalListPage(Page page, StandardApprovalListRequest request) throws Exception { @@ -1002,16 +1004,21 @@ standardInfo.setStandardCertFile(certificateList.get(0).getAttachmentFile()); } DictCodeUtils.convertDictCodeToName(standardInfo); + //todo 下次复查日期达到到期提醒模块配置时间,需要标注黄色 + LambdaQueryWrapper messageWrapper = new LambdaQueryWrapper<>(); + messageWrapper.eq(WorkbenchRemindMessage::getBusinessId, standardInfo.getId()); + messageWrapper.eq(WorkbenchRemindMessage::getStatus,"0"); + List messageList = remindMessageMapper.selectList(messageWrapper); + if (messageList != null && messageList.size() > 0){ + standardInfo.setColorMark(2); + } DateTime today = DateUtil.parse(DateUtil.today()); if (StringUtils.isNotBlank(standardInfo.getNextReviewDate())) { -// DateTime nextReviewDate = DateUtil.parse(standardInfo.getNextReviewDate()); -// boolean before = nextReviewDate.isBefore(today); boolean after = today.isAfter(DateUtil.parse(standardInfo.getNextReviewDate())); if (after) { standardInfo.setColorMark(1); } } - //todo 下次复查日期达到到期提醒模块配置时间,需要标注黄色 } return resultApprovalPage; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java index ed31ca9..3c1c0f4 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemSignServiceImpl.java @@ -1,6 +1,7 @@ package com.casic.missiles.service.Impl.system; import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -23,9 +24,11 @@ import com.casic.missiles.service.system.ISystemSignService; import com.casic.missiles.service.system.ISystemSignUserRelationService; import com.casic.missiles.utils.ConvertUtils; +import com.casic.missiles.utils.MinioUtil; import com.casic.missiles.utils.NumberGeneratorUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -50,6 +53,8 @@ private SystemSignUserRelationMapper userRelationMapper; @Autowired private UserMapper userMapper; + @Autowired + private MinioUtil minioUtil; @Override public Page listPage(Page page, SignListRequest request) { @@ -66,7 +71,7 @@ @Override public ReturnDTO signDetail(Long id) { SignDetailResponse signDetailResponse = signMapper.selectSignDetailById(id); - if(!Objects.isNull(signDetailResponse.getSignUserId())){ + if (!Objects.isNull(signDetailResponse.getSignUserId())) { User user = userMapper.selectById(signDetailResponse.getSignUserId()); signDetailResponse.setSignUserName(user.getName()); } @@ -74,6 +79,25 @@ } @Override + public ReturnDTO getBase64SignImgs(Long userId) { + if (userId == null) { + throw new BusinessException(BusinessExceptionEnum.USER_ID_CANNOT_BE_NULL); + } + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SystemSign::getSignUserId, userId); + queryWrapper.last("limit 1"); + SystemSign systemSign = signMapper.selectOne(queryWrapper); + if (Objects.isNull(systemSign)) { + throw new BusinessException(BusinessExceptionEnum.USER_SIGN_NOT_EXISTS); + } + String minioFileName = systemSign.getMinioFileName(); + ResponseEntity responseEntity = minioUtil.download(minioFileName); + byte[] images = responseEntity.getBody(); + String base64Images = Base64.getEncoder().encodeToString(images); + return ReturnUtil.success(base64Images); + } + + @Override @Transactional public ReturnDTO addSign(SignAddRequest request) { //生成编号 @@ -89,7 +113,7 @@ List distinctUserIdList = userIdList.stream().distinct().collect(Collectors.toList()); List userRelationList = getUserRelations(distinctUserIdList, systemSign.getId()); boolean saveBatch = userRelationService.saveBatch(userRelationList); - if(insertFlag > 0 && saveBatch){ + if (insertFlag > 0 && saveBatch) { return ReturnUtil.success(); } return ReturnUtil.failed("新建失败"); @@ -109,7 +133,7 @@ List userRelationList = getUserRelations(systemSign.getUserIdList(), systemSign.getId()); boolean saveBatch = userRelationService.saveBatch(userRelationList); - if(updateFlag > 0 && deleteFlag > 0 && saveBatch){ + if (updateFlag > 0 && deleteFlag > 0 && saveBatch) { return ReturnUtil.success(); } return ReturnUtil.failed("更新失败"); @@ -117,7 +141,7 @@ @Override public ReturnDTO deleteSign(Long id) { - if(signMapper.deleteById(id) > 0){ + if (signMapper.deleteById(id) > 0) { return ReturnUtil.success(); } return ReturnUtil.failed("刪除失败"); @@ -125,7 +149,7 @@ @Override public ReturnDTO deleteBatchSign(List ids) { - if(signMapper.deleteBatchIds(ids) > 0){ + if (signMapper.deleteBatchIds(ids) > 0) { return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemSignService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemSignService.java index 5fce108..34d2327 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemSignService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemSignService.java @@ -35,4 +35,6 @@ List list(SignListRequest request); ReturnDTO signDetail(Long id); + + ReturnDTO getBase64SignImgs(Long userId); }