package com.zy.asrs.wms.asrs.entity;
|
|
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.service.LocService;
|
import com.zy.asrs.wms.asrs.service.MatFieldService;
|
import com.zy.asrs.wms.asrs.service.MatService;
|
import com.zy.asrs.wms.system.entity.Host;
|
import com.zy.asrs.wms.system.entity.User;
|
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_loc_detl")
|
public class LocDetl implements Serializable {
|
|
private static final long serialVersionUID = 1L;
|
|
/**
|
* ID
|
*/
|
@ApiModelProperty(value= "ID")
|
@TableId(value = "id", type = IdType.AUTO)
|
private Long id;
|
|
/**
|
* 库位
|
*/
|
@ApiModelProperty(value= "库位")
|
private Long locId;
|
|
/**
|
* 库位号
|
*/
|
@ApiModelProperty(value= "库位号")
|
private String locNo;
|
|
/**
|
* 商品
|
*/
|
@ApiModelProperty(value= "商品")
|
private Long matId;
|
|
/**
|
* 商品编号
|
*/
|
@ApiModelProperty(value= "商品编号")
|
private String matnr;
|
|
/**
|
* 订单号
|
*/
|
@ApiModelProperty(value= "订单号")
|
private String orderNo;
|
|
/**
|
* 批号
|
*/
|
@ApiModelProperty(value= "批号")
|
private String batch;
|
|
/**
|
* 数量
|
*/
|
@ApiModelProperty(value= "数量")
|
private Double anfme;
|
|
/**
|
* 所属机构
|
*/
|
@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;
|
|
public LocDetl() {}
|
|
public LocDetl(Long locId,String locNo,Long matId,String matnr,String orderNo,String batch,Double anfme,Long hostId,Integer status,Integer deleted,Date createTime,Long createBy,Date updateTime,Long updateBy,String memo) {
|
this.locId = locId;
|
this.locNo = locNo;
|
this.matId = matId;
|
this.matnr = matnr;
|
this.orderNo = orderNo;
|
this.batch = batch;
|
this.anfme = anfme;
|
this.hostId = hostId;
|
this.status = status;
|
this.deleted = deleted;
|
this.createTime = createTime;
|
this.createBy = createBy;
|
this.updateTime = updateTime;
|
this.updateBy = updateBy;
|
this.memo = memo;
|
}
|
|
// LocDetl locDetl = new LocDetl(
|
// null, // 库位
|
// null, // 库位号[非空]
|
// null, // 物料
|
// null, // 商品编号
|
// null, // 订单号
|
// null, // 批号
|
// null, // 数量
|
// null, // 扩展
|
// null, // 所属机构
|
// null, // 状态
|
// null, // 是否删除
|
// null, // 添加时间
|
// null, // 添加人员
|
// null, // 修改时间
|
// null, // 修改人员
|
// null // 备注
|
// );
|
|
public String getLocId$(){
|
LocService service = SpringUtils.getBean(LocService.class);
|
Loc loc = service.getById(this.locId);
|
if (!Cools.isEmpty(loc)){
|
return String.valueOf(loc.getLocNo());
|
}
|
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.getId());
|
}
|
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<LocDetlField> 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 (LocDetlField locDetlField : list) {
|
if (keys.contains(locDetlField.getName())) {
|
continue;
|
}
|
dynamicFields.put(locDetlField.getName(), locDetlField.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<Map<String, Object>> getDynamicFieldsList() {
|
MatFieldService service = SpringUtils.getBean(MatFieldService.class);
|
List<MatField> matFields = service.list(new LambdaQueryWrapper<MatField>().eq(MatField::getFieldType, 1));
|
HashMap<String, Object> fieldMap = new HashMap<>();
|
for (MatField matField : matFields) {
|
fieldMap.put(matField.getName(), matField.getDescribe());
|
}
|
|
List<Map<String, Object>> list = new ArrayList<>();
|
for (Map.Entry<String, Object> entry : dynamicFields.entrySet()) {
|
HashMap<String, Object> map = new HashMap<>();
|
map.put("key", entry.getKey());
|
map.put("value", entry.getValue());
|
map.put("desc", fieldMap.get(entry.getKey()));
|
list.add(map);
|
}
|
return list;
|
}
|
|
}
|