Browse Source

项目管理,项目成员管理优化

huiqi 2 weeks ago
parent
commit
3bf641b71c

+ 4 - 4
takai-admin/src/main/java/com/takai/web/controller/system/SysProjectController.java

@@ -17,7 +17,7 @@ import java.util.List;
 
 /**
  * 【请填写功能名称】Controller
- * 
+ *
  * @author takai
  * @date 2025-05-28
  */
@@ -41,16 +41,16 @@ public class SysProjectController extends BaseController
     }
 
     /**
-     * 导出【请填写功能名称】列表
+     * 导出【项目】列表
      */
     @PreAuthorize("@ss.hasPermi('system:project:export')")
-    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
+    @Log(title = "【项目】", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, SysProject sysProject)
     {
         List<SysProject> list = sysProjectService.selectSysProjectList(sysProject);
         ExcelUtil<SysProject> util = new ExcelUtil<SysProject>(SysProject.class);
-        util.exportExcel(response, list, "【请填写功能名称】数据");
+        util.exportExcel(response, list, "项目");
     }
 
     /**

+ 3 - 3
takai-admin/src/main/java/com/takai/web/controller/system/SysProjectStaffController.java

@@ -17,7 +17,7 @@ import java.util.List;
 
 /**
  * 【请填写功能名称】Controller
- * 
+ *
  * @author takai
  * @date 2025-05-28
  */
@@ -67,7 +67,7 @@ public class SysProjectStaffController extends BaseController
      * 新增【请填写功能名称】
      */
     @PreAuthorize("@ss.hasPermi('system:staff:add')")
