diff --git a/src/main/java/mjkf/xinke/main/constant/MaterialTaskType.java b/src/main/java/mjkf/xinke/main/constant/MaterialTaskType.java
index 4bd736d..0d9ca22 100644
--- a/src/main/java/mjkf/xinke/main/constant/MaterialTaskType.java
+++ b/src/main/java/mjkf/xinke/main/constant/MaterialTaskType.java
@@ -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);
+ }
}
diff --git a/src/main/java/mjkf/xinke/main/model/db/DataFujian.java b/src/main/java/mjkf/xinke/main/model/db/DataFujian.java
index 846bce2..79fe3e6 100644
--- a/src/main/java/mjkf/xinke/main/model/db/DataFujian.java
+++ b/src/main/java/mjkf/xinke/main/model/db/DataFujian.java
@@ -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;
/**
*
@@ -80,4 +84,37 @@ public class DataFujian extends Model {
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;
+ }
}
diff --git a/src/main/java/mjkf/xinke/main/service/DataFujianService.java b/src/main/java/mjkf/xinke/main/service/DataFujianService.java
index 095c5d5..0567f4f 100644
--- a/src/main/java/mjkf/xinke/main/service/DataFujianService.java
+++ b/src/main/java/mjkf/xinke/main/service/DataFujianService.java
@@ -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, DataF
public LambdaQueryWrapper indexQuery(DataFujian data) {
LambdaQueryWrapper 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, 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, 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;
}
diff --git a/src/main/java/mjkf/xinke/main/service/MaterialTaskService.java b/src/main/java/mjkf/xinke/main/service/MaterialTaskService.java
index e5a1f11..9d609d4 100644
--- a/src/main/java/mjkf/xinke/main/service/MaterialTaskService.java
+++ b/src/main/java/mjkf/xinke/main/service/MaterialTaskService.java
@@ -40,6 +40,8 @@ public class MaterialTaskService extends ServiceImpl, M
DataNetworkService dataNetworkService;
@Resource
DataAdjacentService dataAdjacentService;
+ @Resource
+ DataFujianService dataFujianService;
@Override
public boolean save(MaterialTask data) {
@@ -74,11 +76,13 @@ public class MaterialTaskService extends ServiceImpl, M
// 解析
List 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())) {