diff --git a/src/main/java/com/hivekion/common/utils.java b/src/main/java/com/hivekion/common/utils.java index ffedfc9..1150d22 100644 --- a/src/main/java/com/hivekion/common/utils.java +++ b/src/main/java/com/hivekion/common/utils.java @@ -15,6 +15,7 @@ import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombi import java.text.MessageFormat; import java.time.Duration; import java.util.List; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; /** @@ -103,6 +104,8 @@ public class utils { return String.format("%d:%02d:%02d", hours, minutes, seconds); } + public final static AtomicBoolean ammunitionFlag = new AtomicBoolean(false); + public static void main(String[] args) { System.out.println(utils.formatSeconds(3601)); diff --git a/src/main/java/com/hivekion/room/bean/AbtParentTask.java b/src/main/java/com/hivekion/room/bean/AbtParentTask.java index 37f1670..d2c4e59 100644 --- a/src/main/java/com/hivekion/room/bean/AbtParentTask.java +++ b/src/main/java/com/hivekion/room/bean/AbtParentTask.java @@ -68,7 +68,7 @@ public abstract class AbtParentTask implements TaskAction { * 油料消耗速率 */ 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; @@ -280,6 +281,8 @@ public abstract class AbtParentTask implements TaskAction { //产生任务 produceTask(currentFuel); return; + }else{ + log.info("======油料充足====={}=={}==={}===={}=======",currentFuel,totalFuel,fuelThreshold,requestFlag.get()); } if (currentFuel * 100 / totalFuel < fuelThreshold) { @@ -479,6 +482,15 @@ public abstract class AbtParentTask implements TaskAction { supplierRequest.setLng(scenarioTask.getToLng()); supplierRequest.setHandleFlag(1); 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) { diff --git a/src/main/java/com/hivekion/room/bean/BattleRootTask.java b/src/main/java/com/hivekion/room/bean/BattleRootTask.java index 24ed3bc..93f624d 100644 --- a/src/main/java/com/hivekion/room/bean/BattleRootTask.java +++ b/src/main/java/com/hivekion/room/bean/BattleRootTask.java @@ -228,6 +228,7 @@ public class BattleRootTask extends AbtParentTask { scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(), "updScenarioInfo-ammunition", "0"); + suppleFlagMap.put("ammunition",false); } } redisUtil.hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(), diff --git a/src/main/java/com/hivekion/room/bean/MoveTask.java b/src/main/java/com/hivekion/room/bean/MoveTask.java index f17410d..cc8752e 100644 --- a/src/main/java/com/hivekion/room/bean/MoveTask.java +++ b/src/main/java/com/hivekion/room/bean/MoveTask.java @@ -2,6 +2,7 @@ package com.hivekion.room.bean; import cn.hutool.extra.spring.SpringUtil; import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; import com.hivekion.Global; import com.hivekion.common.entity.ResponseCmdInfo; import com.hivekion.common.redis.RedisUtil; @@ -117,6 +118,7 @@ public class MoveTask extends AbtParentTask implements TaskAction { insertConsumption(currentUseUp); setCurrentFuel(currentUseUp); + pushStatus(scenarioTask.getResourceId()); } @@ -157,12 +159,36 @@ public class MoveTask extends AbtParentTask implements TaskAction { Object statisticObj = SpringUtil.getBean(RedisUtil.class).hget( scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(), "scenarioInfo"); + Object updStatisticObj = SpringUtil.getBean(RedisUtil.class).hget( + scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(), + "updScenarioInfo"); if (statisticObj != null) { ScenarioInfo scenarioInfo = JSON.parseObject(statisticObj.toString(), ScenarioInfo.class); + EditScenarioInfo updScenarioInfo = JSON.parseObject(updStatisticObj.toString(), EditScenarioInfo.class); scenarioInfo.getFuel().setCurrent(scenarioInfo.getFuel().getCurrent() - num); SpringUtil.getBean(RedisUtil.class).hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(), "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); + } + + } } + + } } diff --git a/src/main/java/com/hivekion/room/bean/SupplierTask.java b/src/main/java/com/hivekion/room/bean/SupplierTask.java index 8c26878..3e2d960 100644 --- a/src/main/java/com/hivekion/room/bean/SupplierTask.java +++ b/src/main/java/com/hivekion/room/bean/SupplierTask.java @@ -89,6 +89,7 @@ public class SupplierTask extends AbtParentTask implements TaskAction { } private void supplierFuel() { + EditScenarioInfo supplierInfo = getEditScenarioInfo(scenarioTask.getResourceId()); EditScenarioInfo insuranceInfo = getEditScenarioInfo(scenarioTask.getInsureResourceId()); if (supplierInfo != null && insuranceInfo != null) { @@ -102,7 +103,15 @@ public class SupplierTask extends AbtParentTask implements TaskAction { .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)); }