Bläddra i källkod

Merge branch 'ls2_early_warning_0731' of http://git.ningdatech.com/liushuai/project-management into dev

 Conflicts:
	pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java
tags/24080901
PoffyZhang 1 år sedan
förälder
incheckning
34b55cabc5
19 ändrade filer med 621 tillägg och 4 borttagningar
  1. +2
    -1
      pmapi/src/main/java/com/ningdatech/pmapi/common/handler/GlobalResponseHandler.java
  2. +56
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/portrait/controller/TagController.java
  3. +174
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/portrait/manage/TagManage.java
  4. +15
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/portrait/mapper/ProjectTagMapper.java
  5. +15
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/portrait/mapper/TagMapper.java
  6. +36
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/portrait/model/dto/TagDTO.java
  7. +31
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/portrait/model/dto/TagToProjectDTO.java
  8. +40
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/portrait/model/entity/ProjectTag.java
  9. +45
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/portrait/model/entity/Tag.java
  10. +25
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/portrait/model/req/TagPageReq.java
  11. +40
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/portrait/model/vo/TagVO.java
  12. +14
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/portrait/service/IProjectTagService.java
  13. +14
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/portrait/service/ITagService.java
  14. +21
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/portrait/service/impl/ProjectTagServiceImpl.java
  15. +21
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/portrait/service/impl/TagServiceImpl.java
  16. +44
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java
  17. +4
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/projectlib/model/vo/ProjectDetailVO.java
  18. +5
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/projectlib/model/vo/ProjectLibListItemVO.java
  19. +19
    -3
      pmapi/src/main/java/com/ningdatech/pmapi/safety/manage/SafetyRiskManage.java

+ 2
- 1
pmapi/src/main/java/com/ningdatech/pmapi/common/handler/GlobalResponseHandler.java Visa fil

