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