feat: 新增地材经纬度信息
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package mjkf.xinke.main.controller;
|
||||
|
||||
import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jgy.xxs.core.http.resp.HttpResponse;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@@ -10,6 +11,7 @@ import mjkf.xinke.main.dao.LocalMaterialCityAggrMapper;
|
||||
import mjkf.xinke.main.model.db.LocalMaterial;
|
||||
import mjkf.xinke.main.model.vo.LocalMaterialCityAggr;
|
||||
import mjkf.xinke.main.model.vo.LocalMaterialSummary;
|
||||
import mjkf.xinke.main.modular.location.service.LocationService;
|
||||
import mjkf.xinke.main.service.LocalMaterialService;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
@@ -37,6 +39,8 @@ public class LocalMaterialController {
|
||||
LocalMaterialService localMaterialService;
|
||||
@Resource
|
||||
LocalMaterialCityAggrMapper localMaterialCityAggrMapper;
|
||||
@Resource
|
||||
LocationService locationService;
|
||||
|
||||
@ApiOperation("获取地材列表")
|
||||
@GetMapping("/")
|
||||
@@ -54,11 +58,26 @@ public class LocalMaterialController {
|
||||
var query = localMaterialService.getQuery(date.getYear(), date.getMonth().getValue(), city, county, spec, name, null);
|
||||
query.orderByDesc(LocalMaterial::getName);
|
||||
List<LocalMaterial> data = localMaterialService.list(query);
|
||||
|
||||
// 按名称分组
|
||||
var groupMap = data.stream().collect(Collectors.groupingBy(item->item.getName(), Collectors.toList()));
|
||||
// 位置信息
|
||||
var locationMap = locationService.getNameMap();
|
||||
var result = new ArrayList<LocalMaterialSummary>();
|
||||
for (String key: groupMap.keySet()) {
|
||||
result.add(new LocalMaterialSummary(groupMap.get(key)));
|
||||
var summary = new LocalMaterialSummary(groupMap.get(key));
|
||||
// 补全经纬度
|
||||
for (var item : summary.getData()) {
|
||||
if (ObjectUtil.isEmpty(item.getPosition())) {
|
||||
continue;
|
||||
}
|
||||
var location = locationMap.get(item.getPosition());
|
||||
if (ObjectUtil.isEmpty(location)) {
|
||||
continue;
|
||||
}
|
||||
item.setLat(location.getLat());
|
||||
item.setLon(location.getLon());
|
||||
}
|
||||
result.add(summary);
|
||||
}
|
||||
// 排序
|
||||
result = (ArrayList<LocalMaterialSummary>) ListUtil.sortByProperty(result, "name");
|
||||
|
@@ -80,6 +80,14 @@ public class LocalMaterial extends Model<LocalMaterial> {
|
||||
@TableField("`POSITION`")
|
||||
private String position;
|
||||
|
||||
@ApiModelProperty("经度")
|
||||
@TableField(exist = false)
|
||||
private BigDecimal lon;
|
||||
|
||||
@ApiModelProperty("纬度")
|
||||
@TableField(exist = false)
|
||||
private BigDecimal lat;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@TableField("`REMARK`")
|
||||
private String remark;
|
||||
|
@@ -1,11 +1,13 @@
|
||||
package mjkf.xinke.main.model.vo;
|
||||
|
||||
import cn.hutool.core.util.HashUtil;
|
||||
import lombok.Data;
|
||||
import mjkf.xinke.main.model.db.LocalMaterial;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class LocalMaterialSummary {
|
||||
private String name;
|
||||
private String spec;
|
||||
|
@@ -23,6 +23,8 @@ import mjkf.xinke.main.modular.location.param.LocationPageParam;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 料场位置Service类
|
||||
@@ -64,6 +66,14 @@ public class LocationService extends ServiceImpl<BaseMapper<Location>, Location>
|
||||
return result;
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Map<String, Location> getNameMap() {
|
||||
var query = new LambdaQueryWrapper<Location>();
|
||||
var list = this.list(query);
|
||||
var result = list.stream().collect(Collectors.toMap(i->i.getName(), i->i));
|
||||
return result;
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Location edit(LocationEditParam locationEditParam) {
|
||||
Location location = this.queryEntity(locationEditParam.getId());
|
||||
|
Reference in New Issue
Block a user