This commit is contained in:
wangwenhua 2025-09-14 14:55:12 +08:00
commit bfcc7cc3aa
47 changed files with 670 additions and 69 deletions

View File

@ -5,35 +5,53 @@
</component>
<component name="ChangeListManager">
<list default="true" id="af4c07b7-4ec6-4591-87e0-621479a360cc" name="更改" comment="初次提交">
<change afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/scenario/service/TaskLogicService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/scenario/service/impl/TaskLogicServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/statistic/service/StatisticService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/statistic/service/impl/StatisticServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/demo.html" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/baseData/entity/OrgSupplier.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/baseData/mapper/OrgSupplierMapper.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/baseData/service/OrgSupplierService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/baseData/service/impl/OrgSupplierServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/scenario/controller/ScenarioSupplierController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/scenario/controller/ScenarioTaskController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/scenario/entity/ScenarioSupplier.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/scenario/entity/ScenarioTask.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/scenario/mapper/ScenarioSupplierMapper.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/scenario/mapper/ScenarioTaskMapper.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/scenario/service/ScenarioSupplierService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/scenario/service/ScenarioTaskService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/scenario/service/impl/ScenarioSupplierServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/scenario/service/impl/ScenarioTaskServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/mapper/tbl/OrgSupplierMapper.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/mapper/tbl/ScenarioSupplierMapper.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/mapper/tbl/ScenarioTaskMapper.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/baseData/entity/OrgSupplier.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/baseData/mapper/OrgSupplierMapper.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/baseData/service/OrgSupplierService.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/baseData/service/impl/OrgSupplierServiceImpl.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/scenario/bean/ScenarioWsParam.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/scenario/controller/ScenarioSupplierController.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/scenario/controller/ScenarioTaskController.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/scenario/entity/ScenarioSupplier.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/scenario/entity/ScenarioTask.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/scenario/mapper/ScenarioSupplierMapper.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/scenario/mapper/ScenarioTaskMapper.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/scenario/service/ScenarioSupplierService.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/scenario/service/ScenarioTaskService.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/scenario/service/TaskLogicService.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/scenario/service/impl/ScenarioSupplierServiceImpl.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/scenario/service/impl/ScenarioTaskServiceImpl.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/scenario/service/impl/TaskLogicServiceImpl.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/statistic/bean/AmmunitionInfo.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/statistic/bean/CountInfo.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/statistic/bean/FoodInfo.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/statistic/bean/FuelInfo.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/statistic/bean/MedicalInfo.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/statistic/bean/WaterInfo.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/statistic/service/StatisticService.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/com/hivekion/statistic/service/impl/StatisticServiceImpl.class" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/mapper/tbl/OrgSupplierMapper.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/mapper/tbl/ScenarioSupplierMapper.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/target/classes/mapper/tbl/ScenarioTaskMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/hivekion/CodeGenerator.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/CodeGenerator.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/hivekion/baseData/controller/FightPowerHierarchyController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/baseData/controller/FightPowerHierarchyController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/hivekion/statistic/bean/CountInfo.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/statistic/bean/CountInfo.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/hivekion/statistic/controller/StatisticController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/statistic/controller/StatisticController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/hivekion/supplier/controller/SuppliesDictController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/supplier/controller/SuppliesDictController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/hivekion/supplier/service/SuppliesDictService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/supplier/service/SuppliesDictService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/hivekion/supplier/service/impl/SuppliesDictServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/hivekion/supplier/service/impl/SuppliesDictServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/hivekion/CodeGenerator.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/hivekion/CodeGenerator.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/hivekion/Global.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/hivekion/Global.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/hivekion/baseData/controller/FightPowerHierarchyController.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/hivekion/baseData/controller/FightPowerHierarchyController.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/hivekion/baseData/service/ScenarioService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/hivekion/baseData/service/ScenarioService.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/hivekion/baseData/service/impl/ScenarioServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/hivekion/baseData/service/impl/ScenarioServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/hivekion/environment/entity/SimtoolWeather.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/hivekion/environment/entity/SimtoolWeather.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/hivekion/statistic/bean/StatisticBean.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/hivekion/statistic/bean/StatisticBean.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/hivekion/statistic/controller/StatisticController.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/hivekion/statistic/controller/StatisticController.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/hivekion/supplier/controller/SuppliesDictController.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/hivekion/supplier/controller/SuppliesDictController.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/hivekion/supplier/entity/SuppliesDict.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/hivekion/supplier/entity/SuppliesDict.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/hivekion/supplier/service/SuppliesDictService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/hivekion/supplier/service/SuppliesDictService.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/hivekion/supplier/service/impl/SuppliesDictServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/hivekion/supplier/service/impl/SuppliesDictServiceImpl.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/classes/com/hivekion/ws/WsServer.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/hivekion/ws/WsServer.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/springbootmybatis-1.0.jar" beforeDir="false" afterPath="$PROJECT_DIR$/target/springbootmybatis-1.0.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/springbootmybatis-1.0.jar.original" beforeDir="false" afterPath="$PROJECT_DIR$/target/springbootmybatis-1.0.jar.original" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -45,6 +63,7 @@
<list>
<option value="Interface" />
<option value="Class" />
<option value="HTML File" />
</list>
</option>
</component>
@ -74,48 +93,49 @@
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">{
&quot;keyToString&quot;: {
&quot;HTTP 请求.generated-requests | #1.executor&quot;: &quot;Run&quot;,
&quot;JUnit.ApplicationTest.executor&quot;: &quot;Run&quot;,
&quot;JUnit.ApplicationTest.hello.executor&quot;: &quot;Run&quot;,
&quot;JUnit.ApplicationTest.modStatus.executor&quot;: &quot;Run&quot;,
&quot;JUnit.ApplicationTest.scenarioHistory.executor&quot;: &quot;Run&quot;,
&quot;Maven.springbootmybatis [clean].executor&quot;: &quot;Run&quot;,
&quot;Maven.springbootmybatis [compile].executor&quot;: &quot;Run&quot;,
&quot;Maven.springbootmybatis [package].executor&quot;: &quot;Run&quot;,
&quot;ModuleVcsDetector.initialDetectionPerformed&quot;: &quot;true&quot;,
&quot;RequestMappingsPanelOrder0&quot;: &quot;0&quot;,
&quot;RequestMappingsPanelOrder1&quot;: &quot;1&quot;,
&quot;RequestMappingsPanelWidth0&quot;: &quot;75&quot;,
&quot;RequestMappingsPanelWidth1&quot;: &quot;75&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.git.unshallow&quot;: &quot;true&quot;,
&quot;SHARE_PROJECT_CONFIGURATION_FILES&quot;: &quot;true&quot;,
&quot;Spring Boot.DemoApplication.executor&quot;: &quot;Run&quot;,
&quot;git-widget-placeholder&quot;: &quot;main&quot;,
&quot;kotlin-language-version-configured&quot;: &quot;true&quot;,
&quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
&quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
&quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
&quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
&quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
&quot;project.structure.last.edited&quot;: &quot;SDK&quot;,
&quot;project.structure.proportion&quot;: &quot;0.15&quot;,
&quot;project.structure.side.proportion&quot;: &quot;0.2&quot;,
&quot;settings.editor.selected.configurable&quot;: &quot;reference.projectsettings.compiler.javacompiler&quot;,
&quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;,
&quot;应用程序.CodeGenerator.executor&quot;: &quot;Run&quot;,
&quot;应用程序.JsonTest.executor&quot;: &quot;Run&quot;,
&quot;应用程序.ResponseData.executor&quot;: &quot;Run&quot;,
&quot;应用程序.SimtoolWeather.executor&quot;: &quot;Run&quot;
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"DefaultHtmlFileTemplate": "HTML File",
"HTTP 请求.generated-requests | #1.executor": "Run",
"JUnit.ApplicationTest.executor": "Run",
"JUnit.ApplicationTest.hello.executor": "Run",
"JUnit.ApplicationTest.modStatus.executor": "Run",
"JUnit.ApplicationTest.scenarioHistory.executor": "Run",
"Maven.springbootmybatis [clean].executor": "Run",
"Maven.springbootmybatis [compile].executor": "Run",
"Maven.springbootmybatis [package].executor": "Run",
"ModuleVcsDetector.initialDetectionPerformed": "true",
"RequestMappingsPanelOrder0": "0",
"RequestMappingsPanelOrder1": "1",
"RequestMappingsPanelWidth0": "75",
"RequestMappingsPanelWidth1": "75",
"RunOnceActivity.ShowReadmeOnStart": "true",
"RunOnceActivity.git.unshallow": "true",
"SHARE_PROJECT_CONFIGURATION_FILES": "true",
"Spring Boot.DemoApplication.executor": "Run",
"git-widget-placeholder": "main",
"kotlin-language-version-configured": "true",
"node.js.detected.package.eslint": "true",
"node.js.detected.package.tslint": "true",
"node.js.selected.package.eslint": "(autodetect)",
"node.js.selected.package.tslint": "(autodetect)",
"nodejs_package_manager_path": "npm",
"project.structure.last.edited": "SDK",
"project.structure.proportion": "0.15",
"project.structure.side.proportion": "0.2",
"settings.editor.selected.configurable": "reference.projectsettings.compiler.javacompiler",
"vue.rearranger.settings.migration": "true",
"应用程序.CodeGenerator.executor": "Run",
"应用程序.JsonTest.executor": "Run",
"应用程序.ResponseData.executor": "Run",
"应用程序.SimtoolWeather.executor": "Run"
},
&quot;keyToStringList&quot;: {
&quot;DatabaseDriversLRU&quot;: [
&quot;mysql&quot;
"keyToStringList": {
"DatabaseDriversLRU": [
"mysql"
]
}
}</component>
}]]></component>
<component name="ReactorSettings">
<option name="notificationShown" value="true" />
</component>
@ -279,7 +299,7 @@
<workItem from="1757646901779" duration="1536000" />
<workItem from="1757745562472" duration="11951000" />
<workItem from="1757761044173" duration="32000" />
<workItem from="1757813716738" duration="14062000" />
<workItem from="1757813716738" duration="15793000" />
</task>
<task id="LOCAL-00001" summary="初次提交">
<option name="closed" value="true" />
@ -369,7 +389,15 @@
<option name="project" value="LOCAL" />
<updated>1757818188742</updated>
</task>
<option name="localTasksCounter" value="12" />
<task id="LOCAL-00012" summary="初次提交">
<option name="closed" value="true" />
<created>1757830773257</created>
<option name="number" value="00012" />
<option name="presentableId" value="LOCAL-00012" />
<option name="project" value="LOCAL" />
<updated>1757830773257</updated>
</task>
<option name="localTasksCounter" value="13" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">

