simulation-backend/src/main/java/com/hivekion/statistic/service/impl/StatisticServiceImpl.java

85 lines
2.9 KiB
Java
Raw Normal View History

2025-09-14 14:19:32 +08:00
package com.hivekion.statistic.service.impl;
import com.hivekion.baseData.entity.OrgSupplier;
import com.hivekion.baseData.service.OrgSupplierService;
import com.hivekion.scenario.entity.ScenarioResource;
import com.hivekion.scenario.service.ScenarioResourceService;
import com.hivekion.statistic.bean.StatisticBean;
import com.hivekion.statistic.service.StatisticService;
import com.hivekion.supplier.entity.SuppliesDict;
import com.hivekion.supplier.service.SuppliesDictService;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
/**
* [类的简要说明]
* <p>
* [详细描述可选]
* <p>
*
* @author LiDongYU
* @since 2025/7/22
*/
@Service
public class StatisticServiceImpl implements StatisticService {
@Resource
private ScenarioResourceService scenarioResourceService;
@Resource
private OrgSupplierService orgSupplierService;
@Resource
private SuppliesDictService suppliesDictService;
@Override
public StatisticBean statistic(String resourceId) {
StatisticBean statisticBean = new StatisticBean();
//获取分队信息
ScenarioResource resourceInstance = scenarioResourceService.getById(resourceId);
if(resourceInstance == null){
return statisticBean;
}
statisticBean.getTeam().setType(resourceInstance.getType());
statisticBean.getTeam().setLat(resourceInstance.getLat());
statisticBean.getTeam().setLng(resourceInstance.getLng());
statisticBean.getTeam().setTeamName(resourceInstance.getResourceName());
//获取物资信息
List<OrgSupplier> suppliers = orgSupplierService.getByOrgId(resourceInstance.getResourceId());
Map<String, SuppliesDict> supplierMap = suppliesDictService.supplierDictMap();
suppliers.forEach(supplier -> {
SuppliesDict dict = supplierMap.get(supplier.getId());
if (dict != null) {
switch (dict.getCode()) {
case "FOOD":
statisticBean.getFood().setTotal(supplier.getAccount());
statisticBean.getFood().setCurrent(supplier.getAccount());
break;
case "WATER":
statisticBean.getWater().setTotal(supplier.getAccount());
statisticBean.getWater().setCurrent(supplier.getAccount());
break;
case "FUEL":
statisticBean.getFuel().setTotal(supplier.getAccount());
statisticBean.getFuel().setCurrent(supplier.getAccount());
break;
case "MEDICAL":
statisticBean.getMedical().setTotal(supplier.getAccount());
statisticBean.getMedical().setCurrent(supplier.getAccount());
break;
case "AMMUNITION":
statisticBean.getAmmunition().setTotal(supplier.getAccount());
statisticBean.getAmmunition().setCurrent(supplier.getAccount());
break;
default:
break;
}
}
});
return statisticBean;
}
}