@@ -31,7 +31,8 @@ import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
"com.ningdatech.pmapi.filemanage.controller",
"com.ningdatech.pmapi.performance.controller",
"com.ningdatech.pmapi.irs.controller",
"com.ningdatech.pmapi.safety.controller"
"com.ningdatech.pmapi.safety.controller",
"com.ningdatech.pmapi.portrait.controller"
})
public class GlobalResponseHandler implements ResponseBodyAdvice<Object> {



+ 56
- 0
pmapi/src/main/java/com/ningdatech/pmapi/portrait/controller/TagController.java Visa fil

@@ -0,0 +1,56 @@
package com.ningdatech.pmapi.portrait.controller;

import com.ningdatech.basic.model.PageVo;
import com.ningdatech.log.annotation.WebLog;
import com.ningdatech.pmapi.portrait.manage.TagManage;
import com.ningdatech.pmapi.portrait.model.dto.TagDTO;
import com.ningdatech.pmapi.portrait.model.dto.TagToProjectDTO;
import com.ningdatech.pmapi.portrait.model.req.TagPageReq;
import com.ningdatech.pmapi.portrait.model.vo.TagVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;

/**
* @Classname TagController
* @Description
* @Date 2023/8/2 14:11
* @Author PoffyZhang
*/
@RestController
@RequiredArgsConstructor
@Api(tags = "项目画像-标签")
@RequestMapping("/api/v1/portrait/tag")
public class TagController {
private final TagManage tagManage;

@GetMapping("/list/{areaCode}")
@ApiOperation("按区域查询标签列表")
public PageVo<TagVO> list(@PathVariable String areaCode, TagPageReq req) {
return tagManage.list(areaCode,req);
}

@PostMapping("/save")
@ApiOperation("保存标签")
@WebLog("保存标签")
public String save(@Valid @RequestBody TagDTO dto) {
return tagManage.save(dto);
}

@PostMapping("/save-to-project")
@ApiOperation("设置标签到项目")
@WebLog("设置标签到项目")
public String saveToProject(@Valid @RequestBody TagToProjectDTO dto) {
return tagManage.saveToProject(dto);
}

@PostMapping("/remove-tag-to-project")
@ApiOperation("项目删除标签")
@WebLog("项目删除标签")
public String removeTagToProject(@Valid @RequestBody TagToProjectDTO dto) {
return tagManage.removeTagToProject(dto);
}
}

+ 174
- 0
pmapi/src/main/java/com/ningdatech/pmapi/portrait/manage/TagManage.java Visa fil

@@ -0,0 +1,174 @@
package com.ningdatech.pmapi.portrait.manage;

import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ningdatech.basic.function.VUtils;
import com.ningdatech.basic.model.PageVo;
import com.ningdatech.basic.util.CollUtils;
import com.ningdatech.pmapi.portrait.model.dto.TagDTO;
import com.ningdatech.pmapi.portrait.model.dto.TagToProjectDTO;
import com.ningdatech.pmapi.portrait.model.entity.ProjectTag;
import com.ningdatech.pmapi.portrait.model.entity.Tag;
import com.ningdatech.pmapi.portrait.model.req.TagPageReq;
import com.ningdatech.pmapi.portrait.model.vo.TagVO;
import com.ningdatech.pmapi.portrait.service.IProjectTagService;
import com.ningdatech.pmapi.portrait.service.ITagService;
import com.ningdatech.pmapi.projectlib.model.entity.Project;
import com.ningdatech.pmapi.projectlib.service.IProjectService;
import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails;
import com.ningdatech.pmapi.user.util.LoginUserUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;

/**
* @Classname TagManage
* @Description
* @Date 2023/8/2 14:10
* @Author PoffyZhang
*/
@Component
@Slf4j
@AllArgsConstructor
public class TagManage {

private final ITagService tagService;

private final IProjectService projectService;

private final IProjectTagService projectTagService;

/**
* 标签分页
* @param areaCode
* @param req
* @return
*/
public PageVo<TagVO> list(String areaCode, TagPageReq req) {
LambdaQueryWrapper<Tag> query = Wrappers.lambdaQuery(Tag.class)
.eq(Tag::getAreaCode, areaCode)
.like(StringUtils.isNotBlank(req.getName()),Tag::getName,req.getName())
.orderByDesc(Tag::getUpdateOn);
checkAuth(query,LoginUserUtil.loginUserDetail());
Page<Tag> page = tagService.page(req.page(), query);
long total;
if ((total = page.getTotal()) == 0) {
return PageVo.empty();
}
List<TagVO> records = CollUtils.convert(page.getRecords(),
t -> BeanUtil.copyProperties(t,TagVO.class));
return PageVo.of(records, total);
}

/**
* 权限控制
* @param query
* @param user
*/
private void checkAuth(LambdaQueryWrapper<Tag> query, UserInfoDetails user) {
//如果是超管
if(user.getSuperAdmin()){
log.info(user.getUsername() + " 是超管,可以看所有标签");
}else if(user.getRegionAdmin()){
//如果是区域管理员
log.info(user.getUsername() + " 是区管,可以看本区域" + user.getRegionCode() + "标签");
query.eq(Tag::getAreaCode,user.getRegionCode());
}else{
//其它角色全都看不见
query.eq(Tag::getId,0L);
}
}

/**
* 保存标签
* @param dto
* @return
*/
public String save(TagDTO dto) {
deduplicationName(dto);
UserInfoDetails user = LoginUserUtil.loginUserDetail();
Tag entity = BeanUtil.copyProperties(dto,Tag.class);
if(Objects.nonNull(dto.getId())){
Tag old = tagService.getById(dto.getId());
VUtils.isTrue(Objects.isNull(old)).throwMessage("此id标签不存在!");
entity.setId(old.getId());
}else{
entity.setId(null);
entity.setCreateOn(LocalDateTime.now());
entity.setCreateBy(user.getUsername());
}
entity.setUpdateOn(LocalDateTime.now());
entity.setUpdateBy(user.getUsername());
tagService.saveOrUpdate(entity);

return "保存成功";
}

/**
* 标签名 去重
* @param dto
*/
private void deduplicationName(TagDTO dto) {
if(StringUtils.isNotBlank(dto.getName())){
long count = tagService.count(Wrappers.lambdaQuery(Tag.class)
.eq(Tag::getAreaCode, dto.getAreaCode())
.eq(Tag::getName, dto.getName())
.ne(Objects.nonNull(dto.getId()), Tag::getId, dto.getId()));
VUtils.isTrue(count > 0).throwMessage("保存失败!此区域标签名重复!");
}
}

public String saveToProject(TagToProjectDTO dto) {
UserInfoDetails user = LoginUserUtil.loginUserDetail();

String projectCode = dto.getProjectCode();
Project project = projectService.getProjectByCode(projectCode);
VUtils.isTrue(Objects.isNull(project)).throwMessage("项目不存在!");
Long tagId = dto.getTagId();
Tag tag = tagService.getById(tagId);
VUtils.isTrue(Objects.isNull(tag)).throwMessage("标签不存在!");

VUtils.isTrue(!tag.getAreaCode().equals(project.getAreaCode()))
.throwMessage("项目和标签不是一个区域的!");

ProjectTag projectTag = new ProjectTag();
projectTag.setProjectCode(projectCode);
projectTag.setTagId(tagId);
projectTag.setCreateOn(LocalDateTime.now());
projectTag.setCreateBy(user.getUsername());
projectTagService.save(projectTag);

return "保存成功";
}

public String removeTagToProject(TagToProjectDTO dto) {
UserInfoDetails user = LoginUserUtil.loginUserDetail();

String projectCode = dto.getProjectCode();
Project project = projectService.getProjectByCode(projectCode);
VUtils.isTrue(Objects.isNull(project)).throwMessage("项目不存在!");
Long tagId = dto.getTagId();
Tag tag = tagService.getById(tagId);
VUtils.isTrue(Objects.isNull(tag)).throwMessage("标签不存在!");

VUtils.isTrue(!tag.getAreaCode().equals(project.getAreaCode()))
.throwMessage("项目和标签不是一个区域的!");

ProjectTag pt = projectTagService.getOne(Wrappers.lambdaQuery(ProjectTag.class)
.eq(ProjectTag::getProjectCode, projectCode)
.eq(ProjectTag::getTagId, tagId));

VUtils.isTrue(Objects.isNull(pt))
.throwMessage("该项目没有绑定此标签!");
projectTagService.removeById(pt.getId());

return "删除成功";
}
}

+ 15
- 0
pmapi/src/main/java/com/ningdatech/pmapi/portrait/mapper/ProjectTagMapper.java Visa fil

@@ -0,0 +1,15 @@
package com.ningdatech.pmapi.portrait.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ningdatech.pmapi.portrait.model.entity.ProjectTag;

/**
* <p>
* </p>
*
* @author ZPF
* @since 2023-08-2
*/
public interface ProjectTagMapper extends BaseMapper<ProjectTag> {

}

+ 15
- 0
pmapi/src/main/java/com/ningdatech/pmapi/portrait/mapper/TagMapper.java Visa fil

@@ -0,0 +1,15 @@
package com.ningdatech.pmapi.portrait.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ningdatech.pmapi.portrait.model.entity.Tag;

/**
* <p>
* </p>
*
* @author ZPF
* @since 2023-08-2
*/
public interface TagMapper extends BaseMapper<Tag> {

}

+ 36
- 0
pmapi/src/main/java/com/ningdatech/pmapi/portrait/model/dto/TagDTO.java Visa fil

@@ -0,0 +1,36 @@
package com.ningdatech.pmapi.portrait.model.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
* <p>
* 标签
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@ApiModel(value = "Tag对象", description = "标签")
public class TagDTO implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键")
private Long id;

@ApiModelProperty("标签名")
private String name;

@ApiModelProperty("备注")
private String remark;

@ApiModelProperty("区域CODE")
@NotNull(message = "区域CODE必填")
private String areaCode;
}

