|
|
@@ -1,5 +1,9 @@
|
|
|
package cn.iocoder.yudao.module.pms.controller.admin.iotprojectinfo;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.date.DatePattern;
|
|
|
+import cn.hutool.core.date.LocalDateTimeUtil;
|
|
|
+import cn.hutool.core.util.ObjUtil;
|
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
@@ -12,7 +16,9 @@ import cn.iocoder.yudao.module.pms.controller.admin.iotprojectinfo.vo.IotProject
|
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.iotprojectinfo.IotProjectInfoDO;
|
|
|
import cn.iocoder.yudao.module.pms.service.iotprojectinfo.IotProjectInfoService;
|
|
|
import cn.iocoder.yudao.module.pms.service.iotprojecttask.IotProjectTaskService;
|
|
|
+import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
|
|
|
import cn.iocoder.yudao.module.system.service.dept.DeptService;
|
|
|
+import cn.iocoder.yudao.module.system.service.dict.DictDataService;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
@@ -24,9 +30,7 @@ import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import javax.validation.Valid;
|
|
|
import java.io.IOException;
|
|
|
-import java.util.HashSet;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Set;
|
|
|
+import java.util.*;
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
@@ -44,6 +48,8 @@ public class IotProjectInfoController {
|
|
|
private IotProjectTaskService iotProjectTaskService;
|
|
|
@Resource
|
|
|
private DeptService deptService;
|
|
|
+ @Resource
|
|
|
+ private DictDataService dictDataService;
|
|
|
|
|
|
@PostMapping("/create")
|
|
|
@Operation(summary = "创建项目信息")
|
|
|
@@ -110,16 +116,48 @@ public class IotProjectInfoController {
|
|
|
}
|
|
|
|
|
|
@GetMapping("/export-excel")
|
|
|
- @Operation(summary = "导出项目信息 Excel")
|
|
|
+ @Operation(summary = "导出项目信息列表 Excel")
|
|
|
@PreAuthorize("@ss.hasPermission('rq:iot-project-info:export')")
|
|
|
@ApiAccessLog(operateType = EXPORT)
|
|
|
public void exportIotProjectInfoExcel(@Valid IotProjectInfoPageReqVO pageReqVO,
|
|
|
HttpServletResponse response) throws IOException {
|
|
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
|
- List<IotProjectInfoDO> list = iotProjectInfoService.getIotProjectInfoPage(pageReqVO).getList();
|
|
|
+ Set<Long> idList = new HashSet<>();
|
|
|
+
|
|
|
+ List<IotProjectInfoDO> projectInfos = iotProjectInfoService.getIotProjectInfoPage1(pageReqVO, idList).getList();
|
|
|
+ // 设置 结算方式
|
|
|
+ List<IotProjectInfoRespVO> projects = BeanUtils.toBean(projectInfos, IotProjectInfoRespVO.class);
|
|
|
+ // key施工状态数据字典value value施工状态数据字典label
|
|
|
+ Map<String, String> methodPair = new HashMap<>();
|
|
|
+ // 施工状态 字典数据
|
|
|
+ List<DictDataDO> methodData = dictDataService.getDictDataListByDictType("rq_iot_project_settlement_method");
|
|
|
+ if (CollUtil.isNotEmpty(methodData)) {
|
|
|
+ methodData.forEach(data -> {
|
|
|
+ methodPair.put(data.getValue(), data.getLabel());
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (CollUtil.isNotEmpty(projects)) {
|
|
|
+ projects.forEach(project -> {
|
|
|
+ if (methodPair.containsKey(project.getPayment())) {
|
|
|
+ project.setPaymentStr(methodPair.get(project.getPayment()));
|
|
|
+ }
|
|
|
+ // 创建时间 格式化 全
|
|
|
+ if (ObjUtil.isNotEmpty(project.getCreateTime())) {
|
|
|
+ project.setCreateTimeStr(LocalDateTimeUtil.format(project.getCreateTime(), DatePattern.NORM_DATETIME_PATTERN));
|
|
|
+ }
|
|
|
+ // 创建时间 格式化 yyyy-MM-dd
|
|
|
+ if (ObjUtil.isNotEmpty(project.getStartTime())) {
|
|
|
+ project.setStartTimeStr(LocalDateTimeUtil.format(project.getStartTime(), DatePattern.NORM_DATE_PATTERN));
|
|
|
+ }
|
|
|
+ // 创建时间 格式化 yyyy-MM-dd
|
|
|
+ if (ObjUtil.isNotEmpty(project.getEndTime())) {
|
|
|
+ project.setEndTimeStr(LocalDateTimeUtil.format(project.getEndTime(), DatePattern.NORM_DATE_PATTERN));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
// 导出 Excel
|
|
|
- ExcelUtils.write(response, "项目信息.xls", "数据", IotProjectInfoRespVO.class,
|
|
|
- BeanUtils.toBean(list, IotProjectInfoRespVO.class));
|
|
|
+ ExcelUtils.write(response, "项目信息列表.xls", "项目信息列表", IotProjectInfoRespVO.class,
|
|
|
+ projects);
|
|
|
}
|
|
|
|
|
|
}
|