feat: 新增住建厅导入的功能
This commit is contained in:
@@ -308,5 +308,25 @@ public class MaterialTaskType {
|
||||
);
|
||||
return types.contains(type);
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否住建厅
|
||||
*/
|
||||
public static boolean isDepartment(Integer type) {
|
||||
var types = List.of(
|
||||
FUJIAN_DEPARTMENT_FUZHOU,
|
||||
FUJIAN_DEPARTMENT_LONGYAN,
|
||||
FUJIAN_DEPARTMENT_NANPING,
|
||||
FUJIAN_DEPARTMENT_NINGDE,
|
||||
FUJIAN_DEPARTMENT_PINTAN,
|
||||
FUJIAN_DEPARTMENT_PUTIAN,
|
||||
FUJIAN_DEPARTMENT_QUANZHOU,
|
||||
FUJIAN_DEPARTMENT_SANMING,
|
||||
FUJIAN_DEPARTMENT_XIAMEN,
|
||||
FUJIAN_DEPARTMENT_ZHANGZHOU,
|
||||
FUJIAN_DEPARTMENT_ZHANGZHOUKFQ
|
||||
);
|
||||
return types.contains(type);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1,5 +1,6 @@
|
||||
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;
|
||||
@@ -12,6 +13,9 @@ 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>
|
||||
@@ -80,4 +84,37 @@ public class DataFujian extends Model<DataFujian> {
|
||||
public Serializable pkVal() {
|
||||
return this.id;
|
||||
}
|
||||
|
||||
|
||||
public DataFujian () {}
|
||||
|
||||
public DataFujian (Row row, MaterialTask task) {
|
||||
var policy = Row.MissingCellPolicy.CREATE_NULL_AS_BLANK;
|
||||
row.getCell(0, policy).setCellType(CellType.STRING);
|
||||
row.getCell(5, policy).setCellType(CellType.NUMERIC);
|
||||
this.setNumber(row.getCell(0, policy).getStringCellValue());
|
||||
this.setName(row.getCell(1, policy).getStringCellValue().replace(" ", ""));
|
||||
this.setSpec(row.getCell(2, policy).getStringCellValue().replace(" ", ""));
|
||||
this.setUnit(row.getCell(3, policy).getStringCellValue());
|
||||
this.setPrice(BigDecimal.valueOf(row.getCell(5, policy).getNumericCellValue()));
|
||||
this.setDate(LocalDate.of(task.getYear(), task.getMonth(), 1)); // 从任务获取日期
|
||||
this.setCity(MaterialTaskType.getRegion(task.getType()));
|
||||
if (ObjectUtil.isEmpty(this.getNumber())) {
|
||||
throw new IllegalArgumentException("缺少材料编号");
|
||||
}
|
||||
if (ObjectUtil.isEmpty(this.getPrice())) {
|
||||
throw new IllegalArgumentException("缺少价格");
|
||||
}
|
||||
}
|
||||
|
||||
public DataFujian update(DataFujian item) {
|
||||
this.setNumber(item.getNumber());
|
||||
this.setSpec(item.getSpec());
|
||||
this.setUnit(item.getUnit());
|
||||
this.setName(item.getName());
|
||||
this.setPrice(item.getPrice());
|
||||
this.setCity(item.getCity());
|
||||
this.setDate(item.getDate());
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
@@ -3,6 +3,7 @@ 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.DataNetwork;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDate;
|
||||
@@ -34,11 +35,9 @@ public class DataFujianService extends DataService<BaseMapper<DataFujian>, DataF
|
||||
|
||||
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::getDate, data.getDate());
|
||||
query.eq(DataFujian::getCity, data.getCity());
|
||||
query.eq(DataFujian::getName, data.getName());
|
||||
query.eq(DataFujian::getSpec, data.getSpec());
|
||||
query.eq(DataFujian::getNumber, data.getNumber());
|
||||
return query;
|
||||
}
|
||||
|
||||
@@ -48,11 +47,10 @@ public class DataFujianService extends DataService<BaseMapper<DataFujian>, DataF
|
||||
|
||||
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());
|
||||
// o.setYear(Integer.valueOf(item.get("year").toString()));
|
||||
// o.setMonth(Integer.valueOf(item.get("month").toString()));
|
||||
// o.setCity(item.get("city").toString());
|
||||
o.setNumber(item.get("number").toString());
|
||||
return o;
|
||||
}
|
||||
|
||||
@@ -62,15 +60,9 @@ public class DataFujianService extends DataService<BaseMapper<DataFujian>, DataF
|
||||
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())
|
||||
);
|
||||
query.orderByAsc(DataFujian::getYear, DataFujian::getMonth);
|
||||
var date = LocalDate.of(year, month, 1);
|
||||
query.between(DataFujian::getDate, date.minusYears(1), date.plusMonths(1));
|
||||
query.orderByAsc(DataFujian::getDate);
|
||||
return query;
|
||||
}
|
||||
|
||||
|
@@ -40,6 +40,8 @@ public class MaterialTaskService extends ServiceImpl<BaseMapper<MaterialTask>, M
|
||||
DataNetworkService dataNetworkService;
|
||||
@Resource
|
||||
DataAdjacentService dataAdjacentService;
|
||||
@Resource
|
||||
DataFujianService dataFujianService;
|
||||
|
||||
@Override
|
||||
public boolean save(MaterialTask data) {
|
||||
@@ -74,11 +76,13 @@ public class MaterialTaskService extends ServiceImpl<BaseMapper<MaterialTask>, M
|
||||
// 解析
|
||||
List<Row> rows = this.getTableRows(file);
|
||||
// 导入
|
||||
List list;
|
||||
List list = List.of();
|
||||
if (data.getType().equals(MaterialTaskType.SANMING_STEEL)) {
|
||||
list = sanmingSteelService.saveOrUpdateByIndexBatch(rows, data);
|
||||
} else if (MaterialTaskType.isLocalMaterial(data.getType())) {
|
||||
list = localMaterialService.saveOrUpdateByIndexBatch(rows, data);
|
||||
} else if (MaterialTaskType.isDepartment(data.getType())) {
|
||||
list = dataFujianService.saveOrUpdateByIndexBatch(rows, data);
|
||||
} else if (data.getType().equals(MaterialTaskType.ASPHALT_MODIFIER)) {
|
||||
list = asphaltModifierService.saveOrUpdateByIndexBatch(rows, data);
|
||||
} else if (MaterialTaskType.isNetworkPrice(data.getType())) {
|
||||
|
Reference in New Issue
Block a user