+ 31
- 0
pmapi/src/main/java/com/ningdatech/pmapi/portrait/model/dto/TagToProjectDTO.java Visa fil

@@ -0,0 +1,31 @@
package com.ningdatech.pmapi.portrait.model.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
* <p>
* 标签
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@ApiModel(value = "Tag对象", description = "标签")
public class TagToProjectDTO implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键")
@NotNull(message = "标签ID必填")
private Long tagId;

@ApiModelProperty("当前项目编号")
@NotNull(message = "项目编号必填")
private String projectCode;
}

+ 40
- 0
pmapi/src/main/java/com/ningdatech/pmapi/portrait/model/entity/ProjectTag.java Visa fil

@@ -0,0 +1,40 @@
package com.ningdatech.pmapi.portrait.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
* <p>
* 标签项目关联
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@TableName("nd_project_tag")
@ApiModel(value = "ProjectTag对象", description = "标签项目关联")
public class ProjectTag implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键")
@TableId(type = IdType.AUTO)
private Long id;

@ApiModelProperty("项目编号")
private String projectCode;

@ApiModelProperty("标签ID")
private Long tagId;

private LocalDateTime createOn;
private String createBy;
}

+ 45
- 0
pmapi/src/main/java/com/ningdatech/pmapi/portrait/model/entity/Tag.java Visa fil

