任务相关

This commit is contained in:
李玉东 2025-09-20 15:57:25 +08:00
parent 9862c48de3
commit 2e303227c3

View File

@ -17,104 +17,117 @@ import com.hivekion.supplier.entity.SupplierRequest;
import com.hivekion.supplier.entity.SuppliesDict;
import com.hivekion.supplier.service.ISupplierRequestService;
import com.hivekion.supplier.service.SuppliesDictService;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
@Component("WebsocketScenarioService")
public class ScenarioServiceImpl implements ScenarioService {
@Resource
private ScenarioResourceService scenarioResourceService;
@Resource
private OrgSupplierService orgSupplierService;
@Resource
private SuppliesDictService suppliesDictService;
@Resource
private IScenarioOrgPostService scenarioOrgPostService;
@Resource
private FightpowerstaffService fightpowerstaffService;
@Resource
private ScenarioResourceService scenarioResourceService;
@Resource
private OrgSupplierService orgSupplierService;
@Resource
private SuppliesDictService suppliesDictService;
@Resource
private IScenarioOrgPostService scenarioOrgPostService;
@Resource
private FightpowerstaffService fightpowerstaffService;
@Resource
private ScenarioTaskService scenarioTaskService;
@Resource
private ISupplierRequestService supplierRequestService;
@Override
public ScenarioInfo listScenarioInfo(Integer scenarioId, String roomId, String resourceId) {
ScenarioInfo scenarioInfo = new ScenarioInfo();
//获取分队信息
ScenarioResource resourceInstance = scenarioResourceService.getById(resourceId);
//获取关联的组织机构信息
ScenarioOrgPost post = new ScenarioOrgPost();
post.setResourceId(resourceId);
List<ScenarioOrgPost> orgPostList = scenarioOrgPostService.selectByCondition(post);
List<Integer> orgList = orgPostList.stream().map(ScenarioOrgPost::getOrgId)
.collect(Collectors.toList());
List<Fightpowerstaff> staffList = null;
if(!orgList.isEmpty()){
staffList = fightpowerstaffService.queryByOrgIds(orgList);
}else{
staffList = new ArrayList<>();
}
//获取物资信息
List<OrgSupplier> suppliers = orgSupplierService.selectByOrgIds(orgList);
if(suppliers==null||suppliers.isEmpty()){
return new ScenarioInfo();
}
Map<String, SuppliesDict> supplierMap = suppliesDictService.supplierDictMap();
@Resource
private ScenarioTaskService scenarioTaskService;
@Resource
private ISupplierRequestService supplierRequestService;
suppliers.forEach(supplier -> {
SuppliesDict dict = supplierMap.get(supplier.getSupplierId());
if (dict != null) {
switch (dict.getCode()) {
case "FOOD":
scenarioInfo.getFood().setTotal(scenarioInfo.getFood().getTotal()+supplier.getAccount());
scenarioInfo.getFood().setCurrent(scenarioInfo.getFood().getCurrent()+supplier.getAccount());
break;
case "WATER":
scenarioInfo.getWater().setTotal(scenarioInfo.getWater().getTotal()+supplier.getAccount());
scenarioInfo.getWater().setCurrent(scenarioInfo.getWater().getCurrent()+supplier.getAccount());
break;
case "FUEL":
scenarioInfo.getFuel().setTotal(scenarioInfo.getFuel().getTotal()+supplier.getAccount());
scenarioInfo.getFuel().setCurrent(scenarioInfo.getFuel().getCurrent()+supplier.getAccount());
break;
case "MEDICAL":
scenarioInfo.getMedical().setTotal( scenarioInfo.getMedical().getTotal()+supplier.getAccount());
scenarioInfo.getMedical().setCurrent( scenarioInfo.getMedical().getCurrent()+supplier.getAccount());
break;
case "AMMUNITION":
scenarioInfo.getAmmunition().setTotal( scenarioInfo.getAmmunition().getTotal()+supplier.getAccount());
scenarioInfo.getAmmunition().setCurrent(scenarioInfo.getAmmunition().getCurrent()+supplier.getAccount());
break;
default:
break;
}
}
});
ScenarioTask scenarioTask = new ScenarioTask();
scenarioTask.setScenarioId(scenarioId);
scenarioTask.setRoomId(roomId);
scenarioTask.setResourceId(resourceId);
List<ScenarioTask> scenarioTasks = scenarioTaskService.queryTaskList(scenarioTask);
List<SupplierRequest> supplierRequests = supplierRequestService.list(new QueryWrapper<SupplierRequest>().eq("FROM_RESOURCE_ID",resourceId));
scenarioInfo.setScenarioTasks(scenarioTasks);
scenarioInfo.setStaffList(staffList);
scenarioInfo.setOrgPostList(orgPostList);
scenarioInfo.setSuppliers(suppliers);
scenarioInfo.setSupplierRequests(supplierRequests);
return scenarioInfo;
@Override
public ScenarioInfo listScenarioInfo(Integer scenarioId, String roomId, String resourceId) {
ScenarioInfo scenarioInfo = new ScenarioInfo();
//获取分队信息
ScenarioResource resourceInstance = scenarioResourceService.getById(resourceId);
//获取关联的组织机构信息
ScenarioOrgPost post = new ScenarioOrgPost();
post.setResourceId(resourceId);
List<ScenarioOrgPost> orgPostList = scenarioOrgPostService.selectByCondition(post);
List<Integer> orgList = orgPostList.stream().map(ScenarioOrgPost::getOrgId)
.collect(Collectors.toList());
List<Fightpowerstaff> staffList = null;
if (!orgList.isEmpty()) {
staffList = fightpowerstaffService.queryByOrgIds(orgList);
} else {
staffList = new ArrayList<>();
}
if (orgList.isEmpty()) {
return new ScenarioInfo();
}
//获取物资信息
List<OrgSupplier> suppliers = orgSupplierService.selectByOrgIds(orgList);
if (suppliers == null || suppliers.isEmpty()) {
return new ScenarioInfo();
}
Map<String, SuppliesDict> supplierMap = suppliesDictService.supplierDictMap();
suppliers.forEach(supplier -> {
SuppliesDict dict = supplierMap.get(supplier.getSupplierId());
if (dict != null) {
switch (dict.getCode()) {
case "FOOD":
scenarioInfo.getFood()
.setTotal(scenarioInfo.getFood().getTotal() + supplier.getAccount());
scenarioInfo.getFood()
.setCurrent(scenarioInfo.getFood().getCurrent() + supplier.getAccount());
break;
case "WATER":
scenarioInfo.getWater()
.setTotal(scenarioInfo.getWater().getTotal() + supplier.getAccount());
scenarioInfo.getWater()
.setCurrent(scenarioInfo.getWater().getCurrent() + supplier.getAccount());
break;
case "FUEL":
scenarioInfo.getFuel()
.setTotal(scenarioInfo.getFuel().getTotal() + supplier.getAccount());
scenarioInfo.getFuel()
.setCurrent(scenarioInfo.getFuel().getCurrent() + supplier.getAccount());
break;
case "MEDICAL":
scenarioInfo.getMedical()
.setTotal(scenarioInfo.getMedical().getTotal() + supplier.getAccount());
scenarioInfo.getMedical()
.setCurrent(scenarioInfo.getMedical().getCurrent() + supplier.getAccount());
break;
case "AMMUNITION":
scenarioInfo.getAmmunition()
.setTotal(scenarioInfo.getAmmunition().getTotal() + supplier.getAccount());
scenarioInfo.getAmmunition()
.setCurrent(scenarioInfo.getAmmunition().getCurrent() + supplier.getAccount());
break;
default:
break;
}
}
});
ScenarioTask scenarioTask = new ScenarioTask();
scenarioTask.setScenarioId(scenarioId);
scenarioTask.setRoomId(roomId);
scenarioTask.setResourceId(resourceId);
List<ScenarioTask> scenarioTasks = scenarioTaskService.queryTaskList(scenarioTask);
List<SupplierRequest> supplierRequests = supplierRequestService.list(
new QueryWrapper<SupplierRequest>().eq("FROM_RESOURCE_ID", resourceId));
scenarioInfo.setScenarioTasks(scenarioTasks);
scenarioInfo.setStaffList(staffList);
scenarioInfo.setOrgPostList(orgPostList);
scenarioInfo.setSuppliers(suppliers);
scenarioInfo.setSupplierRequests(supplierRequests);
return scenarioInfo;
}
}