package com.hivekion.statistic.service.impl; import com.hivekion.baseData.entity.OrgSupplier; import com.hivekion.baseData.service.OrgSupplierService; import com.hivekion.scenario.entity.ScenarioOrgPost; import com.hivekion.scenario.entity.ScenarioResource; import com.hivekion.scenario.service.IScenarioOrgPostService; 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 java.util.stream.Collectors; import javax.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; /** * [类的简要说明] *

* [详细描述,可选] *

* * @author LiDongYU * @since 2025/7/22 */ @Service @Slf4j public class StatisticServiceImpl implements StatisticService { @Resource private ScenarioResourceService scenarioResourceService; @Resource private OrgSupplierService orgSupplierService; @Resource private SuppliesDictService suppliesDictService; @Resource private IScenarioOrgPostService scenarioOrgPostService; @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()); //获取关联的组织机构信息 ScenarioOrgPost post = new ScenarioOrgPost(); post.setResourceId(resourceId); List orgPostList = scenarioOrgPostService.selectByCondition(post); List orgList = orgPostList.stream().map(ScenarioOrgPost::getOrgId) .collect(Collectors.toList()); //获取人员信息 //获取物资信息 List suppliers = orgSupplierService.selectByOrgIds(orgList); log.info("suppliers size::{}",suppliers.size()); Map supplierMap = suppliesDictService.supplierDictMap(); log.info("supplierMap::{}",supplierMap); suppliers.forEach(supplier -> { log.info("supplier:{},{}",supplier,supplier.getId()); SuppliesDict dict = supplierMap.get(supplier.getSupplierId()); log.info("dict:{}",dict); if (dict != null) { switch (dict.getCode()) { case "FOOD": statisticBean.getFood().setTotal(statisticBean.getFood().getTotal()+supplier.getAccount()); statisticBean.getFood().setCurrent(statisticBean.getFood().getCurrent()+supplier.getAccount()); break; case "WATER": statisticBean.getWater().setTotal(statisticBean.getWater().getTotal()+supplier.getAccount()); statisticBean.getWater().setCurrent(statisticBean.getWater().getCurrent()+supplier.getAccount()); break; case "FUEL": statisticBean.getFuel().setTotal(statisticBean.getFuel().getTotal()+supplier.getAccount()); statisticBean.getFuel().setCurrent(statisticBean.getFuel().getCurrent()+supplier.getAccount()); break; case "MEDICAL": statisticBean.getMedical().setTotal( statisticBean.getMedical().getTotal()+supplier.getAccount()); statisticBean.getMedical().setCurrent( statisticBean.getMedical().getCurrent()+supplier.getAccount()); break; case "AMMUNITION": statisticBean.getAmmunition().setTotal( statisticBean.getAmmunition().getTotal()+supplier.getAccount()); statisticBean.getAmmunition().setCurrent(statisticBean.getAmmunition().getCurrent()+supplier.getAccount()); break; default: break; } } }); return statisticBean; } }