From 25b569753afb9939e5610f6ba0d31a40f5e79388 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 27 十月 2025 15:01:58 +0800
Subject: [PATCH] bug修改

---
 ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectPhaseListQuery.java           |    5 +
 ruoyi-system/src/main/java/com/ruoyi/system/query/SysUserQuery.java                    |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java       |   10 +++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaNotificationController.java   |   40 ++++++++++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaNotifationUserController.java |    7 ++
 ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml                        |   13 ++-
 ruoyi-system/src/main/resources/mapper/system/ProjectMainMapper.xml                    |   13 +++
 ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectMainListVO.java                  |    3 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectMainController.java      |   14 ++--
 ruoyi-system/src/main/resources/mapper/system/OaNotificationMapper.xml                 |   11 ++-
 ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectMainListQuery.java            |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/model/OaNotification.java                  |   24 -------
 12 files changed, 97 insertions(+), 47 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaNotifationUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaNotifationUserController.java
index e33b0f2..306d098 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaNotifationUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaNotifationUserController.java
@@ -20,6 +20,7 @@
 import com.ruoyi.system.vo.system.NotificationDetailVO;
 import com.ruoyi.system.vo.system.NotificationUserDetailVO;
 import com.ruoyi.system.vo.system.NotificationVO;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import jdk.nashorn.internal.parser.Token;
 import org.springframework.beans.BeanUtils;
@@ -41,6 +42,7 @@
  * @since 2025-09-15
  */
 @RestController
+@Api("我的消息通知")
 @RequestMapping("/oa-notifation-user")
 public class OaNotifationUserController {
     @Resource
@@ -70,7 +72,10 @@
     @GetMapping(value = "/detail")
     public R<NotificationDetailVO> detail(String id) {
         NotificationDetailVO notificationDetailVO = new NotificationDetailVO();
-        OaNotification oaNotification = oaNotificationService.getById(id);
+        OaNotificationUser on = oaNotifationUserService.getById(id);
+        on.setReadStatus( true);
+        oaNotifationUserService.updateById(on);
+        OaNotification oaNotification = oaNotificationService.getById(on.getNotificationId());
         BeanUtils.copyProperties(oaNotification, notificationDetailVO);
 //        StringBuilder deptName = new StringBuilder();
 //        List<TDept> tDepts = deptService.list();
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaNotificationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaNotificationController.java
index 5b77a38..5814450 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaNotificationController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaNotificationController.java
@@ -63,10 +63,14 @@
     @DeleteMapping(value = "/delete")
     public R delete(@RequestParam String ids) {
         List<String> notificationIds = Arrays.asList(ids.split(","));
+        List<Integer> idsList = new ArrayList<>();
+        for (String notificationId : notificationIds) {
+            idsList.add(Integer.parseInt(notificationId));
+        }
         // 删除后 将已发送的消息通知一并删除
-        oaNotificationService.removeBatchByIds(notificationIds);
+        oaNotificationService.removeBatchByIds(idsList);
         oaNotifationUserService.remove(new LambdaQueryWrapper<OaNotificationUser>()
-                .in(OaNotificationUser::getNotificationId,notificationIds));
+                .in(OaNotificationUser::getNotificationId,idsList));
         return R.ok();
     }
     @Log(title = "消息通知-新增消息", businessType = BusinessType.INSERT)
@@ -98,6 +102,38 @@
         oaNotifationUserService.saveBatch(oaNotificationUsers);
         return R.ok();
     }