10
src/main/demo.html Normal file
View File

@ -0,0 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
</body>
</html>

View File

@ -0,0 +1,37 @@
package com.hivekion.baseData.entity;
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 io.swagger.annotations.ApiModel;
import java.io.Serializable;
import lombok.Data;
/**
* <p>
*
* </p>
*
* @author liDongYu
* @since 2025-09-14
*/
@TableName("TBL_ORG_SUPPLIER")
@ApiModel(value = "OrgSupplier对象", description = "")
@Data
public class OrgSupplier implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.INPUT)
private String id;
@TableField(value = "supplier_id")
private String supplierId;
private double account;
@TableField(value = "org_id")
private Integer orgId;
@TableField(exist = false)
private String name;
}

View File

@ -0,0 +1,16 @@
package com.hivekion.baseData.mapper;
import com.hivekion.baseData.entity.OrgSupplier;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author liDongYu
* @since 2025-09-14
*/
public interface OrgSupplierMapper extends BaseMapper<OrgSupplier> {
}

View File

@ -0,0 +1,17 @@
package com.hivekion.baseData.service;
import com.hivekion.baseData.entity.OrgSupplier;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author liDongYu
* @since 2025-09-14
*/
public interface OrgSupplierService extends IService<OrgSupplier> {
public List<OrgSupplier> getByOrgId(Integer orgId);
}

