| package com.zy.asrs.wms.asrs.entity;  | 
|   | 
| import com.baomidou.mybatisplus.annotation.TableLogic;  | 
|   | 
| import java.lang.reflect.Field;  | 
| import java.text.SimpleDateFormat;  | 
| import java.util.*;  | 
|   | 
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;  | 
| import com.fasterxml.jackson.annotation.JsonAnyGetter;  | 
| import com.zy.asrs.common.utils.Synchro;  | 
| import com.zy.asrs.wms.asrs.entity.param.FieldParam;  | 
| import com.zy.asrs.wms.asrs.service.*;  | 
| import com.zy.asrs.wms.system.entity.Host;  | 
| import com.zy.asrs.wms.system.entity.User;  | 
| import lombok.experimental.Accessors;  | 
| import org.springframework.format.annotation.DateTimeFormat;  | 
| import java.util.Date;  | 
|   | 
| import com.baomidou.mybatisplus.annotation.IdType;  | 
| import com.baomidou.mybatisplus.annotation.TableId;  | 
| import com.baomidou.mybatisplus.annotation.TableName;  | 
| import io.swagger.annotations.ApiModelProperty;  | 
| import lombok.Data;  | 
| import com.zy.asrs.framework.common.Cools;  | 
| import com.zy.asrs.framework.common.SpringUtils;  | 
| import com.zy.asrs.wms.system.service.UserService;  | 
| import com.zy.asrs.wms.system.service.HostService;  | 
|   | 
| import java.io.Serializable;  | 
|   | 
| @Data  | 
| @TableName("man_task_detl")  | 
| public class TaskDetl implements Serializable {  | 
|   | 
|     private static final long serialVersionUID = 1L;  | 
|   | 
|     /**  | 
|      * ID  | 
|      */  | 
|     @ApiModelProperty(value= "ID")  | 
|     @TableId(value = "id", type = IdType.AUTO)  | 
|     private Long id;  | 
|   | 
|     /**  | 
|      * 任务ID  | 
|      */  | 
|     @ApiModelProperty(value= "任务ID")  | 
|     private Long taskId;  | 
|   | 
|     /**  | 
|      * 任务编号  | 
|      */  | 
|     @ApiModelProperty(value= "任务编号")  | 
|     private String taskNo;  | 
|   | 
|     /**  | 
|      * 数量  | 
|      */  | 
|     @ApiModelProperty(value= "数量")  | 
|     private Double anfme;  | 
|   | 
|     /**  | 
|      * 库存  | 
|      */  | 
|     @ApiModelProperty(value= "库存")  | 
|     private Double stock;  | 
|   | 
|     /**  | 
|      * 批号  | 
|      */  | 
|     @ApiModelProperty(value= "批号")  | 
|     private String batch;  | 
|   | 
|     /**  | 
|      * 托盘码  | 
|      */  | 
|     @ApiModelProperty(value= "托盘码")  | 
|     private String barcode;  | 
|   | 
|     /**  | 
|      * 订单ID  | 
|      */  | 
|     @ApiModelProperty(value= "订单ID")  | 
|     private Long orderId;  | 
|   | 
|     /**  | 
|      * 订单编号  | 
|      */  | 
|     @ApiModelProperty(value= "订单编号")  | 
|     private String orderNo;  | 
|   | 
|     /**  | 
|      * 明细ID  | 
|      */  | 
|     @ApiModelProperty(value= "明细ID")  | 
|     private Long detlId;  | 
|   | 
|     /**  | 
|      * 物料ID  | 
|      */  | 
|     @ApiModelProperty(value= "物料ID")  | 
|     private Long matId;  | 
|   | 
|     /**  | 
|      * 商品编号  | 
|      */  | 
|     @ApiModelProperty(value= "商品编号")  | 
|     private String matnr;  | 
|   | 
|     /**  | 
|      * 所属机构  | 
|      */  | 
|     @ApiModelProperty(value= "所属机构")  | 
|     private Long hostId;  | 
|   | 
|     /**  | 
|      * 状态 1: 正常  0: 禁用    | 
|      */  | 
|     @ApiModelProperty(value= "状态 1: 正常  0: 禁用  ")  | 
|     private Integer status;  | 
|   | 
|     /**  | 
|      * 是否删除 1: 是  0: 否    | 
|      */  | 
|     @ApiModelProperty(value= "是否删除 1: 是  0: 否  ")  | 
|     private Integer deleted;  | 
|   | 
|     /**  | 
|      * 添加时间  | 
|      */  | 
|     @ApiModelProperty(value= "添加时间")  | 
|     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")  | 
|     private Date createTime;  | 
|   | 
|     /**  | 
|      * 添加人员  | 
|      */  | 
|     @ApiModelProperty(value= "添加人员")  | 
|     private Long createBy;  | 
|   | 
|     /**  | 
|      * 修改时间  | 
|      */  | 
|     @ApiModelProperty(value= "修改时间")  | 
|     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")  | 
|     private Date updateTime;  | 
|   | 
|     /**  | 
|      * 修改人员  | 
|      */  | 
|     @ApiModelProperty(value= "修改人员")  | 
|     private Long updateBy;  | 
|   | 
|     /**  | 
|      * 备注  | 
|      */  | 
|     @ApiModelProperty(value= "备注")  | 
|     private String memo;  | 
|   | 
|     /**  | 
|      * 波次ID  | 
|      */  | 
|     @ApiModelProperty(value= "波次ID")  | 
|     private Long waveId;  | 
|   | 
|     /**  | 
|      * 波次号  | 
|      */  | 
|     @ApiModelProperty(value = "波次号")  | 
|     private String waveNo;  | 
|   | 
|     public TaskDetl() {}  | 
|   | 
|     public TaskDetl(Long taskId,String taskNo,Double anfme,String batch,String barcode,Long orderId,String orderNo,Long detlId,Long matId,Long hostId,Integer status,Integer deleted,Date createTime,Long createBy,Date updateTime,Long updateBy,String memo) {  | 
|         this.taskId = taskId;  | 
|         this.taskNo = taskNo;  | 
|         this.anfme = anfme;  | 
|         this.batch = batch;  | 
|         this.barcode = barcode;  | 
|         this.orderId = orderId;  | 
|         this.orderNo = orderNo;  | 
|         this.detlId = detlId;  | 
|         this.matId = matId;  | 
|         this.hostId = hostId;  | 
|         this.status = status;  | 
|         this.deleted = deleted;  | 
|         this.createTime = createTime;  | 
|         this.createBy = createBy;  | 
|         this.updateTime = updateTime;  | 
|         this.updateBy = updateBy;  | 
|         this.memo = memo;  | 
|     }  | 
|   | 
| //    TaskDetl taskDetl = new TaskDetl(  | 
| //            null,    // 任务ID  | 
| //            null,    // 任务编号  | 
| //            null,    // 数量  | 
| //            null,    // 批号  | 
| //            null,    // 托盘码  | 
| //            null,    // 订单ID  | 
| //            null,    // 订单编号  | 
| //            null,    // 明细ID  | 
| //            null,    // 物料ID  | 
| //            null,    // 所属机构  | 
| //            null,    // 状态  | 
| //            null,    // 是否删除  | 
| //            null,    // 添加时间  | 
| //            null,    // 添加人员  | 
| //            null,    // 修改时间  | 
| //            null,    // 修改人员  | 
| //            null    // 备注  | 
| //    );  | 
|   | 
|     public String getTaskId$(){  | 
|         TaskService service = SpringUtils.getBean(TaskService.class);  | 
|         Task task = service.getById(this.taskId);  | 
|         if (!Cools.isEmpty(task)){  | 
|             return String.valueOf(task.getId());  | 
|         }  | 
|         return null;  | 
|     }  | 
|   | 
|     public String getOrderId$() {  | 
|         OrderService service = SpringUtils.getBean(OrderService.class);  | 
|         Order order = service.getById(this.orderId);  | 
|         if (!Cools.isEmpty(order)) {  | 
|             return String.valueOf(order.getId());  | 
|         }  | 
|         return null;  | 
|     }  | 
|   | 
|     public Order getOrder$() {  | 
|         OrderService service = SpringUtils.getBean(OrderService.class);  | 
|         Order order = service.getById(this.orderId);  | 
|         if (!Cools.isEmpty(order)) {  | 
|             return order;  | 
|         }  | 
|         return null;  | 
|     }  | 
|   | 
|     public String getDetlId$(){  | 
|         OrderDetlService service = SpringUtils.getBean(OrderDetlService.class);  | 
|         OrderDetl orderDetl = service.getById(this.detlId);  | 
|         if (!Cools.isEmpty(orderDetl)){  | 
|             return String.valueOf(orderDetl.getId());  | 
|         }  | 
|         return null;  | 
|     }  | 
|   | 
|     public OrderDetl getDetl$(){  | 
|         OrderDetlService service = SpringUtils.getBean(OrderDetlService.class);  | 
|         OrderDetl orderDetl = service.getById(this.detlId);  | 
|         if (!Cools.isEmpty(orderDetl)){  | 
|             return orderDetl;  | 
|         }  | 
|         return null;  | 
|     }  | 
|   | 
|     public String getMatId$(){  | 
|         MatService service = SpringUtils.getBean(MatService.class);  | 
|         Mat mat = service.getById(this.matId);  | 
|         if (!Cools.isEmpty(mat)){  | 
|             return String.valueOf(mat.getMatnr());  | 
|         }  | 
|         return null;  | 
|     }  | 
|   | 
|     public Mat getMat$(){  | 
|         MatService service = SpringUtils.getBean(MatService.class);  | 
|         Mat mat = service.getById(this.matId);  | 
|         if (!Cools.isEmpty(mat)){  | 
|             return mat;  | 
|         }  | 
|         return null;  | 
|     }  | 
|   | 
|     public Wave getWave$(){  | 
|         WaveService service = SpringUtils.getBean(WaveService.class);  | 
|         Wave wave = service.getById(this.waveId);  | 
|         if (!Cools.isEmpty(wave)){  | 
|             return wave;  | 
|         }  | 
|         return null;  | 
|     }  | 
|   | 
|     public String getHostId$(){  | 
|         HostService service = SpringUtils.getBean(HostService.class);  | 
|         Host host = service.getById(this.hostId);  | 
|         if (!Cools.isEmpty(host)){  | 
|             return String.valueOf(host.getName());  | 
|         }  | 
|         return null;  | 
|     }  | 
|   | 
|     public String getStatus$(){  | 
|         if (null == this.status){ return null; }  | 
|         switch (this.status){  | 
|             case 1:  | 
|                 return "正常";  | 
|             case 0:  | 
|                 return "禁用";  | 
|             default:  | 
|                 return String.valueOf(this.status);  | 
|         }  | 
|     }  | 
|   | 
|     public String getDeleted$(){  | 
|         if (null == this.deleted){ return null; }  | 
|         switch (this.deleted){  | 
|             case 1:  | 
|                 return "是";  | 
|             case 0:  | 
|                 return "否";  | 
|             default:  | 
|                 return String.valueOf(this.deleted);  | 
|         }  | 
|     }  | 
|   | 
|     public String getCreateTime$(){  | 
|         if (Cools.isEmpty(this.createTime)){  | 
|             return "";  | 
|         }  | 
|         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);  | 
|     }  | 
|   | 
|     public String getCreateBy$(){  | 
|         UserService service = SpringUtils.getBean(UserService.class);  | 
|         User user = service.getById(this.createBy);  | 
|         if (!Cools.isEmpty(user)){  | 
|             return String.valueOf(user.getNickname());  | 
|         }  | 
|         return null;  | 
|     }  | 
|   | 
|     public String getUpdateTime$(){  | 
|         if (Cools.isEmpty(this.updateTime)){  | 
|             return "";  | 
|         }  | 
|         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);  | 
|     }  | 
|   | 
|     public String getUpdateBy$(){  | 
|         UserService service = SpringUtils.getBean(UserService.class);  | 
|         User user = service.getById(this.updateBy);  | 
|         if (!Cools.isEmpty(user)){  | 
|             return String.valueOf(user.getNickname());  | 
|         }  | 
|         return null;  | 
|     }  | 
|   | 
|     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 syncField(List<TaskDetlField> list) {  | 
|         ArrayList<String> keys = new ArrayList<>();  | 
|         Field[] fields = this.getClass().getFields();  | 
|         for (Field field : fields) {  | 
|             keys.add(field.getName());  | 
|         }  | 
|   | 
|         Map<String, Object> dynamicFields = new HashMap<>();  | 
|         for (TaskDetlField taskDetlField : list) {  | 
|             if (keys.contains(taskDetlField.getName())) {  | 
|                 continue;  | 
|             }  | 
|             dynamicFields.put(taskDetlField.getName(), taskDetlField.getValue());  | 
|         }  | 
|   | 
|         this.dynamicFields = 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);  | 
|     }  | 
|   | 
|     //获取索引字段  | 
|     public List<FieldParam> getUniqueField() {  | 
|         MatFieldService service = SpringUtils.getBean(MatFieldService.class);  | 
|   | 
|         List<FieldParam> list = new ArrayList<>();  | 
|         for (MatField matField : service.list(new LambdaQueryWrapper<MatField>().eq(MatField::getUnique, 1))) {  | 
|             FieldParam param = new FieldParam();  | 
|             param.setName(matField.getName());  | 
|             param.setValue(dynamicFields.get(matField.getName()));  | 
|             list.add(param);  | 
|         }  | 
|         return list;  | 
|     }  | 
|   | 
|   | 
| }  |