+    @Log(title = "消息通知-编辑消息", businessType = BusinessType.UPDATE)
+    @ApiOperation(value = "编辑消息")
+    @PostMapping(value = "/edit")
+    public R<Boolean> edit( @RequestBody OaNotification dto) {
+        oaNotificationService.updateById(dto);
+        // 删除消息通知
+        oaNotifationUserService.remove(new LambdaQueryWrapper<OaNotificationUser>()
+                .eq(OaNotificationUser::getNotificationId,dto.getId()));
+        ArrayList<OaNotificationUser> oaNotificationUsers = new ArrayList<>();
+        // 发送消息通知
+        if (dto.getType()){
+            // 指定人员发送
+            Arrays.asList(dto.getUserIds().split(","))
+                    .forEach(userId -> {
+                        OaNotificationUser oaNotificationUser = new OaNotificationUser();
+                        oaNotificationUser.setUserId(Integer.parseInt(userId));
+                        oaNotificationUser.setNotificationId(dto.getId());
+                        oaNotificationUsers.add(oaNotificationUser);
+                    });
+        }else{
+            // 所有人发送
+            List<SysUser> sysUsers = sysUserService.selectAllList();
+            sysUsers.forEach(sysUser -> {
+                OaNotificationUser oaNotificationUser = new OaNotificationUser();
+                oaNotificationUser.setUserId(sysUser.getUserId().intValue());
+                oaNotificationUser.setNotificationId(dto.getId());
+                oaNotificationUsers.add(oaNotificationUser);
+            });
+        }
+        oaNotifationUserService.saveBatch(oaNotificationUsers);
+        return R.ok();
+    }
     @ApiOperation(value = "消息通知详情")
     @GetMapping(value = "/detail")
     public R<NotificationDetailVO> detail(String id) {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectMainController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectMainController.java
index 5dda629..5b90df9 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectMainController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectMainController.java
@@ -114,7 +114,7 @@
                 .eq(ProjectInvestment::getProjectId, id)
                 .eq(ProjectInvestment::getInvestmentType, 2)
                 .last("limit 1").one();
-        projectMain.setProjectInvestment1(projectInvestment2);
+        projectMain.setProjectInvestment2(projectInvestment2);
         return R.ok(projectMain);
     }
     @Log(title = "储备项目-删除", businessType = BusinessType.DELETE)
