Compare commits

..

No commits in common. "81e4cb3ce68e4d257d4ed70c23af35e8357e4317" and "fb0b35d38c4e4b1d0a8dd5a8f6e9c55d965fd001" have entirely different histories.

6 changed files with 23 additions and 97 deletions

View File

@ -30,8 +30,6 @@ import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import com.hivekion.statistic.bean.ScenarioInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.env.Environment;
import org.springframework.web.reactive.function.client.WebClient;
@ -62,10 +60,6 @@ public abstract class AbtParentTask implements TaskAction {
protected final String roomId;
//http请求
protected WebClient webClient = WebClient.create();
private RedisUtil redisUtil;
private com.hivekion.statistic.service.ScenarioService scenarioService;
/**
* 任务相对与想定的开始时间
*/
@ -311,17 +305,7 @@ public abstract class AbtParentTask implements TaskAction {
}
//统一推送方法
protected void pushStatus(String resourceId) {
if( scenarioService == null) {
scenarioService = SpringUtil.getBean(com.hivekion.statistic.service.ScenarioService.class);
}
ScenarioInfo scenarioInfo = scenarioService.listScenarioInfo(this.scenarioTask.getScenarioId(),roomId,resourceId);
if( redisUtil == null){
redisUtil = SpringUtil.getBean(RedisUtil.class);
redisUtil.hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),"scenarioInfo",JSON.toJSONString(scenarioInfo));
}else{
redisUtil.hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),"scenarioInfo",JSON.toJSONString(scenarioInfo));
}
}
}

View File

