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 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); } }