Files
material-manage-service/src/main/java/mjkf/xinke/main/service/DataFujianService.java
2024-07-12 15:27:05 +08:00

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;
}
}