sangwenwei 1 ano atrás
pai
commit
6d00864259
34 arquivos alterados com 654 adições e 69 exclusões
  1. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/borrow/mapper/xml/BorrowMapper.xml
  2. 10 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/drive/controller/DriveInfoController.java
  3. 2 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/drive/mapper/DriveInfoMapper.java
  4. 14 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/drive/mapper/xml/DriveInfoMapper.xml
  5. 4 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/drive/service/DriveApplyService.java
  6. 14 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/drive/service/DriveInfoService.java
  7. 1 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/holiday/mapper/xml/HolidayMapper.xml
  8. 32 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/controller/StaffDimissionController.java
  9. 163 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/controller/StaffUserInfoController.java
  10. 2 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/mapper/xml/StaffUserInfoMapper.xml
  11. 2 2
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/StaffDimissionService.java
  12. 4 2
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/StaffUserInfoService.java
  13. 9 3
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/dto/StaffDimissionDTO.java
  14. 69 4
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/dto/StaffUserInfoDTO.java
  15. 37 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/dto/UserInfo.java
  16. 131 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/utils/IdCardUtil.java
  17. 2 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/inscription/domain/Inscription.java
  18. 9 3
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/inscription/service/InscriptionService.java
  19. 2 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/inscription/service/dto/InscriptionDTO.java
  20. 4 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/domain/MeetingRoom.java
  21. 36 22
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/service/MeetingRoomService.java
  22. 5 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/service/dto/MeetingRoomDTO.java
  23. 7 5
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/monthly/service/MonthlyService.java
  24. 10 6
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/notify/service/JyNotifyService.java
  25. 1 3
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/domain/JyProject.java
  26. 3 3
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/mapper/xml/ProjectListMapper.xml
  27. 17 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/service/JyProjectService.java
  28. 38 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/service/dto/JyProjectDTO.java
  29. 6 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/reimbursement/mapper/xml/JyReimbursementInfoMapper.xml
  30. 4 4
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/reimbursement/service/JyReimbursementInfoService.java
  31. 7 6
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/useSeal/service/SignetService.java
  32. 3 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/service/JyWorkClientService.java
  33. BIN
      jeeplus-modules/jeeplus-business/src/main/resources/dot/用户数据导入模板.xlsx
  34. 5 2
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/RoleController.java

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

@@ -55,7 +55,7 @@
             a.process_definition_id,
             a.status,
             re.borrow_id as borrowId,
-            re.refund_lower,
+            (select sum(refund_money) from jy_refund_history where refund_id = re.id) as refundLower,
             re.refund,
             re.id as refundId,
             re.proc_ins_id as procInsIdRefund,

+ 10 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/drive/controller/DriveInfoController.java

@@ -96,6 +96,16 @@ public class DriveInfoController {
 
     }
 
+    /**
+     * 校验车辆
+     */
+    @ApiOperation(value = "校验车辆")
+    @GetMapping(value = "checkNumber")
+    public boolean checkNumber(@RequestParam String number){
+        boolean data=driveInfoService.checkNumber(number);
+        return data;
+    }
+
 
 
 }

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

@@ -18,4 +18,6 @@ public interface DriveInfoMapper extends BaseMapper<DriveInfo> {
     void updateInfoById(@Param("info") DriveInfo info);
 
     DriveInfo findById(@Param("id") String id);
+
+    DriveInfo checkNumber(@Param("number")String number);
 }

+ 14 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/drive/mapper/xml/DriveInfoMapper.xml

@@ -44,5 +44,19 @@
         where id=#{id}
     </select>
 
+    <select id="checkNumber" resultType="com.jeeplus.business.drive.domain.DriveInfo">
+        select
+            id,
+            create_by_id,
+            create_time,
+            update_by_id,
+            update_time,
+            drive_number,
+            drive_identify_number
+        from
+            jy_drive_info
+        where drive_number=#{number} and del_flag = '0'
+    </select>
+
 
 </mapper>

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

@@ -416,7 +416,10 @@ public class DriveApplyService {
         driveApplyMapper.updateInfoById(driveApply);
         //修改申请附件
         List<WorkAttachmentInfo> files = driveDTO.getDriveApplyDTO().getFiles();
-        updateFiles(files, userDTO, driveDTO.getDriveApplyDTO().getId());
+        if (CollectionUtils.isNotEmpty(files)){
+            updateFiles(files, userDTO, driveDTO.getDriveApplyDTO().getId());
+        }
+
 
         //修改用车结算数据
         DriveAccountDTO accountDTO = driveAccountMapper.findByApplyId(driveDTO.getDriveAccountDTO().getApplyId());

+ 14 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/drive/service/DriveInfoService.java

@@ -3,6 +3,7 @@ package com.jeeplus.business.drive.service;
 import cn.hutool.extra.spring.SpringUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jeeplus.business.drive.domain.DriveInfo;
 import com.jeeplus.business.drive.mapper.DriveInfoMapper;
@@ -78,4 +79,17 @@ public class DriveInfoService {
         DriveInfo driveInfo=driveInfoMapper.findById(id);
         return driveInfo;
     }
+
+    /**
+     * 校验车辆
+     * @param number
+     * @return
+     */
+    public boolean checkNumber(String number) {
+        DriveInfo driveInfo=driveInfoMapper.checkNumber(number);
+        if (ObjectUtils.isNotEmpty(driveInfo)){
+            return true;
+        }
+        return false;
+    }
 }

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

@@ -62,7 +62,7 @@
             in_time,
             user_id
         from staff_user_info
-        where user_id = #{id}
+        where user_id = #{id} and del_flag = '0'
     </select>
 
     <select id="selectByUserId" resultType="com.jeeplus.business.holiday.service.dto.HolidayDTO">

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

