Browse Source

bug处理

wangzhun 5 months ago
parent
commit
ff1c961312

+ 2 - 1
pms-service/src/main/java/com/tofly/pms/project/controller/TfPmProjectdevWController.java

@@ -55,7 +55,8 @@ public class TfPmProjectdevWController{
         LambdaQueryWrapper<ProjectdevW> wrapper = new QueryWrapper<>(projectdevW)
                 .lambda()
                 .like(StringUtils.isNotBlank(name), ProjectdevW::getName, name)
-                .like(StringUtils.isNotBlank(label),ProjectdevW::getLabel,label);
+                .like(StringUtils.isNotBlank(label),ProjectdevW::getLabel,label)
+                .orderByDesc(ProjectdevW::getCreateTime);
         final Page<ProjectdevW> page1 = projectDevWService.page(page,wrapper);
 
 

+ 9 - 0
pms-service/src/main/java/com/tofly/pms/project/entity/ProjectdevW.java

@@ -1,6 +1,9 @@
 package com.tofly.pms.project.entity;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.DateSerializer;
 import com.tofly.pms.fegin.UserClient;
 import com.tofly.pms.fegin.vo.UserVo;
 import com.tofly.pms.project.service.ProjectWService;
@@ -92,4 +95,10 @@ public class ProjectdevW implements Serializable,Cloneable{
      @ApiModelProperty(value = "UI地址",name = "uiUrl")
      private String uiUrl ;
 
+     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+     @ApiModelProperty(value = "创建时间")
+     @JsonSerialize(using = DateSerializer.class)
+     @TableField(fill = FieldFill.INSERT)
+     private Date createTime;
+
 }

+ 8 - 0
pms-service/src/main/java/com/tofly/pms/supervise/mapper/ProjectReportPersonnelMapper.java

@@ -45,6 +45,14 @@ public interface ProjectReportPersonnelMapper extends BaseMapper<ProjectReportPe
                 .eq(ProjectReportPersonnel::getPersonnelType, personnelType));
     }
 
+
+    default List<ProjectReportPersonnel> findByProjectIdList(String reportId, List<Integer> projectIdList, ReportPersonnelType personnelType) {
+ return        this.selectList(Wrappers.lambdaQuery(ProjectReportPersonnel.class)
+                .eq(ProjectReportPersonnel::getReportId, reportId)
+                .in(ProjectReportPersonnel::getProjectId, projectIdList)
+                .eq(ProjectReportPersonnel::getPersonnelType, personnelType));
+    }
+
     /**
      * 根据查询条件查询项目报告人员信息。
      *

+ 36 - 7
pms-service/src/main/java/com/tofly/pms/supervise/service/impl/ProjectReportPersonnelServiceImpl.java

@@ -109,17 +109,46 @@ public class ProjectReportPersonnelServiceImpl extends ServiceImpl<ProjectReport
         String reportId = vo.getReportId();
         Assert.notBlank(reportId, "周报id不能为空");
         List<ProjectReportPersonnelVO> voList = vo.getVoList();
-        Assert.isTrue(CollectionUtil.isNotEmpty(voList), "项目汇报人员配置不能为空");
-        List<Integer> projectIdList = voList.stream().map(ProjectReportPersonnelVO::getProjectId).collect(Collectors.toList());
-        baseMapper.deleteByProjectIdList(reportId, projectIdList, personnelType);
+
         for (ProjectReportPersonnelVO projectReportPersonnelVO : voList) {
-            projectReportPersonnelVO.setPersonnelType(personnelType);
-            projectReportPersonnelVO.setReportId(reportId);
+
+
             List<ProjectReportPersonnel> entityList = projectReportPersonnelVO.toProjectReportPersonnelList();
-            for (ProjectReportPersonnel entity : entityList) {
-                this.save(entity);
+
+            for (ProjectReportPersonnel projectReportPersonnel : entityList) {
+                //查询是否存在
+                final ProjectReportPersonnel personnelOld = baseMapper.selectOne(Wrappers.<ProjectReportPersonnel>lambdaQuery()
+                        .eq(ProjectReportPersonnel::getReportId, reportId)
+                        .eq(ProjectReportPersonnel::getProjectId, projectReportPersonnel.getProjectId())
+                        .eq(ProjectReportPersonnel::getPersonnelType, personnelType)
+                        .eq(ProjectReportPersonnel::getReportType,projectReportPersonnel.getReportType()));
+                //删除后保存
+                if(personnelOld!=null){
+                    baseMapper.deleteByProjectIdList(reportId, Collections.singletonList(personnelOld.getProjectId()), personnelType);
+                }
+                projectReportPersonnel.setReportId(vo.getReportId());
+                projectReportPersonnel.setPersonnelType(vo.getPersonnelType());
+
+                this.save(projectReportPersonnel);
             }
         }
+//
+//        Assert.isTrue(CollectionUtil.isNotEmpty(voList), "项目汇报人员配置不能为空");
+//        List<Integer> projectIdList = voList.stream().map(ProjectReportPersonnelVO::getProjectId).collect(Collectors.toList());
+//       baseMapper.deleteByProjectIdList(reportId, projectIdList, personnelType);
+//        final List<ProjectReportPersonnel> oldProjectIdList = baseMapper.findByProjectIdList(reportId, projectIdList, personnelType);
+//
+//        for (ProjectReportPersonnelVO projectReportPersonnelVO : voList) {
+//
+//
+//            projectReportPersonnelVO.setPersonnelType(personnelType);
+//            projectReportPersonnelVO.setReportId(reportId);
+//            List<ProjectReportPersonnel> entityList = projectReportPersonnelVO.toProjectReportPersonnelList();
+//            for (ProjectReportPersonnel entity : entityList) {
+//
+//                this.save(entity);
+//            }
+//        }
         return true;
     }
 

+ 2 - 1
pms-service/src/main/java/com/tofly/pms/supervise/vo/ProjectReportPersonnelVO.java

@@ -73,6 +73,7 @@ public class ProjectReportPersonnelVO implements Serializable {
             try {
                 String userId = (String) this.getClass().getDeclaredField(key).get(this);
                 if (StringUtils.isNotBlank(userId)) {
+
                     ProjectReportPersonnel personnel = createPersonnel(type, userId);
                     result.add(personnel);
                 }
@@ -98,7 +99,7 @@ public class ProjectReportPersonnelVO implements Serializable {
         personnel.setProjectCreateDate(projectCreateDate);
         personnel.setProjectName(projectName);
         personnel.setProjectId(projectId);
-        personnel.setReportId(reportId);
+        personnel.setReportId(this.reportId);
         personnel.setReportType(type);
         personnel.setUserId(userId);
         return personnel;

+ 7 - 0
pms-service/src/main/java/com/tofly/pms/supervise/vo/ProjectReportVO.java

@@ -79,4 +79,11 @@ public class ProjectReportVO {
      * 下周计划
      */
     private String workNextWeek;
+    /**
+     * 填报方式
+     */
+    private String content;
+
+
+    private String projectType;
 }