View File

@ -0,0 +1,30 @@
package com.hivekion.baseData.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hivekion.baseData.entity.OrgSupplier;
import com.hivekion.baseData.mapper.OrgSupplierMapper;
import com.hivekion.baseData.service.OrgSupplierService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.Collections;
import java.util.List;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author liDongYu
* @since 2025-09-14
*/
@Service
public class OrgSupplierServiceImpl extends ServiceImpl<OrgSupplierMapper, OrgSupplier> implements
OrgSupplierService {
@Override
public List<OrgSupplier> getByOrgId(Integer orgId) {
QueryWrapper<OrgSupplier> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("org_id", orgId);
return this.list(queryWrapper);
}
}

View File

@ -0,0 +1,49 @@
package com.hivekion.scenario.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hivekion.common.entity.ResponseData;
import com.hivekion.common.uuid.IdUtils;
import com.hivekion.scenario.entity.ScenarioSupplier;
import com.hivekion.scenario.service.ScenarioSupplierService;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author liDongYu
* @since 2025-09-13
*/
@RestController
@RequestMapping("/scenarioSupplier")
public class ScenarioSupplierController {
@Resource
private ScenarioSupplierService scenarioSupplierService;
@PostMapping("/save")
public ResponseData<Void> save(@RequestBody ScenarioSupplier data) {
if (data.getId() == null) {
data.setId(IdUtils.simpleUUID());
scenarioSupplierService.save(data);
} else {
scenarioSupplierService.updateById(data);
}
return ResponseData.success(null);
}
@GetMapping("/getSupplier")
public ResponseData<List<ScenarioSupplier>> getSupplierList(String resourceId) {
QueryWrapper<ScenarioSupplier> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("resource_id", resourceId);
return ResponseData.success(scenarioSupplierService.list(queryWrapper));
}
}