@@ -0,0 +1,45 @@
package com.ningdatech.pmapi.portrait.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
* <p>
* 标签
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@TableName("nd_tag")
@ApiModel(value = "Tag对象", description = "标签")
public class Tag implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键")
@TableId(type = IdType.AUTO)
private Long id;

@ApiModelProperty("标签名")
private String name;

@ApiModelProperty("备注")
private String remark;

@ApiModelProperty("区域CODE")
private String areaCode;

private LocalDateTime createOn;
private LocalDateTime updateOn;
private String createBy;
private String updateBy;
}

+ 25
- 0
pmapi/src/main/java/com/ningdatech/pmapi/portrait/model/req/TagPageReq.java Visa fil

@@ -0,0 +1,25 @@
package com.ningdatech.pmapi.portrait.model.req;

import com.ningdatech.basic.model.PagePo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

/**
* @Classname TagPageReq
* @Description
* @Date 2023/8/2 14:16
* @Author PoffyZhang
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("标签列表查询")
@EqualsAndHashCode(callSuper = true)
public class TagPageReq extends PagePo {

@ApiModelProperty("标签名")
private String name;

}

+ 40
- 0
pmapi/src/main/java/com/ningdatech/pmapi/portrait/model/vo/TagVO.java Visa fil

@@ -0,0 +1,40 @@
package com.ningdatech.pmapi.portrait.model.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
* <p>
* 标签
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@ApiModel(value = "Tag对象", description = "标签")
public class TagVO implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键")
private Long id;

@ApiModelProperty("标签名")
private String name;

@ApiModelProperty("备注")
private String remark;

@ApiModelProperty("区域CODE")
private String areaCode;

private LocalDateTime createOn;
private LocalDateTime updateOn;
private String createBy;
private String updateBy;
}

+ 14
- 0
pmapi/src/main/java/com/ningdatech/pmapi/portrait/service/IProjectTagService.java Visa fil

@@ -0,0 +1,14 @@
package com.ningdatech.pmapi.portrait.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ningdatech.pmapi.portrait.model.entity.ProjectTag;

/**
* @Classname ITagService
* @Description
* @Date 2023/8/2 10:47
* @Author PoffyZhang
*/
public interface IProjectTagService extends IService<ProjectTag> {

}

+ 14
- 0
pmapi/src/main/java/com/ningdatech/pmapi/portrait/service/ITagService.java Visa fil

@@ -0,0 +1,14 @@
package com.ningdatech.pmapi.portrait.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ningdatech.pmapi.portrait.model.entity.Tag;

/**
* @Classname ITagService
* @Description
* @Date 2023/8/2 10:47
* @Author PoffyZhang
*/
public interface ITagService extends IService<Tag> {

}

+ 21
- 0
pmapi/src/main/java/com/ningdatech/pmapi/portrait/service/impl/ProjectTagServiceImpl.java Visa fil

@@ -0,0 +1,21 @@
package com.ningdatech.pmapi.portrait.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ningdatech.pmapi.portrait.mapper.ProjectTagMapper;
import com.ningdatech.pmapi.portrait.model.entity.ProjectTag;
import com.ningdatech.pmapi.portrait.service.IProjectTagService;
import org.springframework.stereotype.Service;

/**
* <p>
* </p>
*
* @author ZPF
* @since 2023-08-2
*/
@Service
public class ProjectTagServiceImpl extends ServiceImpl<ProjectTagMapper,
ProjectTag> implements IProjectTagService {


}

+ 21
- 0
pmapi/src/main/java/com/ningdatech/pmapi/portrait/service/impl/TagServiceImpl.java Visa fil

@@ -0,0 +1,21 @@
package com.ningdatech.pmapi.portrait.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ningdatech.pmapi.portrait.mapper.TagMapper;
import com.ningdatech.pmapi.portrait.model.entity.Tag;
import com.ningdatech.pmapi.portrait.service.ITagService;
import org.springframework.stereotype.Service;

/**
* <p>
* </p>
*
* @author ZPF
* @since 2023-08-2
*/
@Service
public class TagServiceImpl extends ServiceImpl<TagMapper,
Tag> implements ITagService {


}