@@ -2,13 +2,18 @@ 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.finance.util.EasyPoiUtil;
 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.excel.ExcelOptions;
+import com.jeeplus.common.excel.annotation.ExportMode;
 import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.logging.annotation.ApiLog;
+import com.jeeplus.logging.constant.enums.LogTypeEnum;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.Value;
@@ -17,6 +22,10 @@ import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
 
 @Slf4j
 @Api(tags ="员工离职")
@@ -110,6 +119,29 @@ public class StaffDimissionController {
         staffDimissionService.updateHeirStatusById(staffHeirDTO);
     }
 
+    @ApiLog(value = "导出离职人员信息", type = LogTypeEnum.EXPORT)
+    @GetMapping("export")
+    //@PreAuthorize ("hasAuthority('cw_finance:invoice:export')")
+    @ApiOperation(value = "导出离职人员信息")
+    public void exportFile(StaffDimissionDTO dimissionDTO, Page <StaffDimissionDTO> page, ExcelOptions options, HttpServletResponse response) throws Exception {
+        String fileName = options.getFilename();
+        String sheetName = options.getSheetName();
+        List<StaffDimissionDTO> result = new ArrayList<>();
+        if ( ExportMode.current.equals ( options.getMode() ) ) {
+            result = staffDimissionService.findPageList(dimissionDTO,page).getRecords();
+        } else if (ExportMode.selected.equals ( options.getMode() )) {
+            result = staffDimissionService.findPageList(dimissionDTO,page).getRecords().stream ( ).filter ( item ->
+                    options.getSelectIds ( ).contains ( item.getId ( ) )
+            ).collect ( Collectors.toList ( ) );
+        } else {
+            page.setSize (-1);
+            page.setCurrent (0);
+            result = staffDimissionService.findPageList(dimissionDTO,page).getRecords();
+        }
+        EasyPoiUtil.exportExcel ( result, sheetName,  sheetName, StaffDimissionDTO.class, fileName, response );
+
+    }
+
 
 
 }

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

@@ -1,18 +1,47 @@
 package com.jeeplus.business.humanResources.controller;
 
+import cn.hutool.extra.spring.SpringUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 
+import com.google.common.collect.Lists;
+import com.jeeplus.business.finance.util.EasyPoiUtil;
 import com.jeeplus.business.humanResources.service.StaffUserInfoService;
 import com.jeeplus.business.humanResources.service.dto.StaffUserInfoDTO;
+import com.jeeplus.business.humanResources.service.dto.UserInfo;
+import com.jeeplus.business.humanResources.utils.IdCardUtil;
+import com.jeeplus.common.excel.ExcelOptions;
+import com.jeeplus.common.excel.annotation.ExportMode;
 import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.logging.annotation.ApiLog;
+import com.jeeplus.logging.constant.enums.LogTypeEnum;
+import com.jeeplus.sys.feign.IOfficeApi;
+import com.jeeplus.sys.service.dto.OfficeDTO;
+import com.jeeplus.sys.service.dto.UserDTO;
+import com.jeeplus.sys.utils.UserUtils;
+import com.jeeplus.sys.utils.excel.UserEasyExcel;
+import com.jeeplus.utils.StringUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.lang.reflect.Field;
+import java.lang.reflect.Type;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 @Slf4j
 @Api(tags ="员工入职")
@@ -75,6 +104,140 @@ public class StaffUserInfoController {
         return ResponseEntity.ok(s);
     }
 
