供应补充

This commit is contained in:
wangwenhua 2025-09-28 21:24:34 +08:00
parent 333fc7e879
commit 6e0332f808
5 changed files with 54 additions and 3 deletions

View File

@ -15,6 +15,7 @@ import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombi
import java.text.MessageFormat; import java.text.MessageFormat;
import java.time.Duration; import java.time.Duration;
import java.util.List; import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -103,6 +104,8 @@ public class utils {
return String.format("%d:%02d:%02d", hours, minutes, seconds); return String.format("%d:%02d:%02d", hours, minutes, seconds);
} }
public final static AtomicBoolean ammunitionFlag = new AtomicBoolean(false);
public static void main(String[] args) { public static void main(String[] args) {
System.out.println(utils.formatSeconds(3601)); System.out.println(utils.formatSeconds(3601));

View File

@ -68,7 +68,7 @@ public abstract class AbtParentTask implements TaskAction {
* 油料消耗速率 * 油料消耗速率
*/ */
protected double fuelConsumption = 0; protected double fuelConsumption = 0;
protected double fuelThreshold = 0; protected double fuelThreshold = 98;
/** /**
* 开始点坐标 * 开始点坐标
*/ */
@ -88,7 +88,8 @@ public abstract class AbtParentTask implements TaskAction {
/** /**
* 需求产生标志 * 需求产生标志
*/ */
private final AtomicBoolean requestFlag = new AtomicBoolean(false); protected final AtomicBoolean requestFlag = new AtomicBoolean(false);
private StatisticBean statisticBean; private StatisticBean statisticBean;
@ -280,6 +281,8 @@ public abstract class AbtParentTask implements TaskAction {
//产生任务 //产生任务
produceTask(currentFuel); produceTask(currentFuel);
return; return;
}else{
log.info("======油料充足====={}=={}==={}===={}=======",currentFuel,totalFuel,fuelThreshold,requestFlag.get());
} }
if (currentFuel * 100 / totalFuel < fuelThreshold) { if (currentFuel * 100 / totalFuel < fuelThreshold) {
@ -479,6 +482,15 @@ public abstract class AbtParentTask implements TaskAction {
supplierRequest.setLng(scenarioTask.getToLng()); supplierRequest.setLng(scenarioTask.getToLng());
supplierRequest.setHandleFlag(1); supplierRequest.setHandleFlag(1);
SpringUtil.getBean(SupplierRequestServiceImpl.class).save(supplierRequest); SpringUtil.getBean(SupplierRequestServiceImpl.class).save(supplierRequest);
String jsonStr = (String)SpringUtil.getBean(RedisUtil.class).hget(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),"scenarioInfo");
ScenarioInfo scenarioInfoOnTime = JSONObject.parseObject(jsonStr,ScenarioInfo.class);
String updJsonStr = (String) SpringUtil.getBean(RedisUtil.class).hget(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(), "updScenarioInfo");
EditScenarioInfo updScenarioInfo = JSON.parseObject(updJsonStr, EditScenarioInfo.class);
scenarioInfoOnTime.getSupplierRequests().add(supplierRequest);
updScenarioInfo.getSupplierRequests().add(supplierRequest);
SpringUtil.getBean(RedisUtil.class).hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(), "scenarioInfo", JSONObject.toJSONString(scenarioInfoOnTime));
SpringUtil.getBean(RedisUtil.class).hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),
"updScenarioInfo", JSON.toJSONString(updScenarioInfo));
} }
private void produceTask(double fuel) { private void produceTask(double fuel) {

View File

@ -228,6 +228,7 @@ public class BattleRootTask extends AbtParentTask {
scenarioTask.getScenarioId() + "-" + roomId + "-" scenarioTask.getScenarioId() + "-" + roomId + "-"
+ scenarioTask.getResourceId(), + scenarioTask.getResourceId(),
"updScenarioInfo-ammunition", "0"); "updScenarioInfo-ammunition", "0");
suppleFlagMap.put("ammunition",false);
} }
} }
redisUtil.hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(), redisUtil.hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),

View File