+ 44
- 0
pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java Visa fil

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.ningdatech.basic.function.VUtils;
import com.ningdatech.basic.model.PageVo;
import com.ningdatech.basic.util.CollUtils;
@@ -34,6 +35,11 @@ import com.ningdatech.pmapi.organization.service.IDingOrganizationService;
import com.ningdatech.pmapi.performance.model.dto.ProjectCoreBusinessDTO;
import com.ningdatech.pmapi.performance.model.entity.ProjectCoreBusinessIndicators;
import com.ningdatech.pmapi.performance.service.IProjectCoreBusinessIndicatorsService;
import com.ningdatech.pmapi.portrait.model.entity.ProjectTag;
import com.ningdatech.pmapi.portrait.model.entity.Tag;
import com.ningdatech.pmapi.portrait.model.vo.TagVO;
import com.ningdatech.pmapi.portrait.service.IProjectTagService;
import com.ningdatech.pmapi.portrait.service.ITagService;
import com.ningdatech.pmapi.projectdeclared.model.dto.DelayedApplyDTO;
import com.ningdatech.pmapi.projectdeclared.model.entity.*;
import com.ningdatech.pmapi.projectdeclared.model.vo.*;
@@ -105,6 +111,9 @@ public class ProjectLibManage {
private final ITodoService todoService;
private final IProjectCoreBusinessIndicatorsService projectCoreBusinessIndicatorsService;

private final IProjectTagService projectTagService;
private final ITagService tagService;

private final IOperationService operationService;

public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) {
@@ -146,6 +155,24 @@ public class ProjectLibManage {
return PageVo.empty();
}
UserFullInfoDTO finalUser = user;

Set<String> projectCodes = page.getRecords().stream()
.map(Project::getProjectCode).collect(Collectors.toSet());
List<ProjectTag> pts = projectTagService.list(Wrappers.lambdaQuery(ProjectTag.class)
.in(ProjectTag::getProjectCode, projectCodes));
Map<String,List<ProjectTag>> tagMap = Maps.newHashMap();
Map<Long,String> tagNameMap = Maps.newHashMap();
if(CollUtil.isNotEmpty(pts)){
tagMap = pts.stream().collect(Collectors.groupingBy(ProjectTag::getProjectCode));
Set<Long> tagIds = pts.stream().map(ProjectTag::getTagId).collect(Collectors.toSet());
List<Tag> tags = tagService.list(Wrappers.lambdaQuery(Tag.class)
.in(Tag::getId, tagIds));
if(CollUtil.isNotEmpty(tags)){
tagNameMap = tags.stream().collect(Collectors.toMap(Tag::getId,Tag::getName));
}
}
Map<String, List<ProjectTag>> finalTagMap = tagMap;
Map<Long,String> finalTagNameMap = tagNameMap;
List<ProjectLibListItemVO> records = CollUtils.convert(page.getRecords(), w -> {
ProjectLibListItemVO item = new ProjectLibListItemVO();
item.setId(w.getId());
@@ -168,11 +195,28 @@ public class ProjectLibManage {
item.setCanPreDeclared(Boolean.TRUE);
}
item.setPrePlanProjectId(w.getPrePlanProjectId());
setTag(item,finalTagMap,finalTagNameMap);
return item;
});
return PageVo.of(records, total);
}

private void setTag(ProjectLibListItemVO item, Map<String, List<ProjectTag>> finalTagMap, Map<Long, String> finalTagNameMap) {
if(finalTagMap.containsKey(item.getProjectCode())){
List<TagVO> tags = Lists.newArrayList();
List<ProjectTag> projectTags = finalTagMap.get(item.getProjectCode());
for(ProjectTag pt :projectTags){
if(finalTagNameMap.containsKey(pt.getTagId())){
TagVO vo = new TagVO();
vo.setId(pt.getTagId());
vo.setName(finalTagNameMap.get(pt.getTagId()));
tags.add(vo);
}
}
item.setTags(tags);
}
}

