From 94509204d25f7c0ad213ae2322be2bd5bfd17424 Mon Sep 17 00:00:00 2001 From: liding <756868258@qq.com> Date: 星期一, 14 七月 2025 16:30:28 +0800 Subject: [PATCH] 1.初始化配煤计算器数据 2。配煤到待入库 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/init/MyStartupRunner.java | 81 ++++++++++++++++++++++++++++++++++++++-- 1 files changed, 77 insertions(+), 4 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/init/MyStartupRunner.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/init/MyStartupRunner.java index 696543f..771817d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/init/MyStartupRunner.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/init/MyStartupRunner.java @@ -1,12 +1,15 @@ package com.ruoyi.web.controller.init; import com.fasterxml.jackson.databind.ObjectMapper; +import com.ruoyi.basic.dto.CoalFieldDto; +import com.ruoyi.basic.dto.CoalPlanDto; import com.ruoyi.basic.entity.City; import com.ruoyi.basic.entity.District; import com.ruoyi.basic.entity.Province; -import com.ruoyi.basic.mapper.CityMapper; -import com.ruoyi.basic.mapper.DistrictMapper; -import com.ruoyi.basic.mapper.ProvinceMapper; +import com.ruoyi.basic.mapper.*; +import com.ruoyi.basic.service.CoalFieldService; +import com.ruoyi.basic.service.CoalPlanService; +import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.web.controller.init.dto.AreaDTO; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -16,6 +19,10 @@ import java.util.ArrayList; import java.util.List; +import java.util.Set; +import java.util.function.Supplier; +import java.util.stream.Collectors; +import java.util.stream.Stream; @Slf4j @Component @@ -26,6 +33,10 @@ private CityMapper cityMapper; @Autowired private DistrictMapper districtMapper; + @Autowired + private CoalFieldService coalFieldService; + @Autowired + private CoalPlanService coalPlanService; /** * 椤圭洰鍚姩鏃堕渶瑕佹墽琛岀殑鏂规硶 @@ -37,6 +48,8 @@ public void run(String... args) throws Exception { // 鍒濆鍖栫渷甯傚尯 initRegion(); + // 鍒濆鏂板閰嶇叅璁$畻鍣ㄤ腑鐨勭叅绉嶅瓧娈靛拰鏂规 + initCoalFields(); } private void initRegion() { @@ -99,11 +112,71 @@ provinceMapper.insert(provinces); cityMapper.insert(cities); districtMapper.insert(districts); - log.info("鍦板尯淇℃伅鍒濆鍖栫粨鏉�"); } } } + + private void initCoalFields() { + try { + // 1. 鍒濆鍖栧瓧娈甸�昏緫 + Supplier<CoalFieldDto> dtoSupplier = CoalFieldDto::new; // 鍋囪瀛樺湪鏃犲弬鏋勯�犲嚱鏁� + + List<CoalFieldDto> fields = Stream.of("鍙戠儹閲�", "纭垎", "鐏板垎", "姘村垎") + .map(fieldName -> { + CoalFieldDto dto = dtoSupplier.get(); + dto.setFieldName(fieldName); // 鍋囪瀛樺湪 setFieldName 鏂规硶 + dto.setFieldDescription("閰嶇叅璁$畻鍣ㄥ獟璐ㄥ瓧娈�"); + return dto; + }) + .toList(); + + // 2. 淇濆瓨瀛楁锛堝鏋滀笉瀛樺湪锛� + Set<String> existingNames = coalFieldService.getFieldNamesByNames( + fields.stream().map(CoalFieldDto::getFieldName).collect(Collectors.toSet()) + ); + + fields.forEach(field -> { + if (!existingNames.contains(field.getFieldName())) { + coalFieldService.addOrEditCoalField(field); + } + }); + + // 3. 鏌ヨ鎵�鏈夊瓧娈礗D + List<CoalFieldDto> allFields = coalFieldService.getFieldsByNames( + fields.stream().map(CoalFieldDto::getFieldName).collect(Collectors.toSet()) + ); + + // 4. 鍒涘缓鏂规 + + String planName = "閰嶇叅璁$畻鍣ㄦ柟妗�"; + boolean planExists = coalPlanService.checkPlanExists(allFields.stream() + .map(f -> f.getId().toString()) + .collect(Collectors.joining(","))); + + if (!planExists) { + // 鍒涘缓鏂版柟妗� + CoalPlanDto planDto = new CoalPlanDto(); + planDto.setPlan(planName); + planDto.setCoalFields(allFields.stream() + .map(CoalFieldDto::getFields) + .collect(Collectors.joining(","))); + planDto.setFieldIds(allFields.stream() + .map(f -> f.getId().toString()) + .collect(Collectors.joining(","))); + planDto.setSchemeDesc("绯荤粺鐢熸垚閰嶇叅璁$畻鍣ㄦ墍闇�瀛楁鏂规"); + + coalPlanService.addOrEditCoalPlan(planDto); + log.info("鎴愬姛鍒涘缓閰嶇叅璁$畻鍣ㄦ柟妗�"); + } else { + log.info("閰嶇叅璁$畻鍣ㄦ柟妗堝凡瀛樺湪锛岃烦杩囧垱寤�"); + } + } catch (Exception e) { + // 璁板綍绯荤粺寮傚父鏃ュ織锛屽苟杞崲涓轰笟鍔″紓甯告姏鍑猴紙瑙﹀彂鍥炴粴锛� + log.error("閰嶇叅璁$畻鍣ㄥ垵濮嬪寲澶辫触", e); + throw new BaseException("鍒濆鍖栭厤鐓ゆ柟妗堝け璐ワ紝璇风◢鍚庨噸璇�"); + } + } } -- Gitblit v1.9.3