@ -2,6 +2,7 @@ package com.hivekion.room.bean;
import cn.hutool.extra.spring.SpringUtil; import cn.hutool.extra.spring.SpringUtil;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.hivekion.Global; import com.hivekion.Global;
import com.hivekion.common.entity.ResponseCmdInfo; import com.hivekion.common.entity.ResponseCmdInfo;
import com.hivekion.common.redis.RedisUtil; import com.hivekion.common.redis.RedisUtil;
@ -117,6 +118,7 @@ public class MoveTask extends AbtParentTask implements TaskAction {
insertConsumption(currentUseUp); insertConsumption(currentUseUp);
setCurrentFuel(currentUseUp); setCurrentFuel(currentUseUp);
pushStatus(scenarioTask.getResourceId()); pushStatus(scenarioTask.getResourceId());
} }
@ -157,12 +159,36 @@ public class MoveTask extends AbtParentTask implements TaskAction {
Object statisticObj = SpringUtil.getBean(RedisUtil.class).hget( Object statisticObj = SpringUtil.getBean(RedisUtil.class).hget(
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(), scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),
"scenarioInfo"); "scenarioInfo");
Object updStatisticObj = SpringUtil.getBean(RedisUtil.class).hget(
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),
"updScenarioInfo");
if (statisticObj != null) { if (statisticObj != null) {
ScenarioInfo scenarioInfo = JSON.parseObject(statisticObj.toString(), ScenarioInfo.class); ScenarioInfo scenarioInfo = JSON.parseObject(statisticObj.toString(), ScenarioInfo.class);
EditScenarioInfo updScenarioInfo = JSON.parseObject(updStatisticObj.toString(), EditScenarioInfo.class);
scenarioInfo.getFuel().setCurrent(scenarioInfo.getFuel().getCurrent() - num); scenarioInfo.getFuel().setCurrent(scenarioInfo.getFuel().getCurrent() - num);
SpringUtil.getBean(RedisUtil.class).hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(), SpringUtil.getBean(RedisUtil.class).hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),
"scenarioInfo", JSON.toJSONString(scenarioInfo)); "scenarioInfo", JSON.toJSONString(scenarioInfo));
if(SpringUtil.getBean(RedisUtil.class).hasKey(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),
"updScenarioInfo-fuel")) {
String supplierFuel = (String) SpringUtil.getBean(RedisUtil.class).hget(
scenarioTask.getScenarioId() + "-" + roomId + "-"
+ scenarioTask.getResourceId(),
"updScenarioInfo-fuel");
if (Double.valueOf(supplierFuel) > 0D) {
scenarioInfo.getAmmunition().setCurrent(Double.valueOf(supplierFuel));
updScenarioInfo.getJbxx().getAmmunition()
.setCurrent(Double.valueOf(supplierFuel));
SpringUtil.getBean(RedisUtil.class).hset(
scenarioTask.getScenarioId() + "-" + roomId + "-"
+ scenarioTask.getResourceId(),
"updScenarioInfo-fuel", "0");
requestFlag.set(false);
}
}
} }
} }
} }

View File

@ -89,6 +89,7 @@ public class SupplierTask extends AbtParentTask implements TaskAction {
} }
private void supplierFuel() { private void supplierFuel() {
EditScenarioInfo supplierInfo = getEditScenarioInfo(scenarioTask.getResourceId()); EditScenarioInfo supplierInfo = getEditScenarioInfo(scenarioTask.getResourceId());
EditScenarioInfo insuranceInfo = getEditScenarioInfo(scenarioTask.getInsureResourceId()); EditScenarioInfo insuranceInfo = getEditScenarioInfo(scenarioTask.getInsureResourceId());
if (supplierInfo != null && insuranceInfo != null) { if (supplierInfo != null && insuranceInfo != null) {
@ -102,7 +103,15 @@ public class SupplierTask extends AbtParentTask implements TaskAction {
.setCurrent(insuranceInfo.getJbxx().getFuel().getTotal()); .setCurrent(insuranceInfo.getJbxx().getFuel().getTotal());
} }
SpringUtil.getBean(RedisUtil.class).hset(
this.scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getInsureResourceId(),
"updScenarioInfo", JSONObject.toJSONString(insuranceInfo));
SpringUtil.getBean(RedisUtil.class).hset(
this.scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getInsureResourceId(),
"updScenarioInfo-fuel", String.valueOf(insuranceInfo.getJbxx().getFuel().getTotal()));
SpringUtil.getBean(RedisUtil.class).hset(
this.scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),
"updScenarioInfo",JSONObject.toJSONString(supplierInfo));
} }