| | |
| | | import java.util.Date; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; |
| | | import com.fasterxml.jackson.annotation.JsonProperty; |
| | | import com.vincent.rsf.server.manager.utils.AreasDeserializer; |
| | | import com.vincent.rsf.server.manager.utils.AreasSerializer; |
| | | import com.vincent.rsf.server.manager.utils.AreasTypeHandler; |
| | | import com.fasterxml.jackson.databind.annotation.JsonDeserialize; |
| | | import com.fasterxml.jackson.databind.annotation.JsonSerialize; |
| | | import com.vincent.rsf.server.system.entity.DictData; |
| | | import com.vincent.rsf.server.system.service.DictDataService; |
| | | import lombok.experimental.Accessors; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableLogic; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import com.vincent.rsf.framework.common.Cools; |
| | |
| | | import com.vincent.rsf.server.system.service.UserService; |
| | | import com.vincent.rsf.server.system.entity.User; |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.ArrayList; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Data |
| | | @Accessors(chain = true) |
| | |
| | | private String codeType; |
| | | |
| | | /** |
| | | * 可入库区 |
| | | * 可入库区(包含排序信息) |
| | | * 格式: [{"id": 1, "sort": 1}, {"id": 2, "sort": 2}] |
| | | */ |
| | | @ApiModelProperty(value = "可入库区") |
| | | @TableField(typeHandler = JacksonTypeHandler.class) |
| | | private List<Integer> areas; |
| | | @ApiModelProperty(value = "可入库区(包含排序信息)") |
| | | @TableField(typeHandler = AreasTypeHandler.class) |
| | | @JsonDeserialize(using = AreasDeserializer.class) |
| | | @JsonSerialize(using = AreasSerializer.class) |
| | | private List<Map<String, Object>> areas; |
| | | |
| | | /** |
| | | * 是否删除 1: 是 0: 否 |
| | |
| | | public BasContainer() { |
| | | } |
| | | |
| | | public BasContainer(Long containerType, String codeType, List<Integer> areas, Integer deleted, Integer status, |
| | | public BasContainer(Long containerType, String codeType, List<Map<String, Object>> areas, Integer deleted, Integer status, |
| | | Integer tenantId, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo) { |
| | | this.containerType = containerType; |
| | | this.codeType = codeType; |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 获取排序后的库区ID列表(向后兼容方法) |
| | | * @return 排序后的库区ID列表 |
| | | */ |
| | | public List<Integer> getAreasIds() { |
| | | if (Cools.isEmpty(this.areas)) { |
| | | return new ArrayList<>(); |
| | | } |
| | | return this.areas.stream() |
| | | .sorted((a, b) -> { |
| | | Integer sortA = a.get("sort") != null ? ((Number) a.get("sort")).intValue() : Integer.MAX_VALUE; |
| | | Integer sortB = b.get("sort") != null ? ((Number) b.get("sort")).intValue() : Integer.MAX_VALUE; |
| | | return sortA.compareTo(sortB); |
| | | }) |
| | | .map(area -> { |
| | | Object id = area.get("id"); |
| | | if (id instanceof Number) { |
| | | return ((Number) id).intValue(); |
| | | } |
| | | return null; |
| | | }) |
| | | .filter(id -> id != null) |
| | | .collect(Collectors.toList()); |
| | | } |
| | | |
| | | /** |
| | | * 对areas按sort字段进行排序 |
| | | */ |
| | | public void sortAreas() { |
| | | if (this.areas != null && !this.areas.isEmpty()) { |
| | | this.areas.sort((a, b) -> { |
| | | Integer sortA = a.get("sort") != null ? ((Number) a.get("sort")).intValue() : Integer.MAX_VALUE; |
| | | Integer sortB = b.get("sort") != null ? ((Number) b.get("sort")).intValue() : Integer.MAX_VALUE; |
| | | return sortA.compareTo(sortB); |
| | | }); |
| | | } |
| | | } |
| | | |
| | | } |