80 lines
2.9 KiB
Java
80 lines
2.9 KiB
Java
package mjkf.xinke.main.service;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import mjkf.xinke.main.model.db.DataFujian;
|
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|
import mjkf.xinke.main.model.db.PriceResult;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import java.time.LocalDate;
|
|
import java.util.Map;
|
|
|
|
|
|
@Service
|
|
public class DataFujianService extends DataService<BaseMapper<DataFujian>, DataFujian> {
|
|
|
|
public LambdaQueryWrapper<DataFujian> getQuery(String keyWord, Integer year, Integer month, String materialId, String name, Integer type) {
|
|
LambdaQueryWrapper<DataFujian> query = new LambdaQueryWrapper<>();
|
|
if (keyWord != null) {
|
|
query.and(e -> e.like(DataFujian::getName, keyWord));
|
|
}
|
|
if (year != null) {
|
|
query.eq(DataFujian::getYear, year);
|
|
}
|
|
if (month != null) {
|
|
query.eq(DataFujian::getMonth, month);
|
|
}
|
|
if (name != null) {
|
|
query.like(DataFujian::getName, name);
|
|
}
|
|
if (materialId != null) {
|
|
// todo
|
|
// query.eq(SteelSection::getMaterialId, materialId);
|
|
}
|
|
return query;
|
|
}
|
|
|
|
public LambdaQueryWrapper<DataFujian> indexQuery(DataFujian data) {
|
|
LambdaQueryWrapper<DataFujian> query = new LambdaQueryWrapper<>();
|
|
query.eq(DataFujian::getYear, data.getYear());
|
|
query.eq(DataFujian::getMonth, data.getMonth());
|
|
query.eq(DataFujian::getCity, data.getCity());
|
|
query.eq(DataFujian::getName, data.getName());
|
|
query.eq(DataFujian::getSpec, data.getSpec());
|
|
return query;
|
|
}
|
|
|
|
public LambdaQueryWrapper<DataFujian> filterQuery(LambdaQueryWrapper<DataFujian> query) {
|
|
return query;
|
|
}
|
|
|
|
public DataFujian getMapGroupingBy(Map item) {
|
|
var o = new DataFujian();
|
|
o.setYear(Integer.valueOf(item.get("year").toString()));
|
|
o.setMonth(Integer.valueOf(item.get("month").toString()));
|
|
o.setCity(item.get("city").toString());
|
|
o.setName(item.get("name").toString());
|
|
o.setSpec(item.get("spec").toString());
|
|
return o;
|
|
}
|
|
|
|
public LambdaQueryWrapper<DataFujian> trendQuery(Object obj, Integer year, Integer month) {
|
|
var data = (DataFujian) obj;
|
|
LambdaQueryWrapper<DataFujian> query = new LambdaQueryWrapper<>();
|
|
query.eq(DataFujian::getName, data.getName());
|
|
query.eq(DataFujian::getCity, data.getCity());
|
|
query.eq(DataFujian::getSpec, data.getSpec());
|
|
var endDate = LocalDate.of(year, month, 1).plusMonths(1);
|
|
var startDate = endDate.minusYears(1);
|
|
query.and(e -> e
|
|
.eq(DataFujian::getYear, startDate.getYear())
|
|
.between(DataFujian::getMonth, startDate.getMonth(), 12).or()
|
|
.eq(DataFujian::getYear, endDate.getYear())
|
|
.between(DataFujian::getMonth, 1, endDate.getMonth())
|
|
);
|
|
return query;
|
|
}
|
|
|
|
}
|
|
|