| 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 MatTemplate {  | 
|   | 
|     //一级分类  | 
|     @ApiModelProperty(value= "一级分类")  | 
|     private String firstTag;  | 
|   | 
|     //二级分类  | 
|     @ApiModelProperty(value= "二级分类")  | 
|     private String secondTag;  | 
|   | 
|     //商品编号  | 
|     @ApiModelProperty(value= "商品编号")  | 
|     private String matnr;  | 
|   | 
|     //商品名称  | 
|     @ApiModelProperty(value= "商品名称")  | 
|     private String maktx;  | 
|   | 
|     //别名  | 
|     @ApiModelProperty(value= "别名")  | 
|     private String name;  | 
|   | 
|     //规格  | 
|     @ApiModelProperty(value= "规格")  | 
|     private String specs;  | 
|   | 
|     //型号  | 
|     @ApiModelProperty(value= "型号")  | 
|     private String model;  | 
|   | 
|     //颜色  | 
|     @ApiModelProperty(value= "颜色")  | 
|     private String color;  | 
|   | 
|     //品牌  | 
|     @ApiModelProperty(value= "品牌")  | 
|     private String brand;  | 
|   | 
|     //单位  | 
|     @ApiModelProperty(value= "单位")  | 
|     private String unit;  | 
|   | 
|     //单价  | 
|     @ApiModelProperty(value= "单价")  | 
|     private Double price;  | 
|   | 
|     //sku  | 
|     @ApiModelProperty(value= "sku")  | 
|     private String sku;  | 
|   | 
|     //单位量  | 
|     @ApiModelProperty(value= "单位量")  | 
|     private String units;  | 
|   | 
|     //条码  | 
|     @ApiModelProperty(value= "条码")  | 
|     private String barcode;  | 
|   | 
|     //产地  | 
|     @ApiModelProperty(value= "产地")  | 
|     private String origin;  | 
|   | 
|     //厂家  | 
|     @ApiModelProperty(value= "厂家")  | 
|     private String manu;  | 
|   | 
|     //生产日期  | 
|     @ApiModelProperty(value= "生产日期")  | 
|     private String manuDate;  | 
|   | 
|     //品项数  | 
|     @ApiModelProperty(value= "品项数")  | 
|     private String itemNum;  | 
|   | 
|     //重量  | 
|     @ApiModelProperty(value= "重量")  | 
|     private String weight;  | 
|   | 
|     //长度  | 
|     @ApiModelProperty(value= "长度")  | 
|     private String length;  | 
|   | 
|     //体积  | 
|     @ApiModelProperty(value= "体积")  | 
|     private String volume;  | 
|   | 
|     //三方编码  | 
|     @ApiModelProperty(value= "三方编码")  | 
|     private String threeCode;  | 
|   | 
|     //供应商  | 
|     @ApiModelProperty(value= "供应商")  | 
|     private String supp;  | 
|   | 
|     //供应商编码  | 
|     @ApiModelProperty(value= "供应商编码")  | 
|     private String suppCode;  | 
|   | 
|     //保质期  | 
|     @ApiModelProperty(value= "保质期")  | 
|     private String deadTime;  | 
|   | 
|     //安全库存上限  | 
|     @ApiModelProperty(value= "安全库存上限")  | 
|     private Double safeStockLimit;  | 
|   | 
|     //安全库存下限  | 
|     @ApiModelProperty(value= "安全库存下限")  | 
|     private Double safeStockMinimum;  | 
|   | 
|     //有效期  | 
|     @ApiModelProperty(value= "有效期")  | 
|     private String validity;  | 
|   | 
|     //备注  | 
|     @ApiModelProperty(value= "备注")  | 
|     private String memo;  | 
|   | 
|     public void sync(Object source) {  | 
|         Synchro.Copy(source, this);  | 
|     }  | 
|   | 
|     //动态扩展字段  | 
|     public transient Map<String, Object> dynamicFields = new HashMap<>();  | 
|   | 
|     @JsonAnyGetter  | 
|     public Map<String,Object> getDynamicFields() {  | 
|         return dynamicFields;  | 
|     }  | 
|   | 
|     public void syncFieldMap(Map<String, Object> map) {  | 
|         ArrayList<String> keys = new ArrayList<>();  | 
|         Field[] fields = this.getClass().getDeclaredFields();  | 
|         for (Field field : fields) {  | 
|             keys.add(field.getName());  | 
|         }  | 
|         keys.add("detlId");  | 
|   | 
|         Map<String, Object> dynamicFields = new HashMap<>();  | 
|         for (Map.Entry<String, Object> 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);  | 
|     }  | 
|   | 
| }  |