+    /**
+     * 下载导入用户数据模板
+     *
+     * @param response
+     * @return
+     */
+    @GetMapping("import/template")
+    @ApiOperation(value = "下载模板")
+    public void importFileTemplate(HttpServletResponse response, HttpServletRequest request) throws IOException {
+        String fileName = "用户数据导入模板.xlsx";
+        List <UserInfo> list = Lists.newArrayList ( );
+        UserEasyExcel.newInstance ( ).exportExcel ( list, "用户数据", UserInfo.class, fileName, null, response );
+    }
+
+    /**
+     * 导入用户数据
+     */
+    @PostMapping("import")
+    @ApiOperation(value = "导入用户excel")
+    public ResponseEntity importDetail(@RequestPart("file") MultipartFile file, HttpServletRequest request) {
+        List<StaffUserInfoDTO> dtoArrayList = new ArrayList<>();
+        //获取sheet
+        dtoArrayList = EasyPoiUtil.importExcel(file, 0, 1, StaffUserInfoDTO.class);
+        //去除excel中的空行
+        dtoArrayList = getExcelList(dtoArrayList);
+        ArrayList<StaffUserInfoDTO> list = new ArrayList<>();
+        //根据用户身份证号获取用户年龄,性别,出生日期
+        for (StaffUserInfoDTO staffUserInfoDTO : dtoArrayList) {
+            if (StringUtils.isNotBlank(staffUserInfoDTO.getIdCard())){
+                //获取年龄
+                Integer age = IdCardUtil.getAge(staffUserInfoDTO.getIdCard());
+                staffUserInfoDTO.setAge(age.toString());
+                //获取性别
+                String sex = IdCardUtil.getSex(staffUserInfoDTO.getIdCard());
+                staffUserInfoDTO.setSex(sex);
+                //获取出生日期
+                String birthday = IdCardUtil.getBirthday(staffUserInfoDTO.getIdCard());
+                staffUserInfoDTO.setBirthday(birthday);
+            }
+            staffUserInfoDTO.setOnJobStatus("2");
+            //获取部门
+            if (StringUtils.isNotBlank(staffUserInfoDTO.getDepartment())){
+                OfficeDTO officeDTOByName = SpringUtil.getBean(IOfficeApi.class).getOfficeDTOByName(staffUserInfoDTO.getDepartment());
+                staffUserInfoDTO.setDepartment(officeDTOByName.getId());
+            }
+
+
+            staffUserInfoService.saveForm(staffUserInfoDTO);
+        }
+        list.addAll(dtoArrayList);
+        return ResponseEntity.ok(list);
+
+
+    }
+
+    /**
+     * 去除excel中的空行
+     * @param list
+     * @return
+     */
+    public ArrayList<StaffUserInfoDTO> getExcelList(List<StaffUserInfoDTO> list){
+
+        ArrayList<StaffUserInfoDTO> infoDTOS = new ArrayList<>();
+
+        list.stream().forEach(item->{
+            if(objectCheckIsNull(item)){
+                infoDTOS.add(item);
+            }
+        });
+
+        return infoDTOS;
+    }
+
+
+    public static boolean objectCheckIsNull(Object object) {
+        boolean flag = false; //定义返回结果,默认为true
+
+        if (Objects.isNull(object)) {
+            flag = false;
+        } else {
+            Class clazz = (Class) object.getClass(); // 得到类对象
+            Field fields[] = clazz.getDeclaredFields(); // 得到所有属性
+            for (Field field : fields) {
+                if("serialVersionUID".equals(field.getName()) || "BIZ_CODE".equalsIgnoreCase(field.getName())){
+                    continue;
+                }
+                field.setAccessible(true);
+                Object fieldValue = null;
+                try {
+                    fieldValue = field.get(object); //得到属性值
+                    Type fieldType = field.getGenericType();//得到属性类型
+                    String fieldName = field.getName(); // 得到属性名
+                    log.info("属性类型:" + fieldType + ",属性名:" + fieldName + ",属性值:" + fieldValue);
+                } catch (IllegalArgumentException e) {
+                    log.error(e.getMessage(), e);
+                } catch (IllegalAccessException e) {
+                    log.error(e.getMessage(), e);
+                }
+                if (fieldValue != null && fieldValue != "") {  //只要有一个属性值不为null 就返回false 表示对象不为null
+                    flag = true;
+                    break;
+                }
+            }
+        }
+
+        return flag;
+    }
+
+
+
+    @ApiLog(value = "导出用户信息", type = LogTypeEnum.EXPORT)
+    @GetMapping("export")
+    //@PreAuthorize ("hasAuthority('cw_finance:invoice:export')")
+    @ApiOperation(value = "导出用户信息")
+    public void exportFile(StaffUserInfoDTO userInfoDTO, Page <StaffUserInfoDTO> page, ExcelOptions options, HttpServletResponse response) throws Exception {
+        String fileName = options.getFilename();
+        String sheetName = options.getSheetName();
+        List<StaffUserInfoDTO> result = new ArrayList<>();
+        if ( ExportMode.current.equals ( options.getMode() ) ) {
+            result = staffUserInfoService.findPageList(userInfoDTO,page).getRecords();
+        } else if (ExportMode.selected.equals ( options.getMode() )) {
+            result = staffUserInfoService.findPageList(userInfoDTO,page).getRecords().stream ( ).filter ( item ->
+                    options.getSelectIds ( ).contains ( item.getId ( ) )
+            ).collect ( Collectors.toList ( ) );
+        } else {
+            page.setSize (-1);
+            page.setCurrent (0);
+            result = staffUserInfoService.findPageList(userInfoDTO,page).getRecords();
+        }
+        EasyPoiUtil.exportExcel ( result, sheetName,  sheetName, StaffUserInfoDTO.class, fileName, response );
+
+    }
+
+
 
 
 

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

@@ -31,6 +31,7 @@
             a.english_level,
             a.ncre,
             a.department,
+            (select name from sys_office where id = a.department) as departmentName,
             a.in_time,
             a.proc_ins_id,
             a.process_definition_id,
@@ -42,6 +43,7 @@
             a.email,
             a.type,
             a.fund_number,
+            (case when su.login_flag = '0' then '冻结' when su.login_flag = '1' then '正常' else '' end) as flagName,
             a.manager_office,
             so.name as officeName,
             su.name as createName,

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

@@ -286,7 +286,7 @@ public class StaffDimissionService {
                         item.setProcess("三级校审完成");
                         item.setProcessTime(item.getAudit3UpdateTime());
                     }