public List<Project> projectList(ProjectListReq req) {
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(req);
return projectService.list(query);


+ 4
- 0
pmapi/src/main/java/com/ningdatech/pmapi/projectlib/model/vo/ProjectDetailVO.java Visa fil

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ningdatech.basic.util.NdDateUtils;
import com.ningdatech.pmapi.common.util.BizUtils;
import com.ningdatech.pmapi.portrait.model.vo.TagVO;
import com.ningdatech.pmapi.projectdeclared.model.entity.Contract;
import com.ningdatech.pmapi.projectdeclared.model.vo.ContractVO;
import com.ningdatech.pmapi.projectdeclared.model.vo.OperationVO;
@@ -400,6 +401,9 @@ public class ProjectDetailVO {
@ApiModelProperty("审批详情")
private ProcessProgressDetailVo process;

@ApiModelProperty("标签")
private List<TagVO> tags;

public String getVersionStr() {
if (Objects.nonNull(this.newest) && this.newest) {
this.versionStr = "当前版本";


+ 5
- 0
pmapi/src/main/java/com/ningdatech/pmapi/projectlib/model/vo/ProjectLibListItemVO.java Visa fil

@@ -3,6 +3,7 @@ package com.ningdatech.pmapi.projectlib.model.vo;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ningdatech.pmapi.common.enumeration.CommonEnum;
import com.ningdatech.pmapi.portrait.model.vo.TagVO;
import com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum;
import com.ningdatech.pmapi.projectlib.enumeration.ProjectTypeEnum;
import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails;
@@ -16,6 +17,7 @@ import lombok.experimental.Tolerate;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
import java.util.Optional;

@@ -142,6 +144,9 @@ public class ProjectLibListItemVO {
@ApiModelProperty("初步方案项目ID")
private Long prePlanProjectId;

@ApiModelProperty("标签")
private List<TagVO> tags;

//预审申报时候 需不需要上传上级条线意见文件
private Boolean needUploadSuperLineFile;
public Boolean getNeedUploadSuperLineFile() {


+ 19
- 3
pmapi/src/main/java/com/ningdatech/pmapi/safety/manage/SafetyRiskManage.java Visa fil

@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ningdatech.basic.exception.BizException;
import com.ningdatech.basic.function.VUtils;
import com.ningdatech.basic.model.PageVo;
import com.ningdatech.basic.util.CollUtils;
@@ -64,7 +65,8 @@ public class SafetyRiskManage {
.ge(Project::getStatus, ProjectStatusEnum.UNDER_CONSTRUCTION.getCode())
.ne(Project::getStatus, ProjectStatusEnum.OPERATION.getCode())
.like(StringUtils.isNotBlank(req.getProjectName()),Project::getProjectName,req.getProjectName())
.like(StringUtils.isNotBlank(req.getBuildOrgName()),Project::getBuildOrgName,req.getBuildOrgName());
.like(StringUtils.isNotBlank(req.getBuildOrgName()),Project::getBuildOrgName,req.getBuildOrgName())
.orderByDesc(Project::getUpdateOn);
checkAuth(query,LoginUserUtil.loginUserDetail());
Page<Project> page = projectService.page(req.page(), query);
long total;
@@ -145,9 +147,16 @@ public class SafetyRiskManage {

UserInfoDetails user = LoginUserUtil.loginUserDetail();

String projectCode = dtos.get(0).getProjectCode();
if(StringUtils.isBlank(projectCode)){
throw new BizException("参数有误!");
}
supplierSafetyQualificationService.remove(Wrappers.lambdaQuery(SupplierSafetyQualification.class)
.eq(SupplierSafetyQualification::getProjectCode, projectCode));

Integer sucessNum = 0;
for(SupplierSafetyQualificationDTO dto : dtos){
String projectCode = dto.getProjectCode();
projectCode = dto.getProjectCode();
Project project = projectService.getOne(Wrappers.lambdaQuery(Project.class)
.eq(Project::getNewest, Boolean.TRUE)
.eq(Project::getProjectCode, projectCode)
@@ -176,9 +185,16 @@ public class SafetyRiskManage {

UserInfoDetails user = LoginUserUtil.loginUserDetail();

String projectCode = dtos.get(0).getProjectCode();
if(StringUtils.isBlank(projectCode)){
throw new BizException("参数有误!");
}
personSafetyInfoService.remove(Wrappers.lambdaQuery(PersonSafetyInfo.class)
.eq(PersonSafetyInfo::getProjectCode, projectCode));

Integer sucessNum = 0;
for(PersonSafetyInfoDTO dto : dtos){
String projectCode = dto.getProjectCode();
projectCode = dto.getProjectCode();
Project project = projectService.getOne(Wrappers.lambdaQuery(Project.class)
.eq(Project::getNewest, Boolean.TRUE)
.eq(Project::getProjectCode, projectCode)


Laddar…
Avbryt
Spara