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; /** * [类的简要说明] *

* [详细描述,可选] *

* * @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 suppliers = orgSupplierService.getByOrgId(resourceInstance.getResourceId()); Map 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; } }