feat: 新增上传采集网络价格数据

This commit is contained in:
han0
2024-07-08 16:39:40 +08:00
parent 9c91f40d91
commit 46e648fc8c
29 changed files with 499 additions and 50 deletions

View File

@@ -1,6 +1,8 @@
package mjkf.xinke.main.constant;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MaterialTaskType {
// 钢筋网
@@ -12,9 +14,11 @@ public class MaterialTaskType {
@Deprecated public static final Integer BAIINFO_ASPHALT_DOMESTIC = 201; // 国产沥青
@Deprecated public static final Integer BAIINFO_ASPHALT_IMPORTED = 202; // 进口沥青
@Deprecated public static final Integer BAIINFO_CEMENT = 203; // 水泥
// 发改委
@Deprecated public static final Integer OIL = 801; // 汽柴油
// 三明钢铁
public static final Integer SANMING_STEEL = 301;
// 材料信息
// 交通局
public static final Integer FUZHOU_TRANSPORTATION_BUREAU = 40101; // todo-1 福州交通局
public static final Integer LONGYAN_TRANSPORTATION_BUREAU = 40102; // todo-1 龙岩交通局
public static final Integer NANPING_TRANSPORTATION_BUREAU = 40103; // todo-1 南平交通局
@@ -26,7 +30,7 @@ public class MaterialTaskType {
public static final Integer XIAMEN_TRANSPORTATION_BUREAU = 40109; // todo-1 厦门交通局
public static final Integer ZHANGZHOU_TRANSPORTATION_BUREAU = 40110; // todo-1 漳州交通局
public static final Integer ZHANGZHOUKFQ_TRANSPORTATION_BUREAU = 40111; // todo-1 漳州开发区交通局
// 公路局
public static final Integer FUZHOU_HIGHWAY_BUREAU = 40201; // todo-1 福州公路局
public static final Integer LONGYAN_HIGHWAY_BUREAU = 40202; // todo-1 龙岩公路局
public static final Integer NANPING_HIGHWAY_BUREAU = 40203; // todo-1 南平公路局
@@ -57,8 +61,6 @@ public class MaterialTaskType {
public static final Integer OTHER_JIANGXI = 604; // todo-2 江西
// 住建厅
public static final Integer FUJIAN_DEPARTMENT = 701;
// 发改委
@Deprecated public static final Integer OIL = 801; // 汽柴油
// 地材(废弃)
@Deprecated public static final Integer LOCAL_MEDIUM_COARSE_SAND = 901; // 中粗砂
@Deprecated public static final Integer LOCAL_MECHANISM_SAND = 902; // 机制砂
@@ -69,7 +71,6 @@ public class MaterialTaskType {
@Deprecated public static final Integer LOCAL_CLAY = 907; // 粘土
// 辅材
public static final Integer ASPHALT_MODIFIER = 1001; // 改性剂
// 新地材
public static final Integer LOCAL_FUZHOU = 1101; // 福州
public static final Integer LOCAL_LONGYAN = 1102; // 龙岩
@@ -79,12 +80,31 @@ public class MaterialTaskType {
public static final Integer LOCAL_QUANZHOU = 1106; // 泉州
public static final Integer LOCAL_SANMING = 1107; // 三明
public static final Integer LOCAL_ZHANGZHOU = 1108; // 漳州
// 网络价格
public static final Integer NETWORK = 1201; // todo-1 网络价格
public static final Integer FUZHOU_NETWORK = 1201; // 福州网络价格
public static final Integer LONGYAN_NETWORK = 1202; // 龙岩网络价格
public static final Integer NANPING_NETWORK = 1203; // 南平网络价格
public static final Integer NINGDE_NETWORK = 1204; // 宁德网络价格
public static final Integer PINTAN_NETWORK = 1205; // 平潭网络价格
public static final Integer PUTIAN_NETWORK = 1206; // 莆田网络价格
public static final Integer QUANZHOU_NETWORK = 1207; // 泉州网络价格
public static final Integer SANMING_NETWORK = 1208; // 三明网络价格
public static final Integer XIAMEN_NETWORK = 1209; // 厦门网络价格
public static final Integer ZHANGZHOU_NETWORK = 1210; // 漳州网络价格
public static final Integer ZHANGZHOUKFQ_NETWORK = 1211; // 漳州开发区网络价格
public static final List<Integer> list = List.of(
NETWORK,
FUZHOU_NETWORK,
LONGYAN_NETWORK,
NANPING_NETWORK,
NINGDE_NETWORK,
PINTAN_NETWORK,
PUTIAN_NETWORK,
QUANZHOU_NETWORK,
SANMING_NETWORK,
XIAMEN_NETWORK,
ZHANGZHOU_NETWORK,
ZHANGZHOUKFQ_NETWORK,
SANMING_STEEL,
@@ -141,12 +161,29 @@ public class MaterialTaskType {
LOCAL_ZHANGZHOU
);
public static String getRegion (Integer type) {
var map = new HashMap<Integer, String>();
map.put(1, "福州");
map.put(2, "龙岩");
map.put(3, "南平");
map.put(4, "宁德");
map.put(5, "平潭");
map.put(6, "莆田");
map.put(7, "泉州");
map.put(8, "三明");
map.put(9, "厦门");
map.put(10, "漳州");
map.put(11, "漳州开发区");
var i = type % 100;
var region = map.get(i);
return region;
}
/**
* 是否来源爬虫
*/
public static boolean isFromSpider(Integer type) {
var dataFromSpiderTypes = List.of(
NETWORK,
OIL,
OTHER_ZHEJIANG,
OTHER_GIANLZHOU,
@@ -173,11 +210,89 @@ public class MaterialTaskType {
);
return dataFromSpiderTypes.contains(type);
}
/**
* 是否网络价格
*/
public static boolean isNetworkPrice(Integer type) {
var types = List.of(
FUZHOU_NETWORK,
LONGYAN_NETWORK,
NANPING_NETWORK,
NINGDE_NETWORK,
PINTAN_NETWORK,
PUTIAN_NETWORK,
QUANZHOU_NETWORK,
SANMING_NETWORK
);
return types.contains(type);
}
/**
* 是否交通局
*/
public static boolean isTransportationBureau(Integer type) {
var types = List.of(
FUZHOU_TRANSPORTATION_BUREAU,
LONGYAN_TRANSPORTATION_BUREAU,
NANPING_TRANSPORTATION_BUREAU,
NINGDE_TRANSPORTATION_BUREAU,
PINTAN_TRANSPORTATION_BUREAU,
PUTIAN_TRANSPORTATION_BUREAU,
QUANZHOU_TRANSPORTATION_BUREAU,
SANMING_TRANSPORTATION_BUREAU,
XIAMEN_TRANSPORTATION_BUREAU,
ZHANGZHOU_TRANSPORTATION_BUREAU,
ZHANGZHOUKFQ_TRANSPORTATION_BUREAU
);
return types.contains(type);
}
/**
* 是否公路局
*/
public static boolean isHighwayBureau(Integer type) {
var types = List.of(
FUZHOU_HIGHWAY_BUREAU,
LONGYAN_HIGHWAY_BUREAU,
NANPING_HIGHWAY_BUREAU,
NINGDE_HIGHWAY_BUREAU,
PINTAN_HIGHWAY_BUREAU,
PUTIAN_HIGHWAY_BUREAU,
QUANZHOU_HIGHWAY_BUREAU,
SANMING_HIGHWAY_BUREAU,
XIAMEN_HIGHWAY_BUREAU,
ZHANGZHOU_HIGHWAY_BUREAU,
ZHANGZHOUKFQ_HIGHWAY_BUREAU
);
return types.contains(type);
}
/**
* 是否调查表
*/
public static boolean isSurvey(Integer type) {
var types = List.of(
FUZHOU_SURVEY,
LONGYAN_SURVEY,
NANPING_SURVEY,
NINGDE_SURVEY,
PINTAN_SURVEY,
PUTIAN_SURVEY,
QUANZHOU_SURVEY,
SANMING_SURVEY,
XIAMEN_SURVEY,
ZHANGZHOU_SURVEY,
ZHANGZHOUKFQ_SURVEY
);
return types.contains(type);
}
/**
* todo-1 数据展示模块 地市暂不切换
* todo-1 十一个地市接口
* todo-1 采集结果“产地”改成“品牌产商”
* todo-1 传采集数据网络价格树变动
* todo-0 传采集数据网络价格计算
* todo-1 趋势图一年每月打点
* todo-1 项目材料价格预算“最高(低)总金额”携带上价格的月份
* todo-1 项目材料价格预算计算数值没有小数点

View File

@@ -48,7 +48,7 @@ public class LocalMaterialController {
@ApiParam(value = "规格") @RequestParam(value="spec", required=false) String spec,
@ApiParam(value = "名称") @RequestParam(value="name", required=false) String name
) {
var query = localMaterialService.getQuery(year, month, city, county, spec, name);
var query = localMaterialService.getQuery(year, month, city, county, spec, name, null);
query.orderByDesc(LocalMaterial::getName);
List<LocalMaterial> data = localMaterialService.list(query);

View File

@@ -0,0 +1,16 @@
package mjkf.xinke.main.dao;
import mjkf.xinke.main.model.db.DataNetwork;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 网络价格 Mapper 接口
* </p>
*
* @author han0
* @since 2024-07-08
*/
public interface DataNetworkMapper extends BaseMapper<DataNetwork> {
}

View File

@@ -0,0 +1,112 @@
package mjkf.xinke.main.model.db;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import mjkf.xinke.main.constant.MaterialTaskType;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
/**
* <p>
* 网络价格
* </p>
*
* @author han0
* @since 2024-07-08
*/
@Getter
@Setter
@TableName("DATA_NETWORK")
@ApiModel(value = "DataNetwork对象", description = "网络价格")
public class DataNetwork extends Model<DataNetwork> {
private static final long serialVersionUID = 1L;
@TableId(value = "ID", type = IdType.AUTO)
private Integer id;
@ApiModelProperty("材料id")
@TableField("MATERIAL_ID")
private String materialId;
@ApiModelProperty("规格")
@TableField("SPEC")
private String spec;
@ApiModelProperty("单位")
@TableField("UNIT")
private String unit;
@ApiModelProperty("品牌")
@TableField("BRAND")
private String brand;
@ApiModelProperty("名称")
@TableField("`NAME`")
private String name;
@ApiModelProperty("价格")
@TableField("PRICE")
private BigDecimal price;
@ApiModelProperty("信息来源")
@TableField("`SOURCE`")
private String source;
@ApiModelProperty("备注")
@TableField("REMARK")
private String remark;
@ApiModelProperty("日期")
@TableField("`DATE`")
private LocalDate date;
@ApiModelProperty("地区")
@TableField("REGION")
private String region;
@Override
public Serializable pkVal() {
return this.id;
}
public DataNetwork () {}
public DataNetwork (Row row, MaterialTask task) {
var policy = Row.MissingCellPolicy.CREATE_NULL_AS_BLANK;
row.getCell(0, policy).setCellType(CellType.STRING);
this.setMaterialId(row.getCell(0, policy).getStringCellValue());
this.setName(row.getCell(1, policy).getStringCellValue());
this.setSpec(row.getCell(2, policy).getStringCellValue());
this.setUnit(row.getCell(3, policy).getStringCellValue());
this.setBrand(row.getCell(4, policy).getStringCellValue());
this.setPrice(BigDecimal.valueOf(row.getCell(5, policy).getNumericCellValue()));
this.setSource(row.getCell(6, policy).getStringCellValue());
this.setRemark(row.getCell(7, policy).getStringCellValue());
this.setDate(LocalDate.of(task.getYear(), task.getMonth(), 1)); // 日期从任务获取
this.setRegion(MaterialTaskType.getRegion(task.getType()));
}
public DataNetwork update(DataNetwork item) {
this.setMaterialId(item.getMaterialId());
this.setSpec(item.getSpec());
this.setUnit(item.getUnit());
this.setBrand(item.getBrand());
this.setName(item.getName());
this.setPrice(item.getPrice());
this.setSource(item.getSource());
this.setRemark(item.getRemark());
return this;
}
}

View File

@@ -28,7 +28,7 @@ public class AsphaltDomesticService extends DataService<BaseMapper<AsphaltDomest
return query;
}
public LambdaQueryWrapper<AsphaltDomestic> getQuery(String keyWord, Integer year, Integer month, String materialId, String name) {
public LambdaQueryWrapper<AsphaltDomestic> getQuery(String keyWord, Integer year, Integer month, String materialId, String name, Integer type) {
LambdaQueryWrapper<AsphaltDomestic> query = new LambdaQueryWrapper<>();
if (keyWord != null) {
query.and(e -> e

View File

@@ -28,7 +28,7 @@ public class AsphaltImportedService extends DataService<BaseMapper<AsphaltImport
return query;
}
public LambdaQueryWrapper<AsphaltImported> getQuery(String keyWord, Integer year, Integer month, String materialId, String name) {
public LambdaQueryWrapper<AsphaltImported> getQuery(String keyWord, Integer year, Integer month, String materialId, String name, Integer type) {
LambdaQueryWrapper<AsphaltImported> query = new LambdaQueryWrapper<>();
if (keyWord != null) {
query.and(e -> e

View File

@@ -27,7 +27,7 @@ public class AsphaltModifierService extends DataService<BaseMapper<AsphaltModifi
return query;
}
public LambdaQueryWrapper<AsphaltModifier> getQuery(String keyWord, Integer year, Integer month, String materialId, String name) {
public LambdaQueryWrapper<AsphaltModifier> getQuery(String keyWord, Integer year, Integer month, String materialId, String name, Integer type) {
LambdaQueryWrapper<AsphaltModifier> query = new LambdaQueryWrapper<>();
if (keyWord != null) {
query.and(e -> e

View File

@@ -34,7 +34,7 @@ public class CementService extends DataService<BaseMapper<Cement>, Cement> {
return query;
}
public LambdaQueryWrapper<Cement> getQuery(String keyWord, Integer year, Integer month, String materialId, String name) {
public LambdaQueryWrapper<Cement> getQuery(String keyWord, Integer year, Integer month, String materialId, String name, Integer type) {
LambdaQueryWrapper<Cement> query = new LambdaQueryWrapper<>();
if (keyWord != null) {
query.and(e -> e

View File

@@ -12,7 +12,7 @@ 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) {
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));

View File

@@ -11,7 +11,7 @@ import java.util.Map;
@Service
public class DataGuangdongService extends DataService<BaseMapper<DataGuangdong>, DataGuangdong> {
public LambdaQueryWrapper<DataGuangdong> getQuery(String keyWord, Integer year, Integer month, String materialId, String name) {
public LambdaQueryWrapper<DataGuangdong> getQuery(String keyWord, Integer year, Integer month, String materialId, String name, Integer type) {
LambdaQueryWrapper<DataGuangdong> query = new LambdaQueryWrapper<>();
if (keyWord != null) {
query.and(e -> e.like(DataGuangdong::getName, keyWord));

View File

@@ -0,0 +1,66 @@
package mjkf.xinke.main.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import mjkf.xinke.main.constant.MaterialTaskType;
import mjkf.xinke.main.model.db.DataNetwork;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.Map;
@Service
public class DataNetworkService extends DataService<BaseMapper<DataNetwork>, DataNetwork> {
public LambdaQueryWrapper<DataNetwork> indexQuery(DataNetwork data) {
LambdaQueryWrapper<DataNetwork> query = new LambdaQueryWrapper<>();
query.eq(DataNetwork::getName, data.getName());
query.eq(DataNetwork::getSpec, data.getSpec());
query.eq(DataNetwork::getDate, data.getDate());
query.eq(DataNetwork::getRegion, data.getRegion());
return query;
}
public LambdaQueryWrapper<DataNetwork> filterQuery(LambdaQueryWrapper<DataNetwork> query) {
return query;
}
public LambdaQueryWrapper<DataNetwork> getQuery(String keyWord, Integer year, Integer month, String materialId, String name, Integer type) {
LambdaQueryWrapper<DataNetwork> query = new LambdaQueryWrapper<>();
if (keyWord != null) {
query.and(e -> e
.like(DataNetwork::getName, keyWord)
);
}
if (month != null) {
var date = LocalDate.of(year, month, 1);
query.between(DataNetwork::getDate, date, date.plusMonths(1));
}
if (name != null) {
query.like(DataNetwork::getName, name);
}
if (materialId != null) {
query.eq(DataNetwork::getMaterialId, materialId);
}
if (type != null) {
query.eq(DataNetwork::getRegion, MaterialTaskType.getRegion(type));
}
return query;
}
public DataNetwork getMapGroupingBy(Map item) {
var o = new DataNetwork();
o.setName(item.get("name").toString());
return o;
}
public LambdaQueryWrapper<DataNetwork> trendQuery(Object obj, Integer year, Integer month) {
var data = (DataNetwork) obj;
LambdaQueryWrapper<DataNetwork> query = new LambdaQueryWrapper<>();
query.eq(DataNetwork::getName, data.getName());
var date = LocalDate.of(year, month, 1);
query.between(DataNetwork::getDate, date, date.plusMonths(1));
return query;
}
}

View File

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import mjkf.xinke.main.model.db.MaterialTask;
import org.apache.poi.ss.usermodel.Row;
import java.lang.reflect.Method;
@@ -24,16 +25,28 @@ public abstract class DataService<M extends BaseMapper<T>, T> extends ServiceImp
}
}
/**
* 唯一性查询
*/
abstract LambdaQueryWrapper<T> indexQuery(T data);
/**
* 展示展示过滤
*/
abstract LambdaQueryWrapper<T> filterQuery(LambdaQueryWrapper<T> query);
abstract LambdaQueryWrapper<T> getQuery(String keyWord, Integer year, Integer month, String materialId, String name);
/**
* 数据查询
*/
abstract LambdaQueryWrapper<T> getQuery(String keyWord, Integer year, Integer month, String materialId, String name, Integer type);
public List<T> saveOrUpdateByIndexBatch(List<Row> rows) throws Exception {
/**
* 批量更新
*/
public List<T> saveOrUpdateByIndexBatch(List<Row> rows, MaterialTask task) throws Exception {
var list = rows.stream().map(item -> {
try {
return (T) this.getEntityClass().getConstructor(Row.class).newInstance(item);
return (T) this.getEntityClass().getConstructor(Row.class, MaterialTask.class).newInstance(item, task);
} catch (Exception e) {
e.printStackTrace();
return null;
@@ -47,6 +60,9 @@ public abstract class DataService<M extends BaseMapper<T>, T> extends ServiceImp
return list;
}
/**
* 获取实体类
*/
public Class<T> getEntityClass() {
ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass();
Class<T> clazz = (Class<T>) pt.getActualTypeArguments()[1];

View File

@@ -13,7 +13,7 @@ import java.util.Map;
public class DataZhejiangService extends DataService<BaseMapper<DataZhejiang>, DataZhejiang>{
public LambdaQueryWrapper<DataZhejiang> getQuery(String keyWord, Integer year, Integer month, String materialId, String name) {
public LambdaQueryWrapper<DataZhejiang> getQuery(String keyWord, Integer year, Integer month, String materialId, String name, Integer type) {
LambdaQueryWrapper<DataZhejiang> query = new LambdaQueryWrapper<>();
if (keyWord != null) {
query.and(e -> e.like(DataZhejiang::getName, keyWord));

View File

@@ -28,7 +28,7 @@ public class FujianSurveyService extends DataService<BaseMapper<FujianSurvey>, F
return query;
}
public LambdaQueryWrapper<FujianSurvey> getQuery(String keyWord, Integer year, Integer month, String materialId, String name) {
public LambdaQueryWrapper<FujianSurvey> getQuery(String keyWord, Integer year, Integer month, String materialId, String name, Integer type) {
LambdaQueryWrapper<FujianSurvey> query = new LambdaQueryWrapper<>();
if (keyWord != null) {
query.and(e -> e

View File

@@ -29,7 +29,7 @@ public class FuzhouHighwayBureauService extends DataService<BaseMapper<FuzhouHig
return query;
}
public LambdaQueryWrapper<FuzhouHighwayBureau> getQuery(String keyWord, Integer year, Integer month, String materialId, String name) {
public LambdaQueryWrapper<FuzhouHighwayBureau> getQuery(String keyWord, Integer year, Integer month, String materialId, String name, Integer type) {
LambdaQueryWrapper<FuzhouHighwayBureau> query = new LambdaQueryWrapper<>();
if (keyWord != null) {
query.and(e -> e

View File

@@ -30,7 +30,7 @@ public class FuzhouTransportationBureauService extends DataService<BaseMapper<Fu
return query;
}
public LambdaQueryWrapper<FuzhouTransportationBureau> getQuery(String keyWord, Integer year, Integer month, String materialId, String name) {
public LambdaQueryWrapper<FuzhouTransportationBureau> getQuery(String keyWord, Integer year, Integer month, String materialId, String name, Integer type) {
LambdaQueryWrapper<FuzhouTransportationBureau> query = new LambdaQueryWrapper<>();
if (keyWord != null) {
query.and(e -> e

View File

@@ -29,7 +29,7 @@ public class LocalMaterialService extends DataService<BaseMapper<LocalMaterial>,
return query;
}
public LambdaQueryWrapper<LocalMaterial> getQuery(String keyWord, Integer year, Integer month, String materialId, String name) {
public LambdaQueryWrapper<LocalMaterial> getQuery(String keyWord, Integer year, Integer month, String materialId, String name, Integer type) {
LambdaQueryWrapper<LocalMaterial> query = new LambdaQueryWrapper<>();
if (keyWord != null) {
query.and(e -> e
@@ -54,8 +54,8 @@ public class LocalMaterialService extends DataService<BaseMapper<LocalMaterial>,
}
public LambdaQueryWrapper<LocalMaterial> getQuery(Integer year, Integer month, String city, String county, String spec, String name) {
var query = this.getQuery(null, year, month, null, name);
public LambdaQueryWrapper<LocalMaterial> getQuery(Integer year, Integer month, String city, String county, String spec, String name, Integer type) {
var query = this.getQuery(null, year, month, null, name, type);
if (city != null) {
query.like(LocalMaterial::getCity, city);
}

View File

@@ -45,6 +45,8 @@ public class MaterialResultService {
DataGuangdongService dataGuangdongService;
@Resource
DataFujianService dataFujianService;
@Resource
DataNetworkService dataNetworkService;
/**
* 基础查询
@@ -67,9 +69,9 @@ public class MaterialResultService {
}
Method getQuery = service.getClass().getMethod(
"getQuery",
String.class, Integer.class, Integer.class, String.class, String.class
String.class, Integer.class, Integer.class, String.class, String.class, Integer.class
);
query = (LambdaQueryWrapper) getQuery.invoke(service, keyWord, year, month, materialId, name);
query = (LambdaQueryWrapper) getQuery.invoke(service, keyWord, year, month, materialId, name, type);
return query;
}
@@ -170,8 +172,10 @@ public class MaterialResultService {
service = oilService;
} else if (MaterialTaskType.isLocalMaterial(type)) {
service = localMaterialService;
} else if (MaterialTaskType.isNetworkPrice(type)) {
service = dataNetworkService;
} else {
System.out.println("MaterialResultService.getService | 未找到对应的数据处理 Service | type: " + type);
}
return service;
}

View File

@@ -52,6 +52,8 @@ public class MaterialTaskService extends ServiceImpl<BaseMapper<MaterialTask>, M
LocalMaterialService localMaterialService;
@Resource
AsphaltModifierService asphaltModifierService;
@Resource
DataNetworkService dataNetworkService;
@Override
public boolean save(MaterialTask data) {
@@ -79,6 +81,7 @@ public class MaterialTaskService extends ServiceImpl<BaseMapper<MaterialTask>, M
}
private boolean importData(MaterialTask data) throws Exception {
System.out.println("MaterialTaskService.importData | 导入数据 | task_id: " + data.getId());
// 获取文件
DevFile devFile = devFileService.queryEntity(data.getFile());
File file = FileUtil.file(devFile.getStoragePath());
@@ -87,32 +90,35 @@ public class MaterialTaskService extends ServiceImpl<BaseMapper<MaterialTask>, M
// 导入
List list;
if (data.getType().equals(MaterialTaskType.MY_STEEL_REBAR)) {
list = steelRebarService.saveOrUpdateByIndexBatch(rows);
list = steelRebarService.saveOrUpdateByIndexBatch(rows, data);
} else if (data.getType().equals(MaterialTaskType.MY_STEEL_SECTION)) {
list = steelSectionService.saveOrUpdateByIndexBatch(rows);
list = steelSectionService.saveOrUpdateByIndexBatch(rows, data);
} else if (data.getType().equals(MaterialTaskType.MY_STEEL_STRAND)) {
list = steelStrandService.saveOrUpdateByIndexBatch(rows);
list = steelStrandService.saveOrUpdateByIndexBatch(rows, data);
} else if (data.getType().equals(MaterialTaskType.MY_STEEL_PLATE)) {
list = steelPlateService.saveOrUpdateByIndexBatch(rows);
list = steelPlateService.saveOrUpdateByIndexBatch(rows, data);
} else if (data.getType().equals(MaterialTaskType.BAIINFO_ASPHALT_DOMESTIC)) {
list = asphaltDomesticService.saveOrUpdateByIndexBatch(rows);
list = asphaltDomesticService.saveOrUpdateByIndexBatch(rows, data);
} else if (data.getType().equals(MaterialTaskType.BAIINFO_ASPHALT_IMPORTED)) {
list = asphaltImportedService.saveOrUpdateByIndexBatch(rows);
list = asphaltImportedService.saveOrUpdateByIndexBatch(rows, data);
} else if (data.getType().equals(MaterialTaskType.BAIINFO_CEMENT)) {
list = cementService.saveOrUpdateByIndexBatch(rows);
list = cementService.saveOrUpdateByIndexBatch(rows, data);
} else if (data.getType().equals(MaterialTaskType.SANMING_STEEL)) {
list = sanmingSteelService.saveOrUpdateByIndexBatch(rows);
list = sanmingSteelService.saveOrUpdateByIndexBatch(rows, data);
} else if (data.getType().equals(MaterialTaskType.FUZHOU_TRANSPORTATION_BUREAU)) {
list = fuzhouTransportationBureauService.saveOrUpdateByIndexBatch(rows);
list = fuzhouTransportationBureauService.saveOrUpdateByIndexBatch(rows, data);
} else if (data.getType().equals(MaterialTaskType.FUZHOU_HIGHWAY_BUREAU)) {
list = fuzhouHighwayBureauService.saveOrUpdateByIndexBatch(rows);
list = fuzhouHighwayBureauService.saveOrUpdateByIndexBatch(rows, data);
} else if (data.getType().equals(MaterialTaskType.FUZHOU_SURVEY)) {
list = fujianSurveyService.saveOrUpdateByIndexBatch(rows);
list = fujianSurveyService.saveOrUpdateByIndexBatch(rows, data);
} else if (MaterialTaskType.isLocalMaterial(data.getType())) {
list = localMaterialService.saveOrUpdateByIndexBatch(rows);
list = localMaterialService.saveOrUpdateByIndexBatch(rows, data);
} else if (data.getType().equals(MaterialTaskType.ASPHALT_MODIFIER)) {
list = asphaltModifierService.saveOrUpdateByIndexBatch(rows);
list = asphaltModifierService.saveOrUpdateByIndexBatch(rows, data);
} else if (MaterialTaskType.isNetworkPrice(data.getType())) {
list = dataNetworkService.saveOrUpdateByIndexBatch(rows, data);
} else {
System.out.println("MaterialTaskService.importData | 未识别的任务类型");
// todo-3 异常处理:未识别的类型
return false;
}
@@ -127,6 +133,7 @@ public class MaterialTaskService extends ServiceImpl<BaseMapper<MaterialTask>, M
}
private List<Row> getTableRows(File file) throws IOException {
System.out.println("MaterialTaskService.getTableRows | 解析表格 | " + file.getName());
List<Row> result = new ArrayList<>();
try (Workbook workbook = WorkbookFactory.create(file)) {
Sheet sheet = workbook.getSheetAt(0); // 假设文件中只有一个表格

View File

@@ -27,7 +27,7 @@ public class OilService extends DataService<BaseMapper<Oil>, Oil> {
return query;
}
public LambdaQueryWrapper<Oil> getQuery(String keyWord, Integer year, Integer month, String materialId, String name) {
public LambdaQueryWrapper<Oil> getQuery(String keyWord, Integer year, Integer month, String materialId, String name, Integer type) {
LambdaQueryWrapper<Oil> query = new LambdaQueryWrapper<>();
if (keyWord != null) {
query.and(e -> e

View File

@@ -30,7 +30,7 @@ public class SanmingSteelService extends DataService<BaseMapper<SanmingSteel>, S
return query;
}
public LambdaQueryWrapper<SanmingSteel> getQuery(String keyWord, Integer year, Integer month, String materialId, String name) {
public LambdaQueryWrapper<SanmingSteel> getQuery(String keyWord, Integer year, Integer month, String materialId, String name, Integer type) {
LambdaQueryWrapper<SanmingSteel> query = new LambdaQueryWrapper<>();
if (keyWord != null) {
query.and(e -> e

View File

@@ -38,7 +38,7 @@ public class SteelPlateService extends DataService<BaseMapper<SteelPlate>, Steel
}
public LambdaQueryWrapper<SteelPlate> getQuery(String keyWord, Integer year, Integer month, String materialId, String name) {
public LambdaQueryWrapper<SteelPlate> getQuery(String keyWord, Integer year, Integer month, String materialId, String name, Integer type) {
LambdaQueryWrapper<SteelPlate> query = new LambdaQueryWrapper<>();
if (keyWord != null) {
query.and(e -> e

View File

@@ -34,7 +34,7 @@ public class SteelRebarService extends DataService<BaseMapper<SteelRebar>, Steel
return query;
}
public LambdaQueryWrapper<SteelRebar> getQuery(String keyWord, Integer year, Integer month, String materialId, String name) {
public LambdaQueryWrapper<SteelRebar> getQuery(String keyWord, Integer year, Integer month, String materialId, String name, Integer type) {
LambdaQueryWrapper<SteelRebar> query = new LambdaQueryWrapper<>();
if (keyWord != null) {
query.and(e -> e

View File

@@ -35,7 +35,7 @@ public class SteelSectionService extends DataService<BaseMapper<SteelSection>, S
return query;
}
public LambdaQueryWrapper<SteelSection> getQuery(String keyWord, Integer year, Integer month, String materialId, String name) {
public LambdaQueryWrapper<SteelSection> getQuery(String keyWord, Integer year, Integer month, String materialId, String name, Integer type) {
LambdaQueryWrapper<SteelSection> query = new LambdaQueryWrapper<>();
if (keyWord != null) {
query.and(e -> e

View File

@@ -35,7 +35,7 @@ public class SteelStrandService extends DataService<BaseMapper<SteelStrand>, Ste
return query;
}
public LambdaQueryWrapper<SteelStrand> getQuery(String keyWord, Integer year, Integer month, String materialId, String name) {
public LambdaQueryWrapper<SteelStrand> getQuery(String keyWord, Integer year, Integer month, String materialId, String name, Integer type) {
LambdaQueryWrapper<SteelStrand> query = new LambdaQueryWrapper<>();
if (keyWord != null) {
query.and(e -> e