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<ProProject, IProProjectService> {
|
@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<List<ProProject> > queryPageList(ProProject project, HttpServletRequest req) {
|
Result<List<ProProject> > result = new Result<>();
|
QueryWrapper<ProProject> queryWrapper = QueryGenerator.initQueryWrapper(project, req.getParameterMap());
|
List<ProProject> 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<List<Map<String, Object>>> queryPageListCustom(ProProject project, HttpServletRequest req) {
|
Result<List<Map<String, Object>>> result = new Result<>();
|
QueryWrapper<ProProject> queryWrapper = QueryGenerator.initQueryWrapper(project, req.getParameterMap());
|
List<ProProject> list = proProjectService.list(queryWrapper);
|
List<Map<String, Object>> dynamcTableHeader = createDynamcTableHeader(list);
|
List<Map<String, Object>> dynamcTableData = createDynamcTableData(list);
|
result.setSuccess(true);
|
result.setResult(dynamcTableData);
|
result.setResultExt(dynamcTableHeader);
|
|
|
|
return result;
|
}
|
|
/**
|
* 构建动态表格数据
|
*/
|
private List<Map<String,Object>> createDynamcTableData(List<ProProject> list) {
|
List<Map<String,Object>> res = new ArrayList<>();
|
|
for (int i = 0; i <list.size() ; i++) {
|
Map<String,Object> 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<Map<String, Object>> createDynamcTableHeader(List<ProProject> records) {
|
List<Map<String, Object>> res = new ArrayList<>();
|
TreeSet<String> 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<String,Object> map = new HashMap<>();
|
Map<String,Object> map2 = new HashMap<>();
|
map.put("name",item);
|
map2.put("name",item+'k');
|
res.add(map);
|
}
|
return res;
|
|
}
|
|
|
|
}
|