View File

@ -0,0 +1,59 @@
package com.hivekion.scenario.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hivekion.common.entity.ResponseData;
import com.hivekion.common.uuid.IdUtils;
import com.hivekion.scenario.entity.ScenarioTask;
import com.hivekion.scenario.service.ScenarioTaskService;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author liDongYu
* @since 2025-09-13
*/
@RestController
@RequestMapping("/scenarioTask")
public class ScenarioTaskController {
@Resource
private ScenarioTaskService scenarioTaskService;
@PostMapping("/save")
public ResponseData<Void> save(@RequestBody ScenarioTask scenarioTask) {
if (scenarioTask.getId() == null) {
scenarioTask.setId(IdUtils.simpleUUID());
scenarioTaskService.save(scenarioTask);
} else {
scenarioTaskService.updateById(scenarioTask);
}
return ResponseData.success(null);
}
@PostMapping("/taskList")
public ResponseData<List<ScenarioTask>> taskList(@RequestBody ScenarioTask scenarioTask) {
return ResponseData.success(scenarioTaskService.queryTaskList(scenarioTask));
}
@GetMapping("/remove/{id}")
public ResponseData<Void> remove(@PathVariable("id") String id) {
scenarioTaskService.removeById(id);
return ResponseData.success(null);
}
@GetMapping("/{id}")
public ResponseData<ScenarioTask> view(@PathVariable("id") String id) {
return ResponseData.success(scenarioTaskService.getById(id));
}
}

View File