@@ -136,11 +136,13 @@
     @Log(title = "项目阶段-添加事项", businessType = BusinessType.INSERT)
     @PostMapping(value = "/addSettleItem")
     public R<Boolean> addSettleItem(@RequestBody ProjectSettleItem entity) {
-        if (StringUtils.hasLength(entity.getFileUrl())){
-            entity.setStatus(3);
-        }else{
-            if (entity.getSettleTime().isBefore(LocalDate.now())) {
-                entity.setStatus(2);
+        if (entity.getStatus()==null){
+            if (StringUtils.hasLength(entity.getFileUrl())){
+                entity.setStatus(3);
+            }else{
+                if (entity.getSettleTime().isBefore(LocalDate.now())) {
+                    entity.setStatus(2);
+                }
             }
         }
         projectSettleItemService.save(entity);
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/OaNotification.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/OaNotification.java
index 085f1fd..cdef697 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/OaNotification.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/OaNotification.java
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -26,7 +27,7 @@
 @EqualsAndHashCode(callSuper = false)
 @TableName("oa_notification")
 @ApiModel(value="OaNotification对象", description="通知表")
-public class OaNotification implements Serializable {
+public class OaNotification extends BaseModel {
 
     private static final long serialVersionUID = 1L;
 
@@ -46,28 +47,7 @@
     @TableField("type")
     private Boolean type;
 
-    @ApiModelProperty(value = "创建时间")
-    @TableField("create_time")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private LocalDateTime createTime;
 
-    @ApiModelProperty(value = "创建人")
-    @TableField("create_by")
-    private String createBy;
-
-    @ApiModelProperty(value = "更新时间")
-    @TableField("update_time")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private LocalDateTime updateTime;
-
-    @ApiModelProperty(value = "更新人")
-    @TableField("update_by")
-    private String updateBy;
-
-    @ApiModelProperty(value = "是否删除 0-否,1-是")
-    @TableField("disabled")
-    @TableLogic
-    private Boolean disabled;
 
     @ApiModelProperty(value = "通知部门ids 逗号拼接")
     @TableField("dept_ids")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectMainListQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectMainListQuery.java
index b14a16f..9d648dc 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectMainListQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectMainListQuery.java
@@ -17,5 +17,7 @@
     private String projectCode;
     @ApiModelProperty(value = "项目类型")
     private String projectType;
+    @ApiModelProperty(value = "状态 储备项目列表传1 协同传0")
+    private Integer status;
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectPhaseListQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectPhaseListQuery.java
index 035f134..92b8031 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectPhaseListQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectPhaseListQuery.java
@@ -1,5 +1,6 @@
 package com.ruoyi.system.query;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.ruoyi.common.core.domain.BasePage;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -10,13 +11,13 @@
 public class ProjectPhaseListQuery extends BasePage {
 
 
-    @ApiModelProperty(value = "项目名称")
-    private Integer status;
     @ApiModelProperty(value = "项目id")
     private String projectId;
     @ApiModelProperty(value = "事项标题")
     private String settleName;
     @ApiModelProperty(value = "所属项目阶段 1前期2实施3验收4运营")
     private Integer stage;
+    @ApiModelProperty(value = "事项类型 1项目事项 2款项记录")
+    private Integer settleType;
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/SysUserQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/SysUserQuery.java
index c188d92..17501bb 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/SysUserQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/SysUserQuery.java
@@ -19,5 +19,7 @@
     private String deptName;
     @ApiModelProperty(value = "角色名称")
     private String roleName;
+    @ApiModelProperty(value = "角色ids 前端忽略")
+    private List<Long> roleIds;
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 703ce01..0b43374 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -639,6 +639,16 @@
 
     @Override
     public PageInfo<SysUserVO> pageList(SysUserQuery query) {
+        if (org.springframework.util.StringUtils.hasLength(query.getRoleName())){
+            List<SysRole> sysRoles = roleMapper.selectRoleAll();
+            List<Long> roleIds = sysRoles.stream().filter(e -> e.getRoleName().contains(query.getRoleName()))
+                    .map(SysRole::getRoleId).collect(Collectors.toList());
+            if (roleIds.isEmpty()){
+                return new PageInfo<>();
+            }
+            query.setRoleIds(roleIds);
+
+        }
         PageInfo<SysUserVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
         List<SysUserVO> list = userMapper.pageList(query,pageInfo);
         if(CollectionUtils.isEmpty(list)){
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectMainListVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectMainListVO.java
index 4089219..53cb437 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectMainListVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ProjectMainListVO.java
@@ -13,8 +13,7 @@
 @Data
 @ApiModel(value = "储备项目列表返回VO")
 public class ProjectMainListVO extends ProjectMain {
-    @ApiModelProperty(value = "项目进度")
-    private String projectProgress;
+
 
 
 }
diff --git a/ruoyi-system/src/main/resources/mapper/system/OaNotificationMapper.xml b/ruoyi-system/src/main/resources/mapper/system/OaNotificationMapper.xml
index 538d0f5..6eec53d 100644
--- a/ruoyi-system/src/main/resources/mapper/system/OaNotificationMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/OaNotificationMapper.xml
@@ -25,9 +25,9 @@
         <if test="query.title != null and query.title != ''">
             and title like concat('%',#{query.title},'%')
         </if>
-        <if test="deptIds != null and deptIds.size() > 0">
+        <if test="query.deptIds != null and query.deptIds.size() > 0">
             AND (
-            <foreach collection="deptIds" item="deptId" separator=" OR ">
+            <foreach collection="query.deptIds" item="deptId" separator=" OR ">
                 FIND_IN_SET(#{deptId}, dept_ids)
             </foreach>
             )
@@ -36,14 +36,15 @@
         order by  create_time desc
     </select>
     <select id="pageListUser" resultType="com.ruoyi.system.vo.system.NotificationVO">
-        select t1.read_status as readStatus,t1.notification_id notificationId,t2.* from oa_notification t2
+        select t1.id as id,t1.read_status as readStatus,t1.notification_id notificationId,t2.*,t2.id as notificationId from oa_notification_user t1
+                                                                                   left join oa_notification t2 on t1.notification_id = t2.id
         where 1=1
         <if test="query.title != null and query.title != ''">
             and t2.title like concat('%',#{query.title},'%')
         </if>
-        <if test="deptIds != null and deptIds.size() > 0">
+        <if test="query.deptIds != null and query.deptIds.size() > 0">
             AND (
-            <foreach collection="deptIds" item="deptId" separator=" OR ">
+            <foreach collection="query.deptIds" item="deptId" separator=" OR ">
                 FIND_IN_SET(#{deptId}, t2.dept_ids)
             </foreach>
             )
diff --git a/ruoyi-system/src/main/resources/mapper/system/ProjectMainMapper.xml b/ruoyi-system/src/main/resources/mapper/system/ProjectMainMapper.xml
index ae45aeb..6ca148d 100644
--- a/ruoyi-system/src/main/resources/mapper/system/ProjectMainMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/ProjectMainMapper.xml
@@ -39,7 +39,7 @@
         id, project_name, project_type, project_code, create_time, create_by, update_time, update_by, disabled, platform_name, build_type, different_countries, build, build_address_detail, build_detail, national_standard_industry, industry, is_private_investment, private_investment_amount, investment_amount, start_time, end_time, construction_scale, construction_content, remark, responsible_unit, project_unit, status
     </sql>
     <select id="pageList" resultType="com.ruoyi.system.vo.ProjectMainListVO">
-        select t1.*,"未动工" as projectProgress from project_main t1
+        select t1.* from project_main t1
         where 1=1
         <if test="query.projectName != null and query.projectName != ''">
             AND (t1.project_name like concat('%', #{query.projectName}, '%'))
@@ -50,17 +50,26 @@
           <if test="query.projectCode != null and query.projectCode != ''">
             AND (t1.project_code like concat('%', #{query.projectCode}))
         </if>
+        <if test="query.status == 1">
+            AND (t1.status = 1)
+        </if>
+        <if test="query.status != 1">
+            AND (t1.status != 1)
+        </if>
         and t1.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
         order by t1.create_time  desc
     </select>
     <select id="pageListPhase" resultType="com.ruoyi.system.vo.ProjectPhaseListVO">
-        select t1.*,t2.nick_name,t3.dept_name as deptName from project_settle_item
+        select t1.*,t2.nick_name,t3.dept_name as deptName from project_settle_item t1
         left join sys_user t2 on t2.user_id = t1.user_id
         left join t_dept t3 on t3.id = t2.dept_id
         where 1=1
         <if test="query.stage != null and query.stage != ''">
             AND (t1.stage = #{query.stage})
         </if>
+          <if test="query.settleType != null and query.settleType != ''">
+            AND (t1.settle_type = #{query.settleType})
+        </if>
         <if test="query.projectId != null and query.projectId != ''">
             AND (t1.project_id = #{query.projectId})
         </if>
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index 9926cc8..da14eff 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -246,18 +246,21 @@
 		<if test="query.nickName != null and query.nickName != ''">
 			AND u.nick_name LIKE concat('%',#{query.nickName},'%')
 		</if>
-		<if test="query.roleName != null and query.roleName != ''">
-			AND r.role_name LIKE concat('%',#{query.roleName},'%')
+
+		<if test="query.roleIds != null and query.roleIds.size()>0">
+			AND ur.role_id IN
+			<foreach collection="query.roleIds" separator="," item="id" open="(" close=")">
+				#{id}
+			</foreach>
 		</if>
+
 		<if test="query.phonenumber != null and query.phonenumber != ''">
 			AND u.phonenumber LIKE concat('%',#{query.phonenumber},'%')
 		</if>
 		<if test="query.deptName != null and query.deptName != ''">
 			AND t1.dept_name LIKE concat('%',#{query.deptName},'%')
 		</if>
-		<if test="query.roleName != null and query.roleName != ''">
-			AND t1.dept_name LIKE concat('%',#{query.roleName},'%')
-		</if>
+
 		and u.user_id!=1
 		ORDER BY u.create_time DESC
 	</select>

--
Gitblit v1.7.1