From 8c627df4abacbe7397d0c1831f1a71c62ebe15b2 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期三, 15 十月 2025 10:45:33 +0800
Subject: [PATCH] yys 1.随机排产
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/init/MyStartupRunner.java | 87 ++++++++++++++++++++++++++++++++++++++++---
1 files changed, 80 insertions(+), 7 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 f56a37d..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() {
@@ -96,14 +109,74 @@
});
- provinceMapper.insertOrUpdate(provinces);
- cityMapper.insertOrUpdate(cities);
- districtMapper.insertOrUpdate(districts);
-
+ 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