浏览代码

bug调整

sangwenwei 1 年之前
父节点
当前提交
a81a6a5e8d
共有 71 个文件被更改,包括 2340 次插入197 次删除
  1. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/borrow/mapper/BorrowMapper.java
  2. 1 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/borrow/mapper/xml/BorrowMapper.xml
  3. 35 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/drive/controller/DriveController.java
  4. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/drive/mapper/DriveApplyMapper.java
  5. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/drive/mapper/DriveInfoMapper.java
  6. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/drive/mapper/DriveMaintainMapper.java
  7. 4 2
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/drive/service/DriveApplyService.java
  8. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/evection/mapper/EvectionMapper.java
  9. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/finance/mapper/JyFinanceInvoiceMapper.java
  10. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/goOut/mapper/GoOutMapper.java
  11. 0 28
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/holiday/domain/StaffUserInfo.java
  12. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/holiday/mapper/HolidayMapper.java
  13. 0 9
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/holiday/mapper/StaffUserInfoMapper.java
  14. 0 6
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/holiday/mapper/xml/StaffUserInfoMapper.xml
  15. 115 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/controller/StaffDimissionController.java
  16. 83 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/controller/StaffUserInfoController.java
  17. 52 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/domain/JyDimissionProcess.java
  18. 29 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/domain/StaffDimission.java
  19. 23 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/domain/StaffHeir.java
  20. 63 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/domain/StaffUserInfo.java
  21. 16 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/JyDimissionProcessMapper.java
  22. 20 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/StaffDimissionMapper.java
  23. 14 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/StaffHeirMapper.java
  24. 27 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/StaffUserInfoMapper.java
  25. 21 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/xml/JyDimissionProcessMapper.xml
  26. 62 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/xml/StaffDimissionMapper.xml
  27. 27 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/xml/StaffHeirMapper.xml
  28. 132 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/xml/StaffUserInfoMapper.xml
  29. 342 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/StaffDimissionService.java
  30. 280 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/StaffUserInfoService.java
  31. 51 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/dto/StaffDimissionDTO.java
  32. 32 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/dto/StaffHeirDTO.java
  33. 99 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/dto/StaffUserInfoDTO.java
  34. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/inscription/mapper/InscriptionMapper.java
  35. 2 2
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/mapper/MeetingRoomMapper.java
  36. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/mapper/xml/MeetingRoomMapper.xml
  37. 55 33
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/service/MeetingRoomService.java
  38. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/monthly/controller/MonthlyController.java
  39. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/monthly/mapper/MonthlyMapper.java
  40. 3 2
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/monthly/service/MonthlyService.java
  41. 31 7
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/notify/controller/JyNotifyController.java
  42. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/notify/mapper/xml/NotifyMapper.xml
  43. 69 3
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/notify/service/JyNotifyService.java
  44. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/payment/mapper/PaymentMapper.java
  45. 1 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/payment/mapper/xml/PaymentMapper.xml
  46. 5 8
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/program/configuration/projectDict/service/ProjectDictService.java
  47. 17 2
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/controller/JyProjectController.java
  48. 4 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/domain/JyProject.java
  49. 2 2
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/mapper/JyProjectMapper.java
  50. 20 6
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/mapper/xml/ProjectListMapper.xml
  51. 70 41
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/service/JyProjectService.java
  52. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/service/dto/JyProjectDTO.java
  53. 55 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/service/dto/JyProjectMembersDTO.java
  54. 13 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/service/mapstruct/JyProjectMembersWrapper.java
  55. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/reimbursement/mapper/JyReimbursementInfoMapper.java
  56. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/useSeal/mapper/SignetMapper.java
  57. 3 2
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/useSeal/mapper/xml/SignetMapper.xml
  58. 42 19
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/useSeal/service/SignetService.java
  59. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/mapper/JyWorkContractInfoMapper.java
  60. 2 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/mapper/xml/JyWorkContractInfoMapper.xml
  61. 102 0
      jeeplus-modules/jeeplus-flowable/src/main/java/com/jeeplus/modules/flowable/listener/DimissionListener.java
  62. 123 0
      jeeplus-modules/jeeplus-flowable/src/main/java/com/jeeplus/modules/flowable/listener/HeirListener.java
  63. 2 2
      jeeplus-modules/jeeplus-flowable/src/main/java/com/jeeplus/modules/flowable/listener/JyProjectArchiveListener.java
  64. 23 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/OfficeController.java
  65. 16 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/PostController.java
  66. 15 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/RoleController.java
  67. 18 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/UserController.java
  68. 16 2
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/UserMapper.java
  69. 13 1
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/xml/UserMapper.xml
  70. 33 1
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/OfficeService.java
  71. 39 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/UserService.java

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/borrow/mapper/BorrowMapper.java

