package com.qianwen.smartman.modules.system.handler.field; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import java.lang.invoke.SerializedLambda; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.StringJoiner; import java.util.stream.Collectors; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.smartman.common.constant.CommonConstant; import com.qianwen.smartman.common.constant.DncConstant; import com.qianwen.core.tool.utils.Func; import com.qianwen.smartman.modules.cps.entity.Employee; import com.qianwen.smartman.modules.cps.service.IEmployeeService; import com.qianwen.smartman.modules.system.constant.FieldConstant; import com.qianwen.smartman.modules.system.entity.CustomTemplateField; import com.qianwen.smartman.modules.system.entity.CustomTemplateFieldOption; import com.qianwen.smartman.modules.system.enums.ConfigTypeEnum; import com.qianwen.smartman.modules.system.enums.CustomFieldTypeEnums; import com.qianwen.smartman.modules.system.service.ICustomTemplateFieldService; import com.qianwen.smartman.modules.system.service.impl.CustomTemplateFieldServiceImpl; import org.springframework.stereotype.Component; @Component /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/system/handler/field/ExtendFieldResultParse.class */ public class ExtendFieldResultParse { private final ICustomTemplateFieldService customTemplateFieldService; private final IEmployeeService employeeService; private static final List CHECK_LIST = Arrays.asList(CustomFieldTypeEnums.CASCADE_SELECT.getType(), CustomFieldTypeEnums.MULTI_SELECT.getType(), CustomFieldTypeEnums.BUSINESS.getType()); private static final List IS_CHECK_TYPE = Arrays.asList(CustomFieldTypeEnums.INPUT.getType(), CustomFieldTypeEnums.DIGITAL_INPUT.getType(), CustomFieldTypeEnums.DATE.getType(), CustomFieldTypeEnums.MULTI_TEXT.getType()); private static /* synthetic */ Object $deserializeLambda$(SerializedLambda lambda) { String implMethodName = lambda.getImplMethodName(); boolean z = true; switch (implMethodName.hashCode()) { case -75308287: if (implMethodName.equals("getName")) { z = false; break; } break; case 98245393: if (implMethodName.equals("getId")) { z = true; break; } break; } switch (z) { case false: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/Employee") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getName(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) { return (v0) -> { return v0.getId(); }; } break; } throw new IllegalArgumentException("Invalid lambda deserialization"); } public ExtendFieldResultParse(final ICustomTemplateFieldService customTemplateFieldService, final IEmployeeService employeeService) { this.customTemplateFieldService = customTemplateFieldService; this.employeeService = employeeService; } public String handlerFieldQueryResult(Long templateId, String resultJson) { Map showFields = FieldCodeCache.getInstance().getFields(templateId, ConfigTypeEnum.VIEW_PAGE.getCode()); if (Func.isEmpty(showFields)) { return resultJson; } JSONObject resJsonObj = JSONUtil.parseObj(resultJson); resJsonObj.forEach(fieldCode, value -> { if (!showFields.containsKey(fieldCode) || Func.isEmpty(value)) { return; } CustomTemplateField field = (CustomTemplateField) showFields.get(fieldCode); if (Func.isEmpty(field)) { return; } Object val = filedResHandler(field, resJsonObj); resJsonObj.put(fieldCode, val); }); return resJsonObj.toString(); } public String handlerFieldDetailResult(Long templateId, String resultJson) { Map editFields = FieldCodeCache.getInstance().getFields(templateId, ConfigTypeEnum.EDIT_PAGE.getCode()); if (Func.isEmpty(resultJson) || Func.isEmpty(editFields)) { return ""; } JSONObject resObj = JSONUtil.parseObj(resultJson); resObj.forEach(fieldCode, value -> { if (!editFields.containsKey(fieldCode)) { return; } CustomTemplateField field = (CustomTemplateField) editFields.get(fieldCode); if (Func.isEmpty(field) || !CHECK_LIST.contains(field.getFieldType())) { return; } List temp = Func.toStrList(",", String.valueOf(value)); resObj.put(fieldCode, temp); }); return resObj.toString(); } public void handlerFieldSaveOrUpdateCheck(String resultJson, Integer busType) { if (Func.isEmpty(resultJson)) { return; } JSONObject exJson = JSONUtil.parseObj(resultJson); for (Map.Entry entry : exJson.entrySet()) { CustomTemplateField field = this.customTemplateFieldService.getField(entry.getKey(), busType); if (!Func.isEmpty(field.getFieldCode()) && IS_CHECK_TYPE.contains(field.getFieldType())) { this.customTemplateFieldService.fieldCheck(busType, field.getFieldCode(), String.valueOf(entry.getValue())); } } } /* JADX WARN: Multi-variable type inference failed */ private Map getOptionFieldOptionMap(CustomTemplateField field) { Map optionMap = new HashMap<>(16); if (CustomTemplateFieldServiceImpl.CUSTOM_FIELD_TYPE_LIST.contains(field.getFieldType())) { List fieldOptions = field.getOptionList(); if (Func.isEmpty(fieldOptions)) { return optionMap; } optionMap = (Map) fieldOptions.stream().collect(Collectors.toMap(c -> { return String.valueOf(c.getId()); }, o -> { return o; }, old, newVal -> { return old; })); } return optionMap; } private String filedResHandler(CustomTemplateField field, JSONObject resJsonObj) { Integer fieldType = field.getFieldType(); CustomFieldTypeEnums fieldTypeEnums = CustomFieldTypeEnums.getEnum(fieldType); switch (AnonymousClass1.$SwitchMap$org$springblade$modules$system$enums$CustomFieldTypeEnums[fieldTypeEnums.ordinal()]) { case 1: return multiValueToStr(resJsonObj, field); case 2: return businessEmpToStr(resJsonObj, field.getFieldCode()); case 3: return cascadeValueToStr(resJsonObj, field); case 4: return digitalValueToStr(resJsonObj, field); case RegionCache.VILLAGE_LEVEL /* 5 */: case 6: return selectValueToStr(resJsonObj, field); default: return defaultValueToStr(resJsonObj, field); } } /* JADX INFO: Access modifiers changed from: package-private */ /* renamed from: org.springblade.modules.system.handler.field.ExtendFieldResultParse$1 reason: invalid class name */ /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/system/handler/field/ExtendFieldResultParse$1.class */ public static /* synthetic */ class AnonymousClass1 { static final /* synthetic */ int[] $SwitchMap$org$springblade$modules$system$enums$CustomFieldTypeEnums = new int[CustomFieldTypeEnums.values().length]; static { try { $SwitchMap$org$springblade$modules$system$enums$CustomFieldTypeEnums[CustomFieldTypeEnums.MULTI_SELECT.ordinal()] = 1; } catch (NoSuchFieldError e) { } try { $SwitchMap$org$springblade$modules$system$enums$CustomFieldTypeEnums[CustomFieldTypeEnums.BUSINESS.ordinal()] = 2; } catch (NoSuchFieldError e2) { } try { $SwitchMap$org$springblade$modules$system$enums$CustomFieldTypeEnums[CustomFieldTypeEnums.CASCADE_SELECT.ordinal()] = 3; } catch (NoSuchFieldError e3) { } try { $SwitchMap$org$springblade$modules$system$enums$CustomFieldTypeEnums[CustomFieldTypeEnums.DIGITAL_INPUT.ordinal()] = 4; } catch (NoSuchFieldError e4) { } try { $SwitchMap$org$springblade$modules$system$enums$CustomFieldTypeEnums[CustomFieldTypeEnums.DROP_DOWN.ordinal()] = 5; } catch (NoSuchFieldError e5) { } try { $SwitchMap$org$springblade$modules$system$enums$CustomFieldTypeEnums[CustomFieldTypeEnums.SELECT.ordinal()] = 6; } catch (NoSuchFieldError e6) { } } } private String defaultValueToStr(JSONObject resJsonObj, CustomTemplateField field) { return resJsonObj.getStr(field.getFieldCode()); } private String digitalValueToStr(JSONObject resJsonObj, CustomTemplateField field) { double value = resJsonObj.getDouble(field.getFieldCode()).doubleValue(); if (Func.isEmpty(Double.valueOf(value))) { return ""; } String propertyJson = field.getPropertyJson(); if (Func.isEmpty(propertyJson)) { return ""; } JSONObject filedJson = JSONUtil.parseObj(propertyJson); Integer format = filedJson.getInt(FieldConstant.NUM_FORMAT); Boolean isShowPercentage = filedJson.getBool(FieldConstant.IS_SHOW_PERCENTAGE); Integer saveNum = filedJson.getInt(FieldConstant.SAVE_DECIMAL_NUM); String valueStr = decimalHandler(Double.valueOf(value), saveNum); if (format.equals(FieldConstant.IS_NUM)) { return isShowPercentage.booleanValue() ? numToKillSplit(valueStr) : valueStr; } return valueStr + "%"; } private static String decimalHandler(Double value, Integer num) { return String.format("%." + num + "f", value); } private static String numToKillSplit(String value) { String temp; if (Func.isEmpty(value)) { return value; } boolean isDec = false; if (value.contains(DncConstant.POINT)) { temp = value.substring(0, value.lastIndexOf(DncConstant.POINT)); } else { temp = value; isDec = true; } if (temp.length() < 4) { return value; } StringJoiner joinStr = new StringJoiner(","); for (int i = 1; i <= temp.length(); i += 3) { if (i == 1) { joinStr.add(temp.substring(0, i)); } else { joinStr.add(temp.substring(i - 3, i)); if (i + 3 > temp.length()) { String lastValue = temp.substring(i); if (Func.isNotEmpty(lastValue)) { joinStr.add(lastValue); } } } } return isDec ? joinStr.toString() : joinStr.toString() + value.substring(value.lastIndexOf(DncConstant.POINT)); } private String cascadeValueToStr(JSONObject resJson, CustomTemplateField field) { String valueStr = resJson.getStr(field.getFieldCode()); if (Func.isEmpty(valueStr)) { return ""; } List arrayValue = Func.toStrList(",", valueStr); if (arrayValue.size() != FieldConstant.CASCADE_LENGTH.intValue()) { return ""; } Object jsonValue = arrayValue.get(CommonConstant.ONE.intValue()); Map optionMap = getOptionFieldOptionMap(field); CustomTemplateFieldOption customTemplateFieldOption = optionMap.get(String.valueOf(jsonValue)); if (Func.isEmpty(customTemplateFieldOption)) { return ""; } return customTemplateFieldOption.getValue(); } private String multiValueToStr(JSONObject resJson, CustomTemplateField field) { String value = resJson.getStr(field.getFieldCode()); if (Func.isEmpty(value)) { return ""; } List temp = new ArrayList<>(); List values = Func.toStrList(",", value); Map optionMap = getOptionFieldOptionMap(field); values.forEach(aValue -> { CustomTemplateFieldOption customTemplateFieldOption = (CustomTemplateFieldOption) optionMap.get(String.valueOf(aValue)); if (Func.isNotEmpty(customTemplateFieldOption)) { temp.add(customTemplateFieldOption.getValue()); } }); return Func.join(temp, ","); } private String selectValueToStr(JSONObject resJson, CustomTemplateField field) { String selectValue = resJson.getStr(field.getFieldCode()); if (Func.isEmpty(selectValue)) { return ""; } Map optionMap = getOptionFieldOptionMap(field); CustomTemplateFieldOption customTemplateFieldOption = optionMap.get(selectValue); if (Func.isEmpty(customTemplateFieldOption)) { return ""; } return customTemplateFieldOption.getValue(); } private String businessEmpToStr(JSONObject resJson, String fieldCode) { String empId = resJson.getStr(fieldCode); if (Func.isEmpty(empId)) { return ""; } List empList = Func.toStrList(",", empId); if (empList.size() < 2) { return ""; } Employee employee = (Employee) this.employeeService.getOne(((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getId(); }, empList.get(empList.size() - 1))).select(new SFunction[]{(v0) -> { return v0.getName(); }})); if (Func.isEmpty(employee) || Func.isEmpty(employee.getName())) { return ""; } return employee.getName(); } }