|
|
|
@ -1,9 +1,11 @@
|
|
|
|
|
package com.hivekion.room.bean;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.extra.spring.SpringUtil;
|
|
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
|
|
|
import com.hivekion.common.redis.RedisUtil;
|
|
|
|
|
import com.hivekion.room.func.TaskAction;
|
|
|
|
|
import com.hivekion.scenario.entity.ScenarioTask;
|
|
|
|
|
import com.hivekion.statistic.bean.ScenarioInfo;
|
|
|
|
|
import com.hivekion.statistic.bean.StatisticBean;
|
|
|
|
|
import com.hivekion.statistic.service.StatisticService;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
@ -55,7 +57,7 @@ public class SupplierTask extends AbtParentTask implements TaskAction {
|
|
|
|
|
}
|
|
|
|
|
//推送最新状态信息
|
|
|
|
|
pushStatus(scenarioTask.getResourceId());
|
|
|
|
|
pushStatus(scenarioTask.getResourceId());
|
|
|
|
|
pushStatus(scenarioTask.getInsureResourceId());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@ -71,112 +73,152 @@ public class SupplierTask extends AbtParentTask implements TaskAction {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void supplierMedical(StatisticBean statistic) {
|
|
|
|
|
//保障分队
|
|
|
|
|
Object supplierObj = SpringUtil.getBean(RedisUtil.class).hget(
|
|
|
|
|
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),
|
|
|
|
|
"scenarioInfo");
|
|
|
|
|
//被保障分队
|
|
|
|
|
Object insureObj = SpringUtil.getBean(RedisUtil.class).hget(
|
|
|
|
|
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getInsureResourceId(),
|
|
|
|
|
"scenarioInfo");
|
|
|
|
|
if(supplierObj!=null&&insureObj!=null){
|
|
|
|
|
|
|
|
|
|
//增加被保障分队的量
|
|
|
|
|
SpringUtil.getBean(RedisUtil.class)
|
|
|
|
|
.hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getInsureResourceId(),
|
|
|
|
|
"medical", statistic.getMedical().getTotal() + "");
|
|
|
|
|
ScenarioInfo scenarioSupplierInfo = JSON.parseObject(supplierObj.toString(), ScenarioInfo.class);
|
|
|
|
|
ScenarioInfo scenarioInsureInfo = JSON.parseObject(insureObj.toString(), ScenarioInfo.class);
|
|
|
|
|
|
|
|
|
|
//获取保障任务的药品信息
|
|
|
|
|
Object supplierObj = SpringUtil.getBean(RedisUtil.class)
|
|
|
|
|
.hget(scenarioTask.getScenarioId() + "-" + roomId + "-"
|
|
|
|
|
+ scenarioTask.getResourceId(),
|
|
|
|
|
"medical");
|
|
|
|
|
//减少保障分队的量
|
|
|
|
|
if (supplierObj != null) {
|
|
|
|
|
double supplierMedical = Double.parseDouble(supplierObj.toString());
|
|
|
|
|
scenarioSupplierInfo.getMedical().setCurrent(scenarioInsureInfo.getMedical().getCurrent() - statistic.getMedical().getTotal());
|
|
|
|
|
scenarioInsureInfo.getMedical().setCurrent(statistic.getMedical().getTotal());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SpringUtil.getBean(RedisUtil.class).hset(
|
|
|
|
|
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getInsureResourceId(),
|
|
|
|
|
"scenarioInfo",JSON.toJSONString(scenarioInsureInfo));
|
|
|
|
|
|
|
|
|
|
SpringUtil.getBean(RedisUtil.class).hset(
|
|
|
|
|
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),
|
|
|
|
|
"scenarioInfo",JSON.toJSONString(scenarioSupplierInfo));
|
|
|
|
|
|
|
|
|
|
double remain = supplierMedical - statistic.getMedical().getTotal();
|
|
|
|
|
SpringUtil.getBean(RedisUtil.class)
|
|
|
|
|
.hset(scenarioTask.getScenarioId() + "-" + roomId + "-"
|
|
|
|
|
+ scenarioTask.getResourceId(),
|
|
|
|
|
"medical", remain + "");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void supplierFuel(StatisticBean statistic) {
|
|
|
|
|
|
|
|
|
|
SpringUtil.getBean(RedisUtil.class)
|
|
|
|
|
.hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getInsureResourceId(),
|
|
|
|
|
"fuel", statistic.getFuel().getTotal() + "");
|
|
|
|
|
//保障分队
|
|
|
|
|
Object supplierObj = SpringUtil.getBean(RedisUtil.class).hget(
|
|
|
|
|
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),
|
|
|
|
|
"scenarioInfo");
|
|
|
|
|
//被保障分队
|
|
|
|
|
Object insureObj = SpringUtil.getBean(RedisUtil.class).hget(
|
|
|
|
|
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getInsureResourceId(),
|
|
|
|
|
"scenarioInfo");
|
|
|
|
|
if(supplierObj!=null&&insureObj!=null){
|
|
|
|
|
|
|
|
|
|
Object supplierObj = SpringUtil.getBean(RedisUtil.class)
|
|
|
|
|
.hget(scenarioTask.getScenarioId() + "-" + roomId + "-"
|
|
|
|
|
+ scenarioTask.getResourceId(),
|
|
|
|
|
"fuel");
|
|
|
|
|
//减少保障分队的量
|
|
|
|
|
if (supplierObj != null) {
|
|
|
|
|
double supplierMedical = Double.parseDouble(supplierObj.toString());
|
|
|
|
|
ScenarioInfo scenarioSupplierInfo = JSON.parseObject(supplierObj.toString(), ScenarioInfo.class);
|
|
|
|
|
ScenarioInfo scenarioInsureInfo = JSON.parseObject(insureObj.toString(), ScenarioInfo.class);
|
|
|
|
|
|
|
|
|
|
scenarioSupplierInfo.getFuel().setCurrent(scenarioInsureInfo.getFuel().getCurrent() - statistic.getFuel().getTotal());
|
|
|
|
|
scenarioInsureInfo.getFuel().setCurrent(statistic.getFuel().getTotal());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SpringUtil.getBean(RedisUtil.class).hset(
|
|
|
|
|
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getInsureResourceId(),
|
|
|
|
|
"scenarioInfo",JSON.toJSONString(scenarioInsureInfo));
|
|
|
|
|
|
|
|
|
|
SpringUtil.getBean(RedisUtil.class).hset(
|
|
|
|
|
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),
|
|
|
|
|
"scenarioInfo",JSON.toJSONString(scenarioSupplierInfo));
|
|
|
|
|
|
|
|
|
|
double remain = supplierMedical - statistic.getFuel().getTotal();
|
|
|
|
|
SpringUtil.getBean(RedisUtil.class)
|
|
|
|
|
.hset(scenarioTask.getScenarioId() + "-" + roomId + "-"
|
|
|
|
|
+ scenarioTask.getResourceId(),
|
|
|
|
|
"fuel", remain + "");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void supplierAmmunition(StatisticBean statistic) {
|
|
|
|
|
|
|
|
|
|
SpringUtil.getBean(RedisUtil.class)
|
|
|
|
|
.hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getInsureResourceId(),
|
|
|
|
|
"ammunition", statistic.getAmmunition().getTotal() + "");
|
|
|
|
|
Object supplierObj = SpringUtil.getBean(RedisUtil.class)
|
|
|
|
|
.hget(scenarioTask.getScenarioId() + "-" + roomId + "-"
|
|
|
|
|
+ scenarioTask.getResourceId(),
|
|
|
|
|
"ammunition");
|
|
|
|
|
//减少保障分队的量
|
|
|
|
|
if (supplierObj != null) {
|
|
|
|
|
double supplierMedical = Double.parseDouble(supplierObj.toString());
|
|
|
|
|
//保障分队
|
|
|
|
|
Object supplierObj = SpringUtil.getBean(RedisUtil.class).hget(
|
|
|
|
|
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),
|
|
|
|
|
"scenarioInfo");
|
|
|
|
|
//被保障分队
|
|
|
|
|
Object insureObj = SpringUtil.getBean(RedisUtil.class).hget(
|
|
|
|
|
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getInsureResourceId(),
|
|
|
|
|
"scenarioInfo");
|
|
|
|
|
if(supplierObj!=null&&insureObj!=null){
|
|
|
|
|
|
|
|
|
|
ScenarioInfo scenarioSupplierInfo = JSON.parseObject(supplierObj.toString(), ScenarioInfo.class);
|
|
|
|
|
ScenarioInfo scenarioInsureInfo = JSON.parseObject(insureObj.toString(), ScenarioInfo.class);
|
|
|
|
|
|
|
|
|
|
scenarioSupplierInfo.getAmmunition().setCurrent(scenarioInsureInfo.getAmmunition().getCurrent() - statistic.getAmmunition().getTotal());
|
|
|
|
|
scenarioInsureInfo.getAmmunition().setCurrent(statistic.getAmmunition().getTotal());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SpringUtil.getBean(RedisUtil.class).hset(
|
|
|
|
|
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getInsureResourceId(),
|
|
|
|
|
"scenarioInfo",JSON.toJSONString(scenarioInsureInfo));
|
|
|
|
|
|
|
|
|
|
SpringUtil.getBean(RedisUtil.class).hset(
|
|
|
|
|
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),
|
|
|
|
|
"scenarioInfo",JSON.toJSONString(scenarioSupplierInfo));
|
|
|
|
|
|
|
|
|
|
double remain = supplierMedical - statistic.getAmmunition().getTotal();
|
|
|
|
|
SpringUtil.getBean(RedisUtil.class)
|
|
|
|
|
.hset(scenarioTask.getScenarioId() + "-" + roomId + "-"
|
|
|
|
|
+ scenarioTask.getResourceId(),
|
|
|
|
|
"ammunition", remain + "");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void supplierWater(StatisticBean statistic) {
|
|
|
|
|
|
|
|
|
|
SpringUtil.getBean(RedisUtil.class)
|
|
|
|
|
.hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getInsureResourceId(),
|
|
|
|
|
"water", statistic.getWater().getTotal() + "");
|
|
|
|
|
Object supplierObj = SpringUtil.getBean(RedisUtil.class)
|
|
|
|
|
.hget(scenarioTask.getScenarioId() + "-" + roomId + "-"
|
|
|
|
|
+ scenarioTask.getResourceId(),
|
|
|
|
|
"water");
|
|
|
|
|
//减少保障分队的量
|
|
|
|
|
if (supplierObj != null) {
|
|
|
|
|
double supplierMedical = Double.parseDouble(supplierObj.toString());
|
|
|
|
|
//保障分队
|
|
|
|
|
Object supplierObj = SpringUtil.getBean(RedisUtil.class).hget(
|
|
|
|
|
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),
|
|
|
|
|
"scenarioInfo");
|
|
|
|
|
//被保障分队
|
|
|
|
|
Object insureObj = SpringUtil.getBean(RedisUtil.class).hget(
|
|
|
|
|
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getInsureResourceId(),
|
|
|
|
|
"scenarioInfo");
|
|
|
|
|
if(supplierObj!=null&&insureObj!=null){
|
|
|
|
|
|
|
|
|
|
ScenarioInfo scenarioSupplierInfo = JSON.parseObject(supplierObj.toString(), ScenarioInfo.class);
|
|
|
|
|
ScenarioInfo scenarioInsureInfo = JSON.parseObject(insureObj.toString(), ScenarioInfo.class);
|
|
|
|
|
|
|
|
|
|
scenarioSupplierInfo.getWater().setCurrent(scenarioInsureInfo.getWater().getCurrent() - statistic.getWater().getTotal());
|
|
|
|
|
scenarioInsureInfo.getWater().setCurrent(statistic.getWater().getTotal());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SpringUtil.getBean(RedisUtil.class).hset(
|
|
|
|
|
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getInsureResourceId(),
|
|
|
|
|
"scenarioInfo",JSON.toJSONString(scenarioInsureInfo));
|
|
|
|
|
|
|
|
|
|
SpringUtil.getBean(RedisUtil.class).hset(
|
|
|
|
|
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),
|
|
|
|
|
"scenarioInfo",JSON.toJSONString(scenarioSupplierInfo));
|
|
|
|
|
|
|
|
|
|
double remain = supplierMedical - statistic.getWater().getTotal();
|
|
|
|
|
SpringUtil.getBean(RedisUtil.class)
|
|
|
|
|
.hset(scenarioTask.getScenarioId() + "-" + roomId + "-"
|
|
|
|
|
+ scenarioTask.getResourceId(),
|
|
|
|
|
"water", remain + "");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void supplierFood(StatisticBean statistic) {
|
|
|
|
|
//保障分队
|
|
|
|
|
Object supplierObj = SpringUtil.getBean(RedisUtil.class).hget(
|
|
|
|
|
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),
|
|
|
|
|
"scenarioInfo");
|
|
|
|
|
//被保障分队
|
|
|
|
|
Object insureObj = SpringUtil.getBean(RedisUtil.class).hget(
|
|
|
|
|
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getInsureResourceId(),
|
|
|
|
|
"scenarioInfo");
|
|
|
|
|
if(supplierObj!=null&&insureObj!=null){
|
|
|
|
|
|
|
|
|
|
SpringUtil.getBean(RedisUtil.class)
|
|
|
|
|
.hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getInsureResourceId(),
|
|
|
|
|
"food", statistic.getFood().getTotal() + "");
|
|
|
|
|
Object supplierObj = SpringUtil.getBean(RedisUtil.class)
|
|
|
|
|
.hget(scenarioTask.getScenarioId() + "-" + roomId + "-"
|
|
|
|
|
+ scenarioTask.getResourceId(),
|
|
|
|
|
"food");
|
|
|
|
|
//减少保障分队的量
|
|
|
|
|
if (supplierObj != null) {
|
|
|
|
|
double supplierMedical = Double.parseDouble(supplierObj.toString());
|
|
|
|
|
ScenarioInfo scenarioSupplierInfo = JSON.parseObject(supplierObj.toString(), ScenarioInfo.class);
|
|
|
|
|
ScenarioInfo scenarioInsureInfo = JSON.parseObject(insureObj.toString(), ScenarioInfo.class);
|
|
|
|
|
|
|
|
|
|
scenarioSupplierInfo.getFood().setCurrent(scenarioInsureInfo.getFood().getCurrent() - statistic.getFood().getTotal());
|
|
|
|
|
scenarioInsureInfo.getFood().setCurrent(statistic.getFood().getTotal());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SpringUtil.getBean(RedisUtil.class).hset(
|
|
|
|
|
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getInsureResourceId(),
|
|
|
|
|
"scenarioInfo",JSON.toJSONString(scenarioInsureInfo));
|
|
|
|
|
|
|
|
|
|
SpringUtil.getBean(RedisUtil.class).hset(
|
|
|
|
|
scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),
|
|
|
|
|
"scenarioInfo",JSON.toJSONString(scenarioSupplierInfo));
|
|
|
|
|
|
|
|
|
|
double remain = supplierMedical - statistic.getFood().getTotal();
|
|
|
|
|
SpringUtil.getBean(RedisUtil.class)
|
|
|
|
|
.hset(scenarioTask.getScenarioId() + "-" + roomId + "-"
|
|
|
|
|
+ scenarioTask.getResourceId(),
|
|
|
|
|
"food", remain + "");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|