package org.jeecg.modules.project.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.PermissionData; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.modules.feign.SystemClient; import org.jeecg.modules.project.entity.ProProject; import org.jeecg.modules.project.service.IProProjectLinkService; import org.jeecg.modules.project.service.IProProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.*; @Slf4j @Api(tags = "项目PMO") @RestController @RequestMapping("/pro/pmo") public class ProPmoController extends JeecgController { @Autowired private IProProjectService proProjectService; @Autowired private IProProjectLinkService proLinkService; //注入feign客户端 @Autowired private SystemClient systemClient; @Value("${jeecg.path.upload}") private String upLoadPath; @ApiOperation(value = "项目PMO列表", notes = "项目PMO列表") @RequestMapping(value = "/list", method = RequestMethod.GET) public Result > queryPageList(ProProject project, HttpServletRequest req) { Result > result = new Result<>(); QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(project, req.getParameterMap()); List list = proProjectService.list(queryWrapper); result.setSuccess(true); result.setResult(list); return result; } @ApiOperation(value = "项目PMO列表", notes = "项目PMO列表") @RequestMapping(value = "/listCustom", method = RequestMethod.GET) @PermissionData(pageComponent="kb/PMO") public Result>> queryPageListCustom(ProProject project, HttpServletRequest req) { Result>> result = new Result<>(); QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(project, req.getParameterMap()); List list = proProjectService.list(queryWrapper); List> dynamcTableHeader = createDynamcTableHeader(list); List> dynamcTableData = createDynamcTableData(list); result.setSuccess(true); result.setResult(dynamcTableData); result.setResultExt(dynamcTableHeader); return result; } /** * 构建动态表格数据 */ private List> createDynamcTableData(List list) { List> res = new ArrayList<>(); for (int i = 0; i map = new HashMap<>(); ProProject item = list.get(i); map.put("id",item.getId()); map.put("xmmc",item.getXmmc()); map.put("wcjd",item.getWcjd()); String xmcy = item.getXmcy(); if(!StringUtils.isEmpty(xmcy)){ String[] split = xmcy.split(","); for (int j = 0; j < split.length; j++) { map.put(split[j],split[j]); } } String xmfzr = item.getXmfzr(); if(!StringUtils.isEmpty(xmfzr)){ map.put(xmfzr,xmfzr); } res.add(map); } return res; } /** * 构建动态表格头部 */ private List> createDynamcTableHeader(List records) { List> res = new ArrayList<>(); TreeSet userTree = new TreeSet<>(); records.forEach(item -> { if (!StringUtils.isEmpty(item.getXmfzr())) { String[] split = item.getXmfzr().split(","); for (int i = 0; i < split.length; i++) { String user = split[i]; userTree.add(user); } } if (!StringUtils.isEmpty(item.getXmcy())) { String[] split = item.getXmcy().split(","); for (int i = 0; i < split.length; i++) { String user = split[i]; userTree.add(user); } } }); for (String item : userTree) { Map map = new HashMap<>(); Map map2 = new HashMap<>(); map.put("name",item); map2.put("name",item+'k'); res.add(map); } return res; } }