-                    if (StringUtils.isNotBlank(item.getReportStatus()) && !item.getReportStatus().equals("5")){
+                    if ((StringUtils.isNotBlank(item.getReportStatus()) && !item.getReportStatus().equals("5")) || StringUtils.isBlank(item.getReportStatus())){
                         item.setProcess("三级校审完成");
                         item.setProcessTime(item.getAudit3UpdateTime());
                         continue;
@@ -302,7 +302,7 @@ public class StaffDimissionService {
                         item.setProcess("外审完成");
                         item.setProcessTime(item.getOutTime());
                     }
-                    if (StringUtils.isNotBlank(item.getReportsStatus()) && !item.getReportsStatus().equals("5")){
+                    if ((StringUtils.isNotBlank(item.getReportsStatus()) && !item.getReportsStatus().equals("5")) ||StringUtils.isBlank(item.getReportsStatus())){
                         item.setProcess("外审完成");
                         item.setProcessTime(item.getOutTime());
                         continue;

+ 4 - 2
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/StaffUserInfoService.java

@@ -171,8 +171,8 @@ public class StaffUserInfoService {
      */
     public String saveForm(StaffUserInfoDTO staffUserInfoDTO) {
         String id="";
-        //获取当前登录人信息
-        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
+        //根据姓名获取员工信息
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getUserDTOByName(staffUserInfoDTO.getName());
 
         StaffUserInfo staffUserInfo = new StaffUserInfo();
         String roleId="";
@@ -181,6 +181,8 @@ public class StaffUserInfoService {
             for (String role : staffUserInfoDTO.getRoleIdList()) {
                 roleId+=role+",";
             }
+        }else {
+            roleId=userDTO.getRoleIds();
         }
         //获取岗位
         String postId="";

+ 9 - 3
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/dto/StaffDimissionDTO.java

@@ -1,5 +1,6 @@
 package com.jeeplus.business.humanResources.service.dto;
 
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.jeeplus.core.domain.BaseEntity;
@@ -18,31 +19,36 @@ import java.util.List;
 public class StaffDimissionDTO extends BaseEntity {
 
     //离职原因
+    @Excel(name = "离职原因",width = 25)
     private String reason;
 
     //离职日期
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    @Excel(name = "离职日期",width = 25,exportFormat = "yyyy-MM-dd")
     private Date dimissionDate;
-
+    @Excel(name = "离职状态",width = 25,dict = "program_project_list_info_status")
     private String status;                //流程状态
     private String procInsId;
     private String processDefinitionId;
 
     private String taskId;
-
+    @Excel(name = "部门",width = 25)
     private String officeName;
 
     private List<WorkAttachmentInfo> files;
 
     //离职日期
     private String[] dates;
-
+    @Excel(name = "姓名",width = 25)
     private String createName;
+    @Excel(name = "创建日期",width = 25,exportFormat = "yyyy-MM-dd")
+    private Date createTime;
 
     private String officeId;
 
     //交接信息
+    @Excel(name = "交接状态",width = 25,dict = "program_project_list_info_status")
     private String heirStatus;
     private String procInsIdHeir;
     private String procsDefIdHeir;

+ 69 - 4
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/dto/StaffUserInfoDTO.java

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

+ 37 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/service/dto/UserInfo.java

@@ -0,0 +1,37 @@
+package com.jeeplus.business.humanResources.service.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class UserInfo {
+
+
+
+    @ExcelProperty("姓名")
+    private String name;                //姓名
+
+    @ExcelProperty("籍贯")
+    private String nativePlace;         //籍贯
+
+    @ExcelProperty("身份证号码")
+    private String idCard;              //身份证号码
+
+    @ExcelProperty("联系电话")
+    private String mobilePhone;         //联系电话
+
+    /**
+     * 员工入职日期
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    @ExcelProperty(value = "入职时间",format = "yyyy-MM-dd")
+    private Date inTime;
+    @ExcelProperty("所属部门")
+    private String department;          //所属部门
+}

+ 131 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/humanResources/utils/IdCardUtil.java

@@ -0,0 +1,131 @@
+package com.jeeplus.business.humanResources.utils;
+
+import org.apache.commons.lang.StringUtils;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @Description:身份证号的util
+ * @Author:
+ * @Date: Created in 11:26 2019-03-27
+ * @Modified By:
+ */
+public class IdCardUtil {
+    /**
+     * 15位身份证号
+     */
+    private static final Integer FIFTEEN_ID_CARD=15;
+    /**
+     * 18位身份证号
+     */
+    private static final Integer EIGHTEEN_ID_CARD=18;
+    private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+
+    /**
+     * 根据身份证号获取性别
+     * @param IDCard
+     * @return
+     */
+    public static String getSex(String IDCard){
+        String sex ="";
+        if (StringUtils.isNotBlank(IDCard)){
+            //15位身份证号
+            if (IDCard.length() == FIFTEEN_ID_CARD){
+                if (Integer.parseInt(IDCard.substring(14, 15)) % 2 == 0) {
+                    sex = "女";
+                } else {
+                    sex = "男";
+                }
+                //18位身份证号
+            }else if(IDCard.length() == EIGHTEEN_ID_CARD){
+                // 判断性别
+                if (Integer.parseInt(IDCard.substring(16).substring(0, 1)) % 2 == 0) {
+                    sex = "女";
+                } else {
+                    sex = "男";
+                }
+            }
+        }
+        return sex;
+    }
+
+    /**
+     * 根据身份证号获取年龄
+     * @param IDCard
+     * @return
+     */
+    public static Integer getAge(String IDCard){
+        Integer age = 0;
+        Date date = new Date();
+        if (StringUtils.isNotBlank(IDCard)){
+            //15位身份证号
+            if (IDCard.length() == FIFTEEN_ID_CARD){
+                // 身份证上的年份(15位身份证为1980年前的)
+                String uyear = "19" + IDCard.substring(6, 8);
+                // 身份证上的月份
+                String uyue = IDCard.substring(8, 10);
+                // 当前年份
+                String fyear = format.format(date).substring(0, 4);
+                // 当前月份
+                String fyue = format.format(date).substring(5, 7);
+                if (Integer.parseInt(uyue) <= Integer.parseInt(fyue)) {
+                    age = Integer.parseInt(fyear) - Integer.parseInt(uyear) + 1;
+                    // 当前用户还没过生
+                } else {
+                    age = Integer.parseInt(fyear) - Integer.parseInt(uyear);
+                }
+                //18位身份证号
+            }else if(IDCard.length() == EIGHTEEN_ID_CARD){
+                // 身份证上的年份
+                String year = IDCard.substring(6).substring(0, 4);
+                // 身份证上的月份
+                String yue = IDCard.substring(10).substring(0, 2);
+                // 当前年份
+                String fyear = format.format(date).substring(0, 4);
+                // 当前月份
+                String fyue = format.format(date).substring(5, 7);
+                // 当前月份大于用户出身的月份表示已过生日
+                if (Integer.parseInt(yue) <= Integer.parseInt(fyue)) {
+                    age = Integer.parseInt(fyear) - Integer.parseInt(year) + 1;
+                    // 当前用户还没过生日
+                } else {
+                    age = Integer.parseInt(fyear) - Integer.parseInt(year);
+                }
+            }
+        }
+        return age;
+    }
+
+    /**
+     * 获取出生日期  yyyy年MM月dd日
+     * @param IDCard
+     * @return
+     */
+    public static String getBirthday(String IDCard){
+        String birthday="";
+        String year="";
+        String month="";
+        String day="";
+        if (StringUtils.isNotBlank(IDCard)){
+            //15位身份证号
+            if (IDCard.length() == FIFTEEN_ID_CARD){
+                // 身份证上的年份(15位身份证为1980年前的)
+                year = "19" + IDCard.substring(6, 8);
+                //身份证上的月份
+                month = IDCard.substring(8, 10);
+                //身份证上的日期
+                day= IDCard.substring(10, 12);
+                //18位身份证号
+            }else if(IDCard.length() == EIGHTEEN_ID_CARD){
+                // 身份证上的年份
+                year = IDCard.substring(6).substring(0, 4);
+                // 身份证上的月份
+                month = IDCard.substring(10).substring(0, 2);
+                //身份证上的日期
+                day=IDCard.substring(12).substring(0,2);
+            }
+            birthday=year+"-"+month+"-"+day;
+        }
+        return birthday;
+    }
+}

+ 2 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/inscription/domain/Inscription.java

@@ -1,5 +1,6 @@
 package com.jeeplus.business.inscription.domain;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.jeeplus.core.domain.BaseEntity;
 import lombok.Data;
@@ -12,6 +13,7 @@ public class Inscription extends BaseEntity {
      * 关联项目
      */
     private String projectId;
+    @TableField(exist = false)
     private String projectName;
 
     /**

+ 9 - 3
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/inscription/service/InscriptionService.java

@@ -216,12 +216,13 @@ public class InscriptionService {
         //获取当前登录人信息
         UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
         Inscription inscription = new Inscription();
+        BeanUtils.copyProperties(inscriptionDTO,inscription);
         for (JyProject jyProject : inscriptionDTO.getProjectList()) {
             inscription.setProjectId(jyProject.getProjectId());
         }
-        BeanUtils.copyProperties(inscriptionDTO,inscription);
         inscription.setUpdateById(userDTO.getId());
         inscription.setUpdateTime(new Date());
+        inscription.setId(inscriptionDTO.getId());
         inscriptionMapper.updateById(inscription);
         //修改附件
         List<WorkAttachmentInfo> files = inscriptionDTO.getFiles();
@@ -373,7 +374,13 @@ public class InscriptionService {
                 JyProject jyProject=jyProjectMapper.getById(dto.getProjectId());
                 projects.add(jyProject);
                 inscriptionDTO.setProjectList(projects);
+                inscriptionDTO.setProjectNo(jyProject.getNo());
             }
+            if (ObjectUtils.isNotEmpty(dto.getNormalPage()) && ObjectUtils.isNotEmpty(dto.getColorPage())){
+                //用于管理员修改彩页数量时做的计算
+                inscriptionDTO.setPageTotal(dto.getNormalPage()+dto.getColorPage());
+            }
+
         }
         // 查询附件信息
         List<WorkAttachmentInfo> files = goOutMapper.findDtos(id);
@@ -384,8 +391,7 @@ public class InscriptionService {
             inscriptionDTO.setFiles(files);
         }
 
-        //用于管理员修改彩页数量时做的计算
-        inscriptionDTO.setPageTotal(dto.getNormalPage()+dto.getColorPage());
+
 
         return inscriptionDTO;
     }

+ 2 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/inscription/service/dto/InscriptionDTO.java

@@ -85,5 +85,7 @@ public class InscriptionDTO extends BaseEntity {
     //总页数
     private Integer pageTotal;
 
+    private String projectNo;
+
 
 }

+ 4 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/domain/MeetingRoom.java

@@ -5,13 +5,17 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.jeeplus.core.domain.BaseEntity;
+import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.sql.Time;
 import java.util.Date;
 
 @Data
+@NoArgsConstructor
+@AllArgsConstructor
 @TableName("jy_meeting_room")
 public class MeetingRoom extends BaseEntity {
 

+ 36 - 22
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/service/MeetingRoomService.java

@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jeeplus.business.meetingRoom.domain.MeetingRoom;
 import com.jeeplus.business.meetingRoom.mapper.MeetingRoomMapper;
@@ -60,7 +61,12 @@ public class MeetingRoomService {
         }
         IPage<MeetingRoom> iPage=meetingRoomMapper.findPageList(page,meetingRoomQueryWrapper);
         iPage.getRecords().stream().forEach(item->{
-            item.setStartDateTime(item.getStartDate()+" "+item.getStartTime());
+            if (ObjectUtils.isNotEmpty(item.getStartDate()) && ObjectUtils.isNotEmpty(item.getStartTime())){
+                item.setStartDateTime(item.getStartDate()+" "+item.getStartTime());
+            }else {
+                item.setStartDateTime("");
+            }
+
         });
 
         return iPage;
@@ -78,17 +84,37 @@ public class MeetingRoomService {
         BeanUtil.copyProperties(meetingRoomDTO,meetingRoom);
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
         SimpleDateFormat Format = new SimpleDateFormat("HH:mm");
-        meetingRoom.setStartDate(meetingRoomDTO.getStartDate()); // 会议开始日期
-        meetingRoom.setStartTime(meetingRoomDTO.getStartTime());// 会议开始时间
-        meetingRoom.setTitle(meetingRoomDTO.getTitle()); //标题
-        Integer timeLong=0;
-        //会议时长计算
-        if (meetingRoomDTO.getDuration()==30){
-            timeLong=30*60;
+        if (StringUtils.isNotBlank(meetingRoomDTO.getStartDate())){
+            meetingRoom.setStartDate(meetingRoomDTO.getStartDate()); // 会议开始日期
         }
-        if (meetingRoomDTO.getDuration()==1 || meetingRoomDTO.getDuration()==2 || meetingRoomDTO.getDuration()==3){
-            timeLong=meetingRoomDTO.getDuration()*60*60;
+        if (ObjectUtils.isNotEmpty(meetingRoomDTO.getStartTime())){
+            meetingRoom.setStartTime(meetingRoomDTO.getStartTime());// 会议开始时间
+        }
+        if (ObjectUtils.isNotEmpty(meetingRoomDTO.getDuration())){
+            Integer timeLong=0;
+            //会议时长计算
+            if (meetingRoomDTO.getDuration()==30){
+                timeLong=30*60;
+            }
+            if (meetingRoomDTO.getDuration()==1 || meetingRoomDTO.getDuration()==2 || meetingRoomDTO.getDuration()==3){
+                timeLong=meetingRoomDTO.getDuration()*60*60;
+            }
+            //会议结束时间
+
+            //将开始时间转为LocalTime
+            LocalTime localTime = meetingRoom.getStartTime().toLocalTime();
+            //调用plus方法获取timglong之后的时间
+            LocalTime plus = localTime.plus(timeLong, ChronoUnit.SECONDS);
+            //设置时间格式
+            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
+            String formattedDate = plus.format(formatter);
+            //生成新的time类型的时间
+            Time time = Time.valueOf(formattedDate);
+            meetingRoom.setEndTime(time);
         }
+
+        meetingRoom.setTitle(meetingRoomDTO.getTitle()); //标题
+
          //会议时长
         meetingRoom.setDuration(meetingRoomDTO.getDuration());
         meetingRoom.setRemarks(meetingRoomDTO.getRemarks()); //会议说明
@@ -97,18 +123,6 @@ public class MeetingRoomService {
         meetingRoom.setUpdateById(userDTO.getId());
         meetingRoom.setUpdateTime(new Date());
         meetingRoom.setDelFlag(0);
-        //会议结束时间
-
-        //将开始时间转为LocalTime
-        LocalTime localTime = meetingRoom.getStartTime().toLocalTime();
-        //调用plus方法获取timglong之后的时间
-        LocalTime plus = localTime.plus(timeLong, ChronoUnit.SECONDS);
-        //设置时间格式
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
-        String formattedDate = plus.format(formatter);
-        //生成新的time类型的时间
-        Time time = Time.valueOf(formattedDate);
-        meetingRoom.setEndTime(time);
 
 
         if (StringUtils.isNotBlank(meetingRoomDTO.getId())){

+ 5 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/service/dto/MeetingRoomDTO.java

@@ -3,6 +3,8 @@ package com.jeeplus.business.meetingRoom.service.dto;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.jeeplus.core.domain.BaseEntity;
 import com.jeeplus.core.service.dto.BaseDTO;
 import lombok.AllArgsConstructor;
@@ -93,4 +95,7 @@ public class MeetingRoomDTO extends BaseDTO {
 
 
 
+
+
+
 }

+ 7 - 5
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/monthly/service/MonthlyService.java

@@ -21,6 +21,7 @@ import com.jeeplus.common.TokenProvider;
 import com.jeeplus.core.query.QueryWrapperGenerator;
 import com.jeeplus.flowable.feign.IFlowableApi;
 import com.jeeplus.sys.domain.WorkAttachmentInfo;
+import com.jeeplus.sys.feign.IOfficeApi;
 import com.jeeplus.sys.feign.IPostApi;
 import com.jeeplus.sys.feign.IUserApi;
 import com.jeeplus.sys.feign.IWorkAttachmentApi;
@@ -261,15 +262,16 @@ public class MonthlyService {
             //给办公室和部门主任抄送
             ArrayList<UserDTO> userDTOS = new ArrayList<>();
             PostDTO postDTOByName = SpringUtil.getBean(IPostApi.class).getPostDTOByName("办公室(嘉溢)");
-            PostDTO postDTOByName1 = SpringUtil.getBean(IPostApi.class).getPostDTOByName("部门主任(嘉溢)");
+            List<UserDTO> officeId = SpringUtil.getBean(IUserApi.class).findListByOfficeId(userDTO.getOfficeDTO().getId());
             List<UserDTO> listByPostId = SpringUtil.getBean(IUserApi.class).findListByPostId(postDTOByName.getId());
-            List<UserDTO> listByPostId1 = SpringUtil.getBean(IUserApi.class).findListByPostId(postDTOByName1.getId());
+            for (UserDTO dto : officeId) {
+                if (StringUtils.isNotBlank(dto.getManageOfficeIds())){
+                    userDTOS.add(dto);
+                }
+            }
             listByPostId.stream().forEach(item->{
                 userDTOS.add(item);
             });
-            listByPostId1.stream().forEach(item->{
-                userDTOS.add(item);
-            });
             for (UserDTO dto : userDTOS) {
                 String id1 = UUID.randomUUID().toString().replace("-", "");
                 FlowCopy flowCopy = new FlowCopy();

+ 10 - 6
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/notify/service/JyNotifyService.java

@@ -10,6 +10,7 @@ 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.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
@@ -378,12 +379,15 @@ public class JyNotifyService extends ServiceImpl <JyNotifyMapper, JyNotify> {
         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);
+        if (ObjectUtils.isNotEmpty(notifyRecord)){
+            //修改阅读状态
+            JyNotifyRecord jyNotifyRecord = new JyNotifyRecord();
+            jyNotifyRecord.setId(notifyRecord.getId());
+            jyNotifyRecord.setReadFlag("1");
+            jyNotifyRecord.setReadDate(new Date());
+            jyNotifyRecordMapper.updateById(jyNotifyRecord);
+        }
+
     }
 
     public String addComment(PluginNotifyComments comment) {

+ 1 - 3
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/domain/JyProject.java

@@ -12,8 +12,7 @@ import java.util.List;
 
 @Data
 @TableName("jy_project_record")
-public class
-JyProject extends BaseEntity implements Serializable {
+public class JyProject extends BaseEntity implements Serializable {
     //项目编号(字典值)
     public static final String BIZ_CODE = "36";
 
@@ -170,7 +169,6 @@ JyProject extends BaseEntity implements Serializable {
     @Excel(name = "主委托方",width = 16)
     private String primaryLinkman;
 
-    @TableField(exist = false)
     @Excel(name = "创建人",width = 16)
     private String createById;
     @Excel(name = "创建时间",width = 16,exportFormat = "yyyy-MM-dd")

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

@@ -132,7 +132,7 @@
            par.proc_ins_id as procInsIdArchive,
            art5.ID_ as task_id_archive,
            peq.status as eiaStatus,
-           peq.id as EiaId,
+           peq.id as eiaId,
            peq.proc_ins_id as procInsIdEia,
            art6.ID_ as task_id_Eia,
             bc.member_count
@@ -220,7 +220,7 @@
            par.proc_ins_id as procInsIdArchive,
            art5.ID_ as task_id_archive,
            peq.status as eiaStatus,
-           peq.id as EiaId,
+           peq.id as eiaId,
            peq.proc_ins_id as procInsIdEia,
            art6.ID_ as task_id_Eia,
             bc.member_count
@@ -324,7 +324,7 @@
            par.proc_ins_id as procInsIdArchive,
            art5.ID_ as task_id_archive,
            peq.status as eiaStatus,
-           peq.id as EiaId,
+           peq.id as eiaId,
            peq.proc_ins_id as procInsIdEia,
            art6.ID_ as task_id_Eia,
            so.name as auditOffice

+ 17 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/service/JyProjectService.java

@@ -317,6 +317,8 @@ public class JyProjectService {
         jyProject.setProjectPlace(dto.getProjectPlace());//项目所在地
         jyProject.setStatus(dto.getStatus());
         jyProject.setDelFlag(0);
+         jyProject.setCreateById(userDTO.getId());
+        jyProject.setCreateTime(new Date());
         jyProject.setContractStatus(dto.getContractStatus());//合同情况
         jyProject.setSpecial(dto.getSpecial());//特殊要求
         jyProject.setProjectOverview(dto.getProjectOverview());//工程概况
@@ -325,7 +327,14 @@ public class JyProjectService {
         //保存项目组成员
         List<String> strings = new ArrayList<>();
         strings.add(userDTO.getId());
-        strings.add(dto.getProjectLeader());
+        //将部门主任添加到项目组成员中
+        List<UserDTO> listByOfficeId = SpringUtil.getBean(IUserApi.class).findListByOfficeId(userDTO.getOfficeDTO().getId());
+        for (UserDTO userDTO1 : listByOfficeId) {
+            if (userDTO1.getManageOfficeIds().contains(userDTO.getOfficeDTO().getId()) && StringUtils.isNotBlank(userDTO1.getManageOfficeIds())){
+                strings.add(userDTO1.getId());
+                break;
+            }
+        }
         for (String string : strings) {
             JyProjectMembers jyProjectMembers = new JyProjectMembers();
             String memberId = UUID.randomUUID().toString().replace("-", "");
@@ -592,6 +601,7 @@ public class JyProjectService {
                                 //用印类型为报告,则获取报告签发
                                 if ( s.equals(info.getId()) && signet.getTypeStatus().equals("1") ){
                                     info.setSealId(signet.getId());
+
                                 }
                                 if (s.equals(info.getId()) && signet.getTypeStatus().equals("2")){
                                     //用印类型为报批,则设置报批签发所需信息
@@ -1024,11 +1034,13 @@ public class JyProjectService {
                     for (int i = strings.size()+1; i <strings1.size() ; i++) {
                         strings.add("");
                     }
+                    strings.add("");
                     data.put("firstAuditList",strings);
                 }else if (strings.size()>strings1.size()){
                     for (int i = strings1.size()+1; i <strings.size() ; i++) {
                         strings1.add("");
                     }
+                    strings1.add("");
                     data.put("firstEditList",strings1);
                 }
 
@@ -1100,11 +1112,13 @@ public class JyProjectService {
                     for (int i = strings.size()+1; i <strings1.size() ; i++) {
                         strings.add("");
                     }
+                    strings.add("");
                     data.put("secondAuditList",strings);
                 }else if (strings.size()>strings1.size()){
                     for (int i = strings1.size()+1; i <strings.size() ; i++) {
                         strings1.add("");
                     }
+                    strings1.add("");
                     data.put("secondEditList",strings1);
                 }
 
@@ -1175,11 +1189,13 @@ public class JyProjectService {
                     for (int i = strings.size()+1; i <strings1.size() ; i++) {
                         strings.add("");
                     }
+                    strings.add("");
                     data.put("thirdAuditList",strings);
                 }else if (strings.size()>strings1.size()){
                     for (int i = strings1.size()+1; i <strings.size() ; i++) {
                         strings1.add("");
                     }
+                    strings1.add("");
                     data.put("thirdEditList",strings1);
                 }
 

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

@@ -318,5 +318,43 @@ public class JyProjectDTO extends BaseEntity implements Serializable {
     private String officeName;
 
 
+    /**
+     * 归档
+     */
+    @TableField(exist = false)
+    private String archiveId;
+    @TableField(exist = false)
+    private String procInsIdArchive;
+    @TableField(exist = false)
+    private String taskIdArchive;
+
+
+    /**
+     * 环评资质
+     */
+    @TableField(exist = false)
+    private String eiaId;
+    @TableField(exist = false)
+    private String procInsIdEia;
+    @TableField(exist = false)
+    private String taskIdEia;
+
+    /**
+     * 用印id
+     */
+    @TableField(exist = false)
+    private String sealId;
+
+    /**
+     * 外审信息
+     */
+    @TableField(exist = false)
+    private String outInstanceId;
+    @TableField(exist = false)
+    private String procInsIdOut;
+    @TableField(exist = false)
+    private String taskIdOut;
+
+
 
 }

+ 6 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/reimbursement/mapper/xml/JyReimbursementInfoMapper.xml

@@ -151,6 +151,9 @@
 		a.dept_id,
 		a.type_id,
 		a.project_id,
+		a.receipt_number,
+		a.days,
+		a.content,
 		a.report_number,
 		a.number,
 		su.name as user_name,
@@ -231,6 +234,9 @@
 		a.type_id,
 		a.project_id,
 		a.report_number,
+		a.receipt_number,
+		a.days,
+		a.content,
 		a.number,
 		su.name as user_name,
 		so.name as dept_name,

+ 4 - 4
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/reimbursement/service/JyReimbursementInfoService.java

@@ -99,10 +99,10 @@ public class JyReimbursementInfoService {
         }
         // 报销类别
         if (StringUtils.isNotEmpty(dto.getRemiType())) {
-            queryWrapper.apply(" (b.type_id = {0} OR t.name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
-            queryWrapper.or().apply(" (b2.type_id = {0} OR t2.name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
-            queryWrapper.or().apply(" (b3.type_id = {0} OR t3.name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
-            queryWrapper.or().apply(" (b4.type_id = {0} OR t4.name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
+            queryWrapper.apply(" (b.type_id = {0} OR b.type_name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
+            queryWrapper.or().apply(" (b2.type_id = {0} OR b.type_name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
+            queryWrapper.or().apply(" (b3.type_id = {0} OR b.type_name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
+            queryWrapper.or().apply(" (b4.type_id = {0} OR b.type_name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
 
         }
         // 报销金额

+ 7 - 6
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/useSeal/service/SignetService.java

@@ -439,21 +439,22 @@ public class SignetService {
      */
     public void updateStatusById(String id,String status) {
         signetMapper.updateStatusById(id,status);
-        SignetDTO signetDTO = signetMapper.findById(id);
-        //修改项目中的报告签发状态
-        if (StringUtils.isNotBlank(signetDTO.getProjectId())){
-            String[] split = signetDTO.getProjectId().split(",");
-            for (String s : split) {
+        if (status.equals("5")){
+            SignetDTO signetDTO = signetMapper.findById(id);
+            //修改项目中的报告签发状态
+            if (StringUtils.isNotBlank(signetDTO.getProjectId())){
+                String[] split = signetDTO.getProjectId().split(",");
+                for (String s : split) {
                     if (StringUtils.isNotBlank(s) && signetDTO.getTypeStatus().equals("1")){
                         jyProjectMapper.updateReportIssuanceById(s,signetDTO.getStatus());
                     }
                     if (StringUtils.isNotBlank(s) && signetDTO.getTypeStatus().equals("2")){
                         jyProjectMapper.updateReportsSubmit(s,signetDTO.getStatus());
                     }
+                }
             }
         }
 
-
     }
 
     /**

+ 3 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/service/JyWorkClientService.java

@@ -80,6 +80,9 @@ public class JyWorkClientService {
             if (StringUtils.isNotBlank(workClientInfo.getCreateById())) {
                 workClientInfoQueryWrapper.eq("a.create_by_id",workClientInfo.getCreateById());
             }
+            if (StringUtils.isNotBlank(workClientInfo.getNumber())){
+                workClientInfoQueryWrapper.like("a.number",workClientInfo.getNumber());
+            }
             if (StringUtils.isNotEmpty(workClientInfo.getClientType())){
                 workClientInfoQueryWrapper.eq("a.client_type",workClientInfo.getClientType());
             }

BIN
jeeplus-modules/jeeplus-business/src/main/resources/dot/用户数据导入模板.xlsx


+ 5 - 2
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/RoleController.java

@@ -24,6 +24,9 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 角色Controller
@@ -65,9 +68,9 @@ public class RoleController {
      */
     @ApiLog("查询角色列表")
     @GetMapping("list2")
-    public ResponseEntity <IPage <Role>> data2(Role role, Page <Role> page) throws Exception {
+    public ResponseEntity <List<Role>> data2(Role role, Page <Role> page) throws Exception {
         QueryWrapper <Role> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( role, Role.class );
-        IPage <Role> result = roleService.page ( page, queryWrapper );
+        List <Role> result = roleService.page ( page, queryWrapper ).getRecords().stream().filter(roles->!"租户管理员".equals(roles.getName())).collect(Collectors.toList());
         return ResponseEntity.ok ( result );
     }