@ -0,0 +1,41 @@
package com.hivekion.scenario.entity;
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 io.swagger.annotations.ApiModel;
import java.io.Serializable;
import lombok.Data;
/**
* <p>
*
* </p>
*
* @author liDongYu
* @since 2025-09-13
*/
@TableName("TBL_SCENARIO_SUPPLIER")
@ApiModel(value = "ScenarioSupplier对象", description = "")
@Data
public class ScenarioSupplier implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.INPUT)
private String id;
@TableField(value = "resource_id")
private String resourceId;
@TableField(value = "supplier_id")
private String supplierId;
private double total;
@TableField(value = "scenario_id")
private Integer scenarioId;
@TableField(value = "room_id")
private String roomId;
private Integer type;
}

View File

@ -0,0 +1,61 @@
package com.hivekion.scenario.entity;
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.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;
/**
* <p>
*
* </p>
*
* @author liDongYu
* @since 2025-09-13
*/
@TableName("TBL_SCENARIO_TASK")
@ApiModel(value = "ScenarioTask对象", description = "")
@Data
public class ScenarioTask implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.INPUT)
private String id;
private String name;
@TableField(value = "start_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTime;
@TableField(value = "end_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime;
@TableField(value = "room_id")
private String roomId;
@TableField(value = "scenario_id")
private Integer scenarioId;
@ApiModelProperty("红(0)")
private Integer type;
@TableField(value = "from_lng")
private String fromLng;
@TableField(value = "from_lat")
private String fromLat;
@TableField(value = "to_lng")
private String toLng;
@TableField(value = "to_lat")
private String toLat;
@ApiModelProperty("分队")
@TableField(value = "resource_id")
private String resourceId;
//1:移动2:战斗 3:整备; 4:弹药5: 6: 7:食品
@TableField(value = "task_type")
private String taskType;
@TableField(exist = false)
private String status;
}

View File

@ -0,0 +1,16 @@
package com.hivekion.scenario.mapper;
import com.hivekion.scenario.entity.ScenarioSupplier;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author liDongYu
* @since 2025-09-13
*/
public interface ScenarioSupplierMapper extends BaseMapper<ScenarioSupplier> {
}

View File

@ -0,0 +1,16 @@
package com.hivekion.scenario.mapper;
import com.hivekion.scenario.entity.ScenarioTask;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author liDongYu
* @since 2025-09-13
*/
public interface ScenarioTaskMapper extends BaseMapper<ScenarioTask> {
}

View File

@ -0,0 +1,16 @@
package com.hivekion.scenario.service;
import com.hivekion.scenario.entity.ScenarioSupplier;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author liDongYu
* @since 2025-09-13
*/
public interface ScenarioSupplierService extends IService<ScenarioSupplier> {
}

View File

@ -0,0 +1,21 @@
package com.hivekion.scenario.service;
import com.hivekion.scenario.entity.ScenarioTask;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author liDongYu
* @since 2025-09-13
*/
public interface ScenarioTaskService extends IService<ScenarioTask> {
void start(Integer id,String roomId);
void stop(Integer id,String roomId);
void sleepWhile(Integer id,String roomId);
void wakeup(Integer id,String roomId);
List<ScenarioTask> queryTaskList(ScenarioTask task);
}

View File

@ -0,0 +1,21 @@
package com.hivekion.scenario.service.impl;
import com.hivekion.scenario.entity.ScenarioSupplier;
import com.hivekion.scenario.mapper.ScenarioSupplierMapper;
import com.hivekion.scenario.service.ScenarioSupplierService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author liDongYu
* @since 2025-09-13
*/
@Service
public class ScenarioSupplierServiceImpl extends ServiceImpl<ScenarioSupplierMapper, ScenarioSupplier> implements
ScenarioSupplierService {
}

View File

@ -0,0 +1,133 @@
package com.hivekion.scenario.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hivekion.Global;
import com.hivekion.baseData.entity.Scenario;
import com.hivekion.baseData.service.ScenarioService;
import com.hivekion.common.redis.RedisUtil;
import com.hivekion.environment.entity.SimtoolWeather;
import com.hivekion.environment.service.SimtoolWeatherService;
import com.hivekion.scenario.entity.ScenarioTask;
import com.hivekion.scenario.mapper.ScenarioTaskMapper;
import com.hivekion.scenario.service.ScenarioTaskService;
import com.hivekion.thread.SpringGlobalTaskManager;
import java.util.List;
import javax.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author liDongYu
* @since 2025-09-13
*/
@Service
public class ScenarioTaskServiceImpl extends
ServiceImpl<ScenarioTaskMapper, ScenarioTask> implements
ScenarioTaskService {
@Resource
private SpringGlobalTaskManager springGlobalTaskManager;
@Resource
private SimtoolWeatherService weatherService;
@Resource
private RedisUtil redisUtil;
@Resource
private ScenarioService scenarioService;
@Override
public void start(Integer id, String roomId) {
//想定当前持续时间
redisUtil.hset(roomId + "_" + id, "duringTime", 0);
//想定当前状态
redisUtil.hset(roomId + "_" + id, "states", "running");
Scenario currentScenario = scenarioService.getScenarioById(id);
//查询天气数据
List<SimtoolWeather> weatherList = weatherService.queryByScenarioUuid(
currentScenario.getGuid());
//放入天气数据
redisUtil.hset(roomId + "_" + id, "weather", weatherList);
//查询任务
ScenarioTask queryTask = new ScenarioTask();
queryTask.setScenarioId(id);
redisUtil.hset(roomId + "_" + id, "taskList", queryTaskList(queryTask));
new Thread(() -> {
springGlobalTaskManager.startPerSecondTask(roomId + "_" + id + "_task", () -> {
//时间累计
increaseTime(currentScenario, roomId);
//天气触发
weatherTrigger(currentScenario, roomId);
//任务触发
taskTrigger(currentScenario, roomId);
//物资变化
supplierChangeUseUp(currentScenario, roomId);
});
}).start();
}
@Override
public void stop(Integer id, String roomId) {
}
@Override
public void sleepWhile(Integer id, String roomId) {
redisUtil.hset(roomId + "_" + id, "states", "sleep");
}
@Override
public void wakeup(Integer id, String roomId) {
redisUtil.hset(roomId + "_" + id, "states", "running");
}
private void increaseTime(Scenario currentScenario, String roomId) {
int mag = Global.roomParamMap.get(currentScenario.getId() + "_" + roomId) == null ? 1
: Global.roomParamMap.get(currentScenario.getId() + "_" + roomId).getAmg();
//获取当前状态
Object statusObj = redisUtil.hget(roomId + "_" + currentScenario.getId(), "status");
if (statusObj != null && statusObj.toString().equals("running")) {
Object duringObj = redisUtil.hget(roomId + "_" + currentScenario.getId(), "duringTime");
if (duringObj != null) {
int oldValue = duringObj instanceof Integer ? (Integer) duringObj : 0;
oldValue = oldValue + mag;
redisUtil.hset(roomId + "_" + currentScenario.getId(), "duringTime", oldValue);
}
}
}
/**
* 天气触发
*
* @param currentScenario 当前想定
* @param roomId 房间ID
*/
private void weatherTrigger(Scenario currentScenario, String roomId) {
}
private void taskTrigger(Scenario currentScenario, String roomId) {
}
private void supplierChangeUseUp(Scenario currentScenario, String roomId) {
}
@Override
public List<ScenarioTask> queryTaskList(ScenarioTask task) {
QueryWrapper<ScenarioTask> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("scenario_id", task.getScenarioId());
if(StringUtils.isNotBlank(task.getResourceId())){
queryWrapper.eq("resource_id", task.getResourceId());
}
return this.list(queryWrapper);
}
}

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hivekion.baseData.mapper.OrgSupplierMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hivekion.scenario.mapper.ScenarioSupplierMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hivekion.scenario.mapper.ScenarioTaskMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hivekion.baseData.mapper.OrgSupplierMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hivekion.scenario.mapper.ScenarioSupplierMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hivekion.scenario.mapper.ScenarioTaskMapper">
</mapper>