feat: 新增按编码查询地材的功能

This commit is contained in:
han0
2025-03-07 10:19:59 +08:00
parent 15c25e895c
commit cabf30bc2e
5 changed files with 20 additions and 17 deletions

View File

@@ -6,7 +6,6 @@ import io.swagger.annotations.ApiParam;
import mjkf.xinke.main.common.http.FuHttpResponse;
import mjkf.xinke.main.constant.PricePublishType;
import mjkf.xinke.main.model.db.DataAdjacent;
import mjkf.xinke.main.model.db.LocalMaterial;
import mjkf.xinke.main.model.db.PricePublish;
import mjkf.xinke.main.service.DataAdjacentService;
import mjkf.xinke.main.service.LocalMaterialService;

View File

@@ -50,12 +50,13 @@ public class LocalMaterialController {
@ApiParam(value = "地市") @RequestParam(value="city", required=false) String city,
@ApiParam(value = "区县") @RequestParam(value="county", required=false) String county,
@ApiParam(value = "规格") @RequestParam(value="spec", required=false) String spec,
@ApiParam(value = "名称") @RequestParam(value="name", required=false) String name
@ApiParam(value = "名称") @RequestParam(value="name", required=false) String name,
@ApiParam(value = "材料id") @RequestParam(value="materialId", required=false) String materialId
) {
// 指定月份无数据时选用最新数据
var date = localMaterialService.checkDate(year, month);
var query = localMaterialService.getQuery(date.getYear(), date.getMonth().getValue(), city, county, spec, name, null);
var query = localMaterialService.getQuery(date.getYear(), date.getMonth().getValue(), city, county, spec, name, null, materialId);
query.orderByDesc(LocalMaterial::getName);
List<LocalMaterial> data = localMaterialService.list(query);
// 按名称分组

View File

@@ -11,8 +11,6 @@ import java.math.BigDecimal;
import java.time.LocalDate;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
@@ -33,7 +31,7 @@ import org.apache.poi.ss.usermodel.CellType;
@Setter
@TableName("LOCAL_MATERIAL")
@ApiModel(value = "LocalMaterial对象", description = "地材")
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
//@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class LocalMaterial extends Model<LocalMaterial> {
private static final long serialVersionUID = 1L;

View File

@@ -9,6 +9,7 @@ import java.util.List;
@Data
public class LocalMaterialSummary {
private String materialId;
private String name;
private String spec;
private String unit;
@@ -17,19 +18,20 @@ public class LocalMaterialSummary {
public LocalMaterialSummary() {}
public LocalMaterialSummary(List<LocalMaterial> list) {
this.materialId = list.get(0).getMaterialId();
this.name = list.get(0).getName();
this.spec = list.get(0).getSpec();
this.unit = list.get(0).getUnit();
this.data = list;
LocalMaterial avg_item = new LocalMaterial();
avg_item.setName(list.get(0).getName());
avg_item.setSpec(list.get(0).getSpec());
avg_item.setUnit(list.get(0).getUnit());
avg_item.setCity(list.get(0).getCity());
Integer id = Math.abs(HashUtil.javaDefaultHash(avg_item.getCity() + avg_item.getName() + avg_item.getSpec()));
avg_item.setId(id);
avg_item.setCounty("城区");
avg_item.setPrice(BigDecimal.valueOf(list.stream().mapToDouble(item->item.getPrice().doubleValue()).average().orElse(0D)));
this.data.add(avg_item);
// LocalMaterial avg_item = new LocalMaterial();
// avg_item.setName(list.get(0).getName());
// avg_item.setSpec(list.get(0).getSpec());
// avg_item.setUnit(list.get(0).getUnit());
// avg_item.setCity(list.get(0).getCity());
// Integer id = Math.abs(HashUtil.javaDefaultHash(avg_item.getCity() + avg_item.getName() + avg_item.getSpec()));
// avg_item.setId(id);
// avg_item.setCounty("城区");
// avg_item.setPrice(BigDecimal.valueOf(list.stream().mapToDouble(item->item.getPrice().doubleValue()).average().orElse(0D)));
// this.data.add(avg_item);
}
}

View File

@@ -83,7 +83,7 @@ public class LocalMaterialService extends DataService<BaseMapper<LocalMaterial>,
}
public LambdaQueryWrapper<LocalMaterial> getQuery(Integer year, Integer month, String city, String county, String spec, String name, Integer type) {
public LambdaQueryWrapper<LocalMaterial> getQuery(Integer year, Integer month, String city, String county, String spec, String name, Integer type, String materialId) {
var query = this.getQuery(null, year, month, null, name, type);
if (city != null) {
query.like(LocalMaterial::getCity, city);
@@ -94,6 +94,9 @@ public class LocalMaterialService extends DataService<BaseMapper<LocalMaterial>,
if(spec!= null) {
query.like(LocalMaterial::getSpec, spec);
}
if(materialId!= null) {
query.like(LocalMaterial::getMaterialId, materialId);
}
return query;
}