From 7e2a4f3ac513b0060fb56a7e5e5487686e313ed7 Mon Sep 17 00:00:00 2001 From: han0 Date: Thu, 14 Dec 2023 09:45:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(material-task):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=9C=B0=E6=9D=90=E8=A1=A8=E6=A0=BC=E4=B8=8A=E4=BC=A0=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/generator/DataDbMpGenerator.java | 2 +- .../xinke/main/constant/MaterialTaskType.java | 30 ++++++- .../controller/LocalMaterialController.java | 18 ++++ .../xinke/main/dao/LocalMaterialMapper.java | 16 ++++ .../xinke/main/model/db/LocalMaterial.java | 87 +++++++++++++++++++ .../main/service/LocalMaterialService.java | 66 ++++++++++++++ .../main/service/MaterialResultService.java | 16 ++++ .../main/service/MaterialTaskService.java | 4 + 8 files changed, 237 insertions(+), 2 deletions(-) create mode 100644 src/main/java/mjkf/xinke/main/controller/LocalMaterialController.java create mode 100644 src/main/java/mjkf/xinke/main/dao/LocalMaterialMapper.java create mode 100644 src/main/java/mjkf/xinke/main/model/db/LocalMaterial.java create mode 100644 src/main/java/mjkf/xinke/main/service/LocalMaterialService.java diff --git a/src/main/java/mjkf/xinke/main/common/generator/DataDbMpGenerator.java b/src/main/java/mjkf/xinke/main/common/generator/DataDbMpGenerator.java index 459828e..426ad1b 100644 --- a/src/main/java/mjkf/xinke/main/common/generator/DataDbMpGenerator.java +++ b/src/main/java/mjkf/xinke/main/common/generator/DataDbMpGenerator.java @@ -21,7 +21,7 @@ public class DataDbMpGenerator { private static String password = "Xxs123456"; private static String schema = "material_manage"; private static String[] tableList = { - "SANMING_STEEL", + "LOCAL_MATERIAL", }; diff --git a/src/main/java/mjkf/xinke/main/constant/MaterialTaskType.java b/src/main/java/mjkf/xinke/main/constant/MaterialTaskType.java index 954df93..40c1f23 100644 --- a/src/main/java/mjkf/xinke/main/constant/MaterialTaskType.java +++ b/src/main/java/mjkf/xinke/main/constant/MaterialTaskType.java @@ -27,6 +27,14 @@ public class MaterialTaskType { public static final Integer FUJIAN_DEPARTMENT = 701; // 发改委 public static final Integer OIL = 801; // 汽柴油 + // 地材 + public static final Integer LOCAL_MEDIUM_COARSE_SAND = 901; // 中粗砂 + public static final Integer LOCAL_MECHANISM_SAND = 902; // 机制砂 + public static final Integer LOCAL_GRAVEL = 903; // 碎石 + public static final Integer LOCAL_MAOTIAO_STONE = 904; // 毛条石 + public static final Integer LOCAL_FINE_AGGREGATE = 905; // 细料石 + public static final Integer LOCAL_COARSE_AGGREGATE = 906; // 粗料石 + public static final Integer LOCAL_CLAY = 907; // 粘土 public static final List list = List.of( MY_STEEL_REBAR, @@ -44,7 +52,14 @@ public class MaterialTaskType { OTHER_GIANLZHOU, OTHER_YUNNAN, FUJIAN_DEPARTMENT, - OIL + OIL, + LOCAL_MEDIUM_COARSE_SAND, + LOCAL_MECHANISM_SAND, + LOCAL_GRAVEL, + LOCAL_MAOTIAO_STONE, + LOCAL_FINE_AGGREGATE, + LOCAL_COARSE_AGGREGATE, + LOCAL_CLAY ); public static boolean isFromSpider(Integer type) { @@ -57,5 +72,18 @@ public class MaterialTaskType { ); return dataFromSpiderTypes.contains(type); } + + public static boolean isLocalMaterial(Integer type) { + var dataFromSpiderTypes = List.of( + LOCAL_MEDIUM_COARSE_SAND, + LOCAL_MECHANISM_SAND, + LOCAL_GRAVEL, + LOCAL_MAOTIAO_STONE, + LOCAL_FINE_AGGREGATE, + LOCAL_COARSE_AGGREGATE, + LOCAL_CLAY + ); + return dataFromSpiderTypes.contains(type); + } } diff --git a/src/main/java/mjkf/xinke/main/controller/LocalMaterialController.java b/src/main/java/mjkf/xinke/main/controller/LocalMaterialController.java new file mode 100644 index 0000000..a5e583f --- /dev/null +++ b/src/main/java/mjkf/xinke/main/controller/LocalMaterialController.java @@ -0,0 +1,18 @@ +package mjkf.xinke.main.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 地材 前端控制器 + *

+ * + * @author han0 + * @since 2023-12-14 + */ +@RestController +@RequestMapping("/local-material") +public class LocalMaterialController { + +} diff --git a/src/main/java/mjkf/xinke/main/dao/LocalMaterialMapper.java b/src/main/java/mjkf/xinke/main/dao/LocalMaterialMapper.java new file mode 100644 index 0000000..4cb89ca --- /dev/null +++ b/src/main/java/mjkf/xinke/main/dao/LocalMaterialMapper.java @@ -0,0 +1,16 @@ +package mjkf.xinke.main.dao; + +import mjkf.xinke.main.model.db.LocalMaterial; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 地材 Mapper 接口 + *

+ * + * @author han0 + * @since 2023-12-14 + */ +public interface LocalMaterialMapper extends BaseMapper { + +} diff --git a/src/main/java/mjkf/xinke/main/model/db/LocalMaterial.java b/src/main/java/mjkf/xinke/main/model/db/LocalMaterial.java new file mode 100644 index 0000000..bc09eae --- /dev/null +++ b/src/main/java/mjkf/xinke/main/model/db/LocalMaterial.java @@ -0,0 +1,87 @@ +package mjkf.xinke.main.model.db; + +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 org.apache.poi.ss.usermodel.Row; + +/** + *

+ * 地材 + *

+ * + * @author han0 + * @since 2023-12-14 + */ +@Getter +@Setter +@TableName("LOCAL_MATERIAL") +@ApiModel(value = "LocalMaterial对象", description = "地材") +public class LocalMaterial extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "ID", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("名称") + @TableField("`NAME`") + private String name; + + @ApiModelProperty("材料id") + @TableField("MATERIAL_ID") + private String materialId; + + @ApiModelProperty("规格") + @TableField("SPEC") + private String spec; + + @ApiModelProperty("地市") + @TableField("CITY") + private String city; + + @ApiModelProperty("区县") + @TableField("COUNTY") + private String county; + + @ApiModelProperty("价格") + @TableField("PRICE") + private BigDecimal price; + + @ApiModelProperty("日期") + @TableField("`DATE`") + private LocalDate date; + + @Override + public Serializable pkVal() { + return this.id; + } + + public LocalMaterial() {} + + public LocalMaterial (Row row) { + this.setName(row.getCell(0).getStringCellValue()); + this.setCity(row.getCell(1).getStringCellValue()); + this.setCounty(row.getCell(2).getStringCellValue()); + this.setPrice(BigDecimal.valueOf(row.getCell(3).getNumericCellValue())); + this.setDate(row.getCell(4).getLocalDateTimeCellValue().toLocalDate()); + } + + public LocalMaterial update(LocalMaterial item) { + this.setName(item.getName()); + this.setCity(item.getCity()); + this.setCounty(item.getCounty()); + this.setPrice(item.getPrice()); + this.setDate(item.getDate()); + return this; + } +} diff --git a/src/main/java/mjkf/xinke/main/service/LocalMaterialService.java b/src/main/java/mjkf/xinke/main/service/LocalMaterialService.java new file mode 100644 index 0000000..a032893 --- /dev/null +++ b/src/main/java/mjkf/xinke/main/service/LocalMaterialService.java @@ -0,0 +1,66 @@ +package mjkf.xinke.main.service; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import mjkf.xinke.main.model.db.LocalMaterial; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.util.Map; + +@Service +public class LocalMaterialService extends DataService, LocalMaterial> { + public LambdaQueryWrapper indexQuery(LocalMaterial data) { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(LocalMaterial::getName, data.getName()); + query.eq(LocalMaterial::getCity, data.getCity()); + query.eq(LocalMaterial::getCounty, data.getCounty()); + query.eq(LocalMaterial::getSpec, data.getSpec()); + query.eq(LocalMaterial::getDate, data.getDate()); + return query; + } + + public LambdaQueryWrapper trendQuery(Object obj, Integer year, Integer month) { + var data = (LocalMaterial) obj; + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(LocalMaterial::getName, data.getName()); + var date = LocalDate.of(year, month, 1); + query.between(LocalMaterial::getDate, date, date.minusMonths(1)); + return query; + } + + public LambdaQueryWrapper getQuery(String keyWord, Integer year, Integer month, String materialId, String name) { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + if (keyWord != null) { + query.and(e -> e + .like(LocalMaterial::getName, keyWord) + ); + } + if (year != null) { + var date = LocalDate.of(year, month, 1); + query.between(LocalMaterial::getDate, date, date.plusYears(1)); + } + if (month != null) { + var date = LocalDate.of(year, month, 1); + query.between(LocalMaterial::getDate, date, date.plusMonths(1)); + } + if (name != null) { + query.like(LocalMaterial::getName, name); + } + if (materialId != null) { + query.eq(LocalMaterial::getMaterialId, materialId); + } + return query; + } + + public LambdaQueryWrapper filterQuery(LambdaQueryWrapper query) { + return query; + } + + public LocalMaterial getMapGroupingBy(Map item) { + var o = new LocalMaterial(); + o.setName(item.get("name").toString()); + return o; + } +} + diff --git a/src/main/java/mjkf/xinke/main/service/MaterialResultService.java b/src/main/java/mjkf/xinke/main/service/MaterialResultService.java index a9b8829..b42caf0 100644 --- a/src/main/java/mjkf/xinke/main/service/MaterialResultService.java +++ b/src/main/java/mjkf/xinke/main/service/MaterialResultService.java @@ -36,6 +36,8 @@ public class MaterialResultService { FujianSurveyService fujianSurveyService; @Resource OilService oilService; + @Resource + LocalMaterialService localMaterialService; /** * 基础查询 @@ -156,6 +158,20 @@ public class MaterialResultService { // service = fujianDepartmentService; } else if (type.equals(MaterialTaskType.OIL)) { service = oilService; + } else if (type.equals(MaterialTaskType.LOCAL_MEDIUM_COARSE_SAND)) { + service = localMaterialService; + } else if (type.equals(MaterialTaskType.LOCAL_MECHANISM_SAND)) { + service = localMaterialService; + } else if (type.equals(MaterialTaskType.LOCAL_GRAVEL)) { + service = localMaterialService; + } else if (type.equals(MaterialTaskType.LOCAL_MAOTIAO_STONE)) { + service = localMaterialService; + } else if (type.equals(MaterialTaskType.LOCAL_FINE_AGGREGATE)) { + service = localMaterialService; + } else if (type.equals(MaterialTaskType.LOCAL_COARSE_AGGREGATE)) { + service = localMaterialService; + } else if (type.equals(MaterialTaskType.LOCAL_CLAY)) { + service = localMaterialService; } else { } diff --git a/src/main/java/mjkf/xinke/main/service/MaterialTaskService.java b/src/main/java/mjkf/xinke/main/service/MaterialTaskService.java index c1e18f9..979b167 100644 --- a/src/main/java/mjkf/xinke/main/service/MaterialTaskService.java +++ b/src/main/java/mjkf/xinke/main/service/MaterialTaskService.java @@ -48,6 +48,8 @@ public class MaterialTaskService extends ServiceImpl, M FuzhouHighwayBureauService fuzhouHighwayBureauService; @Resource FujianSurveyService fujianSurveyService; + @Resource + LocalMaterialService localMaterialService; @Override public boolean save(MaterialTask data) { @@ -104,6 +106,8 @@ public class MaterialTaskService extends ServiceImpl, M list = fuzhouHighwayBureauService.saveOrUpdateByIndexBatch(rows); } else if (data.getType().equals(MaterialTaskType.FUJIAN_SURVEY)) { list = fujianSurveyService.saveOrUpdateByIndexBatch(rows); + } else if (MaterialTaskType.isLocalMaterial(data.getType())) { + list = localMaterialService.saveOrUpdateByIndexBatch(rows); } else { // todo 异常处理:未识别的类型 return false;