@ -88,22 +88,23 @@ public class BattleRootTask extends AbtParentTask {
}catch (Exception ex){
ex.printStackTrace();
}
String jsonStr = (String)redisUtil.hget(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),"scenarioInfo");
ScenarioInfo scenarioInfo =JSONObject.parseObject(jsonStr,ScenarioInfo.class);
HashMap<String,Object> battleParams = new HashMap<>();
HashMap<String,Object> battleParams = new HashMap<>();
// statisticBean.getAmmunition().getCurrent()
//初始化本次战斗任务各种资源数
battleParams.put("ammunition",Double.valueOf(scenarioInfo.getAmmunition().getTotal()).toString());
battleParams.put("food",Double.valueOf(scenarioInfo.getFood().getTotal()).toString());
battleParams.put("fuel",Double.valueOf(scenarioInfo.getFuel().getTotal()).toString());
battleParams.put("medical",Double.valueOf(scenarioInfo.getMedical().getTotal()).toString());
battleParams.put("water",Double.valueOf(scenarioInfo.getWater().getTotal()).toString());
battleParams.put("person",Integer.valueOf(scenarioInfo.getPerson().getTotal()).toString());
battleParams.put("death",Integer.valueOf(scenarioInfo.getPerson().getDeath()).toString());
battleParams.put("injured",Integer.valueOf(scenarioInfo.getPerson().getInjured()).toString());
battleParams.put("teamLat",scenarioInfo.getTeam().getLat().toString());
battleParams.put("teamLng",scenarioInfo.getTeam().getLng().toString());
battleParams.put("ammunition",Double.valueOf(statisticBean.getAmmunition().getTotal()).toString());
battleParams.put("food",Double.valueOf(statisticBean.getFood().getTotal()).toString());
battleParams.put("fuel",Double.valueOf(statisticBean.getFuel().getTotal()).toString());
battleParams.put("medical",Double.valueOf(statisticBean.getMedical().getTotal()).toString());
battleParams.put("water",Double.valueOf(statisticBean.getWater().getTotal()).toString());
battleParams.put("person",Integer.valueOf(statisticBean.getPerson().getTotal()).toString());
battleParams.put("death",Integer.valueOf(statisticBean.getPerson().getDeath()).toString());
battleParams.put("injured",Integer.valueOf(statisticBean.getPerson().getInjured()).toString());
battleParams.put("teamLat",statisticBean.getTeam().getLat().toString());
battleParams.put("teamLng",statisticBean.getTeam().getLng().toString());
battleParams.put("duringTime",Long.valueOf(initDuringTime).toString());
redisUtil.hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),battleParams);
log.info("===============================初始化本次战斗任务各种资源数====================================");
double suppleAmount =statisticBean.getAmmunition().getTotal();
int suppleDeath =statisticBean.getPerson().getDeath();
@ -159,15 +160,6 @@ public class BattleRootTask extends AbtParentTask {
battleParams.put("death",Long.valueOf(death+deathConsume).toString());
battleParams.put("injured",Long.valueOf(injured +injuredConsume).toString());
battleParams.put("duringTime",Long.valueOf(duringTime).toString());
scenarioInfo.getAmmunition().setCurrent(Double.valueOf(ammunition - ammunitionConsume));
scenarioInfo.getFood().setCurrent(Double.valueOf(food - foodConsume));
scenarioInfo.getFuel().setCurrent(Double.valueOf(fuel - fuelConsume));
scenarioInfo.getMedical().setCurrent(Double.valueOf(medical - medicalConsume));
scenarioInfo.getWater().setCurrent(Double.valueOf(water - waterConsume));
battleParams.put("death",Long.valueOf(death+deathConsume).toString());
battleParams.put("injured",Long.valueOf(injured +injuredConsume).toString());
battleParams.put("duringTime",Long.valueOf(duringTime).toString());
redisUtil.hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(), battleParams);
}catch (Exception ex){
log.error("==============================设置消耗信息失败=============================================",ex.getMessage());

View File

@ -18,7 +18,11 @@ import java.util.Map;
import java.util.Objects;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
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;
/**
* <p>
@ -28,7 +32,7 @@ import org.springframework.web.bind.annotation.*;
* @author liDongYu
* @since 2025-09-15
*/
@RestController
@Controller
@RequestMapping("/battleSupplier")
public class BattleSupplierController {
@ -43,7 +47,7 @@ public class BattleSupplierController {
public ResponseData<Void> save(@RequestBody BattleSupplier battleSupplier) {
if (battleSupplier.getId() == null) {
battleSupplier.setId(IdUtils.simpleUUID());
BattleSupplier tmp = battleSupplierService.getOne(new QueryWrapper<BattleSupplier>().eq("BATTLE_RESOURCE_ID",battleSupplier.getBattleResourceId()).eq("SUPPLIER_RESOURCE_ID",battleSupplier.getSupplierResourceId()));
BattleSupplier tmp = battleSupplierService.getOne(new QueryWrapper<BattleSupplier>().eq("BATTLE_RESOURCE_ID",battleSupplier.getBattleResourceId()).or().eq("SUPPLIER_RESOURCE_ID",battleSupplier.getSupplierResourceId()));
if(Objects.isNull(tmp)) {
battleSupplierService.save(battleSupplier);
}

View File

@ -25,17 +25,4 @@ public class ScenarioInfo implements Serializable {
private List<SupplierRequest> supplierRequests;
private TeamInfo team = new TeamInfo();
private PersonInfo person = new PersonInfo();
//弹药
private AmmunitionInfo ammunition = new AmmunitionInfo();
//食品
private FoodInfo food = new FoodInfo();
//
private WaterInfo water = new WaterInfo();
//
private FuelInfo fuel = new FuelInfo();
//药材
private MedicalInfo medical = new MedicalInfo();
}

View File

@ -14,7 +14,6 @@ import com.hivekion.scenario.service.ScenarioTaskService;
import com.hivekion.statistic.bean.ScenarioInfo;
import com.hivekion.statistic.service.ScenarioService;
import com.hivekion.supplier.entity.SupplierRequest;
import com.hivekion.supplier.entity.SuppliesDict;
import com.hivekion.supplier.service.ISupplierRequestService;
import com.hivekion.supplier.service.SuppliesDictService;
import org.springframework.stereotype.Component;
@ -22,7 +21,6 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Component("WebsocketScenarioService")
@ -45,7 +43,6 @@ public class ScenarioServiceImpl implements ScenarioService {
private ISupplierRequestService supplierRequestService;
@Override
public ScenarioInfo listScenarioInfo(Integer scenarioId, String roomId, String resourceId) {
ScenarioInfo scenarioInfo = new ScenarioInfo();
//获取分队信息
ScenarioResource resourceInstance = scenarioResourceService.getById(resourceId);
//获取关联的组织机构信息
@ -62,51 +59,14 @@ public class ScenarioServiceImpl implements ScenarioService {
}
//获取物资信息
List<OrgSupplier> suppliers = orgSupplierService.selectByOrgIds(orgList);
Map<String, SuppliesDict> supplierMap = suppliesDictService.supplierDictMap();
suppliers.forEach(supplier -> {
SuppliesDict dict = supplierMap.get(supplier.getSupplierId());
if (dict != null) {
switch (dict.getCode()) {
case "FOOD":
scenarioInfo.getFood().setTotal(scenarioInfo.getFood().getTotal()+supplier.getAccount());
scenarioInfo.getFood().setCurrent(scenarioInfo.getFood().getCurrent()+supplier.getAccount());
break;
case "WATER":
scenarioInfo.getWater().setTotal(scenarioInfo.getWater().getTotal()+supplier.getAccount());
scenarioInfo.getWater().setCurrent(scenarioInfo.getWater().getCurrent()+supplier.getAccount());
break;
case "FUEL":
scenarioInfo.getFuel().setTotal(scenarioInfo.getFuel().getTotal()+supplier.getAccount());
scenarioInfo.getFuel().setCurrent(scenarioInfo.getFuel().getCurrent()+supplier.getAccount());
break;
case "MEDICAL":
scenarioInfo.getMedical().setTotal( scenarioInfo.getMedical().getTotal()+supplier.getAccount());
scenarioInfo.getMedical().setCurrent( scenarioInfo.getMedical().getCurrent()+supplier.getAccount());
break;
case "AMMUNITION":
scenarioInfo.getAmmunition().setTotal( scenarioInfo.getAmmunition().getTotal()+supplier.getAccount());
scenarioInfo.getAmmunition().setCurrent(scenarioInfo.getAmmunition().getCurrent()+supplier.getAccount());
break;
default:
break;
}
}
});
ScenarioTask scenarioTask = new ScenarioTask();
scenarioTask.setScenarioId(scenarioId);
scenarioTask.setRoomId(roomId);
scenarioTask.setResourceId(resourceId);
List<ScenarioTask> scenarioTasks = scenarioTaskService.queryTaskList(scenarioTask);
List<SupplierRequest> supplierRequests = supplierRequestService.list(new QueryWrapper<SupplierRequest>().eq("FROM_RESOURCE_ID",resourceId));
ScenarioInfo scenarioInfo = new ScenarioInfo();
scenarioInfo.setScenarioTasks(scenarioTasks);
scenarioInfo.setStaffList(staffList);
scenarioInfo.setOrgPostList(orgPostList);

View File

@ -70,7 +70,6 @@ public class StatisticServiceImpl implements StatisticService {
//获取分队信息
ScenarioResource resourceInstance = scenarioResourceService.getById(resourceId);
if(resourceInstance == null){
log.info("==========================");
return statisticBean;
}
Map<Integer, Teaminfo> map = teamInfoService.teamInfoMap();
@ -111,7 +110,7 @@ public class StatisticServiceImpl implements StatisticService {
List<Integer> orgList = orgPostList.stream().map(ScenarioOrgPost::getOrgId)
.collect(Collectors.toList());
if(CollectionUtil.isEmpty(orgList)){
return statisticBean;
return new StatisticBean();
}
//获取人员信息
if(!orgList.isEmpty()){