-    @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
+    @Log(title = "【添加项目成员】", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody SysProjectStaff sysProjectStaff)
     {
@@ -78,7 +78,7 @@ public class SysProjectStaffController extends BaseController
      * 修改【请填写功能名称】
      */
     @PreAuthorize("@ss.hasPermi('system:staff:edit')")
-    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
+    @Log(title = "【修改项目成员】", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody SysProjectStaff sysProjectStaff)
     {

+ 14 - 13
takai-system/src/main/java/com/takai/system/domain/ProjectApplication.java

@@ -1,24 +1,25 @@
 package com.takai.system.domain;
 
+import com.takai.common.annotation.Excel;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
 public class ProjectApplication {
 
     private String projectId;
 
-    private String name;
+    @Excel(name = "应用编号",width = 20)
+    private String appId;
 
-    public String getProjectId() {
-        return projectId;
-    }
+    @Excel(name = "应用名称",width = 25)
+    private String appName;
 
-    public void setProjectId(String projectId) {
-        this.projectId = projectId;
-    }
+    @Excel(name = "应用创建人")
+    private String createByName;
 
-    public String getName() {
-        return name;
-    }
+    @Excel(name = "应用创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
 
-    public void setName(String name) {
-        this.name = name;
-    }
 }

+ 18 - 2
takai-system/src/main/java/com/takai/system/domain/SysProject.java

@@ -1,11 +1,16 @@
 package com.takai.system.domain;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.takai.common.annotation.Excel;
+import com.takai.common.annotation.Excels;
 import com.takai.common.core.domain.BaseEntity;
 import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 
+import java.util.Date;
+import java.util.List;
+
 /**
  * 【请填写功能名称】对象 sys_project
  *
@@ -21,11 +26,11 @@ public class SysProject extends BaseEntity
     private long projectId;
 
     /** 项目编号 */
-    @Excel(name = "项目编号")
+    @Excel(name = "项目编号", needMerge = true,width = 20)
     private String projectPid;
 
     /** 项目名称 */
-    @Excel(name = "项目名称")
+    @Excel(name = "项目名称", needMerge = true,width = 30)
     private String projectName;
 
     private String[] appId;
@@ -34,10 +39,21 @@ public class SysProject extends BaseEntity
 
     private Long projectType;
 
+
     private String sourceFrom;
 
+    @Excel(name = "项目来源", needMerge = true)
     private String sourceFromName;
 
+    // 关键配置:重写 BaseEntity 的 createTime 并添加 Excel 注解
+    @Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss", needMerge = true)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    @Excel(name = "项目应用")
+    List<ProjectApplication> applications;
+
+
 
     @Override
     public String toString() {

+ 29 - 96
takai-system/src/main/java/com/takai/system/domain/SysProjectStaff.java

@@ -3,6 +3,7 @@ package com.takai.system.domain;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.takai.common.annotation.Excel;
 import com.takai.common.core.domain.BaseEntity;
+import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 
@@ -11,10 +12,11 @@ import java.util.List;
 
 /**
  * 【请填写功能名称】对象 sys_project_staff
- * 
+ *
  * @author takai
  * @date 2025-05-28
  */
+@Data
 public class SysProjectStaff extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
@@ -26,14 +28,35 @@ public class SysProjectStaff extends BaseEntity
     @Excel(name = "项目编号")
     private String projectPid;
 
+    private String sourceFrom;
+
+    @Excel(name = "项目来源")
+    private String sourceFromName;
+
     /** 成员编号 */
-    @Excel(name = "成员编号")
+    @Excel(name = "成员账号")
+    private String userName;
+
+    @Excel(name = "成员名称")
+    private String nickName;
+
+    private String userType;
+
+    @Excel(name = "成员类型")
+    private String userTypeName;
+
     private String mNo;
 
     /** 角色 */
-    @Excel(name = "角色")
     private long roleId;
 
+    @Excel(name = "系统角色")
+    private String roleName;
+
+    @Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
     /** 进入项目日期 */
     @JsonFormat(pattern = "yyyy-MM-dd")
     @Excel(name = "进入项目日期", width = 30, dateFormat = "yyyy-MM-dd")
@@ -48,106 +71,16 @@ public class SysProjectStaff extends BaseEntity
 
     private String userId;
 
-    private String userName;
-
-    private String roleName;
-
-    public void setId(String id)
-    {
-        this.id = id;
-    }
-
-    public String getId()
-    {
-        return id;
-    }
-
-    public String getProjectPid() {
-        return projectPid;
-    }
-
-    public void setProjectPid(String projectPid) {
-        this.projectPid = projectPid;
-    }
-
-    public void setmNo(String mNo)
-    {
-        this.mNo = mNo;
-    }
-
-    public String getmNo() 
-    {
-        return mNo;
-    }
-
-    public long getRoleId() {
-        return roleId;
-    }
-
-    public void setRoleId(long roleId) {
-        this.roleId = roleId;
-    }
-
-    public void setmBdate(Date mBdate)
-    {
-        this.mBdate = mBdate;
-    }
-
-    public Date getmBdate() 
-    {
-        return mBdate;
-    }
-    public void setmEdate(Date mEdate) 
-    {
-        this.mEdate = mEdate;
-    }
-
-    public Date getmEdate() 
-    {
-        return mEdate;
-    }
-
-    public String getProjectName() {
-        return projectName;
-    }
-
-    public void setProjectName(String projectName) {
-        this.projectName = projectName;
-    }
-
-    public String getUserId() {
-        return userId;
-    }
-
-    public void setUserId(String userId) {
-        this.userId = userId;
-    }
-
-    public String getUserName() {
-        return userName;
-    }
-
-    public void setUserName(String userName) {
-        this.userName = userName;
-    }
-
-    public String getRoleName() {
-        return roleName;
-    }
-
-    public void setRoleName(String roleName) {
-        this.roleName = roleName;
-    }
 
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
             .append("id", getId())
             .append("projectPid", getProjectPid())
-            .append("mNo", getmNo())
+            .append("mNo", getMNo())
             .append("role", getRoleId())
-            .append("mBdate", getmBdate())
-            .append("mEdate", getmEdate())
+            .append("mBdate", getMBdate())
+            .append("mEdate", getMEdate())
             .append("createBy", getCreateBy())
             .append("createTime", getCreateTime())
             .append("updateBy", getUpdateBy())

+ 2 - 1
takai-system/src/main/java/com/takai/system/service/impl/SysProjectServiceImpl.java

@@ -118,10 +118,11 @@ public class SysProjectServiceImpl implements ISysProjectService
             List<String> names = new ArrayList<>();
             for (ProjectApplication sysProjectApp : sysProjectApps){
                 if(sysProjectApp != null) {
-                    names.add(sysProjectApp.getName());
+                    names.add(sysProjectApp.getAppName());
                 }
             }
             sysProjects.setName(names.toArray(new String[names.size()]));
+            sysProjects.setApplications(sysProjectApps);
         }
         return list;
     }

+ 17 - 1
takai-system/src/main/java/com/takai/system/service/impl/SysProjectStaffServiceImpl.java

@@ -1,7 +1,10 @@
 package com.takai.system.service.impl;
 
+import com.takai.common.enums.ProjectTypeEnum;
+import com.takai.common.enums.UserTypeEnum;
 import com.takai.common.utils.DateUtils;
 import com.takai.common.utils.SnowflakeDigitGenerator;
+import com.takai.system.domain.SysProject;
 import com.takai.system.domain.SysProjectStaff;
 import com.takai.system.mapper.SysProjectStaffMapper;
 import com.takai.system.service.ISysProjectStaffService;
@@ -43,7 +46,20 @@ public class SysProjectStaffServiceImpl implements ISysProjectStaffService
     @Override
     public List<SysProjectStaff> selectSysProjectStaffList(SysProjectStaff sysProjectStaff)
     {
-        return sysProjectStaffMapper.selectSysProjectStaffList(sysProjectStaff);
+        List<SysProjectStaff> projectStaffs = sysProjectStaffMapper.selectSysProjectStaffList(sysProjectStaff);
+        for (SysProjectStaff sysProjects : projectStaffs) {
+            if (sysProjects.getSourceFrom() != null) {
+                if (ProjectTypeEnum.HJL.getClientId().equals(sysProjects.getSourceFrom())) {
+                    sysProjects.setSourceFromName(ProjectTypeEnum.HJL.getInfo());
+                } else if (ProjectTypeEnum.HXG.getClientId().equals(sysProjects.getSourceFrom())) {
+                    sysProjects.setSourceFromName(ProjectTypeEnum.HXG.getInfo());
+                }
+            }
+            if (sysProjects.getUserType() != null) {
+                sysProjects.setUserTypeName(UserTypeEnum.getInfoByCode(sysProjects.getUserType()));
+            }
+        }
+        return projectStaffs;
     }
 
     /**

+ 9 - 5
takai-system/src/main/resources/mapper/system/SysProjectAppMapper.xml

@@ -10,8 +10,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <resultMap type="com.takai.system.domain.ProjectApplication" id="SysProjectResult">
+        <result property="appId"    column="appId"    />
         <result property="projectId"    column="project_id"    />
-        <result property="name"    column="name"    />
+        <result property="appName"    column="name"    />
+        <result property="createByName"    column="nick_name"    />
+        <result property="createTime"    column="create_time"    />
     </resultMap>
 
     <sql id="selectSysProjectAppVo">
@@ -67,11 +70,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </delete>
 
     <select id="selectSysProjectApplicationList" parameterType="SysProject" resultMap="SysProjectResult">
-        select bm.name from sys_project_app spa
-        left join bm_application bm on spa.app_id = bm.appId
+        select spa.project_id,bm.appId, bm.name,u.nick_name,bm.create_time from sys_project_app spa
+        inner join bm_application bm on spa.app_id = bm.appId
+        left join sys_user u on u.user_id = bm.create_by
         <where>
-            <if test="projectId != null  and projectId != ''"> and project_id = #{projectId}</if>
-            <if test="appId != null  and appId != ''"> and app_id = #{appId}</if>
+            <if test="projectId != null  and projectId != ''"> and spa.project_id = #{projectId}</if>
+            <if test="appId != null  and appId != ''"> and spa.app_id = #{appId}</if>
         </where>
     </select>
 </mapper>

+ 8 - 1
takai-system/src/main/resources/mapper/system/SysProjectStaffMapper.xml

@@ -16,7 +16,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateBy"    column="update_by"    />
         <result property="updateTime"    column="update_time"    />
         <result property="userName"    column="user_name"    />
+        <result property="nickName"    column="nick_name"    />
+        <result property="userType"    column="user_type"    />
         <result property="projectName"    column="project_name"    />
+        <result property="sourceFrom"    column="source_from"    />
         <result property="roleName"    column="role_name"    />
 <!--        <collection property="approvers" ofType="java.lang.String" javaType="list" >-->
 <!--            <result column="approvers" />-->
@@ -39,12 +42,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         sps.update_by,
         sps.update_time,
         su.user_name,
+        su.nick_name,
+        su.user_type,
         sp.project_name,
+        sp.source_from,
         sr.role_name
         from sys_project_staff as sps
         left join sys_user as su on sps.user_id = su.user_id
         left join sys_project as sp on sps.project_pid = sp.project_pid
-        left join sys_role as sr on sps.role_id = sr.role_id
+        left join sys_user_role ur on ur.user_id = su.user_id
+        left join sys_role as sr on ur.role_id = sr.role_id
         <where>
             <if test="projectPid != null  and projectPid != ''"> and sps.project_pid = #{projectPid}</if>
             <!--<if test="userId != null  and userId != ''"> and sps.user_id = #{userId}</if>-->