From b52a334184f3d574fd9fae20fcaf9b30e1a1bf5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=AD=E5=BA=86=E6=B3=B0?= <12369755+htcloud1@user.noreply.gitee.com> Date: Tue, 18 Aug 2026 00:30:34 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20biz=5Forg=20=E5=90=88=E5=B9=B6=20/=20B?= =?UTF-8?q?izProject=20=E9=87=8D=E6=9E=84=20/=20=E5=90=84=E8=A7=92?= =?UTF-8?q?=E8=89=B2=E9=A1=B5=E9=9D=A2=E8=B0=83=E6=95=B4=20(=E4=B8=8A?= =?UTF-8?q?=E6=AC=A1=E9=87=8D=E6=9E=84=E9=81=97=E7=95=99)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 涵盖改动范围: - 后端 BizOrg / BizProject / BizProjectRating / BizSpecialPlan controller + domain + mapper + service - 前端 admin (BizSpecialPlanAdmin, ProjectCategory) / executor / leader / manager / sponsor 多页调整 - api/dict.js + AdminLayout.vue 同步 --- .../business/controller/BizOrgController.java | 13 ++ .../controller/BizProjectController.java | 37 +++- .../BizProjectRatingController.java | 6 +- .../controller/BizSpecialPlanController.java | 20 ++ .../com/ruoyi/business/domain/BizProject.java | 39 ++-- .../business/domain/BizProjectRating.java | 11 +- .../ruoyi/business/mapper/BizOrgMapper.java | 6 + .../business/mapper/BizProjectMapper.java | 2 + .../business/service/IBizOrgService.java | 2 + .../business/service/IBizProjectService.java | 2 + .../service/impl/BizOrgServiceImpl.java | 5 + .../service/impl/BizProjectServiceImpl.java | 3 + .../mapper/business/BizOrgMapper.xml | 19 ++ .../mapper/business/BizProjectMapper.xml | 60 +++++- .../business/BizProjectRatingMapper.xml | 23 ++- ry-vue3/src/api/dict.js | 41 +++- ry-vue3/src/layout/AdminLayout.vue | 7 +- .../src/views/admin/BizSpecialPlanAdmin.vue | 2 +- ry-vue3/src/views/admin/ProjectCategory.vue | 187 ++++++++++++++++++ ry-vue3/src/views/executor/Overview.vue | 2 +- ry-vue3/src/views/executor/Projects.vue | 93 +++------ ry-vue3/src/views/leader/Home.vue | 2 +- ry-vue3/src/views/leader/Meetings.vue | 4 +- ry-vue3/src/views/leader/Projects.vue | 96 +-------- .../views/manager/ManagerProjectDetail.vue | 4 +- ry-vue3/src/views/manager/Plans.vue | 129 +++++------- ry-vue3/src/views/manager/Projects.vue | 150 ++++++++------ ry-vue3/src/views/manager/Workbench.vue | 2 +- ry-vue3/src/views/sponsor/Account.vue | 43 ++-- ry-vue3/src/views/sponsor/Home.vue | 2 +- ry-vue3/src/views/sponsor/Projects.vue | 43 ++-- ry-vue3/src/views/sponsor/SponsorProjects.vue | 143 ++++++++------ 32 files changed, 744 insertions(+), 454 deletions(-) create mode 100644 ry-vue3/src/views/admin/ProjectCategory.vue diff --git a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizOrgController.java b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizOrgController.java index 89a8555..aee4f5c 100644 --- a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizOrgController.java +++ b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizOrgController.java @@ -11,6 +11,7 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.business.domain.BizOrg; import com.ruoyi.business.service.IBizOrgService; +import com.ruoyi.common.utils.SecurityUtils; /** * 公司Controller (支持方 + 执行方 共用) @@ -62,6 +63,18 @@ public class BizOrgController extends BaseController { return success(bizOrgService.getById(orgId)); } + /** + * 当前登录 sponsor 的所属公司 (供 /sponsor/account 页面回显) + * 返回 { orgId, orgName, isOwner: 1|0 } + * 主账号 isOwner=1 可改名, 子账号 isOwner=0 只读 + */ + @GetMapping("/myCompany") + public AjaxResult myCompany() { + Long uid = SecurityUtils.getUserId(); + Map data = bizOrgService.selectMySponsorCompany(uid); + return success(data); + } + @Log(title = "公司管理", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody BizOrg bizOrg) { diff --git a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizProjectController.java b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizProjectController.java index 1037fb5..dee968b 100644 --- a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizProjectController.java +++ b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizProjectController.java @@ -83,6 +83,37 @@ public class BizProjectController extends BaseController List list = bizProjectService.selectList(bizProject); return getDataTable(list); } + + /** + * sponsor 专属项目列表 (按当前登录 sponsor 的 user_id 过滤) + * GET /business/project/sponsorList + * 注: biz_project.sponsor_admin_user_id 永远是主账号 user_id, 子账号登录也应能看主账号的项目 — 简化: 直接用当前 user_id 过滤 + * 若需要子账号看主账号项目, 改 SQL 改为 (sponsor_admin_user_id = uid OR sponsor_admin_user_id IN (parent_user_id=uid 的子账号所属主账号)) + */ + @GetMapping("/sponsorList") + public TableDataInfo sponsorList(BizProject bizProject) + { + bizProject.getParams().put("sponsorAdminUserId", SecurityUtils.getUserId()); + startPage(); + List list = bizProjectService.selectSponsorList(bizProject); + return getDataTable(list); + } + + /** + * executor 专属项目列表 (按当前 user_id + 其 executor biz_org.org_id 过滤 biz_project_assign) + * GET /business/project/executorList + * 匹配规则 (任一): + * 1) biz_project_assign.exec_user_id = uid + * 2) biz_project_assign.execution_unit_id = uid 对应的 executor biz_org.org_id + */ + @GetMapping("/executorList") + public TableDataInfo executorList(BizProject bizProject) + { + bizProject.getParams().put("executorUserId", SecurityUtils.getUserId()); + startPage(); + List list = bizProjectService.selectExecutorList(bizProject); + return getDataTable(list); + } @GetMapping("/{projectId}") public AjaxResult getInfo(@PathVariable("projectId") String projectId) { @@ -144,9 +175,11 @@ public class BizProjectController extends BaseController @PostMapping("/rate") public AjaxResult rate(@RequestBody BizProjectRating body) { - if (body.getProjectId() == null || body.getRaterId() == null || body.getRaterRole() == null) { - return error("projectId / raterId / raterRole 必填"); + if (body.getProjectId() == null || body.getRaterRole() == null) { + return error("projectId / raterRole 必填"); } + // 评分人以当前登录用户为准, 不信任前端传入的 raterId + body.setRaterId(SecurityUtils.getUserId()); body.setCreateBy(SecurityUtils.getUsername()); body.setUpdateBy(SecurityUtils.getUsername()); int rows = bizProjectRatingService.upsertRating(body); diff --git a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizProjectRatingController.java b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizProjectRatingController.java index b467c17..ecd06b6 100644 --- a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizProjectRatingController.java +++ b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizProjectRatingController.java @@ -47,9 +47,11 @@ public class BizProjectRatingController extends BaseController @PostMapping("/rate") public AjaxResult rate(@RequestBody BizProjectRating body) { - if (body.getProjectId() == null || body.getRaterId() == null || body.getRaterRole() == null) { - return error("projectId / raterId / raterRole 必填"); + if (body.getProjectId() == null || body.getRaterRole() == null) { + return error("projectId / raterRole 必填"); } + // 评分人以当前登录用户为准 + body.setRaterId(getUserId()); body.setCreateBy(getUsername()); body.setUpdateBy(getUsername()); int rows = bizProjectRatingService.upsertRating(body); diff --git a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizSpecialPlanController.java b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizSpecialPlanController.java index 49e6e7e..b753e43 100644 --- a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizSpecialPlanController.java +++ b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizSpecialPlanController.java @@ -32,6 +32,26 @@ public class BizSpecialPlanController extends BaseController return getDataTable(list); } + /** + * 专项计划下拉选项 (供 manager/Plans 等页面填充 "项目方向" 下拉) + * 返回 [{id, title}], 仅启用项 (status='0'), 按 sort_order 升序 + * 注: 不加 @PreAuthorize, 与 BizProjectController 一致 — manager 是业务角色, 不走 RuoYi RBAC 权限 + */ + @GetMapping("/options") + public AjaxResult options() + { + List all = specialPlanService.selectList(new BizSpecialPlan()); + java.util.List> opts = new java.util.ArrayList<>(); + for (BizSpecialPlan p : all) { + if (p.getStatus() != null && !"0".equals(p.getStatus())) continue; + java.util.Map m = new java.util.LinkedHashMap<>(); + m.put("id", p.getId()); + m.put("title", p.getTitle()); + opts.add(m); + } + return success(opts); + } + @PreAuthorize("@ss.hasPermi('business:specialPlan:query')") @GetMapping("/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) diff --git a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizProject.java b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizProject.java index 7dd247d..145904b 100644 --- a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizProject.java +++ b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizProject.java @@ -20,6 +20,10 @@ public class BizProject extends BaseEntity { /** total_sessions */ @Excel(name = "total_sessions") private Long totalSessions; + /** 分配给当前执行方的场次 (biz_project_assign.sessions 之和, 仅 executor 端使用) */ + private Long assignedSessions; + /** 分配给当前执行方的金额 (biz_project_assign.amount 之和, 仅 executor 端使用) */ + private java.math.BigDecimal assignedAmount; /** done_sessions */ @Excel(name = "done_sessions") private Long doneSessions; @@ -38,17 +42,12 @@ public class BizProject extends BaseEntity { /** paid_meeting_amount */ @Excel(name = "paid_meeting_amount") private BigDecimal paidMeetingAmount; - /** rating_score (平均分) */ - @Excel(name = "rating_score") - private BigDecimal ratingScore; - /** 评分维度: 履约质量 */ - private BigDecimal ratingQ1; - /** 评分维度: 时效响应 */ - private BigDecimal ratingQ2; - /** 评分维度: 配合度 */ - private BigDecimal ratingQ3; - /** 评分维度: 合规安全 */ - private BigDecimal ratingQ4; + /** manager_score (合规管理员评均分) */ + @Excel(name = "manager_score") + private BigDecimal managerScore; + /** sponsor_score (支持方评均分) */ + @Excel(name = "sponsor_score") + private BigDecimal sponsorScore; /** 支持方负责人用户名(冗余) — 原 org_name */ @Excel(name = "sponsor_admin_user_name") private String sponsorAdminUserName; @@ -138,6 +137,10 @@ public class BizProject extends BaseEntity { public void setProjectName(String projectName) { this.projectName = projectName; } public Long getTotalSessions() { return totalSessions; } public void setTotalSessions(Long totalSessions) { this.totalSessions = totalSessions; } + public Long getAssignedSessions() { return assignedSessions; } + public void setAssignedSessions(Long assignedSessions) { this.assignedSessions = assignedSessions; } + public java.math.BigDecimal getAssignedAmount() { return assignedAmount; } + public void setAssignedAmount(java.math.BigDecimal assignedAmount) { this.assignedAmount = assignedAmount; } public Long getDoneSessions() { return doneSessions; } public void setDoneSessions(Long doneSessions) { this.doneSessions = doneSessions; } public Long getTodoSessions() { return todoSessions; } @@ -150,16 +153,10 @@ public class BizProject extends BaseEntity { public void setPaidLaborAmount(BigDecimal paidLaborAmount) { this.paidLaborAmount = paidLaborAmount; } public BigDecimal getPaidMeetingAmount() { return paidMeetingAmount; } public void setPaidMeetingAmount(BigDecimal paidMeetingAmount) { this.paidMeetingAmount = paidMeetingAmount; } - public BigDecimal getRatingScore() { return ratingScore; } - public void setRatingScore(BigDecimal ratingScore) { this.ratingScore = ratingScore; } - public BigDecimal getRatingQ1() { return ratingQ1; } - public void setRatingQ1(BigDecimal ratingQ1) { this.ratingQ1 = ratingQ1; } - public BigDecimal getRatingQ2() { return ratingQ2; } - public void setRatingQ2(BigDecimal ratingQ2) { this.ratingQ2 = ratingQ2; } - public BigDecimal getRatingQ3() { return ratingQ3; } - public void setRatingQ3(BigDecimal ratingQ3) { this.ratingQ3 = ratingQ3; } - public BigDecimal getRatingQ4() { return ratingQ4; } - public void setRatingQ4(BigDecimal ratingQ4) { this.ratingQ4 = ratingQ4; } + public BigDecimal getManagerScore() { return managerScore; } + public void setManagerScore(BigDecimal managerScore) { this.managerScore = managerScore; } + public BigDecimal getSponsorScore() { return sponsorScore; } + public void setSponsorScore(BigDecimal sponsorScore) { this.sponsorScore = sponsorScore; } public String getSponsorAdminUserName() { return sponsorAdminUserName; } public void setSponsorAdminUserName(String sponsorAdminUserName) { this.sponsorAdminUserName = sponsorAdminUserName; } public String getSponsorOrgName() { return sponsorOrgName; } diff --git a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizProjectRating.java b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizProjectRating.java index 881fd43..477cb5e 100644 --- a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizProjectRating.java +++ b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/domain/BizProjectRating.java @@ -25,7 +25,7 @@ public class BizProjectRating extends BaseEntity { private String raterRole; /** quality_score */ @Excel(name = "quality_score") - private String qualityScore; + private Long qualityScore; /** response_score */ @Excel(name = "response_score") private Long responseScore; @@ -35,9 +35,6 @@ public class BizProjectRating extends BaseEntity { /** compliance_score */ @Excel(name = "compliance_score") private Long complianceScore; - /** total_score */ - @Excel(name = "total_score") - private BigDecimal totalScore; /** remark */ @Excel(name = "remark") private String remark; @@ -71,16 +68,14 @@ public class BizProjectRating extends BaseEntity { public void setRaterName(String raterName) { this.raterName = raterName; } public String getRaterRole() { return raterRole; } public void setRaterRole(String raterRole) { this.raterRole = raterRole; } - public String getQualityScore() { return qualityScore; } - public void setQualityScore(String qualityScore) { this.qualityScore = qualityScore; } + public Long getQualityScore() { return qualityScore; } + public void setQualityScore(Long qualityScore) { this.qualityScore = qualityScore; } public Long getResponseScore() { return responseScore; } public void setResponseScore(Long responseScore) { this.responseScore = responseScore; } public Long getCooperationScore() { return cooperationScore; } public void setCooperationScore(Long cooperationScore) { this.cooperationScore = cooperationScore; } public Long getComplianceScore() { return complianceScore; } public void setComplianceScore(Long complianceScore) { this.complianceScore = complianceScore; } - public BigDecimal getTotalScore() { return totalScore; } - public void setTotalScore(BigDecimal totalScore) { this.totalScore = totalScore; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public String getCreateBy() { return createBy; } diff --git a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/mapper/BizOrgMapper.java b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/mapper/BizOrgMapper.java index 2ba3691..ad9bee8 100644 --- a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/mapper/BizOrgMapper.java +++ b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/mapper/BizOrgMapper.java @@ -18,4 +18,10 @@ public interface BizOrgMapper { * 注意: value 必须 MAIN user_id (写入 biz_project_assign.exec_user_id); * label 必须 org_name, 不用 user_name 以避免把同公司的普通员工带出来 */ List> selectExecutorOrgOptions(BizOrg entity); + /** 当前登录 sponsor 的所属公司 + * 主账号 (sys_user.parent_user_id IS NULL): biz_org.user_id = #{userId} + * 子账号 (有 biz_person 记录): biz_org.org_id = biz_person.org_id + * 返回 Map: orgId / orgName / isOwner (1=主账号, 0=子账号) + * 用于 /sponsor/account 页面回显 + 主账号修改 org_name */ + Map selectMySponsorCompany(Long userId); } diff --git a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/mapper/BizProjectMapper.java b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/mapper/BizProjectMapper.java index 63cd33b..588c019 100644 --- a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/mapper/BizProjectMapper.java +++ b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/mapper/BizProjectMapper.java @@ -11,6 +11,8 @@ public interface BizProjectMapper List selectList(BizProject entity); /** sponsor 端专属: projectIds + LEFT JOIN 当前 login 用户评分, 用于评分回显 */ List selectSponsorList(BizProject entity); + /** executor 端专属: JOIN biz_project_assign 过滤, 只返回分给当前 user 的项目 */ + List selectExecutorList(BizProject entity); int insert(BizProject entity); int updateByPrimaryKey(BizProject entity); int deleteByPrimaryKey(String projectId); diff --git a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/service/IBizOrgService.java b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/service/IBizOrgService.java index c60773e..8e61452 100644 --- a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/service/IBizOrgService.java +++ b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/service/IBizOrgService.java @@ -15,4 +15,6 @@ public interface IBizOrgService { /** 执行方下拉选项 (userId/orgName/userName), 用于 manager 项目分配弹窗 * 只返回 biz_org.org_type='executor' 对应的 MAIN 账号 (parent_user_id IS NULL) */ List> selectExecutorOrgOptions(BizOrg entity); + /** 当前登录 sponsor 的所属公司 (主账号可改, 子账号只读) */ + Map selectMySponsorCompany(Long userId); } diff --git a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/service/IBizProjectService.java b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/service/IBizProjectService.java index 87fb106..2c669cd 100644 --- a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/service/IBizProjectService.java +++ b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/service/IBizProjectService.java @@ -12,6 +12,8 @@ public interface IBizProjectService List selectList(BizProject entity); /** sponsor 端专属: LEFT JOIN 当前 login 用户评分回显 */ List selectSponsorList(BizProject entity); + /** executor 端专属: JOIN biz_project_assign 过滤, 只返回分给当前 user 的项目 */ + List selectExecutorList(BizProject entity); int insert(BizProject entity); int updateByPrimaryKey(BizProject entity); int deleteByPrimaryKey(String projectId); diff --git a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizOrgServiceImpl.java b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizOrgServiceImpl.java index 03b6651..1ba713b 100644 --- a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizOrgServiceImpl.java +++ b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizOrgServiceImpl.java @@ -45,4 +45,9 @@ public class BizOrgServiceImpl implements IBizOrgService { public List> selectExecutorOrgOptions(BizOrg entity) { return bizOrgMapper.selectExecutorOrgOptions(entity); } + + @Override + public Map selectMySponsorCompany(Long userId) { + return bizOrgMapper.selectMySponsorCompany(userId); + } } diff --git a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizProjectServiceImpl.java b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizProjectServiceImpl.java index a909b83..c8e4f2e 100644 --- a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizProjectServiceImpl.java +++ b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BizProjectServiceImpl.java @@ -23,6 +23,9 @@ public class BizProjectServiceImpl implements IBizProjectService public List selectSponsorList(BizProject entity) { return bizProjectMapper.selectSponsorList(entity); } @Override + public List selectExecutorList(BizProject entity) + { return bizProjectMapper.selectExecutorList(entity); } + @Override public int insert(BizProject entity) { com.ruoyi.common.utils.id.SnowflakeId.injectIfEmpty(entity, "projectId"); return bizProjectMapper.insert(entity); } @Override public int updateByPrimaryKey(BizProject entity) diff --git a/ry-api/ruoyi-business/src/main/resources/mapper/business/BizOrgMapper.xml b/ry-api/ruoyi-business/src/main/resources/mapper/business/BizOrgMapper.xml index 1ad8a84..2ce9be1 100644 --- a/ry-api/ruoyi-business/src/main/resources/mapper/business/BizOrgMapper.xml +++ b/ry-api/ruoyi-business/src/main/resources/mapper/business/BizOrgMapper.xml @@ -142,4 +142,23 @@ and o.org_name like concat('%', #{orgName}, '%') order by o.org_id desc + + + diff --git a/ry-api/ruoyi-business/src/main/resources/mapper/business/BizProjectMapper.xml b/ry-api/ruoyi-business/src/main/resources/mapper/business/BizProjectMapper.xml index ac448b1..f1b8fc9 100644 --- a/ry-api/ruoyi-business/src/main/resources/mapper/business/BizProjectMapper.xml +++ b/ry-api/ruoyi-business/src/main/resources/mapper/business/BizProjectMapper.xml @@ -6,13 +6,16 @@ + + - + + @@ -38,7 +41,7 @@ - select p.project_id, p.project_no, p.project_name, p.total_sessions, p.done_sessions, p.todo_sessions, p.total_amount, p.available_amount, p.paid_labor_amount, p.paid_meeting_amount, p.rating_score, p.sponsor_admin_user_name, p.project_form, p.is_finished, p.is_settled, p.sponsor_admin_user_id, p.lead_user_id, p.is_bid_project, p.create_by, p.create_time, p.update_by, p.update_time, p.manage_fee, p.start_time, p.end_time, p.submit_deadline_days, p.support_contract_url, p.execute_contract_url, p.invitation_url, p.support_letter_url, p.publish_url, + select p.project_id, p.project_no, p.project_name, p.total_sessions, p.done_sessions, p.todo_sessions, p.total_amount, p.available_amount, p.paid_labor_amount, p.paid_meeting_amount, p.manager_score, p.sponsor_score, p.sponsor_admin_user_name, p.project_form, p.is_finished, p.is_settled, p.sponsor_admin_user_id, p.lead_user_id, p.is_bid_project, p.create_by, p.create_time, p.update_by, p.update_time, p.manage_fee, p.start_time, p.end_time, p.submit_deadline_days, p.support_contract_url, p.execute_contract_url, p.invitation_url, p.support_letter_url, p.publish_url, o.org_name as sponsor_org_name, lu.user_name as lead_user_name, (select group_concat(distinct o2.org_name separator ',') @@ -54,7 +57,7 @@ select p.project_id, p.project_no, p.project_name, p.total_sessions, p.done_sessions, p.todo_sessions, p.total_amount, p.available_amount, p.paid_labor_amount, p.paid_meeting_amount, - p.rating_score, p.sponsor_admin_user_name, p.project_form, p.is_finished, p.is_settled, + p.manager_score, p.sponsor_score, p.sponsor_admin_user_name, p.project_form, p.is_finished, p.is_settled, p.sponsor_admin_user_id, p.lead_user_id, p.is_bid_project, p.create_by, p.create_time, p.update_by, p.update_time, p.manage_fee, p.start_time, p.end_time, p.submit_deadline_days, @@ -84,6 +87,48 @@ #{id} + and p.sponsor_admin_user_id = #{params.sponsorAdminUserId} + and p.project_no like concat('%', #{projectNo}, '%') + and p.project_name like concat('%', #{projectName}, '%') + and p.start_time >= #{startTime} + and p.end_time <= #{endTime} + and p.is_finished = #{isFinished} + + order by p.project_id desc + + + + @@ -25,6 +27,9 @@