package com.malk.kuaikeli.entity;

import cn.hutool.core.annotation.Alias;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import com.malk.utils.UtilDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Map;

@Data
@EqualsAndHashCode
@TableName("t_material_detail")
public class MaterialDetail {

    // ID
//    @TableId(value = "id",type = IdType.INPUT)
//    private String id;

    // 供应商编号
    @Alias("textField_llzzbyj1")
    private String supplierId;

    // 供应商名称
    @Alias("textField_lmsli3bq")
    private String supplierName;

    // 项目编号
    @Alias("textField_llm1vtjm")
    private String projectId;

    // 项目名称
    @Alias("textField_loy1ep8r")
    private String projectName;

    // 物品名称
    @Alias("textField_llkb7kd1")
    private String materialName;

    // 物品编号
    @Alias("textField_llkb7kd2")
    private String materialId;

    // 单位
    @Alias("textField_llkb7kd3")
    private String unit;

    // 规格
    @Alias("textField_llkb7kd4")
    private String specs;

    // 第一分类
    @Alias("selectField_llkb7kd5")
    private String classifyOne;

    // 第二分类
    @Alias("selectField_llkk6cms")
    private String classifyTwo;

    // 服务费率
    @Alias("numberField_llkb7kcy")
    private String rate;

    // 成本单价
    @Alias("numberField_llkknd6g")
    private String unitPrice;

    // 供货价
    @Alias("numberField_llkknd6h")
    private String supplyPrice;

    // 下周服务费率
    @Alias("numberField_lpalgz04")
    private String rateNext;

    // 下周成本单价
    @Alias("numberField_lpalgz05")
    private String unitPriceNext;

    // 下周供货价
    @Alias("numberField_lpalgz0a")
    private String supplyPriceNext;

    // 其他信息
    @Alias("textareaField_lllnl6yr")
    private String otherInfo;

    // 图片
//    @Alias("imageField_lllnl6ys")
    private String img;

    // 品牌
    @Alias("textField_lmkfg67e")
    private String brand;

    // 状态
    @Alias("textField_lm4lxur8")
    private String state="已启用";

    // 期限
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    @Alias("dateField_lm4lxur7")
    private String term;

    // 包装数量
    @Alias("numberField_lnrzzg03")
    private String packingNumber;

    // 包装单位
    @Alias("textField_lnrzzg04")
    private String packingUnit;

    // 创建日期
    private String createDateTime;

    // 更新日期
    private String updateDateTime;

    private String formInstId;

    public MaterialDetail(){}

    public static MaterialDetail toBean(Map yidaFormData){
        MaterialDetail materialDetail=BeanUtil.mapToBean(yidaFormData,MaterialDetail.class,false);
        materialDetail.setTerm(UtilDateTime.getLocalDateTimeFromTimestamp(Long.parseLong(materialDetail.getTerm())).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
        return materialDetail;
    }

    public Map toYidaFormDataMap(){
        Map map=BeanUtil.beanToMap(this);
        // 时间处理
        map.put("dateField_lm4lxur7", UtilDateTime.getLocalDateTimeTimeStamp(UtilDateTime.parseLocalDateTime(this.term)));
        return map;
    }

    public MaterialDetail create(){
        this.createDateTime = (LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
        return this;
    }

    public MaterialDetail update(){
        this.updateDateTime = (LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
        return this;
    }

}
