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 590f90f..09ac62e 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 @@ -1,20 +1,18 @@ package com.casic.missiles.service.Impl.eqpt.standard; +import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; -import com.casic.missiles.annotation.ConcatAsterisk; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.business.MeasureCategoryEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BizBusinessDeviceMeasureApproval; -import liquibase.pro.packaged.A; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import java.lang.reflect.Field; import java.text.SimpleDateFormat; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; @Slf4j public class StandardEquipmentSupport implements MeasureCategoryEnum { @@ -23,35 +21,67 @@ protected StandardEquipmentColConfig standardEquipmentColConfig; /** - * 处理*号 + * 检查是否能生成证书 */ - protected void concatMutliAsterisk(List list) { - for (T object : list) { - Field[] fields = object.getClass().getDeclaredFields(); - for (Field field : fields) { + protected Boolean checkOutUnablePrint(BizBusinessDeviceMeasureApproval measureItemInfo) { + //通过检定项名称,获取对应的模块配置列表 + if (StringUtils.isNotEmpty(measureItemInfo.getItemCategoryName())) { + if (MEASURE_ITEMS_WITHOUT_CERTIFICATE.contains(measureItemInfo.getItemCategoryName())) { + log.warn(BusinessExceptionEnum.ITEM_CATEGORY_NOT_NULL.getMessage()); + return true; + } + if (CHECKOUT_REPORT.equals(measureItemInfo.getMeasureCategoryName())) { + log.warn(BusinessExceptionEnum.TEST_CATEGORY_IS_NONE.getMessage()); + return true; + } + } else { + log.warn(BusinessExceptionEnum.ITEM_CATEGORY_IS_NULL.getMessage()); + return true; + } + return false; + } + + + /** + * 批量替换/ + * @param map + */ + protected void replaceSlash(Map map){ + List excludedKeys = Arrays.asList("approvalStatus", "processId", "createUserId", "createUserName", + "checkUserName", "approvalStatusName", "taskId", "decisionItem", "staffName", "lessThan","conclusion"); + Set excludedKeySet = new HashSet<>(excludedKeys); + map.forEach((k, v) -> { + if (v instanceof List) { + List list = (List) v; + List> objectList = new ArrayList<>(); + list.forEach(obj -> { + Map objectMap = BeanUtil.beanToMap(obj); + objectMap.forEach((k1, v1) -> determine(k1, v1, excludedKeySet, objectMap)); + objectList.add(objectMap); + }); try { - if (!field.isAccessible()) { - field.setAccessible(true); - } - // 检查字段是否被ConcatAsterisk注解标记 - ConcatAsterisk concatAsterisk = field.getAnnotation(ConcatAsterisk.class); - if (concatAsterisk != null && field.get(object) != null && field.get(object).equals(1)) { - String fieldName = concatAsterisk.field(); - Field declaredField = object.getClass().getDeclaredField(fieldName); - declaredField.setAccessible(true); - Object fieldValue = declaredField.get(object); - // 仅当字段值为String类型时执行拼接操作 - if (fieldValue instanceof String) { - declaredField.set(object, (fieldValue + "*")); - } else { - log.warn("该字段不是String类型" + fieldName); - } - } - } catch (NoSuchFieldException | IllegalAccessException e) { - log.warn("反射字段访问错误..." + field.getName() + ". " + e.getMessage()); - } catch (IllegalArgumentException e) { - log.warn("存在非法参数..." + field.getName() + ". " + e.getMessage()); + map.put(k, objectList); + } catch (Exception e) { + log.warn("Error updating map: " + e.getMessage()); } + } else { + try { + determine(k, v, excludedKeySet, map); + } catch (Exception e) { + log.warn("Error adjusting key-value: " + e.getMessage()); + } + } + }); + } + + private void determine(String k, Object v, Set excludedKeys, Map map) { + if(v instanceof String){ + if (!excludedKeys.contains(k) && StringUtils.isBlank((String) v)) { + map.put(k, "/"); + } + }else { + if (!excludedKeys.contains(k) && org.springframework.util.ObjectUtils.isEmpty(v)) { + map.put(k, "/"); } } }