|
@@ -4,6 +4,7 @@ import cn.afterturn.easypoi.entity.vo.NormalExcelConstants;
|
|
|
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
|
|
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
|
|
import cn.afterturn.easypoi.view.PoiBaseView;
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.ruoyi.common.annotation.Log;
|
|
@@ -20,8 +21,12 @@ import com.ruoyi.system.service.ISysDictTypeService;
|
|
|
import com.ruoyi.zhdd.domain.Resource;
|
|
|
import com.ruoyi.zhdd.domain.ResourceDetail;
|
|
|
import com.ruoyi.zhdd.domain.bo.ResourceDetailBo;
|
|
|
+import com.ruoyi.zhdd.domain.vo.ResourceCarDetailExport;
|
|
|
+import com.ruoyi.zhdd.domain.vo.ResourceCarDetailVo;
|
|
|
import com.ruoyi.zhdd.domain.vo.ResourceDetailExport;
|
|
|
import com.ruoyi.zhdd.domain.vo.ResourceDetailVo;
|
|
|
+import com.ruoyi.zhdd.domain.vo.ResourceTeamDetailExport;
|
|
|
+import com.ruoyi.zhdd.domain.vo.ResourceTeamDetailVo;
|
|
|
import com.ruoyi.zhdd.domain.vo.ResourceVo;
|
|
|
import com.ruoyi.zhdd.service.IResourceDetailService;
|
|
|
import com.ruoyi.zhdd.service.IResourceService;
|
|
@@ -83,38 +88,104 @@ public class ResourceDetailController extends BaseController {
|
|
|
@Log(title = "应急资源明细", businessType = BusinessType.EXPORT)
|
|
|
@GetMapping("/export/{ids}")
|
|
|
public void export(@PathVariable String[] ids, HttpServletResponse response, HttpServletRequest request, ModelMap modelMap) {
|
|
|
- List<ResourceDetailVo> list = iResourceDetailService.listVo(Wrappers.<ResourceDetail>lambdaQuery()
|
|
|
- .in(ResourceDetail::getResourceId, Arrays.asList(ids)).orderByAsc(ResourceDetail::getResourceId));
|
|
|
- // 查询仓库名称
|
|
|
- List<Resource> list1 = resourceService.list(Wrappers.<Resource>lambdaQuery().in(Resource::getId, Arrays.asList(ids)));
|
|
|
- Map<String, Resource> collect = list1.stream().collect(Collectors.toMap(Resource::getId, a -> a));
|
|
|
+ // 物资明细
|
|
|
+ List<ResourceDetailVo> detailList = iResourceDetailService.listVo(Wrappers.<ResourceDetail>lambdaQuery()
|
|
|
+ .in(ResourceDetail::getResourceId, Arrays.asList(ids)));
|
|
|
|
|
|
- Map<String, List<ResourceDetailVo>> collect1 = list.stream().collect(Collectors.groupingBy(ResourceDetailVo::getResourceId));
|
|
|
+ // 查询仓库名称
|
|
|
+ List<Resource> resourceList = resourceService.list(Wrappers.<Resource>lambdaQuery().in(Resource::getId, Arrays.asList(ids)));
|
|
|
+ Map<String, Resource> resourceCollect = resourceList.stream().collect(Collectors.toMap(Resource::getId, a -> a));
|
|
|
|
|
|
// 行业主管单位
|
|
|
List<SysDictData> zhdd_admin_org = dictTypeService.selectDictDataByType("zhdd_admin_org");
|
|
|
Map<String, String> adminOrgCollect = zhdd_admin_org.stream().collect(Collectors.toMap(SysDictData::getDictValue, SysDictData::getDictLabel));
|
|
|
|
|
|
- List<ResourceDetailExport> exportList = new ArrayList<>();
|
|
|
- for (Map.Entry<String, List<ResourceDetailVo>> stringListEntry : collect1.entrySet()) {
|
|
|
- ResourceDetailExport bean = new ResourceDetailExport();
|
|
|
- Resource resource = collect.get(stringListEntry.getKey());
|
|
|
- bean.setAdminOrgName(StrUtil.isNotBlank(resource.getAdminOrgName()) ? adminOrgCollect.get(resource.getAdminOrgName()) : "");
|
|
|
- bean.setResourceName(resource.getName());
|
|
|
- bean.setManageUnit(resource.getManageUnit());
|
|
|
- bean.setContactName(resource.getContactName());
|
|
|
- bean.setContactPhone(resource.getContactPhone());
|
|
|
- bean.setAddress(resource.getAddress());
|
|
|
- bean.setDetail(stringListEntry.getValue());
|
|
|
- exportList.add(bean);
|
|
|
+ // 根据仓库的类型判断走哪一种导出bean
|
|
|
+ if (resourceList.size() > 0) {
|
|
|
+ Integer resourceType = resourceList.get(0).getResourceType();
|
|
|
+ if (resourceType == 1) {
|
|
|
+ // 应急仓库
|
|
|
+ List<ResourceDetailExport> exportList = new ArrayList<>();
|
|
|
+ Map<String, List<ResourceDetailVo>> detailCollect = detailList.stream().collect(Collectors.groupingBy(ResourceDetailVo::getResourceId));
|
|
|
+ for (Map.Entry<String, List<ResourceDetailVo>> stringListEntry : detailCollect.entrySet()) {
|
|
|
+ ResourceDetailExport bean = new ResourceDetailExport();
|
|
|
+ Resource resource = resourceCollect.get(stringListEntry.getKey());
|
|
|
+ bean.setAdminOrgName(StrUtil.isNotBlank(resource.getAdminOrgName()) ? adminOrgCollect.get(resource.getAdminOrgName()) : "");
|
|
|
+ bean.setResourceName(resource.getName());
|
|
|
+ bean.setManageUnit(resource.getManageUnit());
|
|
|
+ bean.setContactName(resource.getContactName());
|
|
|
+ bean.setContactPhone(resource.getContactPhone());
|
|
|
+ bean.setAddress(resource.getAddress());
|
|
|
+ bean.setDetail(stringListEntry.getValue());
|
|
|
+ exportList.add(bean);
|
|
|
+ }
|
|
|
+ ExportParams params = new ExportParams("仓库物资明细", "仓库物资", ExcelType.XSSF);
|
|
|
+ params.setFreezeCol(6);
|
|
|
+ modelMap.put(NormalExcelConstants.DATA_LIST, exportList);
|
|
|
+ modelMap.put(NormalExcelConstants.CLASS, ResourceDetailExport.class);
|
|
|
+ modelMap.put(NormalExcelConstants.PARAMS, params);
|
|
|
+ modelMap.put(NormalExcelConstants.FILE_NAME, "仓库物资明细");
|
|
|
+ PoiBaseView.render(modelMap, request, response, NormalExcelConstants.EASYPOI_EXCEL_VIEW);
|
|
|
+ } else if (resourceType == 2) {
|
|
|
+ // 应急队伍
|
|
|
+ List<ResourceTeamDetailExport> exportList = new ArrayList<>();
|
|
|
+ List<ResourceTeamDetailVo> teamDetailList = new ArrayList<>();
|
|
|
+ for (ResourceDetailVo resourceDetailVo : detailList) {
|
|
|
+ ResourceTeamDetailVo resourceTeamDetailVo = new ResourceTeamDetailVo();
|
|
|
+ BeanUtil.copyProperties(resourceDetailVo, resourceTeamDetailVo);
|
|
|
+ teamDetailList.add(resourceTeamDetailVo);
|
|
|
+ }
|
|
|
+ Map<String, List<ResourceTeamDetailVo>> detailCollect = teamDetailList.stream().collect(Collectors.groupingBy(ResourceTeamDetailVo::getResourceId));
|
|
|
+ for (Map.Entry<String, List<ResourceTeamDetailVo>> stringListEntry : detailCollect.entrySet()) {
|
|
|
+ ResourceTeamDetailExport bean = new ResourceTeamDetailExport();
|
|
|
+ Resource resource = resourceCollect.get(stringListEntry.getKey());
|
|
|
+ bean.setAdminOrgName(StrUtil.isNotBlank(resource.getAdminOrgName()) ? adminOrgCollect.get(resource.getAdminOrgName()) : "");
|
|
|
+ bean.setResourceName(resource.getName());
|
|
|
+ bean.setManageUnit(resource.getManageUnit());
|
|
|
+ bean.setContactName(resource.getContactName());
|
|
|
+ bean.setContactPhone(resource.getContactPhone());
|
|
|
+ bean.setAddress(resource.getAddress());
|
|
|
+ bean.setDetail(stringListEntry.getValue());
|
|
|
+ exportList.add(bean);
|
|
|
+ }
|
|
|
+ ExportParams params = new ExportParams("队伍物资明细", "队伍物资", ExcelType.XSSF);
|
|
|
+ params.setFreezeCol(6);
|
|
|
+ modelMap.put(NormalExcelConstants.DATA_LIST, exportList);
|
|
|
+ modelMap.put(NormalExcelConstants.CLASS, ResourceTeamDetailExport.class);
|
|
|
+ modelMap.put(NormalExcelConstants.PARAMS, params);
|
|
|
+ modelMap.put(NormalExcelConstants.FILE_NAME, "队伍物资明细");
|
|
|
+ PoiBaseView.render(modelMap, request, response, NormalExcelConstants.EASYPOI_EXCEL_VIEW);
|
|
|
+ } else if (resourceType == 3) {
|
|
|
+ // 应急车船
|
|
|
+ List<ResourceCarDetailExport> exportList = new ArrayList<>();
|
|
|
+ List<ResourceCarDetailVo> carDetailList = new ArrayList<>();
|
|
|
+ for (ResourceDetailVo resourceDetailVo : detailList) {
|
|
|
+ ResourceCarDetailVo resourceCarDetailVo = new ResourceCarDetailVo();
|
|
|
+ BeanUtil.copyProperties(resourceDetailVo, resourceCarDetailVo);
|
|
|
+ carDetailList.add(resourceCarDetailVo);
|
|
|
+ }
|
|
|
+ Map<String, List<ResourceCarDetailVo>> detailCollect = carDetailList.stream().collect(Collectors.groupingBy(ResourceCarDetailVo::getResourceId));
|
|
|
+ for (Map.Entry<String, List<ResourceCarDetailVo>> stringListEntry : detailCollect.entrySet()) {
|
|
|
+ ResourceCarDetailExport bean = new ResourceCarDetailExport();
|
|
|
+ Resource resource = resourceCollect.get(stringListEntry.getKey());
|
|
|
+ bean.setAdminOrgName(StrUtil.isNotBlank(resource.getAdminOrgName()) ? adminOrgCollect.get(resource.getAdminOrgName()) : "");
|
|
|
+ bean.setManageUnit(resource.getManageUnit());
|
|
|
+ bean.setContactName(resource.getContactName());
|
|
|
+ bean.setContactPhone(resource.getContactPhone());
|
|
|
+ bean.setAddress(resource.getAddress());
|
|
|
+ bean.setDetail(stringListEntry.getValue());
|
|
|
+ exportList.add(bean);
|
|
|
+ }
|
|
|
+ ExportParams params = new ExportParams("车船物资明细", "车船物资", ExcelType.XSSF);
|
|
|
+ params.setFreezeCol(5);
|
|
|
+ modelMap.put(NormalExcelConstants.DATA_LIST, exportList);
|
|
|
+ modelMap.put(NormalExcelConstants.CLASS, ResourceCarDetailExport.class);
|
|
|
+ modelMap.put(NormalExcelConstants.PARAMS, params);
|
|
|
+ modelMap.put(NormalExcelConstants.FILE_NAME, "车船物资明细");
|
|
|
+ PoiBaseView.render(modelMap, request, response, NormalExcelConstants.EASYPOI_EXCEL_VIEW);
|
|
|
+ }
|
|
|
}
|
|
|
- ExportParams params = new ExportParams("仓库物资明细", "仓库物资", ExcelType.XSSF);
|
|
|
- params.setFreezeCol(5);
|
|
|
- modelMap.put(NormalExcelConstants.DATA_LIST, exportList);
|
|
|
- modelMap.put(NormalExcelConstants.CLASS, ResourceDetailExport.class);
|
|
|
- modelMap.put(NormalExcelConstants.PARAMS, params);
|
|
|
- modelMap.put(NormalExcelConstants.FILE_NAME, "仓库物资明细");
|
|
|
- PoiBaseView.render(modelMap, request, response, NormalExcelConstants.EASYPOI_EXCEL_VIEW);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|