package com.zy.asrs.wms.asrs.entity.template; import com.fasterxml.jackson.annotation.JsonAnyGetter; import com.zy.asrs.common.utils.Synchro; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; @Data public class OrderTemplate { //订单编号 @ApiModelProperty(value= "订单编号") private String orderNo; //单据类型 @ApiModelProperty(value= "单据类型") private String orderType; //商品编号 @ApiModelProperty(value= "商品编号") private String matnr; //批号 @ApiModelProperty(value= "批号") private String batch; //数量 @ApiModelProperty(value= "数量") private Double anfme; //备注 @ApiModelProperty(value= "备注") private String memo; public void sync(Object source) { Synchro.Copy(source, this); } //动态扩展字段 public transient Map dynamicFields = new HashMap<>(); @JsonAnyGetter public Map getDynamicFields() { return dynamicFields; } public void syncFieldMap(Map map) { ArrayList keys = new ArrayList<>(); Field[] fields = this.getClass().getDeclaredFields(); for (Field field : fields) { keys.add(field.getName()); } keys.add("detlId"); Map dynamicFields = new HashMap<>(); for (Map.Entry entry : map.entrySet()) { if (keys.contains(entry.getKey())) { continue; } dynamicFields.put(entry.getKey(), entry.getValue()); } this.dynamicFields = dynamicFields; } public String getFieldString(String key) { return dynamicFields.get(key).toString(); } public void setField(String key, Object value) { dynamicFields.put(key, value); } }