diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCesiumAtom.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCesiumAtom.java index aa29183..922a184 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCesiumAtom.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCesiumAtom.java @@ -527,6 +527,9 @@ commonType.appendAsterisksIfNeeded(this); break; case "微波计数器": + CesiumAtomStrategyType microwaveType = microwaveCounterMap.get(dataType); + microwaveType.appendAsterisksIfNeeded(this); + break; default: throw new UnsupportedOperationException("不支持的类型"); } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCesiumAtom.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCesiumAtom.java index aa29183..922a184 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCesiumAtom.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCesiumAtom.java @@ -527,6 +527,9 @@ commonType.appendAsterisksIfNeeded(this); break; case "微波计数器": + CesiumAtomStrategyType microwaveType = microwaveCounterMap.get(dataType); + microwaveType.appendAsterisksIfNeeded(this); + break; default: throw new UnsupportedOperationException("不支持的类型"); } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/strategy/handler/impl/CesiumAtomStrategyType.java b/casic-metering-model/src/main/java/com/casic/missiles/strategy/handler/impl/CesiumAtomStrategyType.java index 3878b71..8e65511 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/strategy/handler/impl/CesiumAtomStrategyType.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/strategy/handler/impl/CesiumAtomStrategyType.java @@ -187,13 +187,11 @@ @Override public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataCesiumAtom cesiumAtom) { cesiumAtom.setNominalValue(StringUtils.isNotBlank(cesiumAtom.getNominalValue()) ? cesiumAtom.getNominalValue() + cesiumAtom.getNominalValueUnit() : ""); - cesiumAtom.setInputSensitivity(StringUtils.isNotBlank(cesiumAtom.getInputSensitivity()) ? cesiumAtom.getInputSensitivity() + cesiumAtom.getInputSensitivityUnit() : ""); - cesiumAtom.setMaxInputLevel(StringUtils.isNotBlank(cesiumAtom.getMaxInputLevel()) ? cesiumAtom.getMaxInputLevel() + cesiumAtom.getMaxInputLevelUnit() : ""); - cesiumAtom.setTechnicalIndex(StringUtils.isNotBlank(cesiumAtom.getTechnicalIndex()) ? cesiumAtom.getTechnicalIndexSymbol() + cesiumAtom.getTechnicalIndex() + cesiumAtom.getTechnicalIndexUnit() : ""); - cesiumAtom.setOtherTechnicalIndex(StringUtils.isNotBlank(cesiumAtom.getOtherTechnicalIndex())?cesiumAtom.getOtherTechnicalIndexSymbol() + cesiumAtom.getOtherTechnicalIndex() + cesiumAtom.getOtherTechnicalIndexUnit():""); if (StringUtils.isNotBlank(cesiumAtom.getInputSensitivity()) && StringUtils.isNotBlank(cesiumAtom.getTechnicalIndex())){ BigDecimal inputSensitivity = new BigDecimal(cesiumAtom.getInputSensitivity()); int compare = inputSensitivity.compareTo(new BigDecimal(cesiumAtom.getTechnicalIndex())); + cesiumAtom.setInputSensitivity(StringUtils.isNotBlank(cesiumAtom.getInputSensitivity()) ? cesiumAtom.getInputSensitivity() + cesiumAtom.getInputSensitivityUnit() : ""); + cesiumAtom.setTechnicalIndex(StringUtils.isNotBlank(cesiumAtom.getTechnicalIndex()) ? cesiumAtom.getTechnicalIndexSymbol() + cesiumAtom.getTechnicalIndex() + cesiumAtom.getTechnicalIndexUnit() : ""); if (compare > 0){ cesiumAtom.setInputSensitivity(cesiumAtom.getInputSensitivity() + "*"); } @@ -201,6 +199,8 @@ if (StringUtils.isNotBlank(cesiumAtom.getMaxInputLevel())) { BigDecimal maxInputLevel = new BigDecimal(cesiumAtom.getMaxInputLevel()); int compare = maxInputLevel.compareTo(new BigDecimal(cesiumAtom.getOtherTechnicalIndex())); + cesiumAtom.setMaxInputLevel(StringUtils.isNotBlank(cesiumAtom.getMaxInputLevel()) ? cesiumAtom.getMaxInputLevel() + cesiumAtom.getMaxInputLevelUnit() : ""); + cesiumAtom.setOtherTechnicalIndex(StringUtils.isNotBlank(cesiumAtom.getOtherTechnicalIndex())?cesiumAtom.getOtherTechnicalIndexSymbol() + cesiumAtom.getOtherTechnicalIndex() + cesiumAtom.getOtherTechnicalIndexUnit():""); if (compare > 0){ cesiumAtom.setMaxInputLevel(cesiumAtom.getMaxInputLevel() + "*"); } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCesiumAtom.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCesiumAtom.java index aa29183..922a184 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCesiumAtom.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCesiumAtom.java @@ -527,6 +527,9 @@ commonType.appendAsterisksIfNeeded(this); break; case "微波计数器": + CesiumAtomStrategyType microwaveType = microwaveCounterMap.get(dataType); + microwaveType.appendAsterisksIfNeeded(this); + break; default: throw new UnsupportedOperationException("不支持的类型"); } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/strategy/handler/impl/CesiumAtomStrategyType.java b/casic-metering-model/src/main/java/com/casic/missiles/strategy/handler/impl/CesiumAtomStrategyType.java index 3878b71..8e65511 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/strategy/handler/impl/CesiumAtomStrategyType.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/strategy/handler/impl/CesiumAtomStrategyType.java @@ -187,13 +187,11 @@ @Override public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataCesiumAtom cesiumAtom) { cesiumAtom.setNominalValue(StringUtils.isNotBlank(cesiumAtom.getNominalValue()) ? cesiumAtom.getNominalValue() + cesiumAtom.getNominalValueUnit() : ""); - cesiumAtom.setInputSensitivity(StringUtils.isNotBlank(cesiumAtom.getInputSensitivity()) ? cesiumAtom.getInputSensitivity() + cesiumAtom.getInputSensitivityUnit() : ""); - cesiumAtom.setMaxInputLevel(StringUtils.isNotBlank(cesiumAtom.getMaxInputLevel()) ? cesiumAtom.getMaxInputLevel() + cesiumAtom.getMaxInputLevelUnit() : ""); - cesiumAtom.setTechnicalIndex(StringUtils.isNotBlank(cesiumAtom.getTechnicalIndex()) ? cesiumAtom.getTechnicalIndexSymbol() + cesiumAtom.getTechnicalIndex() + cesiumAtom.getTechnicalIndexUnit() : ""); - cesiumAtom.setOtherTechnicalIndex(StringUtils.isNotBlank(cesiumAtom.getOtherTechnicalIndex())?cesiumAtom.getOtherTechnicalIndexSymbol() + cesiumAtom.getOtherTechnicalIndex() + cesiumAtom.getOtherTechnicalIndexUnit():""); if (StringUtils.isNotBlank(cesiumAtom.getInputSensitivity()) && StringUtils.isNotBlank(cesiumAtom.getTechnicalIndex())){ BigDecimal inputSensitivity = new BigDecimal(cesiumAtom.getInputSensitivity()); int compare = inputSensitivity.compareTo(new BigDecimal(cesiumAtom.getTechnicalIndex())); + cesiumAtom.setInputSensitivity(StringUtils.isNotBlank(cesiumAtom.getInputSensitivity()) ? cesiumAtom.getInputSensitivity() + cesiumAtom.getInputSensitivityUnit() : ""); + cesiumAtom.setTechnicalIndex(StringUtils.isNotBlank(cesiumAtom.getTechnicalIndex()) ? cesiumAtom.getTechnicalIndexSymbol() + cesiumAtom.getTechnicalIndex() + cesiumAtom.getTechnicalIndexUnit() : ""); if (compare > 0){ cesiumAtom.setInputSensitivity(cesiumAtom.getInputSensitivity() + "*"); } @@ -201,6 +199,8 @@ if (StringUtils.isNotBlank(cesiumAtom.getMaxInputLevel())) { BigDecimal maxInputLevel = new BigDecimal(cesiumAtom.getMaxInputLevel()); int compare = maxInputLevel.compareTo(new BigDecimal(cesiumAtom.getOtherTechnicalIndex())); + cesiumAtom.setMaxInputLevel(StringUtils.isNotBlank(cesiumAtom.getMaxInputLevel()) ? cesiumAtom.getMaxInputLevel() + cesiumAtom.getMaxInputLevelUnit() : ""); + cesiumAtom.setOtherTechnicalIndex(StringUtils.isNotBlank(cesiumAtom.getOtherTechnicalIndex())?cesiumAtom.getOtherTechnicalIndexSymbol() + cesiumAtom.getOtherTechnicalIndex() + cesiumAtom.getOtherTechnicalIndexUnit():""); if (compare > 0){ cesiumAtom.setMaxInputLevel(cesiumAtom.getMaxInputLevel() + "*"); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/StandardEquipmentSupport.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/StandardEquipmentSupport.java index 09ac62e..a819683 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/StandardEquipmentSupport.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/StandardEquipmentSupport.java @@ -6,6 +6,7 @@ import com.casic.missiles.enums.business.MeasureCategoryEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BizBusinessDeviceMeasureApproval; +import com.casic.missiles.model.business.BizBusinessDeviceMeasureDataElectricalSafety; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -41,14 +42,103 @@ return false; } + protected void readyForCoverParams(Map map, String labCode) { + //定制参数 + //初始化方框 + map.put("test", "\uF0A3"); + map.put("calibrate", "\uF0A3"); + map.put("measure", "\uF0A3"); + //选择方框 + switch ((String) map.get("measureCategoryName")) { + case TEST_REPORT: + map.put("test", "\uF052"); + break; + case CALIBRATE_REPORT: + map.put("calibrate", "\uF052"); + break; + case MEASURE_REPORT: + map.put("measure", "\uF052"); + break; + default: + return; + } + //填充有效日期 + if (!org.springframework.util.ObjectUtils.isEmpty(map.get(MEASURE_TRACE_DATE))) { + String traceDate = (String) map.get(MEASURE_TRACE_DATE); + try { + map.put(MEASURE_TRACE_DATE, new SimpleDateFormat("yyyy年MM月dd日").format(new SimpleDateFormat("yyyy-MM-dd").parse(traceDate))); + } catch (Exception e) { + throw new BusinessException(1500, String.format(traceDate, "检定有效日期,格式不正确")); + } + } + //技术文件处理 + if (map.containsKey("technologyFile") && ObjectUtils.isNotEmpty(map.get("technologyFile"))) { + //技术文件用逗号隔开 + String technologyFiles = ((String) map.get("technologyFile")); + if (StringUtils.isNotEmpty(technologyFiles) && technologyFiles.contains("[")) { + technologyFiles = technologyFiles.substring(2, technologyFiles.length() - 2); + } + map.put("technologyFile", technologyFiles); + } + map.put("surveyor", "{{@surveyor}}"); + map.put("auditor", "{{@auditor}}"); + //新增对检定地点的转换,如果找不到该地点,则显示为空 +// String measureAddress = bizBusinessMapper.getMeasureAddress(request.getMeasureAddress()); +// request.setMeasureAddress(StringUtils.isNoneEmpty(measureAddress) ? measureAddress : ""); + //健壮性校验 + if (StringUtils.isEmpty(labCode)) { + log.warn("组织接口不能传入为空,打印文档生成文档填充组织失败..."); + return; + } + //选择方框 + switch ((String) map.get("measureCategoryName")) { + case TEST_REPORT: + map.put("title", "测试结果"); + break; + case CALIBRATE_REPORT: + map.put("title", "校准结果"); + break; + case MEASURE_REPORT: + map.put("title", "检定结果"); + break; + default: + map.put("title", "校验结果"); + return; + } + //西昌海口基本信息录入 + if ("x".equals(labCode)) { + map.put("s", XICHANG); + map.put("communicationAddress", XICHANG_ADDRESS); + map.put("labAddress", XICHANG_ADDRESS); + map.put("phone", XICHANG_PHONE); + map.put("postalCode", XICHANG_POSTAL_CODE); + } else { + map.put("s", HAIKOU); + map.put("communicationAddress", HAIKOU_ADDRESS); + map.put("labAddress", HAIKOU_ADDRESS); + map.put("phone", HAIKOU_PHONE); + map.put("postalCode", HAIKOU_POSTAL_CODE); + } + //填充有效日期 + if (ObjectUtils.isNotEmpty(map.get(MEASURE_VALID_DATE))) { + String measureValidDate = (String) map.get(MEASURE_VALID_DATE); + try { + map.put(MEASURE_DATE, new SimpleDateFormat("yyyy年MM月dd日").format(new SimpleDateFormat("yyyy-MM-dd").parse(measureValidDate))); + } catch (Exception e) { + throw new BusinessException(1500, String.format(measureValidDate, "检定有效日期,格式不正确")); + } + } + } + /** * 批量替换/ + * * @param map */ - protected void replaceSlash(Map map){ + protected void replaceSlash(Map map) { List excludedKeys = Arrays.asList("approvalStatus", "processId", "createUserId", "createUserName", - "checkUserName", "approvalStatusName", "taskId", "decisionItem", "staffName", "lessThan","conclusion"); + "checkUserName", "approvalStatusName", "taskId", "decisionItem", "staffName", "lessThan", "conclusion"); Set excludedKeySet = new HashSet<>(excludedKeys); map.forEach((k, v) -> { if (v instanceof List) { @@ -75,11 +165,11 @@ } private void determine(String k, Object v, Set excludedKeys, Map map) { - if(v instanceof String){ + if (v instanceof String) { if (!excludedKeys.contains(k) && StringUtils.isBlank((String) v)) { map.put(k, "/"); } - }else { + } else { if (!excludedKeys.contains(k) && org.springframework.util.ObjectUtils.isEmpty(v)) { map.put(k, "/"); } @@ -101,6 +191,42 @@ }); } + /** + * 封面基本信息的定制化参数 + * + * @param map + */ + protected void prepareCustomCoverParams(Map map) { + //定制参数 + //初始化方框 + map.put("test", "\uF0A3"); + map.put("calibrate", "\uF0A3"); + map.put("measure", "\uF0A3"); + //选择方框 + switch ((String) map.get("measureCategoryName")) { + case TEST_REPORT: + map.put("test", "\uF052"); + break; + case CALIBRATE_REPORT: + map.put("calibrate", "\uF052"); + break; + case MEASURE_REPORT: + map.put("measure", "\uF052"); + break; + default: + return; + } + //填充有效日期 + if (!org.springframework.util.ObjectUtils.isEmpty(map.get(MEASURE_TRACE_DATE))) { + String traceDate = (String) map.get(MEASURE_TRACE_DATE); + try { + map.put(MEASURE_TRACE_DATE, new SimpleDateFormat("yyyy年MM月dd日").format(new SimpleDateFormat("yyyy-MM-dd").parse(traceDate))); + } catch (Exception e) { + throw new BusinessException(1500, String.format(traceDate, "检定有效日期,格式不正确")); + } + } + } + protected Boolean examineOriginalFile(BizBusinessDeviceMeasureApproval measureItemInfo) { if ("校验".equals(measureItemInfo.getMeasureCategoryName())) { return true; @@ -138,7 +264,6 @@ map.put("title", "测试结果"); break; case CALIBRATE_REPORT: - ; map.put("title", "校准结果"); break; case MEASURE_REPORT: diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCesiumAtom.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCesiumAtom.java index aa29183..922a184 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCesiumAtom.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCesiumAtom.java @@ -527,6 +527,9 @@ commonType.appendAsterisksIfNeeded(this); break; case "微波计数器": + CesiumAtomStrategyType microwaveType = microwaveCounterMap.get(dataType); + microwaveType.appendAsterisksIfNeeded(this); + break; default: throw new UnsupportedOperationException("不支持的类型"); } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/strategy/handler/impl/CesiumAtomStrategyType.java b/casic-metering-model/src/main/java/com/casic/missiles/strategy/handler/impl/CesiumAtomStrategyType.java index 3878b71..8e65511 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/strategy/handler/impl/CesiumAtomStrategyType.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/strategy/handler/impl/CesiumAtomStrategyType.java @@ -187,13 +187,11 @@ @Override public void appendAsterisksIfNeeded(BizBusinessDeviceMeasureDataCesiumAtom cesiumAtom) { cesiumAtom.setNominalValue(StringUtils.isNotBlank(cesiumAtom.getNominalValue()) ? cesiumAtom.getNominalValue() + cesiumAtom.getNominalValueUnit() : ""); - cesiumAtom.setInputSensitivity(StringUtils.isNotBlank(cesiumAtom.getInputSensitivity()) ? cesiumAtom.getInputSensitivity() + cesiumAtom.getInputSensitivityUnit() : ""); - cesiumAtom.setMaxInputLevel(StringUtils.isNotBlank(cesiumAtom.getMaxInputLevel()) ? cesiumAtom.getMaxInputLevel() + cesiumAtom.getMaxInputLevelUnit() : ""); - cesiumAtom.setTechnicalIndex(StringUtils.isNotBlank(cesiumAtom.getTechnicalIndex()) ? cesiumAtom.getTechnicalIndexSymbol() + cesiumAtom.getTechnicalIndex() + cesiumAtom.getTechnicalIndexUnit() : ""); - cesiumAtom.setOtherTechnicalIndex(StringUtils.isNotBlank(cesiumAtom.getOtherTechnicalIndex())?cesiumAtom.getOtherTechnicalIndexSymbol() + cesiumAtom.getOtherTechnicalIndex() + cesiumAtom.getOtherTechnicalIndexUnit():""); if (StringUtils.isNotBlank(cesiumAtom.getInputSensitivity()) && StringUtils.isNotBlank(cesiumAtom.getTechnicalIndex())){ BigDecimal inputSensitivity = new BigDecimal(cesiumAtom.getInputSensitivity()); int compare = inputSensitivity.compareTo(new BigDecimal(cesiumAtom.getTechnicalIndex())); + cesiumAtom.setInputSensitivity(StringUtils.isNotBlank(cesiumAtom.getInputSensitivity()) ? cesiumAtom.getInputSensitivity() + cesiumAtom.getInputSensitivityUnit() : ""); + cesiumAtom.setTechnicalIndex(StringUtils.isNotBlank(cesiumAtom.getTechnicalIndex()) ? cesiumAtom.getTechnicalIndexSymbol() + cesiumAtom.getTechnicalIndex() + cesiumAtom.getTechnicalIndexUnit() : ""); if (compare > 0){ cesiumAtom.setInputSensitivity(cesiumAtom.getInputSensitivity() + "*"); } @@ -201,6 +199,8 @@ if (StringUtils.isNotBlank(cesiumAtom.getMaxInputLevel())) { BigDecimal maxInputLevel = new BigDecimal(cesiumAtom.getMaxInputLevel()); int compare = maxInputLevel.compareTo(new BigDecimal(cesiumAtom.getOtherTechnicalIndex())); + cesiumAtom.setMaxInputLevel(StringUtils.isNotBlank(cesiumAtom.getMaxInputLevel()) ? cesiumAtom.getMaxInputLevel() + cesiumAtom.getMaxInputLevelUnit() : ""); + cesiumAtom.setOtherTechnicalIndex(StringUtils.isNotBlank(cesiumAtom.getOtherTechnicalIndex())?cesiumAtom.getOtherTechnicalIndexSymbol() + cesiumAtom.getOtherTechnicalIndex() + cesiumAtom.getOtherTechnicalIndexUnit():""); if (compare > 0){ cesiumAtom.setMaxInputLevel(cesiumAtom.getMaxInputLevel() + "*"); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/StandardEquipmentSupport.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/StandardEquipmentSupport.java index 09ac62e..a819683 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/StandardEquipmentSupport.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/StandardEquipmentSupport.java @@ -6,6 +6,7 @@ import com.casic.missiles.enums.business.MeasureCategoryEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BizBusinessDeviceMeasureApproval; +import com.casic.missiles.model.business.BizBusinessDeviceMeasureDataElectricalSafety; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -41,14 +42,103 @@ return false; } + protected void readyForCoverParams(Map map, String labCode) { + //定制参数 + //初始化方框 + map.put("test", "\uF0A3"); + map.put("calibrate", "\uF0A3"); + map.put("measure", "\uF0A3"); + //选择方框 + switch ((String) map.get("measureCategoryName")) { + case TEST_REPORT: + map.put("test", "\uF052"); + break; + case CALIBRATE_REPORT: + map.put("calibrate", "\uF052"); + break; + case MEASURE_REPORT: + map.put("measure", "\uF052"); + break; + default: + return; + } + //填充有效日期 + if (!org.springframework.util.ObjectUtils.isEmpty(map.get(MEASURE_TRACE_DATE))) { + String traceDate = (String) map.get(MEASURE_TRACE_DATE); + try { + map.put(MEASURE_TRACE_DATE, new SimpleDateFormat("yyyy年MM月dd日").format(new SimpleDateFormat("yyyy-MM-dd").parse(traceDate))); + } catch (Exception e) { + throw new BusinessException(1500, String.format(traceDate, "检定有效日期,格式不正确")); + } + } + //技术文件处理 + if (map.containsKey("technologyFile") && ObjectUtils.isNotEmpty(map.get("technologyFile"))) { + //技术文件用逗号隔开 + String technologyFiles = ((String) map.get("technologyFile")); + if (StringUtils.isNotEmpty(technologyFiles) && technologyFiles.contains("[")) { + technologyFiles = technologyFiles.substring(2, technologyFiles.length() - 2); + } + map.put("technologyFile", technologyFiles); + } + map.put("surveyor", "{{@surveyor}}"); + map.put("auditor", "{{@auditor}}"); + //新增对检定地点的转换,如果找不到该地点,则显示为空 +// String measureAddress = bizBusinessMapper.getMeasureAddress(request.getMeasureAddress()); +// request.setMeasureAddress(StringUtils.isNoneEmpty(measureAddress) ? measureAddress : ""); + //健壮性校验 + if (StringUtils.isEmpty(labCode)) { + log.warn("组织接口不能传入为空,打印文档生成文档填充组织失败..."); + return; + } + //选择方框 + switch ((String) map.get("measureCategoryName")) { + case TEST_REPORT: + map.put("title", "测试结果"); + break; + case CALIBRATE_REPORT: + map.put("title", "校准结果"); + break; + case MEASURE_REPORT: + map.put("title", "检定结果"); + break; + default: + map.put("title", "校验结果"); + return; + } + //西昌海口基本信息录入 + if ("x".equals(labCode)) { + map.put("s", XICHANG); + map.put("communicationAddress", XICHANG_ADDRESS); + map.put("labAddress", XICHANG_ADDRESS); + map.put("phone", XICHANG_PHONE); + map.put("postalCode", XICHANG_POSTAL_CODE); + } else { + map.put("s", HAIKOU); + map.put("communicationAddress", HAIKOU_ADDRESS); + map.put("labAddress", HAIKOU_ADDRESS); + map.put("phone", HAIKOU_PHONE); + map.put("postalCode", HAIKOU_POSTAL_CODE); + } + //填充有效日期 + if (ObjectUtils.isNotEmpty(map.get(MEASURE_VALID_DATE))) { + String measureValidDate = (String) map.get(MEASURE_VALID_DATE); + try { + map.put(MEASURE_DATE, new SimpleDateFormat("yyyy年MM月dd日").format(new SimpleDateFormat("yyyy-MM-dd").parse(measureValidDate))); + } catch (Exception e) { + throw new BusinessException(1500, String.format(measureValidDate, "检定有效日期,格式不正确")); + } + } + } + /** * 批量替换/ + * * @param map */ - protected void replaceSlash(Map map){ + protected void replaceSlash(Map map) { List excludedKeys = Arrays.asList("approvalStatus", "processId", "createUserId", "createUserName", - "checkUserName", "approvalStatusName", "taskId", "decisionItem", "staffName", "lessThan","conclusion"); + "checkUserName", "approvalStatusName", "taskId", "decisionItem", "staffName", "lessThan", "conclusion"); Set excludedKeySet = new HashSet<>(excludedKeys); map.forEach((k, v) -> { if (v instanceof List) { @@ -75,11 +165,11 @@ } private void determine(String k, Object v, Set excludedKeys, Map map) { - if(v instanceof String){ + if (v instanceof String) { if (!excludedKeys.contains(k) && StringUtils.isBlank((String) v)) { map.put(k, "/"); } - }else { + } else { if (!excludedKeys.contains(k) && org.springframework.util.ObjectUtils.isEmpty(v)) { map.put(k, "/"); } @@ -101,6 +191,42 @@ }); } + /** + * 封面基本信息的定制化参数 + * + * @param map + */ + protected void prepareCustomCoverParams(Map map) { + //定制参数 + //初始化方框 + map.put("test", "\uF0A3"); + map.put("calibrate", "\uF0A3"); + map.put("measure", "\uF0A3"); + //选择方框 + switch ((String) map.get("measureCategoryName")) { + case TEST_REPORT: + map.put("test", "\uF052"); + break; + case CALIBRATE_REPORT: + map.put("calibrate", "\uF052"); + break; + case MEASURE_REPORT: + map.put("measure", "\uF052"); + break; + default: + return; + } + //填充有效日期 + if (!org.springframework.util.ObjectUtils.isEmpty(map.get(MEASURE_TRACE_DATE))) { + String traceDate = (String) map.get(MEASURE_TRACE_DATE); + try { + map.put(MEASURE_TRACE_DATE, new SimpleDateFormat("yyyy年MM月dd日").format(new SimpleDateFormat("yyyy-MM-dd").parse(traceDate))); + } catch (Exception e) { + throw new BusinessException(1500, String.format(traceDate, "检定有效日期,格式不正确")); + } + } + } + protected Boolean examineOriginalFile(BizBusinessDeviceMeasureApproval measureItemInfo) { if ("校验".equals(measureItemInfo.getMeasureCategoryName())) { return true; @@ -138,7 +264,6 @@ map.put("title", "测试结果"); break; case CALIBRATE_REPORT: - ; map.put("title", "校准结果"); break; case MEASURE_REPORT: diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/CesiumAtomHandler.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/CesiumAtomHandler.java index 37c8c6b..8e994b3 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/CesiumAtomHandler.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/eqpt/standard/impl/CesiumAtomHandler.java @@ -69,8 +69,10 @@ request.setMeasureDataCesiumAtomList(list); } + DictCodeUtils.convertDictCodeToName(request); Map map = BeanUtil.beanToMap(request); prepareCoverParams(map, request.getLabCode()); + prepareCustomCoverParams(map); List cesiumAtomList = request.getMeasureDataCesiumAtomList(); List atomList = new ArrayList<>(); for (BizBusinessDeviceMeasureDataCesiumAtom cesiumAtom : cesiumAtomList) { @@ -90,6 +92,7 @@ break; case MICROWAVE_COUNTER: readyForMicrowaveCounter(map, atomList); + break; default: throw new BusinessException(BusinessExceptionEnum.EQUIPMENT_ITEM_CATEGORY_NAME_NOT_EXIST); } @@ -103,7 +106,7 @@ map.put("pdfStatus", 1); log.debug("original before ----"); //除了选用的模板不一致,模板配置流程是一致的 - String originalWordUrlFile = printFileRegister.registerPrintFile(CESIUM_ATOMIC_FREQUENCY, "原始记录打印", null, map, false, null, templateUrls); + String originalWordUrlFile = printFileRegister.registerPrintFile(request.getItemCategoryName(), "原始记录打印", null, map, false, null,templateUrls); log.debug("originalUrlFile after------------{}", originalWordUrlFile); List urlList = new ArrayList<>(); urlList.add(originalWordUrlFile); @@ -122,14 +125,34 @@ .collect(Collectors.groupingBy(BizBusinessDeviceMeasureDataCesiumAtom::getDataType)); //晶振开机特性 List startupList = groupMap.get("1"); + BizBusinessDeviceMeasureDataCesiumAtom cesiumAtom = startupList.get(0); + map.put("gateTime1",cesiumAtom.getGateTime()); + map.put("multiplyTimes1",cesiumAtom.getMultiplyFrequency()); + map.put("groupNumber1",cesiumAtom.getGroupNumber()); //晶振1s频率稳定度 List stabilityList = groupMap.get("2"); + BizBusinessDeviceMeasureDataCesiumAtom stability = stabilityList.get(0); + map.put("gateTime2",stability.getGateTime()); + map.put("multiplyTimes2",stability.getMultiplyFrequency()); + map.put("groupNumber2",stability.getGroupNumber()); //晶振相对频率偏差 List deviationList = groupMap.get("3"); + BizBusinessDeviceMeasureDataCesiumAtom deviation = deviationList.get(0); + map.put("gateTime3",deviation.getGateTime()); + map.put("multiplyTimes3",deviation.getMultiplyFrequency()); //晶振频率复现性 List reproList = groupMap.get("4"); + BizBusinessDeviceMeasureDataCesiumAtom repro = reproList.get(0); + map.put("gateTime4",repro.getGateTime()); + map.put("multiplyTimes4",repro.getMultiplyFrequency()); + map.put("tOne",repro.getTOne()); + map.put("tTwo",repro.getTTwo()); //晶振日老化率 List dailyList = groupMap.get("5"); + BizBusinessDeviceMeasureDataCesiumAtom daily = dailyList.get(0); + map.put("gateTime5",daily.getGateTime()); + map.put("multiplyTimes5",daily.getMultiplyFrequency()); + map.put("groupNumber5",daily.getGroupNumber()); //频率测量范围、输入灵敏度及最大输入电平 List levelList = groupMap.get("6"); //频率测量误差 @@ -150,14 +173,35 @@ //晶振开机 List startupList = groupMap.get("1"); + + BizBusinessDeviceMeasureDataCesiumAtom cesiumAtom = startupList.get(0); + map.put("gateTime1",cesiumAtom.getGateTime()); + map.put("multiplyTimes1",cesiumAtom.getMultiplyFrequency()); + map.put("groupNumber1",cesiumAtom.getGroupNumber()); //晶振1s频率稳定度 List stabilityList = groupMap.get("2"); + BizBusinessDeviceMeasureDataCesiumAtom stability = stabilityList.get(0); + map.put("gateTime2",stability.getGateTime()); + map.put("multiplyTimes2",stability.getMultiplyFrequency()); + map.put("groupNumber2",stability.getGroupNumber()); //晶振相对频率偏差 List relativeList = groupMap.get("3"); + BizBusinessDeviceMeasureDataCesiumAtom relative = relativeList.get(0); + map.put("gateTime3",relative.getGateTime()); + map.put("multiplyTimes3",relative.getMultiplyFrequency()); //晶振频率复现性 List reproList = groupMap.get("4"); + BizBusinessDeviceMeasureDataCesiumAtom repro = reproList.get(0); + map.put("gateTime4",repro.getGateTime()); + map.put("multiplyTimes4",repro.getMultiplyFrequency()); + map.put("tOne",repro.getTOne()); + map.put("tTwo",repro.getTTwo()); //晶振日老化率 List dailyList = groupMap.get("5"); + BizBusinessDeviceMeasureDataCesiumAtom daily = dailyList.get(0); + map.put("gateTime5",daily.getGateTime()); + map.put("multiplyTimes5",daily.getMultiplyFrequency()); + map.put("groupNumber5",daily.getGroupNumber()); //频率测量范围、输入灵敏度 List freqList = groupMap.get("6"); //频率测量误差 @@ -195,6 +239,11 @@ List relativeList = groupMap.get(RELATIVE_FREQUENCY_DEVIATION); //频率复现性 List reproList = groupMap.get(FREQUENCY_REPRODUCIBILITY); + + BizBusinessDeviceMeasureDataCesiumAtom cesiumAtom = reproList.get(0); + map.put("tOne",cesiumAtom.getTOne()); + map.put("tTwo",cesiumAtom.getTTwo()); + map.put("tThree",cesiumAtom.getTThree()); //日频率漂移率 List dailyList = groupMap.get(DAILY_AGING_RATE_OF_CRYSTAL_OSCILLATOR); @@ -264,7 +313,10 @@ request.setMeasureDataCesiumAtomList(list); } + + DictCodeUtils.convertDictCodeToName(request); Map map = BeanUtil.beanToMap(request); + prepareCoverParams(map, request.getLabCode()); List cesiumAtomList = request.getMeasureDataCesiumAtomList(); List atomList = new ArrayList<>(); @@ -285,6 +337,7 @@ break; case MICROWAVE_COUNTER: readyForMicrowaveCounter(map, atomList); + break; default: throw new BusinessException(BusinessExceptionEnum.EQUIPMENT_ITEM_CATEGORY_NAME_NOT_EXIST); } @@ -301,7 +354,7 @@ List urlList = new ArrayList<>(); //除了选用的模板不一致,模板配置流程是一致的 log.debug("certificate before------------"); - String wordUrl = printFileRegister.registerPrintFile(CESIUM_ATOMIC_FREQUENCY, "证书打印", null, map, false, null, customTemplateUrls); + String wordUrl = printFileRegister.registerPrintFile(request.getItemCategoryName(), "证书打印", null, map, false, null, customTemplateUrls); urlList.add(wordUrl); if (map.containsKey("pdfUrl")) { urlList.add((String) map.get("pdfUrl"));