@@ -14,7 +14,7 @@ import org.apache.ibatis.annotations.Param;
 
 
 @Mapper
 @Mapper
 public interface BorrowMapper extends BaseMapper<BorrowMoney> {
 public interface BorrowMapper extends BaseMapper<BorrowMoney> {
-    @InterceptorIgnore(tenantLine = "true")
+
     IPage<BorrowDTO> findPageList(@Param(Constants.WRAPPER) QueryWrapper<BorrowDTO> queryWrapper, Page<BorrowDTO> page);
     IPage<BorrowDTO> findPageList(@Param(Constants.WRAPPER) QueryWrapper<BorrowDTO> queryWrapper, Page<BorrowDTO> page);
     @InterceptorIgnore(tenantLine = "true")
     @InterceptorIgnore(tenantLine = "true")
     BorrowDTO findById(@Param("id") String id);
     BorrowDTO findById(@Param("id") String id);

+ 1 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/borrow/mapper/xml/BorrowMapper.xml

@@ -33,6 +33,7 @@
         left join sys_office so on su.office_id = so.id and so.del_flag = '0'
         left join sys_office so on su.office_id = so.id and so.del_flag = '0'
         LEFT JOIN act_ru_task art1 ON a.proc_ins_id = art1.PROC_INST_ID_
         LEFT JOIN act_ru_task art1 ON a.proc_ins_id = art1.PROC_INST_ID_
         LEFT JOIN act_ru_task art2 ON re.proc_ins_id = art2.PROC_INST_ID_
         LEFT JOIN act_ru_task art2 ON re.proc_ins_id = art2.PROC_INST_ID_
+        left join sys_user_manage_office sumo on sumo.office_id = su.office_id
         ${ew.customSqlSegment}
         ${ew.customSqlSegment}
         ORDER BY a.update_time DESC
         ORDER BY a.update_time DESC
     </select>
     </select>

+ 35 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/drive/controller/DriveController.java

@@ -1,5 +1,6 @@
 package com.jeeplus.business.drive.controller;
 package com.jeeplus.business.drive.controller;
 
 
+import cn.hutool.extra.spring.SpringUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jeeplus.business.drive.service.DriveAccountService;
 import com.jeeplus.business.drive.service.DriveAccountService;
@@ -8,7 +9,10 @@ import com.jeeplus.business.drive.service.dto.DriveAccountDTO;
 import com.jeeplus.business.drive.service.dto.DriveApplyDTO;
 import com.jeeplus.business.drive.service.dto.DriveApplyDTO;
 import com.jeeplus.business.drive.service.dto.DriveDTO;
 import com.jeeplus.business.drive.service.dto.DriveDTO;
 import com.jeeplus.business.meetingRoom.service.dto.MeetingRoomDTO;
 import com.jeeplus.business.meetingRoom.service.dto.MeetingRoomDTO;
+import com.jeeplus.common.TokenProvider;
 import com.jeeplus.common.utils.ResponseUtil;
 import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.sys.feign.IUserApi;
+import com.jeeplus.sys.service.dto.UserDTO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
@@ -18,6 +22,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
+import java.util.ArrayList;
 
 
 @Slf4j
 @Slf4j
 @Api(tags ="用车申请及结算管理")
 @Api(tags ="用车申请及结算管理")
@@ -114,6 +119,36 @@ public class DriveController {
         return ResponseEntity.ok("操作成功");
         return ResponseEntity.ok("操作成功");
     }
     }
 
 
+    @ApiOperation(value = "校验用车人员是否是本部门员工")
+    @GetMapping(value = "/checkUseMen")
+    public boolean checkUseMen(@RequestParam String useMen){
+        //获取当前登录人信息
+        UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getByToken(TokenProvider.getCurrentToken());
+        //判断用车人员是否是多个
+        ArrayList<UserDTO> userDTOS = new ArrayList<>();
+        if (useMen.contains(",")){
+            //获取到用车人员的信息
+            String[] split = useMen.split(",");
+            for (String s : split) {
+                UserDTO dto = SpringUtil.getBean(IUserApi.class).getById(s);
+                userDTOS.add(dto);
+            }
+            //判断与当前登陆人是否是同部门
+            for (UserDTO dto : userDTOS) {
+                if (!dto.getOfficeDTO().getId().equals(userDTO.getOfficeDTO().getId())){
+                    return false;
+                }
+            }
+        }else {
+            UserDTO dto = SpringUtil.getBean(IUserApi.class).getById(useMen);
+            if (!dto.getOfficeDTO().getId().equals(userDTO.getOfficeDTO().getId())){
+                return false;
+            }
+        }
+        return true;
+    }
+
+
 
 
 
 
 
 

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/drive/mapper/DriveApplyMapper.java

@@ -16,7 +16,7 @@ import java.util.List;
 
 
 @Mapper
 @Mapper
 public interface DriveApplyMapper extends BaseMapper<DriveApply> {
 public interface DriveApplyMapper extends BaseMapper<DriveApply> {
-    @InterceptorIgnore(tenantLine = "true")
+
     IPage<DriveApplyDTO> findPageList(@Param(Constants.WRAPPER)QueryWrapper<DriveApplyDTO> queryWrapper, Page<DriveApplyDTO> page);
     IPage<DriveApplyDTO> findPageList(@Param(Constants.WRAPPER)QueryWrapper<DriveApplyDTO> queryWrapper, Page<DriveApplyDTO> page);
 
 
     List<WorkAttachmentInfo> findList(@Param("id")String id);
     List<WorkAttachmentInfo> findList(@Param("id")String id);

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/drive/mapper/DriveInfoMapper.java

@@ -12,7 +12,7 @@ import org.apache.ibatis.annotations.Param;
 
 
 @Mapper
 @Mapper
 public interface DriveInfoMapper extends BaseMapper<DriveInfo> {
 public interface DriveInfoMapper extends BaseMapper<DriveInfo> {
-    @InterceptorIgnore(tenantLine = "true")
+
     IPage<DriveInfo> findPageList(Page<DriveInfo> page,@Param(Constants.WRAPPER) QueryWrapper<DriveInfo> queryWrapper);
     IPage<DriveInfo> findPageList(Page<DriveInfo> page,@Param(Constants.WRAPPER) QueryWrapper<DriveInfo> queryWrapper);
 
 
     void updateInfoById(@Param("info") DriveInfo info);
     void updateInfoById(@Param("info") DriveInfo info);

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/drive/mapper/DriveMaintainMapper.java

@@ -16,7 +16,7 @@ import java.util.List;
 
 
 @Mapper
 @Mapper
 public interface DriveMaintainMapper extends BaseMapper<DriveMaintain> {
 public interface DriveMaintainMapper extends BaseMapper<DriveMaintain> {
-    @InterceptorIgnore(tenantLine = "true")
+
     IPage<DriveMaintainDTO> findPageList(Page<DriveMaintainDTO> page, @Param(Constants.WRAPPER) QueryWrapper<DriveMaintainDTO> queryWrapper);
     IPage<DriveMaintainDTO> findPageList(Page<DriveMaintainDTO> page, @Param(Constants.WRAPPER) QueryWrapper<DriveMaintainDTO> queryWrapper);
 
 
     @InterceptorIgnore(tenantLine = "true")
     @InterceptorIgnore(tenantLine = "true")

+ 4 - 2
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/drive/service/DriveApplyService.java

@@ -116,8 +116,10 @@ public class DriveApplyService {
         }
         }
         driveApplyMapper.updateById(driveApply);
         driveApplyMapper.updateById(driveApply);
         //修改附件
         //修改附件
-        List<WorkAttachmentInfo> files = driveApplyDTO.getFiles();
-        updateFiles(files, userDTO, driveApplyDTO.getId());
+        if (CollectionUtils.isNotEmpty(driveApplyDTO.getFiles())){
+            List<WorkAttachmentInfo> files = driveApplyDTO.getFiles();
+            updateFiles(files, userDTO, driveApplyDTO.getId());
+        }
         return driveApplyDTO.getId();
         return driveApplyDTO.getId();
     }
     }
 
 

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/evection/mapper/EvectionMapper.java

@@ -16,7 +16,7 @@ import java.util.List;
 
 
 @Mapper
 @Mapper
 public interface EvectionMapper extends BaseMapper<Evection> {
 public interface EvectionMapper extends BaseMapper<Evection> {
-    @InterceptorIgnore(tenantLine = "true")
+
     IPage<EvectionDTO> findPageList(@Param(Constants.WRAPPER) QueryWrapper<EvectionDTO> queryWrapper, Page<EvectionDTO> page);
     IPage<EvectionDTO> findPageList(@Param(Constants.WRAPPER) QueryWrapper<EvectionDTO> queryWrapper, Page<EvectionDTO> page);
 
 
     List<WorkAttachmentInfo> findList(@Param("id")String id);
     List<WorkAttachmentInfo> findList(@Param("id")String id);

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/finance/mapper/JyFinanceInvoiceMapper.java

@@ -15,7 +15,7 @@ import org.apache.ibatis.annotations.Param;
 import java.util.List;
 import java.util.List;
 
 
 @Mapper
 @Mapper
-@InterceptorIgnore(tenantLine = "true")
+
 public interface JyFinanceInvoiceMapper extends BaseMapper<JyFinanceInvoice> {
 public interface JyFinanceInvoiceMapper extends BaseMapper<JyFinanceInvoice> {
 
 
     public IPage<JyFinanceInvoiceDTO> findList(Page<JyFinanceInvoiceDTO> page, @Param(Constants.WRAPPER) QueryWrapper<JyFinanceInvoice> queryWrapper);
     public IPage<JyFinanceInvoiceDTO> findList(Page<JyFinanceInvoiceDTO> page, @Param(Constants.WRAPPER) QueryWrapper<JyFinanceInvoice> queryWrapper);

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/goOut/mapper/GoOutMapper.java

@@ -16,7 +16,7 @@ import java.util.List;
 
 
 @Mapper
 @Mapper
 public interface GoOutMapper extends BaseMapper<GoOut> {
 public interface GoOutMapper extends BaseMapper<GoOut> {
-    @InterceptorIgnore(tenantLine = "true")
+
     IPage<GoOutDTO> findPageList(@Param(Constants.WRAPPER) QueryWrapper<GoOutDTO> queryWrapper, Page<GoOutDTO> page);
     IPage<GoOutDTO> findPageList(@Param(Constants.WRAPPER) QueryWrapper<GoOutDTO> queryWrapper, Page<GoOutDTO> page);
 
 
     List<WorkAttachmentInfo> findList(@Param("id")String id);
     List<WorkAttachmentInfo> findList(@Param("id")String id);

+ 0 - 28
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/holiday/domain/StaffUserInfo.java

@@ -1,28 +0,0 @@
-package com.jeeplus.business.holiday.domain;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.jeeplus.core.domain.BaseEntity;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.util.Date;
-import java.util.regex.Pattern;
-
-@Data
-@TableName("staff_user_info")
-public class StaffUserInfo extends BaseEntity {
-
-    /**
-     * 员工入职日期
-     */
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
-    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
-    private Date inTime;
-
-    /**
-     * 用户id
-     */
-    private String userId;
-}

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/holiday/mapper/HolidayMapper.java

@@ -14,7 +14,7 @@ import org.apache.ibatis.annotations.Param;
 import java.util.List;
 import java.util.List;
 
 
 @Mapper
 @Mapper
-@InterceptorIgnore(tenantLine = "true")
+
 public interface HolidayMapper extends BaseMapper<Holiday> {
 public interface HolidayMapper extends BaseMapper<Holiday> {
     IPage<HolidayDTO> findPageList(@Param(Constants.WRAPPER) QueryWrapper<HolidayDTO> queryWrapper, Page<HolidayDTO> page);
     IPage<HolidayDTO> findPageList(@Param(Constants.WRAPPER) QueryWrapper<HolidayDTO> queryWrapper, Page<HolidayDTO> page);
 
 

+ 0 - 9
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/holiday/mapper/StaffUserInfoMapper.java

@@ -1,9 +0,0 @@
-package com.jeeplus.business.holiday.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.jeeplus.business.holiday.domain.StaffUserInfo;
-import org.apache.ibatis.annotations.Mapper;
-
-@Mapper
-public interface StaffUserInfoMapper extends BaseMapper<StaffUserInfo> {
-}

+ 0 - 6
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/holiday/mapper/xml/StaffUserInfoMapper.xml

@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.jeeplus.business.holiday.mapper.StaffUserInfoMapper">
-</mapper>

+ 115 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/controller/StaffDimissionController.java

@@ -0,0 +1,115 @@
+package com.jeeplus.business.humanResources.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.business.holiday.domain.Holiday;
+import com.jeeplus.business.holiday.service.dto.HolidayDTO;
+import com.jeeplus.business.humanResources.service.StaffDimissionService;
+import com.jeeplus.business.humanResources.service.dto.StaffDimissionDTO;
+import com.jeeplus.business.humanResources.service.dto.StaffHeirDTO;
+import com.jeeplus.business.humanResources.service.dto.StaffUserInfoDTO;
+import com.jeeplus.common.utils.ResponseUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.Value;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@Api(tags ="员工离职")
+@RestController
+@RequestMapping(value = "/employeeDimission")
+public class StaffDimissionController {
+
+    @Resource
+    private StaffDimissionService staffDimissionService;
+
+
+    /**
+     * 列表展示
+     */
+    @ApiOperation(value = "列表展示")
+    @GetMapping(value = "/findPageList")
+    public ResponseEntity<IPage<StaffDimissionDTO>> applyList(StaffDimissionDTO dimissionDTO, Page<StaffDimissionDTO> page) throws Exception {
+        IPage<StaffDimissionDTO> pageList=staffDimissionService.findPageList(dimissionDTO,page);
+        return ResponseEntity.ok(pageList);
+    }
+
+
+    /*
+    根据id进行查询
+     */
+    @ApiOperation(value = "根据id查询数据")
+    @GetMapping(value = "findById")
+    public ResponseEntity<StaffDimissionDTO> findById(@RequestParam String id){
+        StaffDimissionDTO dimissionDTO=staffDimissionService.findById(id);
+        return ResponseEntity.ok(dimissionDTO);
+    }
+
+    /**
+     * 新增或修改
+     */
+    @ApiOperation(value = "新增或修改")
+    @PostMapping(value = "/saveForm")
+    public ResponseEntity saveForm(@RequestBody StaffDimissionDTO dimissionDTO){
+        String id=staffDimissionService.save(dimissionDTO);
+        return ResponseUtil.newInstance().add("businessTable","staff_dimission").add("businessId",id).ok("操作成功");
+    }
+
+
+    /**
+     * 根据id修改状态status
+     * @param
+     */
+    @ApiOperation(value = "根据id修改状态status")
+    @PostMapping(value = "/updateStatusById")
+    public void updateStatusById(@RequestBody StaffDimissionDTO dimissionDTO) {
+        staffDimissionService.updateStatusById(dimissionDTO);
+    }
+
+    /**
+     * 根据id进行删除
+     */
+    @ApiOperation(value = "根据id进行删除")
+    @DeleteMapping(value = "/delete")
+    public ResponseEntity<String> deleteById(@RequestParam String id){
+        String s = staffDimissionService.deleteById(id);
+        return ResponseEntity.ok(s);
+    }
+
+    /*
+    根据id查询交接信息
+     */
+    @ApiOperation(value = "根据id查询数据")
+    @GetMapping(value = "findHeirById")
+    public ResponseEntity<StaffHeirDTO> findHeirById(@RequestParam String id){
+        StaffHeirDTO staffHeirDTO=staffDimissionService.findHeirById(id);
+        return ResponseEntity.ok(staffHeirDTO);
+    }
+
+    /**
+     * 新增或修改交接申请
+     */
+    @ApiOperation(value = "新增或修改")
+    @PostMapping(value = "/saveHeir")
+    public ResponseEntity saveHeir(@RequestBody StaffHeirDTO staffHeirDTO){
+        String id=staffDimissionService.saveHeir(staffHeirDTO);
+        return ResponseUtil.newInstance().add("businessTable","staff_heir").add("businessId",id).ok("操作成功");
+    }
+
+    /**
+     * 根据id修改状态status
+     * @param
+     */
+    @ApiOperation(value = "根据id修改状态status")
+    @PostMapping(value = "/updateHeirStatusById")
+    public void updateHeirStatusById(@RequestBody StaffHeirDTO staffHeirDTO) {
+        staffDimissionService.updateHeirStatusById(staffHeirDTO);
+    }
+
+
+
+}

+ 83 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/controller/StaffUserInfoController.java

@@ -0,0 +1,83 @@
+package com.jeeplus.business.humanResources.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import com.jeeplus.business.humanResources.service.StaffUserInfoService;
+import com.jeeplus.business.humanResources.service.dto.StaffUserInfoDTO;
+import com.jeeplus.common.utils.ResponseUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@Api(tags ="员工入职")
+@RestController
+@RequestMapping(value = "/employeeEntry")
+public class StaffUserInfoController {
+
+    @Resource
+    private StaffUserInfoService staffUserInfoService;
+
+
+    /**
+     * 列表
+     */
+    @ApiOperation(value = "入职列表")
+    @GetMapping(value = "/findList")
+    public ResponseEntity<IPage<StaffUserInfoDTO>> applyList(StaffUserInfoDTO userInfoDTO, Page<StaffUserInfoDTO> page) throws Exception {
+        IPage<StaffUserInfoDTO> pageList=staffUserInfoService.findPageList(userInfoDTO,page);
+        return ResponseEntity.ok(pageList);
+    }
+
+
+    /*
+    根据id进行查询
+     */
+    @ApiOperation(value = "根据id查询数据")
+    @GetMapping(value = "findById")
+    public ResponseEntity<StaffUserInfoDTO> findById(@RequestParam String id){
+        StaffUserInfoDTO userInfoDTO=staffUserInfoService.findById(id);
+        return ResponseEntity.ok(userInfoDTO);
+    }
+
+    /**
+     * 新增/修改入职
+     */
+    @ApiOperation(value = "新增/修改入职")
+    @PostMapping(value = "/saveForm")
+    public ResponseEntity saveForm(@RequestBody StaffUserInfoDTO staffUserInfoDTO) throws Exception{
+        String id = staffUserInfoService.saveForm(staffUserInfoDTO);
+        return ResponseUtil.newInstance().add("businessTable", "staff_user_info").add("businessId", id).ok ("操作成功");
+    }
+
+    /**
+     * 根据id修改状态status
+     * @param
+     */
+    @ApiOperation(value = "根据id修改状态status")
+    @PostMapping(value = "/updateStatusById")
+    public void updateStatusById(@RequestBody StaffUserInfoDTO staffUserInfoDTO) {
+        staffUserInfoService.updateStatusById(staffUserInfoDTO);
+    }
+
+    /**
+     * 根据id进行删除
+     */
+    @ApiOperation(value = "根据id进行删除")
+    @DeleteMapping(value = "/delete")
+    public ResponseEntity<String> deleteById(@RequestParam String id){
+        String s = staffUserInfoService.deleteById(id);
+        return ResponseEntity.ok(s);
+    }
+
+
+
+
+
+
+}

+ 52 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/domain/JyDimissionProcess.java

@@ -0,0 +1,52 @@
+package com.jeeplus.business.humanResources.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+@TableName("jy_dimission_process")
+public class JyDimissionProcess extends BaseEntity {
+
+    /**
+     * 项目名称
+     */
+    private String projectName;
+
+    /**
+     * 报告号
+     */
+    private String no;
+
+    /**
+     * 项目负责人
+     */
+    private String projectLeader;
+
+    /**
+     * 项目进度
+     */
+    private String process;
+
+    /**
+     * 进度完成时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date processTime;
+
+    /**
+     * 离职表id
+     */
+    private String dimissionId;
+
+    /**
+     * 部门
+     */
+    private String officeName;
+
+}

+ 29 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/domain/StaffDimission.java

@@ -0,0 +1,29 @@
+package com.jeeplus.business.humanResources.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 员工离职表
+ */
+@Data
+@TableName("staff_dimission")
+public class StaffDimission extends BaseEntity {
+
+    //离职原因
+    private String reason;
+
+    //离职日期
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date dimissionDate;
+
+    private String status;                //流程状态
+    private String procInsId;
+    private String processDefinitionId;
+}

+ 23 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/domain/StaffHeir.java

@@ -0,0 +1,23 @@
+package com.jeeplus.business.humanResources.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+/*
+员工交接表
+ */
+@Data
+@TableName("staff_heir")
+public class StaffHeir extends BaseEntity {
+
+    //交接人
+    private String heir;
+
+    private String status;                //流程状态
+    private String procInsId;
+    private String processDefinitionId;
+
+    //离职id
+    private String dimissionId;
+
+}

+ 63 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/domain/StaffUserInfo.java

@@ -0,0 +1,63 @@
+package com.jeeplus.business.humanResources.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+@TableName("staff_user_info")
+public class StaffUserInfo extends BaseEntity {
+
+    /**
+     * 员工入职日期
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date inTime;
+
+    /**
+     * 用户id
+     */
+    private String userId;
+
+    private String name;                //姓名
+    private String sex;                 //性别
+    private String age;                 //年龄
+    private String birthday;            //出生日期
+    private String politicalOutlook;    //政治面貌
+    private String nativePlace;         //籍贯
+    private String nation;              //民族
+    private String maritalStatus;       //婚姻状况
+    private String mobilePhone;         //联系电话
+    private String idCard;              //身份证号码
+    private String homeAddress;         //家庭住址
+    private String permanentAddress;    //常住地址
+    private String graduatedFrom;       //毕业院校
+    private String speciality;          //专业
+    private String startTime;           //开始时间
+    private String endTime;             //毕业时间
+    private String education;           //学历
+    private String educationNature;     //学历性质
+    private String graduatedOrNot;      //是否毕业
+    private String englishLevel;        //英语等级
+    private String ncre;                //计算机等级
+    private String department;          //所属部门
+    private String remarks;             //备注
+    private String type;                //流程状态
+    private String procInsId;
+    private String processDefinitionId;
+    private String onJobStatus;       //在职状态
+    private String roleId;            //角色
+    private String postId;            //岗位
+    private String bankNumber;        //银行账号
+    private String email;               //邮箱
+    private String fundNumber;          //公积金账号
+    private String managerOffice;       //管理部门
+
+
+
+}

+ 16 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/JyDimissionProcessMapper.java

@@ -0,0 +1,16 @@
+package com.jeeplus.business.humanResources.mapper;
+
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.business.humanResources.domain.JyDimissionProcess;
+import com.jeeplus.business.monthly.domain.JyProcess;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface JyDimissionProcessMapper extends BaseMapper<JyDimissionProcess> {
+    @InterceptorIgnore(tenantLine = "true")
+    List<JyDimissionProcess> findByDimissionId(@Param("id") String id);
+}

+ 20 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/StaffDimissionMapper.java

@@ -0,0 +1,20 @@
+package com.jeeplus.business.humanResources.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.business.humanResources.domain.StaffDimission;
+import com.jeeplus.business.humanResources.service.dto.StaffDimissionDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface StaffDimissionMapper extends BaseMapper<StaffDimission> {
+    IPage<StaffDimissionDTO> findPageList(@Param(Constants.WRAPPER) QueryWrapper<StaffDimissionDTO> queryWrapper, Page<StaffDimissionDTO> page);
+
+    StaffDimissionDTO findById(@Param("id") String id);
+
+    void updateStatusById(@Param("status") String status,@Param("id") String id);
+}

+ 14 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/StaffHeirMapper.java

@@ -0,0 +1,14 @@
+package com.jeeplus.business.humanResources.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.business.humanResources.domain.StaffHeir;
+import com.jeeplus.business.humanResources.service.dto.StaffHeirDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface StaffHeirMapper extends BaseMapper<StaffHeir> {
+    void updateHeirStatusById(@Param("status") String status, @Param("id") String id);
+
+    StaffHeirDTO findHeirById(@Param("id") String id);
+}

+ 27 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/StaffUserInfoMapper.java

@@ -0,0 +1,27 @@
+package com.jeeplus.business.humanResources.mapper;
+
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.business.humanResources.domain.StaffUserInfo;
+import com.jeeplus.business.humanResources.service.dto.StaffUserInfoDTO;
+import com.jeeplus.sys.domain.WorkAttachmentInfo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+
+public interface StaffUserInfoMapper extends BaseMapper<StaffUserInfo> {
+    IPage<StaffUserInfoDTO> findPageList(@Param(Constants.WRAPPER) QueryWrapper<StaffUserInfoDTO> queryWrapper, Page<StaffUserInfoDTO> page);
+
+    StaffUserInfoDTO findById(@Param("id") String id);
+
+    List<WorkAttachmentInfo> findDtos(@Param("id") String id,@Param("attachmentFlag") String attachmentFlag);
+
+    void updatestatusById(@Param("type") String type, @Param("id") String id);
+}

+ 21 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/xml/JyDimissionProcessMapper.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.business.humanResources.mapper.JyDimissionProcessMapper">
+
+    <select id="findByDimissionId" resultType="com.jeeplus.business.humanResources.domain.JyDimissionProcess">
+        select
+            project_name,
+            no,
+            project_leader,
+            process,
+            process_time,
+            dimission_id,
+            office_name
+        from
+            jy_dimission_process
+        where dimission_id = #{id}
+    </select>
+
+</mapper>

+ 62 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/xml/StaffDimissionMapper.xml

@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.business.humanResources.mapper.StaffDimissionMapper">
+
+    <select id="findPageList" resultType="com.jeeplus.business.humanResources.service.dto.StaffDimissionDTO">
+        select
+            a.id,
+            a.create_by_id,
+            a.create_time,
+            a.reason,
+            a.status,
+            a.dimission_date,
+            a.proc_ins_id,
+            a.process_definition_id,
+            su.name as createName,
+            so.name as officeName,
+            sh.id as heirId,
+            sh.status as heirStatus,
+            sh.proc_ins_id as procInsIdHeir,
+            sh.process_definition_id as procsDefIdHeir,
+            art2.ID_ as taskIdHeir,
+            art1.ID_ as task_id
+        from
+            staff_dimission a
+        left join sys_user su on a.create_by_id = su.id and su.del_flag = '0'
+        left join sys_office so on su.office_id = so.id and so.del_flag = '0'
+        LEFT JOIN act_ru_task art1 ON a.proc_ins_id = art1.PROC_INST_ID_
+        left join staff_heir sh on a.id = sh.dimission_id and sh.del_flag = '0'
+        LEFT JOIN act_ru_task art2 ON sh.proc_ins_id = art2.PROC_INST_ID_
+         ${ew.customSqlSegment}
+        ORDER BY a.update_time DESC
+    </select>
+
+    <select id="findById" resultType="com.jeeplus.business.humanResources.service.dto.StaffDimissionDTO">
+        select
+            a.id,
+            a.create_by_id,
+            a.create_time,
+            a.reason,
+            a.status,
+            a.proc_ins_id,
+            a.process_definition_id,
+            a.dimission_date,
+            su.name as createName,
+            so.name as officeName,
+            art1.ID_ as task_id
+        from
+            staff_dimission a
+        left join sys_user su on a.create_by_id = su.id and su.del_flag = '0'
+        left join sys_office so on su.office_id = so.id and so.del_flag = '0'
+        LEFT JOIN act_ru_task art1 ON a.proc_ins_id = art1.PROC_INST_ID_
+        where a.id=#{id}
+    </select>
+
+    <update id="updateStatusById">
+        update staff_dimission set status = #{status} where id=#{id}
+    </update>
+
+
+</mapper>

+ 27 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/xml/StaffHeirMapper.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.business.humanResources.mapper.StaffHeirMapper">
+    <update id="updateHeirStatusById">
+        update staff_heir set status = #{status} where id=#{id}
+    </update>
+
+    <select id="findHeirById" resultType="com.jeeplus.business.humanResources.service.dto.StaffHeirDTO">
+        select
+            a.id,
+            a.create_by_id,
+            a.create_time,
+            a.heir,
+            a.status,
+            a.proc_ins_id,
+            a.process_definition_id,
+            su.name as createName,
+            so.name as officeName
+        from
+            staff_heir a
+        left join sys_user su on a.create_by_id = su.id and su.del_flag = '0'
+        left join sys_office so on su.office_id = so.id and so.del_flag = '0'
+        where a.id=#{id}
+    </select>
+</mapper>

+ 132 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/xml/StaffUserInfoMapper.xml

@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.business.humanResources.mapper.StaffUserInfoMapper">
+
+    <select id="findPageList" resultType="com.jeeplus.business.humanResources.service.dto.StaffUserInfoDTO">
+        select
+            a.id,
+            a.create_by_id,
+            a.create_time,
+            a.name,
+            a.sex,
+            a.age,
+            a.birthday,
+            a.political_outlook,
+            a.native_place,
+            a.nation,
+            a.marital_status,
+            a.mobile_phone,
+            a.id_card,
+            a.home_address,
+            a.permanent_address,
+            a.graduated_from,
+            a.speciality,
+            a.start_time,
+            a.end_time,
+            a.education,
+            a.education_nature,
+            a.graduated_or_not,
+            a.english_level,
+            a.ncre,
+            a.department,
+            a.in_time,
+            a.proc_ins_id,
+            a.process_definition_id,
+            a.user_id,
+            a.on_job_status,
+            a.role_id,
+            a.post_id,
+            a.bank_number,
+            a.email,
+            a.type,
+            a.fund_number,
+            a.manager_office,
+            so.name as officeName,
+            su.name as createName,
+            su.login_flag,
+            (select group_concat(name) from sys_role sr where FIND_IN_SET(sr.id,(select role_id from staff_user_info where id=a.id))) as roleName,
+            art1.ID_ as task_id
+        from staff_user_info a
+        left join sys_user su on a.create_by_id = su.id and su.del_flag = '0'
+        left join sys_office so on su.office_id = so.id and so.del_flag = '0'
+        LEFT JOIN act_ru_task art1 ON a.proc_ins_id = art1.PROC_INST_ID_
+         ${ew.customSqlSegment}
+        ORDER BY a.update_time DESC
+    </select>
+
+    <select id="findById" resultType="com.jeeplus.business.humanResources.service.dto.StaffUserInfoDTO">
+        select
+            a.id,
+            a.create_by_id,
+            a.create_time,
+            a.name,
+            a.sex,
+            a.age,
+            a.birthday,
+            a.political_outlook,
+            a.native_place,
+            a.nation,
+            a.marital_status,
+            a.mobile_phone,
+            a.id_card,
+            a.home_address,
+            a.permanent_address,
+            a.graduated_from,
+            a.speciality,
+            a.start_time,
+            a.end_time,
+            a.education,
+            a.education_nature,
+            a.graduated_or_not,
+            a.english_level,
+            a.ncre,
+            a.department,
+            a.in_time,
+            a.proc_ins_id,
+            a.process_definition_id,
+            a.user_id,
+            a.on_job_status,
+            a.role_id,
+            a.post_id,
+            a.bank_number,
+            a.email,
+            a.type,
+            a.fund_number,
+            a.manager_office,
+            so.name as officeName,
+            su.name as createName,
+            su.login_flag,
+            art1.ID_ as task_id
+        from staff_user_info a
+        left join sys_user su on a.create_by_id = su.id and su.del_flag = '0'
+        left join sys_office so on su.office_id = so.id and so.del_flag = '0'
+        LEFT JOIN act_ru_task art1 ON a.proc_ins_id = art1.PROC_INST_ID_
+        where a.id=#{id}
+    </select>
+
+    <select id="findDtos" resultType="com.jeeplus.sys.domain.WorkAttachmentInfo">
+		SELECT
+			id,
+			url,
+			attachment_name AS `name`,
+			create_by_id AS `by`,
+			create_time,
+			attachment_flag
+		FROM
+			work_attachment
+		WHERE
+			del_flag = 0
+			AND attachment_id = #{id}
+			and attachment_flag = #{attachmentFlag}
+	</select>
+
+    <update id="updatestatusById">
+        update staff_user_info set type = #{type} where id=#{id}
+    </update>
+
+
+
+
+</mapper>

+ 342 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/StaffDimissionService.java

@@ -0,0 +1,342 @@
+package com.jeeplus.business.humanResources.service;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.business.goOut.mapper.GoOutMapper;
+import com.jeeplus.business.holiday.domain.Holiday;
+import com.jeeplus.business.humanResources.domain.JyDimissionProcess;
+import com.jeeplus.business.humanResources.domain.StaffDimission;
+import com.jeeplus.business.humanResources.domain.StaffHeir;
+import com.jeeplus.business.humanResources.mapper.JyDimissionProcessMapper;
+import com.jeeplus.business.humanResources.mapper.StaffDimissionMapper;
+import com.jeeplus.business.humanResources.mapper.StaffHeirMapper;
+import com.jeeplus.business.humanResources.service.dto.StaffDimissionDTO;
+import com.jeeplus.business.humanResources.service.dto.StaffHeirDTO;
+import com.jeeplus.business.monthly.domain.JyProcess;
+import com.jeeplus.business.project.domain.JyProjectMembers;
+import com.jeeplus.business.project.mapper.JyProjectMemberMapper;
+import com.jeeplus.business.project.service.JyProjectService;
+import com.jeeplus.business.project.service.dto.JyProjectDTO;
+import com.jeeplus.common.TokenProvider;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.sys.domain.WorkAttachmentInfo;
+import com.jeeplus.sys.feign.IUserApi;
+import com.jeeplus.sys.feign.IWorkAttachmentApi;
+import com.jeeplus.sys.service.dto.UserDTO;
+import com.jeeplus.utils.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+@Service
+public class StaffDimissionService {
+
+    @Resource
+    private StaffDimissionMapper staffDimissionMapper;
+
+    @Resource
+    private GoOutMapper goOutMapper;
+
+    @Resource
+    private StaffHeirMapper staffHeirMapper;
+
+    @Resource
+    private JyProjectService jyProjectService;
+
+    @Resource
+    private JyProjectMemberMapper jyProjectMemberMapper;
+
+    @Resource
+    private JyDimissionProcessMapper jyDimissionProcessMapper;
+
+    /**
+     * 列表展示
+     * @param dimissionDTO
+     * @param page
+     * @return
+     */
+    public IPage<StaffDimissionDTO> findPageList(StaffDimissionDTO dimissionDTO, Page<StaffDimissionDTO> page) throws Exception {
+        QueryWrapper<StaffDimissionDTO> queryWrapper = QueryWrapperGenerator.buildQueryCondition(dimissionDTO, StaffDimissionDTO.class);
+        queryWrapper.eq("a.del_flag",0);
+        if (StringUtils.isNotBlank(dimissionDTO.getCreateById())){
+            queryWrapper.eq("a.create_by_id",dimissionDTO.getCreateById());
+        }
+        if (StringUtils.isNotBlank(dimissionDTO.getOfficeId())){
+            queryWrapper.eq("so.id",dimissionDTO.getOfficeId());
+        }
+        //离职时间
+        if (dimissionDTO.getDates() != null && dimissionDTO.getDates().length>0){
+            queryWrapper.between("a.dimission_date",dimissionDTO.getDates()[0],dimissionDTO.getDates()[1]);
+        }
+
+        IPage<StaffDimissionDTO> list=staffDimissionMapper.findPageList(queryWrapper,page);
+        return list;
+
+
+    }
+
+    /**
+     * 根据id进行查询
+     * @param id
+     * @return
+     */
+    public StaffDimissionDTO findById(String id) {
+        StaffDimissionDTO dimissionDTO=staffDimissionMapper.findById(id);
+        // 查询附件信息
+        List<WorkAttachmentInfo> files = goOutMapper.findDtos(id);
+        if (CollectionUtils.isNotEmpty(files)) {
+            for (WorkAttachmentInfo i : files) {
+                i.setCreateBy(SpringUtil.getBean ( IUserApi.class ).getById(i.getBy()));
+            }
+            dimissionDTO.setFiles(files);
+        }
+        return dimissionDTO;
+    }
+
+    /**
+     * 新增或修改
+     * @param dimissionDTO
+     * @return
+     */
+    public String save(StaffDimissionDTO dimissionDTO) {
+        String id="";
+        StaffDimission staffDimission = new StaffDimission();
+        BeanUtils.copyProperties(dimissionDTO,staffDimission);
+        if (StringUtils.isNotBlank(dimissionDTO.getId())){
+            id=dimissionDTO.getId();
+            staffDimissionMapper.updateById(staffDimission);
+        }else {
+            //获取id
+            id = UUID.randomUUID().toString().replace("-", "");
+            staffDimission.setId(id);
+            staffDimissionMapper.insert(staffDimission);
+            //获取当前登录人信息
+            UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
+            //创建交接人信息
+            StaffHeir staffHeir = new StaffHeir();
+            String heirId = UUID.randomUUID().toString().replace("-", "");
+            staffHeir.setId(heirId);
+            staffHeir.setCreateById(userDTO.getId());
+            staffHeir.setCreateTime(new Date());
+            staffHeir.setUpdateById(userDTO.getId());
+            staffHeir.setUpdateTime(new Date());
+            staffHeir.setStatus("0");
+            staffHeir.setDimissionId(id);
+            staffHeirMapper.insert(staffHeir);
+        }
+
+        //保存附件信息
+        if (ObjectUtils.isNotEmpty(dimissionDTO)){
+            Map<String,String> map = new HashMap<>();
+            String fileList = JSON.toJSONString((dimissionDTO.getFiles()));
+            String attachmentId = id;
+            String attachmentFlag = "dimission";
+            map.put("fileList",fileList);
+            map.put("attachmentId",attachmentId);
+            map.put("attachmentFlag",attachmentFlag);
+            map.put("currentToken", TokenProvider.getCurrentToken ( ));
+            SpringUtil.getBean ( IWorkAttachmentApi.class ).saveOrUpdateFileListFlag(map);
+        }
+        return id;
+    }
+
+    /**
+     * 根据id修改状态
+     * @param dimissionDTO
+     */
+    public void updateStatusById(StaffDimissionDTO dimissionDTO) {
+        staffDimissionMapper.updateStatusById(dimissionDTO.getStatus(),dimissionDTO.getId());
+    }
+
+    /**
+     * 根据id进行删除
+     * @param id
+     * @return
+     */
+    public String deleteById(String id) {
+        staffDimissionMapper.deleteById(id);
+        return "操作成功";
+    }
+
+    /**
+     * 新增或修改   交接申请
+     * @param staffHeirDTO
+     * @return
+     */
+    public String saveHeir(StaffHeirDTO staffHeirDTO) {
+        String id = "";
+        StaffHeir staffHeir = new StaffHeir();
+        BeanUtils.copyProperties(staffHeirDTO,staffHeir);
+
+        if (StringUtils.isNotBlank(staffHeirDTO.getId())){
+            id=staffHeirDTO.getId();
+            staffHeirMapper.updateById(staffHeir);
+        }else {
+            //获取id
+            id = UUID.randomUUID().toString().replace("-", "");
+            staffHeir.setId(id);
+            staffHeirMapper.insert(staffHeir);
+        }
+        return id;
+    }
+
+    /**
+     * 修改交接状态
+     * @param staffHeirDTO
+     */
+    public void updateHeirStatusById(StaffHeirDTO staffHeirDTO) {
+        staffHeirMapper.updateHeirStatusById(staffHeirDTO.getStatus(),staffHeirDTO.getId());
+        //获取当前登录人信息
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
+        //当人事审核同意后,将当前登录人所有未完成的项目中的项目组成员替换为交接人
+        if (staffHeirDTO.getStatus().equals("5")){
+            //获取离职人未归档的项目
+            List<JyProjectDTO> projectDTOS = jyProjectService.getByIdNoArchive(staffHeirDTO.getCreateById());
+            //根据项目查找项目组成员
+            if (ObjectUtils.isNotEmpty(projectDTOS)){
+                for (JyProjectDTO projectDTO : projectDTOS) {
+                    //获取项目组成员中的数据
+                    LambdaQueryWrapper<JyProjectMembers> queryWrapper = new LambdaQueryWrapper<>();
+                    queryWrapper.eq(JyProjectMembers::getProjectId,projectDTO.getId());
+                    queryWrapper.eq(JyProjectMembers::getDelFlag, 0);
+                    queryWrapper.orderByDesc(JyProjectMembers::getCreateTime);
+                    List<JyProjectMembers> jyProjectMembers = jyProjectMemberMapper.selectList(queryWrapper);
+                    for (JyProjectMembers jyProjectMember : jyProjectMembers) {
+                        //判断交接人是否在当前项目组成员中
+                        if (staffHeirDTO.getHeir().equals(jyProjectMember.getUserId())){
+                            continue;
+                        }else if (staffHeirDTO.getCreateById().equals(jyProjectMember.getUserId())){
+                            //将项目组成员中的该条数据进行逻辑删除
+                            jyProjectMemberMapper.deleteById(jyProjectMember.getId());
+                            //在项目组成员中将离职人替换为交接人
+                            JyProjectMembers projectMembers = new JyProjectMembers();
+                            String memberId = UUID.randomUUID().toString().replace("-", "");
+                            projectMembers.setId(memberId);
+                            projectMembers.setCreateById(userDTO.getId());
+                            projectMembers.setCreateTime(new Date());
+                            projectMembers.setUpdateById(userDTO.getId());
+                            projectMembers.setUpdateTime(new Date());
+                            projectMembers.setProjectId(projectDTO.getId());
+                            projectMembers.setUserId(staffHeirDTO.getHeir());
+                            projectMembers.setStatus("0");
+                            jyProjectMemberMapper.insert(projectMembers);
+                        }
+                    }
+                }
+            }
+
+            //冻结离职人员信息
+            UserDTO dto = SpringUtil.getBean(IUserApi.class).getById(staffHeirDTO.getCreateById());
+            dto.setLoginFlag("0");
+            SpringUtil.getBean(IUserApi.class).updateUser(dto);
+        }
+
+    }
+
+    /**
+     * 根据id查询交接信息
+     * @param id
+     * @return
+     */
+    public StaffHeirDTO findHeirById(String id) {
+        StaffHeirDTO staffHeirDTO=staffHeirMapper.findHeirById(id);
+        //根据离职id查询离职项目进度
+        List<JyDimissionProcess> dimissionProcesses = jyDimissionProcessMapper.findByDimissionId(id);
+        if (ObjectUtils.isNotEmpty(dimissionProcesses)){
+            staffHeirDTO.setProcessList(dimissionProcesses);
+        }else {
+            //获取当前登录人信息
+            UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
+            //获取当前登陆人未归档的项目信息
+            List<JyProjectDTO> jyProjectDTO=jyProjectService.getByIdNoArchive(userDTO.getId());
+            List<JyProjectDTO> arrayList = new ArrayList<>();
+            if (ObjectUtils.isNotEmpty(jyProjectDTO)){
+                for (JyProjectDTO item : jyProjectDTO) {
+                    //项目进度信息
+                    if (!item.getFirstInstanceStatus().equals("5") && StringUtils.isNotBlank(item.getFirstInstanceStatus())){
+                        item.setProcess("登记完成");
+                        item.setProcessTime(item.getUpdateTime());
+                        continue;
+                    }else {
+                        item.setProcess("一级校审完成");
+                        item.setProcessTime(item.getAudit1UpdateTime());
+                    }
+                    if (!item.getSecondInstanceStatus().equals("5") && StringUtils.isNotBlank(item.getSecondInstanceStatus())){
+                        item.setProcess("一级校审完成");
+                        item.setProcessTime(item.getAudit1UpdateTime());
+                        continue;
+                    }else {
+                        item.setProcess("二级校审完成");
+                        item.setProcessTime(item.getAudit2UpdateTime());
+                    }
+                    if (!item.getThirdInstanceStatus().equals("5") && StringUtils.isNotBlank(item.getThirdInstanceStatus())){
+                        item.setProcess("二级校审完成");
+                        item.setProcessTime(item.getAudit2UpdateTime());
+                        continue;
+                    }else {
+                        item.setProcess("三级校审完成");
+                        item.setProcessTime(item.getAudit3UpdateTime());
+                    }
+                    if (StringUtils.isNotBlank(item.getReportStatus()) && !item.getReportStatus().equals("5")){
+                        item.setProcess("三级校审完成");
+                        item.setProcessTime(item.getAudit3UpdateTime());
+                        continue;
+                    }else {
+                        item.setProcess("报告签发完成");
+                        item.setProcessTime(item.getReportTime());
+                    }
+                    if (StringUtils.isNotBlank(item.getOutInstance()) && !item.getOutInstance().equals("5")){
+                        item.setProcess("报告签发完成");
+                        item.setProcessTime(item.getReportTime());
+                        continue;
+                    }else {
+                        item.setProcess("外审完成");
+                        item.setProcessTime(item.getOutTime());
+                    }
+                    if (StringUtils.isNotBlank(item.getReportsStatus()) && !item.getReportsStatus().equals("5")){
+                        item.setProcess("外审完成");
+                        item.setProcessTime(item.getOutTime());
+                        continue;
+                    }else {
+                        item.setProcess("报批签发完成");
+                        item.setProcessTime(item.getReportsTime());
+                    }
+                };
+                arrayList.addAll(jyProjectDTO);
+            }
+            List<JyDimissionProcess> jyProcessList = saveProcess(arrayList, id);
+            staffHeirDTO.setProcessList(jyProcessList);
+        }
+        return staffHeirDTO;
+    }
+
+    /**
+     * 往进度表中添加数据
+     */
+    public List<JyDimissionProcess> saveProcess(List<JyProjectDTO> projectDTOS,String dimissionId){
+        ArrayList<JyDimissionProcess> jyProcesses = new ArrayList<>();
+        projectDTOS.stream().forEach(item->{
+            JyDimissionProcess jyDimissionProcess = new JyDimissionProcess();
+            String id = UUID.randomUUID().toString().replace("-", "");
+            jyDimissionProcess.setId(id);
+            jyDimissionProcess.setOfficeName(item.getOfficeName());//部门
+            jyDimissionProcess.setProjectName(item.getName());//项目名称
+            jyDimissionProcess.setNo(item.getNo());//报告号
+            jyDimissionProcess.setProjectLeader(item.getProjectLeader());//项目负责人
+            jyDimissionProcess.setProcessTime(item.getProcessTime());//进度完成时间
+            jyDimissionProcess.setProcess(item.getProcess());//进度
+            jyDimissionProcess.setDimissionId(dimissionId);//月报id
+            jyDimissionProcessMapper.insert(jyDimissionProcess);
+            jyProcesses.add(jyDimissionProcess);
+        });
+        return jyProcesses;
+    }
+}

+ 280 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/StaffUserInfoService.java

@@ -0,0 +1,280 @@
+package com.jeeplus.business.humanResources.service;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.business.humanResources.domain.StaffUserInfo;
+import com.jeeplus.business.humanResources.mapper.StaffUserInfoMapper;
+import com.jeeplus.business.humanResources.service.dto.StaffUserInfoDTO;
+import com.jeeplus.common.TokenProvider;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.sys.domain.WorkAttachmentInfo;
+import com.jeeplus.sys.feign.IUserApi;
+import com.jeeplus.sys.feign.IWorkAttachmentApi;
+import com.jeeplus.sys.service.dto.UserDTO;
+import com.jeeplus.utils.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+@Service
+public class StaffUserInfoService {
+
+    @Resource
+    private StaffUserInfoMapper staffUserInfoMapper;
+
+    public IPage<StaffUserInfoDTO> findPageList(StaffUserInfoDTO userInfoDTO, Page<StaffUserInfoDTO> page) throws Exception {
+        QueryWrapper<StaffUserInfoDTO> queryWrapper = QueryWrapperGenerator.buildQueryCondition(userInfoDTO, StaffUserInfoDTO.class);
+        queryWrapper.eq("a.del_flag",0);
+        //姓名查询
+        if (StringUtils.isNotBlank(userInfoDTO.getName())){
+            queryWrapper.like("a.name",userInfoDTO.getName());
+        }
+        //手机号查询
+        if (StringUtils.isNotBlank(userInfoDTO.getMobilePhone())){
+            queryWrapper.like("a.mobile_phone",userInfoDTO.getMobilePhone());
+        }
+        //部门
+        if (StringUtils.isNotBlank(userInfoDTO.getOfficeId())){
+            queryWrapper.eq("so.id",userInfoDTO.getOfficeId());
+        }
+        //员工类型
+        if (StringUtils.isNotBlank(userInfoDTO.getOnJobStatus())){
+            queryWrapper.eq("a.on_job_status",userInfoDTO.getOnJobStatus());
+        }
+        //员工状态
+        if (StringUtils.isNotBlank(userInfoDTO.getLoginFlag())){
+            queryWrapper.eq("su.login_flag",userInfoDTO.getLoginFlag());
+        }
+        //创建人
+        if (StringUtils.isNotBlank(userInfoDTO.getCreateById())){
+            queryWrapper.eq("a.create_by_id",userInfoDTO.getCreateById());
+        }
+        //创建时间
+        if (userInfoDTO.getCreateDates() != null && userInfoDTO.getCreateDates().length>0){
+            queryWrapper.between("a.create_time",userInfoDTO.getCreateDates()[0],userInfoDTO.getCreateDates()[1]);
+        }
+        IPage<StaffUserInfoDTO> dtoList=staffUserInfoMapper.findPageList(queryWrapper,page);
+        return dtoList;
+    }
+
+    /**
+     * 根据id进行查询
+     * @param id
+     * @return
+     */
+    public StaffUserInfoDTO findById(String id) {
+        StaffUserInfoDTO staffUserInfoDTO=staffUserInfoMapper.findById(id);
+        if (ObjectUtils.isNotEmpty(staffUserInfoDTO)){
+         //将角色放入集合中
+            if (StringUtils.isNotBlank(staffUserInfoDTO.getRoleId())){
+                List<String> roles = new ArrayList<>();
+                String[] split = staffUserInfoDTO.getRoleId().split(",");
+                for (String s : split) {
+                    if (StringUtils.isNotBlank(s)){
+                        roles.add(s);
+                    }
+                }
+                staffUserInfoDTO.setRoleIdList(roles);
+            }
+           if (StringUtils.isNotBlank(staffUserInfoDTO.getPostId())){
+               //将岗位放入集合中
+               ArrayList<String> posts = new ArrayList<>();
+               String[] split1 = staffUserInfoDTO.getPostId().split(",");
+               for (String s : split1) {
+                   if (StringUtils.isNotBlank(s)){
+                       posts.add(s);
+                   }
+               }
+               staffUserInfoDTO.setPostIdList(posts);
+           }
+
+        }
+        //查询附件
+        List<WorkAttachmentInfo> files = staffUserInfoMapper.findDtos(id,"humanResources");
+        if (CollectionUtils.isNotEmpty(files)) {
+            for (WorkAttachmentInfo i : files) {
+                i.setCreateBy(SpringUtil.getBean ( IUserApi.class ).getById(i.getBy()));
+            }
+            staffUserInfoDTO.setFiles(files);
+        }
+        //查询承诺书
+        List<WorkAttachmentInfo> commitment = staffUserInfoMapper.findDtos(id,"commitment");
+        if (CollectionUtils.isNotEmpty(commitment)) {
+            for (WorkAttachmentInfo i : commitment) {
+                i.setCreateBy(SpringUtil.getBean ( IUserApi.class ).getById(i.getBy()));
+            }
+            staffUserInfoDTO.setCommitment(commitment);
+        }
+        //查询申请表
+        List<WorkAttachmentInfo> applys = staffUserInfoMapper.findDtos(id,"applys");
+        if (CollectionUtils.isNotEmpty(applys)) {
+            for (WorkAttachmentInfo i : applys) {
+                i.setCreateBy(SpringUtil.getBean ( IUserApi.class ).getById(i.getBy()));
+            }
+            staffUserInfoDTO.setApplys(applys);
+        }
+        //查询学历证明
+        List<WorkAttachmentInfo> certificates = staffUserInfoMapper.findDtos(id,"certificates");
+        if (CollectionUtils.isNotEmpty(certificates)) {
+            for (WorkAttachmentInfo i : certificates) {
+                i.setCreateBy(SpringUtil.getBean ( IUserApi.class ).getById(i.getBy()));
+            }
+            staffUserInfoDTO.setCertificates(certificates);
+        }
+        //查询身份证
+        List<WorkAttachmentInfo> idCards = staffUserInfoMapper.findDtos(id,"idCards");
+        if (CollectionUtils.isNotEmpty(idCards)) {
+            for (WorkAttachmentInfo i : idCards) {
+                i.setCreateBy(SpringUtil.getBean ( IUserApi.class ).getById(i.getBy()));
+            }
+            staffUserInfoDTO.setIdCards(idCards);
+        }
+        //查询培训证书
+        List<WorkAttachmentInfo> trainings = staffUserInfoMapper.findDtos(id,"trainings");
+        if (CollectionUtils.isNotEmpty(trainings)) {
+            for (WorkAttachmentInfo i : trainings) {
+                i.setCreateBy(SpringUtil.getBean ( IUserApi.class ).getById(i.getBy()));
+            }
+            staffUserInfoDTO.setTrainings(trainings);
+        }
+        //查询职称
+        List<WorkAttachmentInfo> professional = staffUserInfoMapper.findDtos(id,"professional");
+        if (CollectionUtils.isNotEmpty(professional)) {
+            for (WorkAttachmentInfo i : professional) {
+                i.setCreateBy(SpringUtil.getBean ( IUserApi.class ).getById(i.getBy()));
+            }
+            staffUserInfoDTO.setProfessional(professional);
+        }
+        //查询离职证明
+        List<WorkAttachmentInfo> resignation = staffUserInfoMapper.findDtos(id,"resignation");
+        if (CollectionUtils.isNotEmpty(resignation)) {
+            for (WorkAttachmentInfo i : resignation) {
+                i.setCreateBy(SpringUtil.getBean ( IUserApi.class ).getById(i.getBy()));
+            }
+            staffUserInfoDTO.setResignation(resignation);
+        }
+        return staffUserInfoDTO;
+    }
+
+
+    /**
+     * 新增或修改
+     * @param staffUserInfoDTO
+     * @return
+     */
+    public String saveForm(StaffUserInfoDTO staffUserInfoDTO) {
+        String id="";
+        //获取当前登录人信息
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
+
+        StaffUserInfo staffUserInfo = new StaffUserInfo();
+        String roleId="";
+        //获取角色
+        if (ObjectUtils.isNotEmpty(staffUserInfoDTO.getRoleIdList())){
+            for (String role : staffUserInfoDTO.getRoleIdList()) {
+                roleId+=role+",";
+            }
+        }
+        //获取岗位
+        String postId="";
+        if (ObjectUtils.isNotEmpty(staffUserInfoDTO.getPostIdList())){
+            for (String post : staffUserInfoDTO.getPostIdList()) {
+                postId+=post+",";
+            }
+        }
+
+        BeanUtils.copyProperties(staffUserInfoDTO,staffUserInfo);
+        staffUserInfo.setPostId(postId);
+        staffUserInfo.setRoleId(roleId);
+        staffUserInfo.setUserId(userDTO.getId());
+        if (StringUtils.isNotBlank(staffUserInfoDTO.getId())){
+            id=staffUserInfoDTO.getId();
+            staffUserInfoMapper.updateById(staffUserInfo);
+        }else {
+            //获取id
+            id = UUID.randomUUID().toString().replace("-", "");
+            staffUserInfo.setId(id);
+            staffUserInfoMapper.insert(staffUserInfo);
+        }
+        if (ObjectUtils.isNotEmpty(staffUserInfoDTO)){
+            Map<String,String> map = new HashMap<>();
+            //承诺书
+            String fileList = JSON.toJSONString((staffUserInfoDTO.getCommitment()));
+            String attachmentId = id;
+            String attachmentFlag = "commitment";
+            map.put("fileList",fileList);
+            map.put("attachmentId",attachmentId);
+            map.put("attachmentFlag",attachmentFlag);
+            map.put("currentToken", TokenProvider.getCurrentToken ( ));
+            SpringUtil.getBean ( IWorkAttachmentApi.class ).saveOrUpdateFileListFlag(map);
+            //附件
+            fileList = JSON.toJSONString((staffUserInfoDTO.getFiles()));
+            attachmentFlag = "humanResources";
+            map.put("fileList",fileList);
+            map.put("attachmentFlag",attachmentFlag);
+            SpringUtil.getBean ( IWorkAttachmentApi.class ).saveOrUpdateFileListFlag(map);
+            //申请表
+            fileList = JSON.toJSONString((staffUserInfoDTO.getApplys()));
+            attachmentFlag = "applys";
+            map.put("fileList",fileList);
+            map.put("attachmentFlag",attachmentFlag);
+            SpringUtil.getBean ( IWorkAttachmentApi.class ).saveOrUpdateFileListFlag(map);
+            //学历证明
+            fileList = JSON.toJSONString((staffUserInfoDTO.getCertificates()));
+            attachmentFlag = "certificates";
+            map.put("fileList",fileList);
+            map.put("attachmentFlag",attachmentFlag);
+            SpringUtil.getBean ( IWorkAttachmentApi.class ).saveOrUpdateFileListFlag(map);
+            //学历证明
+            fileList = JSON.toJSONString((staffUserInfoDTO.getIdCards()));
+            attachmentFlag = "idCards";
+            map.put("fileList",fileList);
+            map.put("attachmentFlag",attachmentFlag);
+            SpringUtil.getBean ( IWorkAttachmentApi.class ).saveOrUpdateFileListFlag(map);
+            //培训证书
+            fileList = JSON.toJSONString((staffUserInfoDTO.getTrainings()));
+            attachmentFlag = "trainings";
+            map.put("fileList",fileList);
+            map.put("attachmentFlag",attachmentFlag);
+            SpringUtil.getBean ( IWorkAttachmentApi.class ).saveOrUpdateFileListFlag(map);
+            //职称
+            fileList = JSON.toJSONString((staffUserInfoDTO.getProfessional()));
+            attachmentFlag = "professional";
+            map.put("fileList",fileList);
+            map.put("attachmentFlag",attachmentFlag);
+            SpringUtil.getBean ( IWorkAttachmentApi.class ).saveOrUpdateFileListFlag(map);
+            //离职证明
+            fileList = JSON.toJSONString((staffUserInfoDTO.getResignation()));
+            attachmentFlag = "resignation";
+            map.put("fileList",fileList);
+            map.put("attachmentFlag",attachmentFlag);
+            SpringUtil.getBean ( IWorkAttachmentApi.class ).saveOrUpdateFileListFlag(map);
+        }
+        return id;
+    }
+
+    /**
+     * 根据id修改状态
+     * @param staffUserInfoDTO
+     */
+    public void updateStatusById(StaffUserInfoDTO staffUserInfoDTO) {
+        staffUserInfoMapper.updatestatusById(staffUserInfoDTO.getType(),staffUserInfoDTO.getId());
+    }
+
+    /**
+     * 根据id进行删除
+     * @param id
+     * @return
+     */
+    public String deleteById(String id) {
+        staffUserInfoMapper.deleteById(id);
+        return "操作成功";
+    }
+}

+ 51 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/dto/StaffDimissionDTO.java

@@ -0,0 +1,51 @@
+package com.jeeplus.business.humanResources.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.sys.domain.WorkAttachmentInfo;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 员工离职表
+ */
+@Data
+@TableName("staff_dimission")
+public class StaffDimissionDTO extends BaseEntity {
+
+    //离职原因
+    private String reason;
+
+    //离职日期
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date dimissionDate;
+
+    private String status;                //流程状态
+    private String procInsId;
+    private String processDefinitionId;
+
+    private String taskId;
+
+    private String officeName;
+
+    private List<WorkAttachmentInfo> files;
+
+    //离职日期
+    private String[] dates;
+
+    private String createName;
+
+    private String officeId;
+
+    //交接信息
+    private String heirStatus;
+    private String procInsIdHeir;
+    private String procsDefIdHeir;
+    private String taskIdHeir;
+    private String heirId;
+}

+ 32 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/dto/StaffHeirDTO.java

@@ -0,0 +1,32 @@
+package com.jeeplus.business.humanResources.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.business.humanResources.domain.JyDimissionProcess;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+import java.util.List;
+
+/*
+员工交接表
+ */
+@Data
+@TableName("staff_heir")
+public class StaffHeirDTO extends BaseEntity {
+
+    //交接人
+    private String heir;
+
+    private String status;                //流程状态
+    private String procInsId;
+    private String processDefinitionId;
+
+    private String taskId;
+
+    //离职id
+    private String dimissionId;
+
+    //项目进度信息
+    private List<JyDimissionProcess> processList;
+
+}

+ 99 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/dto/StaffUserInfoDTO.java

@@ -0,0 +1,99 @@
+package com.jeeplus.business.humanResources.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.domain.BaseEntity;
+
+import com.jeeplus.sys.domain.WorkAttachmentInfo;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+@TableName("staff_user_info")
+public class StaffUserInfoDTO extends BaseEntity {
+
+    /**
+     * 员工入职日期
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date inTime;
+
+    /**
+     * 用户id
+     */
+    private String userId;
+
+    private String name;                //姓名
+    private String sex;                 //性别
+    private String age;                 //年龄
+    private String birthday;            //出生日期
+    private String politicalOutlook;    //政治面貌
+    private String nativePlace;         //籍贯
+    private String nation;              //民族
+    private String maritalStatus;       //婚姻状况
+    private String mobilePhone;         //联系电话
+    private String idCard;              //身份证号码
+    private String homeAddress;         //家庭住址
+    private String permanentAddress;    //常住地址
+    private String graduatedFrom;       //毕业院校
+    private String speciality;          //专业
+    private String startTime;           //开始时间
+    private String endTime;             //毕业时间
+    private String education;           //学历
+    private String educationNature;     //学历性质
+    private String graduatedOrNot;      //是否毕业
+    private String englishLevel;        //英语等级
+    private String ncre;                //计算机等级
+    private String department;          //所属部门
+    private String remarks;             //备注
+    private String type;                //流程状态
+    private String procInsId;
+    private String processDefinitionId;
+    private String onJobStatus;       //在职状态
+    private String roleId;            //角色
+    private String postId;            //岗位
+    private String bankNumber;        //银行账号
+    private String email;               //邮箱
+    private String fundNumber;          //公积金账号
+    private String managerOffice;       //管理部门
+
+    private List<WorkAttachmentInfo> files; //附件
+    private List<WorkAttachmentInfo> commitment; //承诺书
+    private List<WorkAttachmentInfo> applys; //申请表
+    private List<WorkAttachmentInfo> certificates; //学历证明
+    private List<WorkAttachmentInfo> idCards; //身份证
+    private List<WorkAttachmentInfo> trainings; //培训证书
+    private List<WorkAttachmentInfo> professional; //职称
+    private List<WorkAttachmentInfo> resignation; //离职证明
+
+
+    //部门
+    private String officeId;
+    private String officeName;
+
+    private String createName;
+
+
+    //员工状态
+    private String loginFlag;
+
+    //创建时间
+    private String[] createDates;
+
+    //角色名称
+    private String roleName;
+
+    private List<String> roleIdList;
+    private List<String> postIdList;
+    private List<String> manageList;
+
+    private String taskId;
+
+
+
+
+}

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/inscription/mapper/InscriptionMapper.java

@@ -13,7 +13,7 @@ import org.apache.ibatis.annotations.Param;
 
 
 @Mapper
 @Mapper
 public interface InscriptionMapper extends BaseMapper<Inscription> {
 public interface InscriptionMapper extends BaseMapper<Inscription> {
-    @InterceptorIgnore(tenantLine = "true")
+
     IPage<InscriptionDTO> findPageList(@Param(Constants.WRAPPER) QueryWrapper<InscriptionDTO> queryWrapper, Page<InscriptionDTO> page);
     IPage<InscriptionDTO> findPageList(@Param(Constants.WRAPPER) QueryWrapper<InscriptionDTO> queryWrapper, Page<InscriptionDTO> page);
     @InterceptorIgnore(tenantLine = "true")
     @InterceptorIgnore(tenantLine = "true")
     InscriptionDTO findById(@Param("id") String id);
     InscriptionDTO findById(@Param("id") String id);

+ 2 - 2
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/mapper/MeetingRoomMapper.java

@@ -16,12 +16,12 @@ import java.util.List;
 
 
 @Mapper
 @Mapper
 public interface MeetingRoomMapper extends BaseMapper<MeetingRoom> {
 public interface MeetingRoomMapper extends BaseMapper<MeetingRoom> {
-    @InterceptorIgnore(tenantLine = "true")
+
     IPage<MeetingRoom> findPageList(Page<MeetingRoom> page, @Param(Constants.WRAPPER) QueryWrapper<MeetingRoom> meetingRoomQueryWrapper);
     IPage<MeetingRoom> findPageList(Page<MeetingRoom> page, @Param(Constants.WRAPPER) QueryWrapper<MeetingRoom> meetingRoomQueryWrapper);
 
 
     MeetingRoomDTO findById(@Param("id") String id);
     MeetingRoomDTO findById(@Param("id") String id);
 
 
     void updateStatusById(@Param("id")String id, @Param("status")String status);
     void updateStatusById(@Param("id")String id, @Param("status")String status);
 
 
-    MeetingRoom checkTime(@Param("date")Date date);
+    List<MeetingRoom> checkTime(@Param("date")Date date);
 }
 }

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/mapper/xml/MeetingRoomMapper.xml

@@ -82,7 +82,7 @@
         left join sys_office so on su.office_id = so.id
         left join sys_office so on su.office_id = so.id
         left join act_ru_task art ON a.proc_ins_id = art.PROC_INST_ID_
         left join act_ru_task art ON a.proc_ins_id = art.PROC_INST_ID_
         where (a.start_date=#{date}) and a.del_flag =0 and  a.`status` not in ('1', '3')
         where (a.start_date=#{date}) and a.del_flag =0 and  a.`status` not in ('1', '3')
-        order by a.end_time DESC limit 1
+        order by a.end_time DESC
     </select>
     </select>
 
 
 </mapper>
 </mapper>

+ 55 - 33
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/service/MeetingRoomService.java

@@ -149,11 +149,11 @@ public class MeetingRoomService {
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
         Date date = simpleDateFormat.parse(startDate);
         Date date = simpleDateFormat.parse(startDate);
 
 
-        MeetingRoom meetingRoom=meetingRoomMapper.checkTime(date);
+        List<MeetingRoom> meetingRooms=meetingRoomMapper.checkTime(date);
         ArrayList<Map<String, String>> strings = new ArrayList<>();
         ArrayList<Map<String, String>> strings = new ArrayList<>();
 
 
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
-        HashMap<String, String> hashMap = new HashMap<>();
+
 
 
         //限制会议选择的时间 并转为time类型
         //限制会议选择的时间 并转为time类型
         LocalTime time1 = LocalTime.of(9, 0, 0); // 9:00:00
         LocalTime time1 = LocalTime.of(9, 0, 0); // 9:00:00
@@ -169,42 +169,64 @@ public class MeetingRoomService {
         String date4 = time4.format(formatter);
         String date4 = time4.format(formatter);
         Time pm2 = Time.valueOf(date4);
         Time pm2 = Time.valueOf(date4);
 
 
-        if (ObjectUtil.isNotEmpty(meetingRoom)){
-            //判断会议结束后的半小时是否在规定范围内
-            LocalTime newEndTime = meetingRoom.getEndTime().toLocalTime().plus(30 * 60, ChronoUnit.SECONDS);
-            String format = newEndTime.format(formatter);
-            Time endTime = Time.valueOf(format);
-            if ((endTime.after(am1) && endTime.before(am2)) || (endTime.after(pm1) && endTime.before(pm2))){
-                //创建集合将获取到的开始时间存到集合中
-                LocalTime localTime = meetingRoom.getStartTime().toLocalTime();
-                hashMap.put("0", meetingRoom.getStartTime().toString());
-                //将开始时间之后的每半小时的时间存到map中
-                for (int i = 0; i < 48; i++) {
-                    int minute = localTime.getMinute();
-                    if (minute<30){
-                        localTime=localTime.withMinute(30);
-                    }else {
-                        localTime=localTime.withMinute(0).plusHours(1);
-                    }
-                    hashMap.put((i+1)+"", localTime.format(formatter));
-                    //当新时间与会议结束时间一致时,在延续半小时,循环结束
-                    Time time = Time.valueOf(localTime.format(formatter));
-                    if (time.equals(meetingRoom.getEndTime())) {
-                        int m=localTime.getMinute();
-                        if (m<30){
-                            localTime=localTime.withMinute(30);
-                        }else {
-                            localTime=localTime.withMinute(0).plusHours(1);
+        Map<String, String> mergedMap = new HashMap<>();
+
+        if (ObjectUtil.isNotEmpty(meetingRooms)){
+            List<Map<String, String>> meetingRoomMaps = new ArrayList<>();
+            for (MeetingRoom meetingRoom : meetingRooms) {
+                HashMap<String, String> hashMap = new HashMap<>();
+                //判断会议结束后的半小时是否在规定范围内
+                LocalTime newEndTime = meetingRoom.getEndTime().toLocalTime().plus(30 * 60, ChronoUnit.SECONDS);
+                String format = newEndTime.format(formatter);
+                Time endTime = Time.valueOf(format);
+                if ((endTime.after(am1) && endTime.before(am2)) || (endTime.after(pm1) && endTime.before(pm2))) {
+                    //创建集合将获取到的开始时间存到集合中
+                    LocalTime localTime = meetingRoom.getStartTime().toLocalTime();
+                    hashMap.put("0", meetingRoom.getStartTime().toString());
+                    //将开始时间之后的每半小时的时间存到map中
+                    for (int i = 0; i < 48; i++) {
+                        int minute = localTime.getMinute();
+                        if (minute < 30) {
+                            localTime = localTime.withMinute(30);
+                        } else {
+                            localTime = localTime.withMinute(0).plusHours(1);
+                        }
+                        hashMap.put((i + 1) + "", localTime.format(formatter));
+                        //当新时间与会议结束时间一致时,在延续半小时,循环结束
+                        Time time = Time.valueOf(localTime.format(formatter));
+                        if (time.equals(meetingRoom.getEndTime())) {
+                            int m = localTime.getMinute();
+                            if (m < 30) {
+                                localTime = localTime.withMinute(30);
+                            } else {
+                                localTime = localTime.withMinute(0).plusHours(1);
+                            }
+                            hashMap.put((i + 2) + "", localTime.format(formatter));
+                            break;
                         }
                         }
-                        hashMap.put((i+2)+"", localTime.format(formatter));
-                        break;
+                    }
+                }else {
+                    Map<String, String> emptyMap = new HashMap<>();
+                    return emptyMap;
+                }
+                meetingRoomMaps.add(hashMap); // 将当前会议的映射添加到列表中
+            }
+            //将找到的时间重新存入到新的map中
+            for (Map<String, String> map : meetingRoomMaps) {
+                for (Map.Entry<String, String> entry : map.entrySet()) {
+                    String key = entry.getKey();
+                    String value = entry.getValue();
+                    if (mergedMap.containsKey(key)) {
+                        int size = mergedMap.size();
+                        mergedMap.put((size+1)+"",value);
+                    } else {
+                        mergedMap.put(key, value);
                     }
                     }
                 }
                 }
-            }else {
-                return hashMap;
             }
             }
         }
         }
-        return hashMap;
+
+        return mergedMap;
     }
     }
 
 
     /**
     /**

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/monthly/controller/MonthlyController.java

@@ -36,7 +36,7 @@ public class MonthlyController {
     /**
     /**
      * 列表
      * 列表
      */
      */
-    @ApiOperation(value = "文印申请列表")
+    @ApiOperation(value = "列表")
     @GetMapping(value = "/findList")
     @GetMapping(value = "/findList")
     public ResponseEntity<IPage<MonthlyDTO>> applyList(MonthlyDTO monthlyDTO, Page<MonthlyDTO> page) throws Exception {
     public ResponseEntity<IPage<MonthlyDTO>> applyList(MonthlyDTO monthlyDTO, Page<MonthlyDTO> page) throws Exception {
         IPage<MonthlyDTO> pageList=monthlyService.findPageList(monthlyDTO,page);
         IPage<MonthlyDTO> pageList=monthlyService.findPageList(monthlyDTO,page);

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/monthly/mapper/MonthlyMapper.java

@@ -15,7 +15,7 @@ import java.util.List;
 
 
 @Mapper
 @Mapper
 public interface MonthlyMapper extends BaseMapper<Monthly> {
 public interface MonthlyMapper extends BaseMapper<Monthly> {
-    @InterceptorIgnore(tenantLine = "true")
+
     IPage<MonthlyDTO> findPageList(@Param(Constants.WRAPPER) QueryWrapper<MonthlyDTO> queryWrapper, Page<MonthlyDTO> page);
     IPage<MonthlyDTO> findPageList(@Param(Constants.WRAPPER) QueryWrapper<MonthlyDTO> queryWrapper, Page<MonthlyDTO> page);
     @InterceptorIgnore(tenantLine = "true")
     @InterceptorIgnore(tenantLine = "true")
     MonthlyDTO findById(@Param("id") String id);
     MonthlyDTO findById(@Param("id") String id);

+ 3 - 2
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/monthly/service/MonthlyService.java

@@ -116,9 +116,10 @@ public class MonthlyService {
             monthlyMapper.insert(monthly);
             monthlyMapper.insert(monthly);
 
 
             monthlyDTO.setId(mid);
             monthlyDTO.setId(mid);
-
+            //获取当前登录人信息
+            UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
             //获取当前登陆人未归档的项目信息
             //获取当前登陆人未归档的项目信息
-            List<JyProjectDTO> jyProjectDTO=jyProjectService.getByIdNoArchive();
+            List<JyProjectDTO> jyProjectDTO=jyProjectService.getByIdNoArchive(userDTO.getId());
             List<JyProjectDTO> arrayList = new ArrayList<>();
             List<JyProjectDTO> arrayList = new ArrayList<>();
             if (ObjectUtils.isNotEmpty(jyProjectDTO)){
             if (ObjectUtils.isNotEmpty(jyProjectDTO)){
                 for (JyProjectDTO item : jyProjectDTO) {
                 for (JyProjectDTO item : jyProjectDTO) {

+ 31 - 7
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/notify/controller/JyNotifyController.java

@@ -84,7 +84,7 @@ public class JyNotifyController {
     }
     }
 
 
     /**
     /**
-     * 查询数据
+     * 流程表单查询数据
      */
      */
     @GetMapping("queryById")
     @GetMapping("queryById")
     public ResponseEntity queryById(String id, boolean isSelf,String size) {
     public ResponseEntity queryById(String id, boolean isSelf,String size) {
@@ -93,15 +93,39 @@ public class JyNotifyController {
 
 
         }
         }
         JyNotifyDTO notifyDTO = notifyService.getDetail (id);
         JyNotifyDTO notifyDTO = notifyService.getDetail (id);
-        //获取日志信息
-        int pageSize = Integer.parseInt(size);
-        List<JyNotifyLog> byNotifyId = notifyService.findByNotifyId(pageSize, id);
-        Integer count=notifyService.findLogCount(id);
-        notifyDTO.setLogCount(count);
-        notifyDTO.setNotifyLogList(byNotifyId);
+        if (StringUtils.isNotBlank(size)){
+            //获取日志信息
+            int pageSize = Integer.parseInt(size);
+            List<JyNotifyLog> byNotifyId = notifyService.findByNotifyId(pageSize, id);
+            Integer count=notifyService.findLogCount(id);
+            notifyDTO.setLogCount(count);
+            notifyDTO.setNotifyLogList(byNotifyId);
+        }
+        return ResponseEntity.ok ( notifyDTO);
+    }
+
+    /**
+     * 弹框查询数据
+     */
+    @GetMapping("query")
+    public ResponseEntity query(String id, boolean isSelf,String size) {
+        if ( isSelf ) {
+            notifyService.updateReadFlag ( id );
+        }
+        JyNotifyDTO notifyDTO = notifyService.DiaQuery (id);
+        if (StringUtils.isNotBlank(size)){
+            //获取日志信息
+            int pageSize = Integer.parseInt(size);
+            List<JyNotifyLog> byNotifyId = notifyService.findByNotifyId(pageSize, id);
+            Integer count=notifyService.findLogCount(id);
+            notifyDTO.setLogCount(count);
+            notifyDTO.setNotifyLogList(byNotifyId);
+        }
         return ResponseEntity.ok ( notifyDTO);
         return ResponseEntity.ok ( notifyDTO);
     }
     }
 
 
+
+
     @PostMapping("pushNotifyRecord")
     @PostMapping("pushNotifyRecord")
     public ResponseEntity pushNotifyRecord(String id) {
     public ResponseEntity pushNotifyRecord(String id) {
         String s = notifyService.pushNotifyRecord(id);
         String s = notifyService.pushNotifyRecord(id);

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/notify/mapper/xml/NotifyMapper.xml

@@ -219,7 +219,7 @@
         </if>
         </if>
         ${ew.customSqlSegment}
         ${ew.customSqlSegment}
         <if test="isSelf">
         <if test="isSelf">
-            and ((a.notify_type = 0 and NOW() >= a.begin_date and NOW() &lt;= a.end_date) or a.notify_type = 1)
+            and (a.notify_type = 0 or a.notify_type = 1)
         </if>
         </if>
         order by a.create_time desc
         order by a.create_time desc
     </select>
     </select>

+ 69 - 3
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/notify/service/JyNotifyService.java

@@ -77,6 +77,10 @@ public class JyNotifyService extends ServiceImpl <JyNotifyMapper, JyNotify> {
 
 
     @Autowired
     @Autowired
     private JyNotifyLogMapper jyNotifyLogMapper;
     private JyNotifyLogMapper jyNotifyLogMapper;
+
+    @Resource
+    private JyNotifyRecordMapper jyNotifyRecordMapper;
+
     /**
     /**
      * 根据id获取通知
      * 根据id获取通知
      */
      */
@@ -117,6 +121,51 @@ public class JyNotifyService extends ServiceImpl <JyNotifyMapper, JyNotify> {
     public JyNotifyDTO getDetail(String id) {
     public JyNotifyDTO getDetail(String id) {
         JyNotifyDTO notifyDTO = notifyMapper.getById ( id );
         JyNotifyDTO notifyDTO = notifyMapper.getById ( id );
         if (ObjectUtil.isNotEmpty(notifyDTO)) {
         if (ObjectUtil.isNotEmpty(notifyDTO)) {
+//            this.saveLog(notifyDTO);
+            List notifyRecordList = notifyRecordService.findListByNotifyId ( id );
+            if (CollectionUtil.isNotEmpty(notifyRecordList)) {
+                notifyDTO.setNotifyRecordDTOList ( notifyRecordList );
+            }
+            // 1. 将富文本中的临时图片地址更换为新的
+            // 2. 获取富文本中的图片信息
+            if(StringUtils.isNotBlank(notifyDTO.getContent())){
+                String newContent = editorFilesService.getNewContent(notifyDTO.getContent(), id);
+                notifyMapper.updateContentById(newContent,id);
+                notifyDTO.setContent(newContent);
+                List<EditorFiles> list = editorFilesService.list(new QueryWrapper<EditorFiles>().lambda().eq(EditorFiles::getSourceId, id));
+                List<EditorFilesDTO> editorFilesDTOList = new ArrayList<>();
+                list.stream().forEach(item->{
+                    EditorFilesDTO editorFilesDTO = new EditorFilesDTO();
+                    editorFilesDTO.setSourceId(item.getSourceId());
+                    editorFilesDTO.setTemporaryUrl(item.getTemporaryUrl());
+                    editorFilesDTO.setUrl(item.getUrl());
+                    editorFilesDTOList.add(editorFilesDTO);
+                });
+                notifyDTO.setEditorFilesDTOList(editorFilesDTOList);
+            }
+            //获取评论信息
+            List<PluginNotifyCommentsDTO> commentsDTOList=commentsMapper.findNotifyAll(id);
+            if (CollectionUtil.isNotEmpty(commentsDTOList)){
+                commentsDTOList.stream().forEach(item -> {
+                    item.setDeff(CommonUtils.timeDef(item.getCreateTime()));
+                });
+            }
+            notifyDTO.setComments(commentsDTOList);
+            return notifyDTO;
+        } else {
+            return new JyNotifyDTO();
+        }
+    }
+
+    /**
+     * 弹窗发送记录
+     *
+     * @param id
+     * @return
+     */
+    public JyNotifyDTO DiaQuery(String id) {
+        JyNotifyDTO notifyDTO = notifyMapper.getById ( id );
+        if (ObjectUtil.isNotEmpty(notifyDTO)) {
             this.saveLog(notifyDTO);
             this.saveLog(notifyDTO);
             List notifyRecordList = notifyRecordService.findListByNotifyId ( id );
             List notifyRecordList = notifyRecordService.findListByNotifyId ( id );
             if (CollectionUtil.isNotEmpty(notifyRecordList)) {
             if (CollectionUtil.isNotEmpty(notifyRecordList)) {
@@ -153,6 +202,10 @@ public class JyNotifyService extends ServiceImpl <JyNotifyMapper, JyNotify> {
         }
         }
     }
     }
 
 
+
+
+
+
     // 通知审核通过时,向通知接收人发送通知
     // 通知审核通过时,向通知接收人发送通知
     // 根据所选接收部门以及所选接收用户,获取通知的接收人
     // 根据所选接收部门以及所选接收用户,获取通知的接收人
     public String pushNotifyRecord(String id) {
     public String pushNotifyRecord(String id) {
@@ -305,9 +358,22 @@ public class JyNotifyService extends ServiceImpl <JyNotifyMapper, JyNotify> {
      * 更新阅读状态
      * 更新阅读状态
      */
      */
     public void updateReadFlag(String id) {
     public void updateReadFlag(String id) {
-        notifyRecordService.lambdaUpdate ( ).eq ( JyNotifyRecord::getNotifyId, id )
-                .eq ( JyNotifyRecord::getUserId, SpringUtil.getBean(IUserApi.class).getByToken(TokenProvider.getCurrentToken())).ne ( JyNotifyRecord::getReadFlag, CommonConstants.YES )
-                .set ( JyNotifyRecord::getReadDate, new Date ( ) ).set ( JyNotifyRecord::getReadFlag, CommonConstants.YES ).update ( );
+//        notifyRecordService.lambdaUpdate ( ).eq ( JyNotifyRecord::getNotifyId, id )
+//                .eq ( JyNotifyRecord::getUserId, SpringUtil.getBean(IUserApi.class).getByToken(TokenProvider.getCurrentToken())).ne ( JyNotifyRecord::getReadFlag, CommonConstants.YES )
+//                .set ( JyNotifyRecord::getReadDate, new Date ( ) ).set ( JyNotifyRecord::getReadFlag, CommonConstants.YES ).update ( );
+    //获取当前登录人信息
+        UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getByToken(TokenProvider.getCurrentToken());
+        //根据公告id和用户id在公告通知中找到当前数据
+        QueryWrapper<JyNotifyRecord> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("notify_id",id);
+        queryWrapper.eq("user_id",userDTO.getId());
+        JyNotifyRecord notifyRecord = jyNotifyRecordMapper.selectOne(queryWrapper);
+        //修改阅读状态
+        JyNotifyRecord jyNotifyRecord = new JyNotifyRecord();
+        jyNotifyRecord.setId(notifyRecord.getId());
+        jyNotifyRecord.setReadFlag("1");
+        jyNotifyRecord.setReadDate(new Date());
+        jyNotifyRecordMapper.updateById(jyNotifyRecord);
     }
     }
 
 
     public String addComment(PluginNotifyComments comment) {
     public String addComment(PluginNotifyComments comment) {

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/payment/mapper/PaymentMapper.java

@@ -14,7 +14,7 @@ import org.apache.ibatis.annotations.Param;
 
 
 @Mapper
 @Mapper
 public interface PaymentMapper extends BaseMapper<Payment> {
 public interface PaymentMapper extends BaseMapper<Payment> {
-    @InterceptorIgnore(tenantLine = "true")
+
     IPage<PaymentDTO> findPageList(@Param(Constants.WRAPPER) QueryWrapper<PaymentDTO> queryWrapper, Page<PaymentDTO> page);
     IPage<PaymentDTO> findPageList(@Param(Constants.WRAPPER) QueryWrapper<PaymentDTO> queryWrapper, Page<PaymentDTO> page);
     @InterceptorIgnore(tenantLine = "true")
     @InterceptorIgnore(tenantLine = "true")
     PaymentDTO findById(@Param("id") String id);
     PaymentDTO findById(@Param("id") String id);

+ 1 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/payment/mapper/xml/PaymentMapper.xml

@@ -31,6 +31,7 @@
         from jy_payment a
         from jy_payment a
         left join sys_user su on a.payment_user = su.id and su.del_flag = '0'
         left join sys_user su on a.payment_user = su.id and su.del_flag = '0'
         left join sys_office so on su.office_id = so.id and so.del_flag = '0'
         left join sys_office so on su.office_id = so.id and so.del_flag = '0'
+        left join sys_user_manage_office sumo on sumo.office_id = su.office_id
         LEFT JOIN act_ru_task art1 ON a.proc_ins_id = art1.PROC_INST_ID_
         LEFT JOIN act_ru_task art1 ON a.proc_ins_id = art1.PROC_INST_ID_
         ${ew.customSqlSegment}
         ${ew.customSqlSegment}
         ORDER BY a.update_time DESC
         ORDER BY a.update_time DESC

+ 5 - 8
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/program/configuration/projectDict/service/ProjectDictService.java

@@ -189,8 +189,8 @@ public class ProjectDictService {
         String stage="";
         String stage="";
         //获取当前项目处于哪个阶段
         //获取当前项目处于哪个阶段
         JyProject jyProject = jyProjectMapper.getById(id);
         JyProject jyProject = jyProjectMapper.getById(id);
-        //获取当前节点审核人
-        List<String> users = SpringUtil.getBean(IFlowableApi.class).getTaskAuditUsers(jyProject.getTaskIdEia());
+        //获取当前节点名称
+        String currentTaskName = SpringUtil.getBean(IFlowableApi.class).getCurrentTaskName(jyProject.getProcInsIdEia());
 
 
         if (StringUtils.isNotBlank(jyProject.getOutInstanceId()) || StringUtils.isNotBlank(jyProject.getArchiveId()) || StringUtils.isNotBlank(jyProject.getEiaId())){
         if (StringUtils.isNotBlank(jyProject.getOutInstanceId()) || StringUtils.isNotBlank(jyProject.getArchiveId()) || StringUtils.isNotBlank(jyProject.getEiaId())){
             //设置必填项
             //设置必填项
@@ -201,12 +201,9 @@ public class ProjectDictService {
             //如果是环评项目,则需要在设置审核阶段的必填项
             //如果是环评项目,则需要在设置审核阶段的必填项
             if (jyProject.getEiaId().equals(projectId)){
             if (jyProject.getEiaId().equals(projectId)){
                 stage="1";
                 stage="1";
-                //判断当前登录人是否是节点审核人
-                if (ObjectUtil.isNotEmpty(users)){
-                    for (String user : users) {
-                        if (user.equals(userDTO.getId())){
-                            stage= "4";
-                        }
+                if (StringUtils.isNotBlank(currentTaskName)){
+                    if (currentTaskName.equals("办公室审批")){
+                        stage= "4";
                     }
                     }
                 }
                 }
 
 

+ 17 - 2
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/controller/JyProjectController.java

@@ -23,6 +23,7 @@ import com.jeeplus.business.workContractInfo.service.dto.JyWorkContractInfoDto;
 
 
 import com.jeeplus.common.utils.ResponseUtil;
 import com.jeeplus.common.utils.ResponseUtil;
 import com.jeeplus.logging.annotation.ApiLog;
 import com.jeeplus.logging.annotation.ApiLog;
+import com.jeeplus.logging.constant.enums.LogTypeEnum;
 import com.jeeplus.utils.StringUtils;
 import com.jeeplus.utils.StringUtils;
 import freemarker.template.Configuration;
 import freemarker.template.Configuration;
 import freemarker.template.Template;
 import freemarker.template.Template;
@@ -35,6 +36,7 @@ import org.springframework.web.bind.annotation.*;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
 import java.io.File;
 import java.io.File;
 import java.io.IOException;
 import java.io.IOException;
 import java.util.List;
 import java.util.List;
@@ -95,8 +97,8 @@ public class JyProjectController {
     @ApiOperation(value = "流程保存")
     @ApiOperation(value = "流程保存")
     @PostMapping(value = "/saveForm")
     @PostMapping(value = "/saveForm")
     public ResponseEntity saveForm(@RequestBody JyProjectDTO jyProjectDTO) throws Exception{
     public ResponseEntity saveForm(@RequestBody JyProjectDTO jyProjectDTO) throws Exception{
-        String id = jyProjectService.save(jyProjectDTO);
-        return ResponseUtil.newInstance().add("businessTable", "jy_project_record").add("businessId", id).ok ("操作成功");
+        JyProject jyProject = jyProjectService.save(jyProjectDTO);
+        return ResponseUtil.newInstance().add("businessTable", "jy_project_record").add("businessId", jyProject.getId()).add("no",jyProject.getNo()).ok ("操作成功");
     }
     }
 
 
     /**
     /**
@@ -486,6 +488,19 @@ public class JyProjectController {
     }
     }
 
 
 
 
+    /**
+     * 保存财务项目组成员信息
+     * @param jyProjectDTO
+     * @return
+     */
+    @ApiLog(value = "保存财务项目组成员信息", type = LogTypeEnum.SAVE)
+    @PreAuthorize("hasAnyAuthority('jy_project:info:add','jy_project:info:edit')")
+    @PostMapping("updateMembers")
+    public ResponseEntity updateMembers(@Valid @RequestBody JyProjectDTO jyProjectDTO) {
+        return jyProjectService.updateMembers(jyProjectDTO);
+    }
+
+
 
 
 
 
 
 

+ 4 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/domain/JyProject.java

@@ -321,8 +321,12 @@ JyProject extends BaseEntity implements Serializable {
     private String taskIdEia;
     private String taskIdEia;
 
 
     //合同编号
     //合同编号
+    @TableField(exist = false)
     private String contractNo;
     private String contractNo;
 
 
+    @TableField(exist = false)
+    private String memberCount;
+
 
 
 
 
 
 

+ 2 - 2
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/mapper/JyProjectMapper.java

@@ -18,7 +18,7 @@ import java.util.List;
 
 
 
 
 public interface JyProjectMapper extends BaseMapper<JyProject> {
 public interface JyProjectMapper extends BaseMapper<JyProject> {
-    @InterceptorIgnore(tenantLine = "true")
+
     IPage<JyProject> findPageList(Page<JyProject> page, @Param(Constants.WRAPPER) QueryWrapper<JyProject> wrapper);
     IPage<JyProject> findPageList(Page<JyProject> page, @Param(Constants.WRAPPER) QueryWrapper<JyProject> wrapper);
 
 
     List<String> getHaveProjectIds(@Param("currentUser")UserDTO userDTO);
     List<String> getHaveProjectIds(@Param("currentUser")UserDTO userDTO);
@@ -48,7 +48,7 @@ public interface JyProjectMapper extends BaseMapper<JyProject> {
     void updateReportsSubmit(@Param("id")String s, @Param("status")String status);
     void updateReportsSubmit(@Param("id")String s, @Param("status")String status);
     @InterceptorIgnore(tenantLine = "true")
     @InterceptorIgnore(tenantLine = "true")
     IPage<JyProject> getByCreateOffice(@Param("id")String id, Page<JyProject> page,  @Param(Constants.WRAPPER)QueryWrapper<JyProject> wrapper);
     IPage<JyProject> getByCreateOffice(@Param("id")String id, Page<JyProject> page,  @Param(Constants.WRAPPER)QueryWrapper<JyProject> wrapper);
-    @InterceptorIgnore(tenantLine = "true")
+
     List<JyProjectDTO> getByIdNoArchive(@Param("id")String id);
     List<JyProjectDTO> getByIdNoArchive(@Param("id")String id);
     @InterceptorIgnore(tenantLine = "true")
     @InterceptorIgnore(tenantLine = "true")
     List<JyProject> getListByIds(@Param("ids") List idList);
     List<JyProject> getListByIds(@Param("ids") List idList);

+ 20 - 6
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/mapper/xml/ProjectListMapper.xml

@@ -125,13 +125,13 @@
            peq.status as eiaStatus,
            peq.status as eiaStatus,
            peq.id as EiaId,
            peq.id as EiaId,
            peq.proc_ins_id as procInsIdEia,
            peq.proc_ins_id as procInsIdEia,
-           art6.ID_ as task_id_Eia
+           art6.ID_ as task_id_Eia,
+            bc.member_count
         FROM
         FROM
             jy_project_record a
             jy_project_record a
             LEFT JOIN sys_user b ON a.create_by_id = b.id
             LEFT JOIN sys_user b ON a.create_by_id = b.id
             LEFT JOIN sys_user c ON a.project_leader = c.id
             LEFT JOIN sys_user c ON a.project_leader = c.id
             LEFT JOIN jy_work_contract_info wci ON wci.id = a.contract_id and wci.del_flag = '0'
             LEFT JOIN jy_work_contract_info wci ON wci.id = a.contract_id and wci.del_flag = '0'
-            left join jy_project_members pm on a.id = pm.project_id
             LEFT JOIN act_ru_task art ON a.proc_ins_id = art.PROC_INST_ID_
             LEFT JOIN act_ru_task art ON a.proc_ins_id = art.PROC_INST_ID_
             left join jy_project_audit pa1 on pa1.project_id = a.id and pa1.audit_level = '1' and pa1.del_flag = '0'
             left join jy_project_audit pa1 on pa1.project_id = a.id and pa1.audit_level = '1' and pa1.del_flag = '0'
             LEFT JOIN jy_project_audit pa2 ON pa2.project_id = a.id and pa2.audit_level = '2' and pa2.del_flag = '0'
             LEFT JOIN jy_project_audit pa2 ON pa2.project_id = a.id and pa2.audit_level = '2' and pa2.del_flag = '0'
@@ -145,6 +145,14 @@
             LEFT JOIN act_ru_task art5 ON par.proc_ins_id = art5.PROC_INST_ID_
             LEFT JOIN act_ru_task art5 ON par.proc_ins_id = art5.PROC_INST_ID_
             left join jy_project_eia_qualification peq on a.id=peq.project_id
             left join jy_project_eia_qualification peq on a.id=peq.project_id
             LEFT JOIN act_ru_task art6 ON peq.proc_ins_id = art6.PROC_INST_ID_
             LEFT JOIN act_ru_task art6 ON peq.proc_ins_id = art6.PROC_INST_ID_
+            left join (select rec.id,count(cw_pm.id) as member_count
+                    from jy_project_record rec
+                    left join jy_project_members cw_pm on cw_pm.project_id = rec.id and cw_pm.del_flag = '0'
+                    group by rec.id
+                    ) bc on bc.id = a.id
+            left join jy_project_members pm on a.id = pm.project_id
+            left join sys_user sub on pm.user_id = sub.id
+            left join sys_user_manage_office sumo on sumo.office_id = sub.office_id
             ${ew.customSqlSegment}
             ${ew.customSqlSegment}
             ORDER BY a.create_time DESC
             ORDER BY a.create_time DESC
     </select>
     </select>
@@ -184,7 +192,7 @@
            art.ID_ as taskId,
            art.ID_ as taskId,
            wci.primary_linkman as primaryLinkman,
            wci.primary_linkman as primaryLinkman,
            wci.contract_amount,
            wci.contract_amount,
-           wci.contract_type,
+           (select group_concat(label) from sys_dict_value dv where FIND_IN_SET(dv.id,(select contract_type from jy_work_contract_info where id = a.contract_id))) as contractType,
            wci.no as contractNo,
            wci.no as contractNo,
            wci.name as contractName,
            wci.name as contractName,
            (SELECT dv.label FROM `sys_dict_value` dv
            (SELECT dv.label FROM `sys_dict_value` dv
@@ -456,9 +464,15 @@
 
 
     <select id="getHaveProjectIds" resultType="string">
     <select id="getHaveProjectIds" resultType="string">
         select
         select
-            pm.project_id
-        from jy_project_members pm
-        where pm.user_id = #{currentUser.id} and pm.del_flag = '0'
+            distinct id
+        from
+        (select jy_pm.project_id as id
+        from jy_project_members jy_pm
+        where jy_pm.user_id = #{currentUser.id} and jy_pm.del_flag = '0' and jy_pm.status = '0'
+        union
+        select jy_pr.id as id
+        from jy_project_record jy_pr
+        where jy_pr.create_by_id = #{currentUser.id} and jy_pr.del_flag = '0') a
     </select>
     </select>
 
 
     <select id="getListByidList" resultType="com.jeeplus.assess.program.configuration.projectList.domain.ProgramProjectListInfo">
     <select id="getListByidList" resultType="com.jeeplus.assess.program.configuration.projectList.domain.ProgramProjectListInfo">

+ 70 - 41
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/service/JyProjectService.java

@@ -12,10 +12,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jeeplus.business.project.domain.*;
 import com.jeeplus.business.project.domain.*;
 import com.jeeplus.business.project.mapper.*;
 import com.jeeplus.business.project.mapper.*;
 import com.jeeplus.business.project.service.dto.*;
 import com.jeeplus.business.project.service.dto.*;
-import com.jeeplus.business.project.service.mapstruct.JyProjectArchiveWrapper;
-import com.jeeplus.business.project.service.mapstruct.JyProjectAuditWrapper;
-import com.jeeplus.business.project.service.mapstruct.JyProjectEiaQualificationWrapper;
-import com.jeeplus.business.project.service.mapstruct.JyProjectOutInstanceWrapper;
+import com.jeeplus.business.project.service.mapstruct.*;
 import com.jeeplus.business.useSeal.domain.Signet;
 import com.jeeplus.business.useSeal.domain.Signet;
 import com.jeeplus.business.useSeal.mapper.SignetMapper;
 import com.jeeplus.business.useSeal.mapper.SignetMapper;
 import com.jeeplus.business.workClientInfo.domain.JyWorkClientInfo;
 import com.jeeplus.business.workClientInfo.domain.JyWorkClientInfo;
@@ -53,6 +50,7 @@ import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.regex.Matcher;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.regex.Pattern;
+import java.util.stream.Collectors;
 
 
 
 
 @Service
 @Service
@@ -77,8 +75,8 @@ public class JyProjectService {
     @Resource
     @Resource
     private JyWorkClientLinkmanMapper jyWorkClientLinkmanMapper;
     private JyWorkClientLinkmanMapper jyWorkClientLinkmanMapper;
 
 
-//    @Autowired
-//    private JyWorkContractService jyWorkContractService;
+    @Autowired
+    private JyProjectMembersService jyProjectMembersService;
 
 
 //    @Resource
 //    @Resource
 //    private DictValueMapper dictValueMapper;
 //    private DictValueMapper dictValueMapper;
@@ -265,7 +263,7 @@ public class JyProjectService {
      * @return
      * @return
      * @throws Exception
      * @throws Exception
      */
      */
-    public String save(JyProjectDTO  dto) throws Exception{
+    public JyProject save(JyProjectDTO  dto) throws Exception{
         if (StringUtils.isNotEmpty(dto.getId())) {
         if (StringUtils.isNotEmpty(dto.getId())) {
             return update(dto);
             return update(dto);
         }
         }
@@ -273,7 +271,7 @@ public class JyProjectService {
     }
     }
 
 
 
 
-    public String add(JyProjectDTO dto) throws Exception{
+    public JyProject add(JyProjectDTO dto) throws Exception{
         String currentToken = TokenProvider.getCurrentToken();
         String currentToken = TokenProvider.getCurrentToken();
         JyProject jyProject = new JyProject();
         JyProject jyProject = new JyProject();
         //获取当前登录人信息
         //获取当前登录人信息
@@ -382,10 +380,10 @@ public class JyProjectService {
         if (CollectionUtils.isNotEmpty(dto.getFiles())) {
         if (CollectionUtils.isNotEmpty(dto.getFiles())) {
             saveFiles(dto.getFiles(), userDTO, id);
             saveFiles(dto.getFiles(), userDTO, id);
         }
         }
-        return id;
+        return jyProject;
     }
     }
 
 
-    public String update(JyProjectDTO dto) throws Exception{
+    public JyProject update(JyProjectDTO dto) throws Exception{
         String currentToken = TokenProvider.getCurrentToken();
         String currentToken = TokenProvider.getCurrentToken();
         //获取当前登录人信息
         //获取当前登录人信息
         UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
         UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
@@ -475,7 +473,7 @@ public class JyProjectService {
         if (CollectionUtils.isNotEmpty(dto.getFiles())) {
         if (CollectionUtils.isNotEmpty(dto.getFiles())) {
             updateFiles(dto.getFiles(), userDTO, dto.getId());
             updateFiles(dto.getFiles(), userDTO, dto.getId());
         }
         }
-        return dto.getId();
+        return jyProject;
     }
     }
 
 
     /**
     /**
@@ -601,38 +599,23 @@ public class JyProjectService {
         memberWrapper.eq(JyProjectMembers::getProjectId, id);
         memberWrapper.eq(JyProjectMembers::getProjectId, id);
         memberWrapper.eq(JyProjectMembers::getDelFlag, 0);
         memberWrapper.eq(JyProjectMembers::getDelFlag, 0);
         List<JyProjectMembers> members = jyProjectMemberMapper.selectList(memberWrapper);
         List<JyProjectMembers> members = jyProjectMemberMapper.selectList(memberWrapper);
+
+        List<JyProjectMembersDTO> list=new ArrayList<>();
         if (CollectionUtils.isNotEmpty(members)) {
         if (CollectionUtils.isNotEmpty(members)) {
-            members.stream().distinct().forEach(member -> {
-                if (StringUtils.isNotBlank(member.getUserId())) {
-                    UserDTO byId = SpringUtil.getBean ( IUserApi.class ).getById(member.getUserId());
-                    if (ObjectUtil.isNotEmpty(byId)) {
-                        member.setName(byId.getName());
-//                        member.setOfficeName(byId.getOfficeDTO().getName());
-//                        member.setRoleName(byId.getRoleDTO().getName());
-//                        member.setMobile(byId.getMobile());
-                        member.setStatus("0");
-                    }
-                }
-            });
-            jyProjectDTO.setProjectMembers(members);
-        }
-        //合同类型查询
-        if (StringUtils.isNotBlank(info.getContractId())){
-            String type="";
-            if (!info.getContractType().contains(",")){
-                jyProjectDTO.setContractType(info.getContractType());
-            }else {
-                String[] split = info.getContractType().split(",");
-                for (String s : split) {
-                    String contractType = SpringUtil.getBean(IDictApi.class).getDictLabel(s, "jy_contract_type", "");
-                    type=contractType+",";
-                    String newType=type.substring(0,type.lastIndexOf(","));
-                    jyProjectDTO.setContractType(newType);
+            List<String> collect = members.stream().distinct().map(JyProjectMembers::getUserId).collect(Collectors.toList());
+            for (String member : collect)  {
+                if (StringUtils.isNotBlank(member)) {
+                    JyProjectMembersDTO jyProjectMembers = new JyProjectMembersDTO();
+                    jyProjectMembers.setUserId(member);
+                    jyProjectMembers.setStatus("0");
+                    list.add(jyProjectMembers);
                 }
                 }
             }
             }
+            jyProjectDTO.setProjectMembers(list);
         }
         }
 
 
 
 
+
         // 查询附件信息
         // 查询附件信息
         List<WorkAttachmentInfo> files = jyWorkContractInfoMapper.findDtos(id);
         List<WorkAttachmentInfo> files = jyWorkContractInfoMapper.findDtos(id);
         if (CollectionUtils.isNotEmpty(files)) {
         if (CollectionUtils.isNotEmpty(files)) {
@@ -1863,10 +1846,8 @@ public class JyProjectService {
      * 获取当前登陆人未归档的项目信息
      * 获取当前登陆人未归档的项目信息
      * @return
      * @return
      */
      */
-    public List<JyProjectDTO> getByIdNoArchive() {
-        //获取当前登录人信息
-        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
-        List<JyProjectDTO> projectDTOList=jyProjectMapper.getByIdNoArchive(userDTO.getId());
+    public List<JyProjectDTO> getByIdNoArchive(String id) {
+        List<JyProjectDTO> projectDTOList=jyProjectMapper.getByIdNoArchive(id);
         //获取用印id
         //获取用印id
         QueryWrapper<Signet> queryWrapper = new QueryWrapper<>();
         QueryWrapper<Signet> queryWrapper = new QueryWrapper<>();
         queryWrapper.orderByDesc("create_time");
         queryWrapper.orderByDesc("create_time");
@@ -1900,4 +1881,52 @@ public class JyProjectService {
     public List<JyProject> getListByIds(List idList) {
     public List<JyProject> getListByIds(List idList) {
         return jyProjectMapper.getListByIds(idList);
         return jyProjectMapper.getListByIds(idList);
     }
     }
+
+    /**
+     * 保存项目组成员信息
+     * @param jyProjectDTO
+     * @return
+     */
+    public ResponseEntity updateMembers(JyProjectDTO jyProjectDTO) {
+        if (CollectionUtil.isNotEmpty(jyProjectDTO.getProjectMembers())){
+            List<String> liveIds = jyProjectDTO.getProjectMembers().stream().filter(item->{
+                if (StringUtils.isNotBlank(item.getId())){
+                    return true;
+                }
+                return false;
+            }).map(JyProjectMembersDTO::getId).collect(Collectors.toList());
+            if (CollectionUtil.isNotEmpty(liveIds)){
+                jyProjectMembersService.remove(new QueryWrapper<JyProjectMembers>().lambda()
+                .eq(JyProjectMembers::getProjectId,jyProjectDTO.getId())
+                .notIn(JyProjectMembers::getId,liveIds));
+            }else{
+                jyProjectMembersService.remove(new QueryWrapper<JyProjectMembers>().lambda().eq(JyProjectMembers::getProjectId,jyProjectDTO.getId()));
+            }
+
+            List<JyProjectMembers> updateMemberById = new ArrayList<>();
+            List<JyProjectMembers> insertMemberById = new ArrayList<>();
+
+            jyProjectDTO.getProjectMembers().stream().forEach(item->{
+                item.setProjectId(jyProjectDTO.getId());
+                if (StringUtils.isNotBlank(item.getId())){
+                    //有id则进行修改操作
+                    updateMemberById.add(JyProjectMembersWrapper.INSTANCE.toEntity(item));
+                }else {
+                    //无id则进行新增操作
+                    insertMemberById.add(JyProjectMembersWrapper.INSTANCE.toEntity(item));
+                }
+            });
+            //批量根据id修改数据
+            if (CollectionUtil.isNotEmpty(updateMemberById)){
+                jyProjectMembersService.updateBatchById(updateMemberById);
+            }
+            //批量新增数据
+            if (CollectionUtil.isNotEmpty(insertMemberById)){
+                jyProjectMembersService.saveBatch(insertMemberById);
+            }
+        }else {
+            jyProjectMembersService.remove(new QueryWrapper<JyProjectMembers>().lambda().eq(JyProjectMembers::getProjectId,jyProjectDTO.getId()));
+        }
+        return ResponseEntity.ok("操作成功");
+    }
 }
 }

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/service/dto/JyProjectDTO.java

@@ -166,7 +166,7 @@ public class JyProjectDTO extends BaseEntity implements Serializable {
     /**
     /**
      * 项目组成员
      * 项目组成员
      */
      */
-    private List<JyProjectMembers> projectMembers;
+    private List<JyProjectMembersDTO> projectMembers;
 
 
     /**
     /**
      * 合同参数
      * 合同参数

+ 55 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/service/dto/JyProjectMembersDTO.java

@@ -0,0 +1,55 @@
+package com.jeeplus.business.project.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 项目管理-项目组成员
+ * @TableName program_members
+ */
+@Data
+public class JyProjectMembersDTO extends BaseDTO {
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+    /**
+     * 项目id
+     */
+    private String projectId;
+
+    /**
+     * 人员id
+     */
+    private String userId;
+
+    /**
+     * 状态  0为正常  1为移除
+     */
+    private String status;
+
+    /**
+     * 项目主要成员  1为主要成员 
+     */
+    private String isImportant;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @TableField(exist = false)
+    private String name;
+    @TableField(exist = false)
+    private String officeName;
+    @TableField(exist = false)
+    private String roleName;
+    @TableField(exist = false)
+    private String mobile;
+
+
+}

+ 13 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/service/mapstruct/JyProjectMembersWrapper.java

@@ -0,0 +1,13 @@
+package com.jeeplus.business.project.service.mapstruct;
+
+import com.jeeplus.business.project.domain.JyProjectMembers;
+import com.jeeplus.business.project.service.dto.JyProjectMembersDTO;
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface JyProjectMembersWrapper extends EntityWrapper<JyProjectMembersDTO, JyProjectMembers> {
+    JyProjectMembersWrapper INSTANCE=Mappers.getMapper(JyProjectMembersWrapper.class);
+}

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/reimbursement/mapper/JyReimbursementInfoMapper.java

@@ -16,7 +16,7 @@ import java.util.List;
 
 
 @Mapper
 @Mapper
 public interface JyReimbursementInfoMapper extends BaseMapper<JyReimbursementInfo> {
 public interface JyReimbursementInfoMapper extends BaseMapper<JyReimbursementInfo> {
-    @InterceptorIgnore(tenantLine = "true")
+
     IPage<JyReimbursementInfoDTO> findPageList(Page<JyReimbursementInfoDTO> page, @Param(Constants.WRAPPER) QueryWrapper<JyReimbursementInfoDTO> queryWrapper);
     IPage<JyReimbursementInfoDTO> findPageList(Page<JyReimbursementInfoDTO> page, @Param(Constants.WRAPPER) QueryWrapper<JyReimbursementInfoDTO> queryWrapper);
 
 
     List<WorkAttachmentInfo> findList(@Param("id") String id);
     List<WorkAttachmentInfo> findList(@Param("id") String id);

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/useSeal/mapper/SignetMapper.java

@@ -15,7 +15,7 @@ import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
 public interface SignetMapper extends BaseMapper<Signet> {
 public interface SignetMapper extends BaseMapper<Signet> {
-    @InterceptorIgnore(tenantLine = "true")
+
     IPage<SignetDTO> findPageList(Page<SignetDTO> signetDTOPage,@Param(Constants.WRAPPER) QueryWrapper<SignetDTO> queryWrapper);
     IPage<SignetDTO> findPageList(Page<SignetDTO> signetDTOPage,@Param(Constants.WRAPPER) QueryWrapper<SignetDTO> queryWrapper);
 
 
     @InterceptorIgnore(tenantLine = "true")
     @InterceptorIgnore(tenantLine = "true")

+ 3 - 2
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/useSeal/mapper/xml/SignetMapper.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.jeeplus.business.useSeal.mapper.SignetMapper">
 <mapper namespace="com.jeeplus.business.useSeal.mapper.SignetMapper">
     <select id="findPageList" resultType="com.jeeplus.business.useSeal.service.dto.SignetDTO">
     <select id="findPageList" resultType="com.jeeplus.business.useSeal.service.dto.SignetDTO">
-        select
+        select distinct
             a.id,
             a.id,
             a.create_by_id,
             a.create_by_id,
             su.name as createByName,
             su.name as createByName,
@@ -17,7 +17,7 @@
             a.status,
             a.status,
             a.remarks,
             a.remarks,
             so.name as office,
             so.name as office,
-            so.id,
+            so.id as officeId,
             a.proc_ins_id as procInsId ,
             a.proc_ins_id as procInsId ,
             a.process_definition_id as processDefinitionId,
             a.process_definition_id as processDefinitionId,
             art.ID_ as task_id
             art.ID_ as task_id
@@ -25,6 +25,7 @@
             left join sys_user su on a.create_by_id = su.id
             left join sys_user su on a.create_by_id = su.id
             left join sys_office so on su.office_id=so.id
             left join sys_office so on su.office_id=so.id
             left join act_ru_task art ON a.proc_ins_id = art.PROC_INST_ID_
             left join act_ru_task art ON a.proc_ins_id = art.PROC_INST_ID_
+            left join sys_user_manage_office sumo on sumo.office_id = su.office_id
             ${ew.customSqlSegment}
             ${ew.customSqlSegment}
             ORDER BY a.update_time DESC
             ORDER BY a.update_time DESC
     </select>
     </select>

+ 42 - 19
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/useSeal/service/SignetService.java

@@ -180,25 +180,31 @@ public class SignetService {
         }
         }
         signet.setProjectId(projectId);
         signet.setProjectId(projectId);
         signet.setProjectName(projectName);
         signet.setProjectName(projectName);
-        DictValue dictValue = SpringUtil.getBean(IDictApi.class).queryDictValue(dto.getTypes().get(1));
-        //保存用印类型
-        if (null != dto.getTypes()&&dto.getTypes().size()>0){
-            if (dto.getTypes().size()==1){
-                signet.setFirstType(dto.getTypes().get(0));
+        if (CollectionUtils.isNotEmpty(dto.getTypes())){
+            if (StringUtils.isNotBlank(dto.getTypes().get(1))){
+                DictValue dictValue = SpringUtil.getBean(IDictApi.class).queryDictValue(dto.getTypes().get(1));
+                //保存用印类型
+                if (null != dto.getTypes()&&dto.getTypes().size()>0){
+                    if (dto.getTypes().size()==1){
+                        signet.setFirstType(dto.getTypes().get(0));
+                    }else {
+                        signet.setFirstType(dto.getTypes().get(0));
+                        signet.setType(dto.getTypes().get(1));
+                        //修改类型状态 1:报告  2:报批
+                        if (dto.getTypes().get(1).equals(dictValue.getId()) && dictValue.getLabel().equals("报告签发")){
+                            signet.setTypeStatus("1");
+                        }
+                        if (dto.getTypes().get(1).equals(dictValue.getId()) && dictValue.getLabel().equals("报批签发")){
+                            signet.setTypeStatus("2");
+                        }
+
+                    }
+                }
             }else {
             }else {
                 signet.setFirstType(dto.getTypes().get(0));
                 signet.setFirstType(dto.getTypes().get(0));
-                signet.setType(dto.getTypes().get(1));
-                //修改类型状态 1:报告  2:报批
-                    if (dto.getTypes().get(1).equals(dictValue.getId()) && dictValue.getLabel().equals("报告签发")){
-                        signet.setTypeStatus("1");
-                    }
-                    if (dto.getTypes().get(1).equals(dictValue.getId()) && dictValue.getLabel().equals("报批签发")){
-                        signet.setTypeStatus("2");
-                    }
-
             }
             }
-        }
 
 
+        }
 
 
         signet.setRemarks(dto.getRemarks());//说明
         signet.setRemarks(dto.getRemarks());//说明
         signet.setStatus(dto.getStatus());//状态
         signet.setStatus(dto.getStatus());//状态
@@ -234,13 +240,30 @@ public class SignetService {
         signet.setProjectId(projectId);
         signet.setProjectId(projectId);
         signet.setProjectName(projectName);
         signet.setProjectName(projectName);
         //保存用印类型
         //保存用印类型
-        if (ObjectUtil.isNotEmpty(dto.getTypes())){
+        if (CollectionUtils.isNotEmpty(dto.getTypes())){
             if (StringUtils.isNotBlank(dto.getTypes().get(1))){
             if (StringUtils.isNotBlank(dto.getTypes().get(1))){
-                signet.setType(dto.getTypes().get(1));
-            }
-            if (StringUtils.isNotBlank(dto.getTypes().get(0))){
+                DictValue dictValue = SpringUtil.getBean(IDictApi.class).queryDictValue(dto.getTypes().get(1));
+                //保存用印类型
+                if (null != dto.getTypes()&&dto.getTypes().size()>0){
+                    if (dto.getTypes().size()==1){
+                        signet.setFirstType(dto.getTypes().get(0));
+                    }else {
+                        signet.setFirstType(dto.getTypes().get(0));
+                        signet.setType(dto.getTypes().get(1));
+                        //修改类型状态 1:报告  2:报批
+                        if (dto.getTypes().get(1).equals(dictValue.getId()) && dictValue.getLabel().equals("报告签发")){
+                            signet.setTypeStatus("1");
+                        }
+                        if (dto.getTypes().get(1).equals(dictValue.getId()) && dictValue.getLabel().equals("报批签发")){
+                            signet.setTypeStatus("2");
+                        }
+
+                    }
+                }
+            }else {
                 signet.setFirstType(dto.getTypes().get(0));
                 signet.setFirstType(dto.getTypes().get(0));
             }
             }
+
         }
         }
         signet.setRemarks(dto.getRemarks());//说明
         signet.setRemarks(dto.getRemarks());//说明
         signet.setStatus(dto.getStatus());//状态
         signet.setStatus(dto.getStatus());//状态

+ 1 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/mapper/JyWorkContractInfoMapper.java

@@ -19,7 +19,7 @@ import java.util.List;
 
 
 @Mapper
 @Mapper
 public interface JyWorkContractInfoMapper extends BaseMapper<JyWorkContractInfo> {
 public interface JyWorkContractInfoMapper extends BaseMapper<JyWorkContractInfo> {
-    @InterceptorIgnore(tenantLine = "true")
+
     IPage<JyWorkContractInfo> findPageList(Page<JyWorkContractInfo> page, @Param(Constants.WRAPPER)QueryWrapper queryWrapper);
     IPage<JyWorkContractInfo> findPageList(Page<JyWorkContractInfo> page, @Param(Constants.WRAPPER)QueryWrapper queryWrapper);
 
 
     JyWorkContractInfo findById (@Param("id") String id);
     JyWorkContractInfo findById (@Param("id") String id);

+ 2 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/mapper/xml/JyWorkContractInfoMapper.xml

@@ -5,7 +5,7 @@
 	<select id="findPageList" resultType="com.jeeplus.business.workContractInfo.domain.JyWorkContractInfo">
 	<select id="findPageList" resultType="com.jeeplus.business.workContractInfo.domain.JyWorkContractInfo">
 		SELECT
 		SELECT
 			a.id,
 			a.id,
-			c.`name` AS create_by_id,
+			a.create_by_id,
 			a.create_time,
 			a.create_time,
 			a.update_by_id,
 			a.update_by_id,
 			a.update_time,
 			a.update_time,
@@ -37,6 +37,7 @@
 			a.create_by_id as create_id,
 			a.create_by_id as create_id,
 			a.filed_type,
 			a.filed_type,
 			a.primary_linkman,
 			a.primary_linkman,
+			c.name as createName,
 			art.ID_ as taskId
 			art.ID_ as taskId
 		FROM
 		FROM
 			jy_work_contract_info a
 			jy_work_contract_info a

+ 102 - 0
jeeplus-modules/jeeplus-flowable/src/main/java/com/jeeplus/modules/flowable/listener/DimissionListener.java

@@ -0,0 +1,102 @@
+package com.jeeplus.modules.flowable.listener;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.jeeplus.extension.domain.FlowCopy;
+import com.jeeplus.extension.service.FlowCopyService;
+import com.jeeplus.flowable.model.ActRuTaskInfo;
+import com.jeeplus.flowable.model.Flow;
+import com.jeeplus.flowable.service.FlowTaskService;
+import com.jeeplus.flowable.service.MyNoticeService;
+import com.jeeplus.sys.feign.IPostApi;
+import com.jeeplus.sys.feign.IUserApi;
+import com.jeeplus.sys.service.dto.PostDTO;
+import com.jeeplus.sys.service.dto.UserDTO;
+import lombok.SneakyThrows;
+import org.flowable.engine.RuntimeService;
+import org.flowable.engine.delegate.DelegateExecution;
+import org.flowable.engine.delegate.ExecutionListener;
+import org.flowable.engine.runtime.ProcessInstance;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.List;
+
+@Component("DimissionListener")
+public class DimissionListener implements ExecutionListener {
+    @SneakyThrows
+    public void notify(DelegateExecution delegateExecution) {
+        String eventName = delegateExecution.getEventName ( );
+        System.out.println("--------- delegateExecution -----------" + delegateExecution);
+
+        if ( "start".equals ( eventName ) ) {
+            System.out.println ( "start=========" );
+        } else if ( "end".equals ( eventName ) ) {
+            //根据这里的 delegateExecution的id去act_ru_task表中查该流程的数据 对应表中的EXECUTION_ID_
+            ActRuTaskInfo task = SpringUtil.getBean(MyNoticeService.class).getTaskInfoByID(delegateExecution.getId());
+
+            if (null != task) {
+                List<Flow> flows = SpringUtil.getBean(FlowTaskService.class).historicTaskList(task.getProcInstId());
+                //根据PROC_DEF_ID_去act_re_deployment中查询流程的名称
+                String substring = task.getProcDefId().substring(0, task.getProcDefId().indexOf(":"));
+                String actName = SpringUtil.getBean(FlowTaskService.class).getActNameByDefId(substring);
+
+                String titleName = "";
+                // 根据流程定义ID查询流程实例
+                ProcessInstance processInstance = SpringUtil.getBean(RuntimeService.class).createProcessInstanceQuery()
+                        .processInstanceId(task.getProcInstId())
+                        .singleResult();
+
+                if (processInstance != null) {
+                    // 获取流程实例标题变量名(假设标题存储在名为"title"的变量中)
+                    String titleVariableName = "title";
+
+                    // 查询流程实例的标题变量
+                    Object title = SpringUtil.getBean(RuntimeService.class).getVariable(processInstance.getId(), titleVariableName);
+
+                    if (title != null) {
+                        titleName = title.toString();
+                    } else {
+                        // 如果标题变量不存在或者没有值,可以返回默认标题
+                        titleName = "";
+                    }
+                }
+                Flow flow = new Flow();
+                for (int i=0;i<flows.size();i++){
+                    if (flows.get(i).getComment().getMessage().equals("发起流程")){
+                        flow = flows.get(i);
+                    }
+                }
+
+                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+                UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getById(flow.getAssigneeId());
+                //获取到岗位为财务和出纳的人员信息
+                ArrayList<UserDTO> userDTOS = new ArrayList<>();
+
+
+                PostDTO postDTOByName1 = SpringUtil.getBean(IPostApi.class).getPostDTOByName("人事部");
+                List<UserDTO> listByPostId1 = SpringUtil.getBean(IUserApi.class).findListByPostId(postDTOByName1.getId());
+                userDTOS.addAll(listByPostId1);
+                String finalTitleName = titleName;
+                userDTOS.stream().forEach(item->{
+                    FlowCopy flowCopy = new FlowCopy();
+                    flowCopy.setProcDefId(task.getProcDefId());
+//                        flowCopy.setProcDefId(task.getProcDefId());
+                    flowCopy.setProcInsName(finalTitleName);
+                    flowCopy.setProcInsId(task.getProcInstId());
+                    flowCopy.setUserId(item.getId());
+                    SpringUtil.getBean(FlowCopyService.class).save(flowCopy);
+
+                });
+
+
+            }
+
+            System.out.println ( "end=========" );
+        } else if ( "take".equals ( eventName ) ) {//连线监听
+            System.out.println ( "take=========" );
+        }
+
+    }
+}

+ 123 - 0
jeeplus-modules/jeeplus-flowable/src/main/java/com/jeeplus/modules/flowable/listener/HeirListener.java

@@ -0,0 +1,123 @@
+package com.jeeplus.modules.flowable.listener;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.jeeplus.extension.domain.FlowCopy;
+import com.jeeplus.extension.service.FlowCopyService;
+import com.jeeplus.flowable.model.ActRuTaskInfo;
+import com.jeeplus.flowable.model.Flow;
+import com.jeeplus.flowable.service.FlowTaskService;
+import com.jeeplus.flowable.service.MyNoticeService;
+import com.jeeplus.flowable.utils.StringUtils;
+import com.jeeplus.sys.feign.IOfficeApi;
+import com.jeeplus.sys.feign.IPostApi;
+import com.jeeplus.sys.feign.IUserApi;
+import com.jeeplus.sys.service.dto.OfficeDTO;
+import com.jeeplus.sys.service.dto.PostDTO;
+import com.jeeplus.sys.service.dto.UserDTO;
+import lombok.SneakyThrows;
+import org.flowable.engine.RuntimeService;
+import org.flowable.engine.delegate.DelegateExecution;
+import org.flowable.engine.delegate.ExecutionListener;
+import org.flowable.engine.runtime.ProcessInstance;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.List;
+
+@Component("HeirListener")
+public class HeirListener implements ExecutionListener {
+    @SneakyThrows
+    public void notify(DelegateExecution delegateExecution) {
+        String eventName = delegateExecution.getEventName ( );
+        System.out.println("--------- delegateExecution -----------" + delegateExecution);
+
+        if ( "start".equals ( eventName ) ) {
+            System.out.println ( "start=========" );
+        } else if ( "end".equals ( eventName ) ) {
+            //根据这里的 delegateExecution的id去act_ru_task表中查该流程的数据 对应表中的EXECUTION_ID_
+            ActRuTaskInfo task = SpringUtil.getBean(MyNoticeService.class).getTaskInfoByID(delegateExecution.getId());
+
+            if (null != task) {
+                List<Flow> flows = SpringUtil.getBean(FlowTaskService.class).historicTaskList(task.getProcInstId());
+                //根据PROC_DEF_ID_去act_re_deployment中查询流程的名称
+                String substring = task.getProcDefId().substring(0, task.getProcDefId().indexOf(":"));
+                String actName = SpringUtil.getBean(FlowTaskService.class).getActNameByDefId(substring);
+
+                String titleName = "";
+                // 根据流程定义ID查询流程实例
+                ProcessInstance processInstance = SpringUtil.getBean(RuntimeService.class).createProcessInstanceQuery()
+                        .processInstanceId(task.getProcInstId())
+                        .singleResult();
+
+                if (processInstance != null) {
+                    // 获取流程实例标题变量名(假设标题存储在名为"title"的变量中)
+                    String titleVariableName = "title";
+
+                    // 查询流程实例的标题变量
+                    Object title = SpringUtil.getBean(RuntimeService.class).getVariable(processInstance.getId(), titleVariableName);
+
+                    if (title != null) {
+                        titleName = title.toString();
+                    } else {
+                        // 如果标题变量不存在或者没有值,可以返回默认标题
+                        titleName = "";
+                    }
+                }
+                Flow flow = new Flow();
+                for (int i=0;i<flows.size();i++){
+                    if (flows.get(i).getComment().getMessage().equals("发起流程")){
+                        flow = flows.get(i);
+                    }
+                }
+
+                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+                UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getById(flow.getAssigneeId());
+                //获取嘉溢所有人员信息
+                List<UserDTO> allUserInfo = SpringUtil.getBean(IUserApi.class).findListByCompanyId(userDTO.getCompanyDTO().getId());
+                String finalTitleName = titleName;
+                //将项目信息抄送给分管领导
+                for (UserDTO dto : allUserInfo) {
+                    if (StringUtils.isNotBlank(dto.getManageOfficeIds())){
+                        String manageOfficeIds = dto.getManageOfficeIds();
+                        if (manageOfficeIds.contains(",")){
+                            String[] split = manageOfficeIds.split(",");
+                            //获取分管领导所分管的部门
+                            for (String s : split) {
+                                //判断分管部门与项目创建人所在的部门是否一致
+                                if (s.equals(userDTO.getOfficeDTO().getId())) {
+                                    FlowCopy flowCopy = new FlowCopy();
+                                    flowCopy.setProcDefId(task.getProcDefId());
+                                    flowCopy.setProcInsName(finalTitleName);
+                                    flowCopy.setProcInsId(task.getProcInstId());
+                                    flowCopy.setUserId(dto.getId());
+                                    //将项目信息进行抄送
+                                    SpringUtil.getBean(FlowCopyService.class).save(flowCopy);
+                                }
+                            }
+                        }else {
+                            if (manageOfficeIds.equals(userDTO.getOfficeDTO().getId())) {
+                                FlowCopy flowCopy = new FlowCopy();
+                                flowCopy.setProcDefId(task.getProcDefId());
+                                flowCopy.setProcInsName(finalTitleName);
+                                flowCopy.setProcInsId(task.getProcInstId());
+                                flowCopy.setUserId(dto.getId());
+                                //将项目信息进行抄送
+                                SpringUtil.getBean(FlowCopyService.class).save(flowCopy);
+                            }
+                        }
+
+                    }
+
+                }
+            }
+
+            System.out.println ( "end=========" );
+        } else if ( "take".equals ( eventName ) ) {//连线监听
+            System.out.println ( "take=========" );
+        }
+
+    }
+}

+ 2 - 2
jeeplus-modules/jeeplus-flowable/src/main/java/com/jeeplus/modules/flowable/listener/JyProjectArchiveListener.java

@@ -74,10 +74,10 @@ public class JyProjectArchiveListener implements ExecutionListener {
 
 
                 UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getById(flow.getAssigneeId());
                 UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getById(flow.getAssigneeId());
                 //获取人员信息
                 //获取人员信息
-                IPage<UserDTO> page = SpringUtil.getBean(IUserApi.class).findPage();
+                List<UserDTO> allUserInfo = SpringUtil.getBean(IUserApi.class).findListByCompanyId(userDTO.getCompanyDTO().getId());
                 String finalTitleName = titleName;
                 String finalTitleName = titleName;
                 //将项目信息抄送给分管领导
                 //将项目信息抄送给分管领导
-                page.getRecords().stream().forEach(item->{
+                allUserInfo.stream().forEach(item->{
                     String manageOfficeIds = item.getManageOfficeIds();
                     String manageOfficeIds = item.getManageOfficeIds();
                     String[] split = manageOfficeIds.split(",");
                     String[] split = manageOfficeIds.split(",");
                     //获取分管领导所分管的部门
                     //获取分管领导所分管的部门

+ 23 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/OfficeController.java

@@ -135,6 +135,29 @@ public class OfficeController {
      * @param showAll 是否显示不可用数据 1 显示 0 隐藏
      * @param showAll 是否显示不可用数据 1 显示 0 隐藏
      * @return
      * @return
      */
      */
+    @ApiLog("获取嘉溢部门数据")
+    @GetMapping("JyTreeData")
+    public ResponseEntity <List <OfficeDTO>> JytreeData(@RequestParam(required = false) String tenantId,
+                                                      @RequestParam(required = false) String parentId,
+                                                      @RequestParam(required = false) String extId,
+                                                      @RequestParam(required = false) String type,
+                                                      @RequestParam(required = false, defaultValue = CommonConstants.NO) String showAll,
+                                                        OfficeDTO officeDTO) {
+        List <OfficeDTO> list = officeService.findJyList ( tenantId, parentId,officeDTO );
+        //List <OfficeDTO> rootTree = officeService.getRootTree (list, extId, type, showAll,"1" );
+//        List <OfficeDTO> rootTree = officeService.getOldRootTree (parentId,list, extId, type, showAll );
+        return ResponseEntity.ok ( list );
+    }
+
+
+    /**
+     * 获取机构JSON数据。
+     *
+     * @param extId   排除的ID
+     * @param type    类型(1:公司;2:部门)
+     * @param showAll 是否显示不可用数据 1 显示 0 隐藏
+     * @return
+     */
     @ApiLog("获取签字注师2部门数据")
     @ApiLog("获取签字注师2部门数据")
     @GetMapping("qzTreeData")
     @GetMapping("qzTreeData")
     public ResponseEntity <List <OfficeDTO>> qzTreeData(@RequestParam(required = false) String tenantId,
     public ResponseEntity <List <OfficeDTO>> qzTreeData(@RequestParam(required = false) String tenantId,

+ 16 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/PostController.java

@@ -53,6 +53,22 @@ public class PostController {
     }
     }
 
 
     /**
     /**
+     * 嘉溢获取岗位列表数据
+     *
+     * @param post
+     * @param page
+     * @return
+     * @throws Exception
+     */
+    @ApiLog("查询岗位列表")
+    @GetMapping("list2")
+    public ResponseEntity list2(Post post, Page <Post> page) throws Exception {
+        QueryWrapper <Post> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( post, Post.class );
+        IPage <Post> result = postService.page ( page, queryWrapper );
+        return ResponseEntity.ok ( result );
+    }
+
+    /**
      * 查询岗位数据
      * 查询岗位数据
      *
      *
      * @param id
      * @param id

+ 15 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/RoleController.java

@@ -56,6 +56,21 @@ public class RoleController {
         return ResponseEntity.ok ( result );
         return ResponseEntity.ok ( result );
     }
     }
 
 
+    /**
+     * 嘉溢查询角色列表数据
+     *
+     * @param role
+     * @param page
+     * @return
+     */
+    @ApiLog("查询角色列表")
+    @GetMapping("list2")
+    public ResponseEntity <IPage <Role>> data2(Role role, Page <Role> page) throws Exception {
+        QueryWrapper <Role> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( role, Role.class );
+        IPage <Role> result = roleService.page ( page, queryWrapper );
+        return ResponseEntity.ok ( result );
+    }
+
 
 
     /**
     /**
      * 按id查询
      * 按id查询

+ 18 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/UserController.java

@@ -1010,6 +1010,24 @@ public class UserController {
         return JSON.toJSONString(list);
         return JSON.toJSONString(list);
     }
     }
 
 
+    /**
+     * 根据当前登录人所在的部门,获取该部门下的人员信息
+     */
+    @ApiOperation(value = "根据当前登录人所在的部门,获取该部门下的人员信息")
+    @GetMapping("getUserByOffice")
+    public ResponseEntity getUserByOffice(String id){
+        List<User> userList=userService.getJyUserByOffice(id);
+        return ResponseEntity.ok(userList);
+    }
+
+
+    //将人员冻结
+    @ApiOperation(value = "冻结人员信息")
+    @PostMapping("updateLoginFlag")
+    public void updateLoginFlag(@RequestParam String id){
+        userService.updateLoginFlag(id);
+    }
+
 
 
 
 
 
 

+ 16 - 2
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/UserMapper.java

@@ -114,9 +114,9 @@ public interface UserMapper extends BaseMapper <User> {
     @InterceptorIgnore(tenantLine = "true")
     @InterceptorIgnore(tenantLine = "true")
     IPage <UserDTO> findList(Page <UserDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
     IPage <UserDTO> findList(Page <UserDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
 
 
-    @InterceptorIgnore(tenantLine = "true")
+
     IPage <UserDTO> userFindPage(Page <UserDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
     IPage <UserDTO> userFindPage(Page <UserDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
-    @InterceptorIgnore(tenantLine = "true")
+
     IPage <UserDTO> findList2(Page <UserDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
     IPage <UserDTO> findList2(Page <UserDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
 
 
     /**
     /**
@@ -243,4 +243,18 @@ public interface UserMapper extends BaseMapper <User> {
     List<String> getHasUserFather();
     List<String> getHasUserFather();
     @InterceptorIgnore(tenantLine = "true")
     @InterceptorIgnore(tenantLine = "true")
     List<UserDTO> getJyUserList();
     List<UserDTO> getJyUserList();
+
+    void updateLoginFlag(@Param("id") String id);
+    /**
+     * 删除原有员工管理的部门信息
+     * @param userDTO
+     */
+    void deleteUserManageOffice(UserDTO userDTO);
+
+    /**
+     * 添加员工管理的部门信息
+     * @param officeId
+     * @param userId
+     */
+    void insertUserManageOffice(@Param("officeId") String officeId,@Param("userId") String userId);
 }
 }

+ 13 - 1
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/xml/UserMapper.xml

@@ -189,7 +189,7 @@
         FROM sys_user a
         FROM sys_user a
         <include refid="userJoins"/>
         <include refid="userJoins"/>
         ${ew.customSqlSegment}
         ${ew.customSqlSegment}
-
+        and (a.is_admin is null or a.is_admin = '' or a.is_admin != 1)
     </select>
     </select>
 
 
     <!-- 查询角色下的用户 -->
     <!-- 查询角色下的用户 -->
@@ -565,4 +565,16 @@ select DISTINCT a.id, a.company_id as "companyDTO.id", a.office_id as "officeDTO
 		where a.tenant_id = "10006" and a.del_flag=0
 		where a.tenant_id = "10006" and a.del_flag=0
     </select>
     </select>
 
 
+    <update id="updateLoginFlag">
+        update sys_user set login_flag = '0' where id = #{id}
+    </update>
+
+    <delete id="deleteUserManageOffice">
+		delete from sys_user_manage_office where user_id = #{id}
+	</delete>
+
+    <insert id="insertUserManageOffice">
+		insert sys_user_manage_office(user_id, office_id) VALUES (#{userId}, #{officeId})
+	</insert>
+
 </mapper>
 </mapper>

+ 33 - 1
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/OfficeService.java

@@ -97,6 +97,38 @@ public class OfficeService extends TreeService <OfficeMapper, Office> {
      *
      *
      * @return
      * @return
      */
      */
+    public List <OfficeDTO> findJyList(String tenantId, String parentId,OfficeDTO officeDTO) {
+        QueryWrapper queryWrapper = new QueryWrapper ( );
+        //根据当前人的所属部门去查相关数据
+        UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getByToken(TokenProvider.getCurrentToken());
+        queryWrapper.like ( StringUtils.isNotBlank ( parentId ), "a.parent_ids", "," + parentId + "," );
+        if (StringUtils.isNotBlank(officeDTO.getName())){
+            queryWrapper.like("a.name",officeDTO.getName());
+        }
+        queryWrapper.eq ( "a.del_flag", 0 );
+        if(!"10000".equals(userDTO.getTenantDTO().getId()) && !"10002".equals(userDTO.getTenantDTO().getId())){
+            queryWrapper.eq ( StringUtils.isNotBlank ( userDTO.getTenantDTO().getId() ), "a.tenant_id", userDTO.getTenantDTO().getId() );
+        }
+        /*if (StringUtils.isNotBlank(userDTO.getCompanyDTO().getName())){
+            if (userDTO.getCompanyDTO().getName().contains("评估")) {
+                queryWrapper.like ( "a.name", "%评估%" );
+            }else if (userDTO.getCompanyDTO().getName().contains("会计")){
+                //获取兴光会计师事务所的子集id
+                List<String> ids = baseMapper.getIds(userDTO.getCompanyDTO().getId());
+                ids.add(userDTO.getCompanyDTO().getId());
+                queryWrapper.in ( "a.id", ids );
+            }
+        }*/
+
+        queryWrapper.orderByAsc ( "a.sort" );
+        return baseMapper.findList ( queryWrapper );
+    }
+
+    /**
+     * 获取列表
+     *
+     * @return
+     */
     public List <OfficeDTO> findList2(String tenantId, String parentId) {
     public List <OfficeDTO> findList2(String tenantId, String parentId) {
         QueryWrapper queryWrapper = new QueryWrapper ( );
         QueryWrapper queryWrapper = new QueryWrapper ( );
         // 查询岗位用户信息
         // 查询岗位用户信息
@@ -286,7 +318,7 @@ public class OfficeService extends TreeService <OfficeMapper, Office> {
         List<Office> children = new ArrayList<>();
         List<Office> children = new ArrayList<>();
         UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getByToken(TokenProvider.getCurrentToken());
         UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getByToken(TokenProvider.getCurrentToken());
         if (!SecurityUtils.getCurrentUserDTO ( ).isAdmin ( )){
         if (!SecurityUtils.getCurrentUserDTO ( ).isAdmin ( )){
-            if (userDTO.getCompanyDTO().getName().contains("评估")||userDTO.getCompanyDTO().getName().contains("会计")){
+            if (userDTO.getCompanyDTO().getName().contains("评估")||userDTO.getCompanyDTO().getName().contains("会计")||userDTO.getCompanyDTO().getName().contains("嘉溢")){
                 children = officeMapper.getChildren(OfficeDTO.getRootId(),userDTO.getCompanyDTO().getId());
                 children = officeMapper.getChildren(OfficeDTO.getRootId(),userDTO.getCompanyDTO().getId());
             } else {
             } else {
                 children = officeMapper.getChildren(OfficeDTO.getRootId(),"");
                 children = officeMapper.getChildren(OfficeDTO.getRootId(),"");

+ 39 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/UserService.java

@@ -7,6 +7,7 @@ import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import cn.hutool.extra.spring.SpringUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -355,6 +356,14 @@ public class UserService extends ServiceImpl <UserMapper, User> {
                 baseMapper.insertUserPost ( userDTO.getId ( ), postDTO.getId ( ) );
                 baseMapper.insertUserPost ( userDTO.getId ( ), postDTO.getId ( ) );
             } );
             } );
         }
         }
+        // 更新用户的管理部门
+        List<String> officeIdList = new ArrayList<>();
+        if(StringUtils.isNotBlank(userDTO.getManageOfficeIds())){
+            List<String> officeIds = Arrays.asList(userDTO.getManageOfficeIds().split(","));
+            officeIdList.addAll(officeIds);
+        }
+        this.updateUserManageOffice(officeIdList, userDTO);
+
         UserUtils.deleteCache ( userDTO );
         UserUtils.deleteCache ( userDTO );
         //判断redis中是否有这个key
         //判断redis中是否有这个key
         if (redisUtils.hasKey("user:cache:user:all:info")){
         if (redisUtils.hasKey("user:cache:user:all:info")){
@@ -373,6 +382,17 @@ public class UserService extends ServiceImpl <UserMapper, User> {
 
 
     }
     }
 
 
+    public void updateUserManageOffice(List<String> officeIdList, UserDTO userDTO) {
+        //根据用户id删除原有用户管理的部门信息
+        userMapper.deleteUserManageOffice(userDTO);
+        //遍历将新的用户管理的部门信息信息添加进去
+        if(officeIdList.size()>0){
+            for (String officeId : officeIdList) {
+                userMapper.insertUserManageOffice(officeId,userDTO.getId());
+            }
+        }
+    }
+
 
 
     public void deleteUser(UserDTO userDTO) {
     public void deleteUser(UserDTO userDTO) {
         baseMapper.deleteUserRole ( userDTO.getId ( ) );
         baseMapper.deleteUserRole ( userDTO.getId ( ) );
@@ -586,4 +606,23 @@ public class UserService extends ServiceImpl <UserMapper, User> {
         List<UserDTO> list=userMapper.getJyUserList();
         List<UserDTO> list=userMapper.getJyUserList();
         return list;
         return list;
     }
     }
+
+    /**
+     * 根据用户id获取该部门下的人员信息
+     * @return
+     */
+    public List<User> getJyUserByOffice(String id) {
+        UserDTO userDTO = get(id);
+        LambdaQueryWrapper<User> userLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        userLambdaQueryWrapper.eq(User::getOfficeId,userDTO.getOfficeDTO().getId());
+        userLambdaQueryWrapper.eq(User::getDelFlag,0);
+        userLambdaQueryWrapper.eq(User::getLoginFlag,1);
+        List<User> userList = userMapper.selectList(userLambdaQueryWrapper);
+        return userList;
+    }
+
+    //冻结人员信息
+    public void updateLoginFlag(String id) {
+        userMapper.updateLoginFlag(id);
+    }
 }
 }