renqianlong пре 1 година
родитељ
комит
d56e2e69c9
100 измењених фајлова са 5781 додато и 361 уклоњено
  1. 2 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/AdminBusinessApplication.java
  2. 26 6
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/company/CompanyCertificateController.java
  3. 17 6
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/company/CompanyController.java
  4. 6 6
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/company/CompanyDepartmentController.java
  5. 112 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffBankInfoController.java
  6. 22 11
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffCertificateController.java
  7. 112 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffContractArchivesController.java
  8. 123 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffController.java
  9. 112 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffEduBgController.java
  10. 112 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffEmergencyContactController.java
  11. 2 1
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/CompanyUserServiceImpl.java
  12. 0 14
      zhongzheng-system/src/main/java/com/zhongzheng/modules/certificate/mapper/StaffCertificateMapper.java
  13. 0 110
      zhongzheng-system/src/main/java/com/zhongzheng/modules/certificate/service/impl/StaffCertificateServiceImpl.java
  14. 4 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyAddBo.java
  15. 63 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyCertificateAddBo.java
  16. 61 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyCertificateEditBo.java
  17. 26 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyCertificateInfo.java
  18. 53 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyCertificateQueryBo.java
  19. 4 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyDepartmentAddBo.java
  20. 2 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyDepartmentEditBo.java
  21. 5 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyDepartmentQueryBo.java
  22. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyEditBo.java
  23. 4 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyQueryBo.java
  24. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyUserAddBo.java
  25. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyUserEditBo.java
  26. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyUserQueryBo.java
  27. 21 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/ExcelCompanyCertificateBo.java
  28. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/domain/Company.java
  29. 103 12
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/domain/CompanyCertificate.java
  30. 6 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/domain/CompanyDepartment.java
  31. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/domain/CompanyUser.java
  32. 7 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/mapper/CompanyCertificateMapper.java
  33. 11 3
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/service/ICompanyCertificateService.java
  34. 8 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/service/ICompanyDepartmentService.java
  35. 8 3
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/service/ICompanyService.java
  36. 374 36
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/service/impl/CompanyCertificateServiceImpl.java
  37. 114 14
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/service/impl/CompanyDepartmentServiceImpl.java
  38. 64 11
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/service/impl/CompanyServiceImpl.java
  39. 84 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/vo/CompanyCertificateVo.java
  40. 2 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/vo/CompanyDepartmentVo.java
  41. 8 3
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/vo/CompanyVo.java
  42. 145 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/company/vo/ExcelCompanyCertificateVo.java
  43. 0 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderBusinessConfig.java
  44. 130 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffAddBo.java
  45. 45 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffBankInfoAddBo.java
  46. 53 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffBankInfoEditBo.java
  47. 57 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffBankInfoQueryBo.java
  48. 16 11
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffCertificateAddBo.java
  49. 21 13
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffCertificateEditBo.java
  50. 31 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffCertificateMajorInfo.java
  51. 22 13
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffCertificateQueryBo.java
  52. 57 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffContractArchivesAddBo.java
  53. 69 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffContractArchivesEditBo.java
  54. 69 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffContractArchivesQueryBo.java
  55. 144 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffEditBo.java
  56. 60 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffEduBgAddBo.java
  57. 73 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffEduBgEditBo.java
  58. 72 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffEduBgQueryBo.java
  59. 45 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffEmergencyContactAddBo.java
  60. 53 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffEmergencyContactEditBo.java
  61. 57 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffEmergencyContactQueryBo.java
  62. 133 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffQueryBo.java
  63. 94 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/domain/Staff.java
  64. 47 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/domain/StaffBankInfo.java
  65. 11 12
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/domain/StaffCertificate.java
  66. 55 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/domain/StaffContractArchives.java
  67. 57 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/domain/StaffEduBg.java
  68. 47 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/domain/StaffEmergencyContact.java
  69. 14 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/mapper/StaffBankInfoMapper.java
  70. 19 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/mapper/StaffCertificateMapper.java
  71. 14 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/mapper/StaffContractArchivesMapper.java
  72. 14 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/mapper/StaffEduBgMapper.java
  73. 14 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/mapper/StaffEmergencyContactMapper.java
  74. 20 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/mapper/StaffMapper.java
  75. 52 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/IStaffBankInfoService.java
  76. 14 9
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/IStaffCertificateService.java
  77. 52 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/IStaffContractArchivesService.java
  78. 52 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/IStaffEduBgService.java
  79. 52 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/IStaffEmergencyContactService.java
  80. 63 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/IStaffService.java
  81. 104 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/impl/StaffBankInfoServiceImpl.java
  82. 205 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/impl/StaffCertificateServiceImpl.java
  83. 108 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/impl/StaffContractArchivesServiceImpl.java
  84. 109 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/impl/StaffEduBgServiceImpl.java
  85. 104 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/impl/StaffEmergencyContactServiceImpl.java
  86. 485 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/impl/StaffServiceImpl.java
  87. 81 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/vo/ExcelStaffCertificateVo.java
  88. 183 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/vo/ExcelStaffVo.java
  89. 51 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/vo/StaffBankInfoVo.java
  90. 39 15
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/vo/StaffCertificateVo.java
  91. 67 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/vo/StaffContractArchivesVo.java
  92. 71 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/vo/StaffEduBgVo.java
  93. 51 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/vo/StaffEmergencyContactVo.java
  94. 183 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/vo/StaffVo.java
  95. 0 26
      zhongzheng-system/src/main/resources/mapper/modules/certificate/StaffCertificateMapper.xml
  96. 73 0
      zhongzheng-system/src/main/resources/mapper/modules/company/CompanyCertificateMapper.xml
  97. 20 0
      zhongzheng-system/src/main/resources/mapper/modules/staff/StaffBankInfoMapper.xml
  98. 71 0
      zhongzheng-system/src/main/resources/mapper/modules/staff/StaffCertificateMapper.xml
  99. 24 0
      zhongzheng-system/src/main/resources/mapper/modules/staff/StaffContractArchivesMapper.xml
  100. 25 0
      zhongzheng-system/src/main/resources/mapper/modules/staff/StaffEduBgMapper.xml

+ 2 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/AdminBusinessApplication.java

@@ -4,6 +4,7 @@ import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
 import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 /**
  * 启动程序
@@ -13,6 +14,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
 
 @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
 @EnableScheduling
+@EnableTransactionManagement
 public class AdminBusinessApplication
 {
     public static void main(String[] args)

+ 26 - 6
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/company/CompanyCertificateController.java

@@ -1,8 +1,20 @@
 package com.zhongzheng.controller.company;
 
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Arrays;
+import java.util.Map;
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.lang.Validator;
+import com.zhongzheng.common.core.domain.model.LoginUser;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.common.utils.poi.EasyPoiUtil;
+import com.zhongzheng.modules.bank.bo.QuestionAddBo;
+import com.zhongzheng.modules.bank.vo.QuestionImportV2;
+import com.zhongzheng.modules.company.bo.ExcelCompanyCertificateBo;
 import lombok.RequiredArgsConstructor;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,6 +39,7 @@ import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.common.core.page.TableDataInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 企业证书Controller
@@ -47,7 +60,7 @@ public class CompanyCertificateController extends BaseController {
      */
     @ApiOperation("查询企业证书列表")
     @PreAuthorize("@ss.hasPermi('system:certificate:list')")
-    @GetMapping("/list")
+    @GetMapping("/certificateList")
     public TableDataInfo<CompanyCertificateVo> list(CompanyCertificateQueryBo bo) {
         startPage();
         List<CompanyCertificateVo> list = iCompanyCertificateService.queryList(bo);
@@ -83,7 +96,7 @@ public class CompanyCertificateController extends BaseController {
     @ApiOperation("新增企业证书")
     @PreAuthorize("@ss.hasPermi('system:certificate:add')")
     @Log(title = "企业证书", businessType = BusinessType.INSERT)
-    @PostMapping()
+    @PostMapping("/addCertificate")
     public AjaxResult<Void> add(@RequestBody CompanyCertificateAddBo bo) {
         return toAjax(iCompanyCertificateService.insertByAddBo(bo) ? 1 : 0);
     }
@@ -94,7 +107,7 @@ public class CompanyCertificateController extends BaseController {
     @ApiOperation("修改企业证书")
     @PreAuthorize("@ss.hasPermi('system:certificate:edit')")
     @Log(title = "企业证书", businessType = BusinessType.UPDATE)
-    @PutMapping()
+    @PostMapping("/updateCertificate")
     public AjaxResult<Void> edit(@RequestBody CompanyCertificateEditBo bo) {
         return toAjax(iCompanyCertificateService.updateByEditBo(bo) ? 1 : 0);
     }
@@ -105,8 +118,15 @@ public class CompanyCertificateController extends BaseController {
     @ApiOperation("删除企业证书")
     @PreAuthorize("@ss.hasPermi('system:certificate:remove')")
     @Log(title = "企业证书" , businessType = BusinessType.DELETE)
-    @DeleteMapping("/{certificateIds}")
-    public AjaxResult<Void> remove(@PathVariable Long[] certificateIds) {
-        return toAjax(iCompanyCertificateService.deleteWithValidByIds(Arrays.asList(certificateIds), true) ? 1 : 0);
+    @PostMapping("/deleteCertificate")
+    public AjaxResult<Void> remove(@RequestBody CompanyCertificateEditBo bo) {
+        return toAjax(iCompanyCertificateService.deleteWithValidByIds(bo) ? 1 : 0);
+    }
+    @ApiOperation("导入题目模板返回数组")
+    @PreAuthorize("@ss.hasPermi('system:question:import')")
+    @PostMapping("/importCertificateList")
+    public AjaxResult<Void> importDataBackList(ExcelCompanyCertificateBo bo) throws Exception
+    {
+        return toAjax(iCompanyCertificateService.importCertificateExcel(bo)? 1 : 0);
     }
 }

+ 17 - 6
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/company/CompanyController.java

@@ -47,12 +47,23 @@ public class CompanyController extends BaseController {
      */
     @ApiOperation("查询企业列表")
     @PreAuthorize("@ss.hasPermi('system:company:list')")
-    @GetMapping("/list")
+    @GetMapping("/companyList")
     public TableDataInfo<CompanyVo> list(CompanyQueryBo bo) {
         startPage();
         List<CompanyVo> list = iCompanyService.queryList(bo);
         return getDataTable(list);
     }
+    /**
+     * 查询企业列表
+     */
+    @ApiOperation("查询企业部门列表")
+    @PreAuthorize("@ss.hasPermi('system:company:list')")
+    @GetMapping("/departmentList")
+    public TableDataInfo<CompanyVo> selectCompanyDept(CompanyQueryBo bo) {
+        startPage();
+        List<CompanyVo> list = iCompanyService.selectCompanyDepartment(bo);
+        return getDataTable(list);
+    }
 
     /**
      * 导出企业列表
@@ -83,7 +94,7 @@ public class CompanyController extends BaseController {
     @ApiOperation("新增企业")
     @PreAuthorize("@ss.hasPermi('system:company:add')")
     @Log(title = "企业", businessType = BusinessType.INSERT)
-    @PostMapping()
+    @PostMapping("/addCompany")
     public AjaxResult<Void> add(@RequestBody CompanyAddBo bo) {
         return toAjax(iCompanyService.insertByAddBo(bo) ? 1 : 0);
     }
@@ -94,7 +105,7 @@ public class CompanyController extends BaseController {
     @ApiOperation("修改企业")
     @PreAuthorize("@ss.hasPermi('system:company:edit')")
     @Log(title = "企业", businessType = BusinessType.UPDATE)
-    @PutMapping()
+    @PostMapping("/updateCompany")
     public AjaxResult<Void> edit(@RequestBody CompanyEditBo bo) {
         return toAjax(iCompanyService.updateByEditBo(bo) ? 1 : 0);
     }
@@ -105,8 +116,8 @@ public class CompanyController extends BaseController {
     @ApiOperation("删除企业")
     @PreAuthorize("@ss.hasPermi('system:company:remove')")
     @Log(title = "企业" , businessType = BusinessType.DELETE)
-    @DeleteMapping("/{companyIds}")
-    public AjaxResult<Void> remove(@PathVariable Long[] companyIds) {
-        return toAjax(iCompanyService.deleteWithValidByIds(Arrays.asList(companyIds), true) ? 1 : 0);
+    @PostMapping("/deleteCompany")
+    public AjaxResult<Void> remove(@RequestBody CompanyEditBo bo) {
+        return toAjax(iCompanyService.deleteWithValidByIds(bo) ? 1 : 0);
     }
 }

+ 6 - 6
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/company/CompanyDepartmentController.java

@@ -47,7 +47,7 @@ public class CompanyDepartmentController extends BaseController {
      */
     @ApiOperation("查询企业部门列表")
     @PreAuthorize("@ss.hasPermi('system:department:list')")
-    @GetMapping("/list")
+    @GetMapping("/departmentList")
     public TableDataInfo<CompanyDepartmentVo> list(CompanyDepartmentQueryBo bo) {
         startPage();
         List<CompanyDepartmentVo> list = iCompanyDepartmentService.queryList(bo);
@@ -83,7 +83,7 @@ public class CompanyDepartmentController extends BaseController {
     @ApiOperation("新增企业部门")
     @PreAuthorize("@ss.hasPermi('system:department:add')")
     @Log(title = "企业部门", businessType = BusinessType.INSERT)
-    @PostMapping()
+    @PostMapping("addDepartment")
     public AjaxResult<Void> add(@RequestBody CompanyDepartmentAddBo bo) {
         return toAjax(iCompanyDepartmentService.insertByAddBo(bo) ? 1 : 0);
     }
@@ -94,7 +94,7 @@ public class CompanyDepartmentController extends BaseController {
     @ApiOperation("修改企业部门")
     @PreAuthorize("@ss.hasPermi('system:department:edit')")
     @Log(title = "企业部门", businessType = BusinessType.UPDATE)
-    @PutMapping()
+    @PostMapping("updateDepartment")
     public AjaxResult<Void> edit(@RequestBody CompanyDepartmentEditBo bo) {
         return toAjax(iCompanyDepartmentService.updateByEditBo(bo) ? 1 : 0);
     }
@@ -105,8 +105,8 @@ public class CompanyDepartmentController extends BaseController {
     @ApiOperation("删除企业部门")
     @PreAuthorize("@ss.hasPermi('system:department:remove')")
     @Log(title = "企业部门" , businessType = BusinessType.DELETE)
-    @DeleteMapping("/{departmentIds}")
-    public AjaxResult<Void> remove(@PathVariable Long[] departmentIds) {
-        return toAjax(iCompanyDepartmentService.deleteWithValidByIds(Arrays.asList(departmentIds), true) ? 1 : 0);
+    @PostMapping("/deleteDepartment")
+    public AjaxResult<Void> remove(@RequestBody CompanyDepartmentEditBo bo) {
+        return toAjax(iCompanyDepartmentService.deleteWithValidByIds(bo) ? 1 : 0);
     }
 }

+ 112 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffBankInfoController.java

@@ -0,0 +1,112 @@
+package com.zhongzheng.controller.staff;
+
+import java.util.List;
+import java.util.Arrays;
+
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.modules.staff.vo.StaffBankInfoVo;
+import com.zhongzheng.modules.staff.bo.StaffBankInfoQueryBo;
+import com.zhongzheng.modules.staff.bo.StaffBankInfoAddBo;
+import com.zhongzheng.modules.staff.bo.StaffBankInfoEditBo;
+import com.zhongzheng.modules.staff.service.IStaffBankInfoService;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 员工银行信息Controller
+ * 
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Api(value = "员工银行信息控制器", tags = {"员工银行信息管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/info")
+public class StaffBankInfoController extends BaseController {
+
+    private final IStaffBankInfoService iStaffBankInfoService;
+
+    /**
+     * 查询员工银行信息列表
+     */
+    @ApiOperation("查询员工银行信息列表")
+    @PreAuthorize("@ss.hasPermi('system:info:list')")
+    @GetMapping("/list")
+    public TableDataInfo<StaffBankInfoVo> list(StaffBankInfoQueryBo bo) {
+        startPage();
+        List<StaffBankInfoVo> list = iStaffBankInfoService.queryList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出员工银行信息列表
+     */
+    @ApiOperation("导出员工银行信息列表")
+    @PreAuthorize("@ss.hasPermi('system:info:export')")
+    @Log(title = "员工银行信息", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult<StaffBankInfoVo> export(StaffBankInfoQueryBo bo) {
+        List<StaffBankInfoVo> list = iStaffBankInfoService.queryList(bo);
+        ExcelUtil<StaffBankInfoVo> util = new ExcelUtil<StaffBankInfoVo>(StaffBankInfoVo.class);
+        return util.exportExcel(list, "员工银行信息");
+    }
+
+    /**
+     * 获取员工银行信息详细信息
+     */
+    @ApiOperation("获取员工银行信息详细信息")
+    @PreAuthorize("@ss.hasPermi('system:info:query')")
+    @GetMapping("/{infoId}")
+    public AjaxResult<StaffBankInfoVo> getInfo(@PathVariable("infoId" ) Long infoId) {
+        return AjaxResult.success(iStaffBankInfoService.queryById(infoId));
+    }
+
+    /**
+     * 新增员工银行信息
+     */
+    @ApiOperation("新增员工银行信息")
+    @PreAuthorize("@ss.hasPermi('system:info:add')")
+    @Log(title = "员工银行信息", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody StaffBankInfoAddBo bo) {
+        return toAjax(iStaffBankInfoService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改员工银行信息
+     */
+    @ApiOperation("修改员工银行信息")
+    @PreAuthorize("@ss.hasPermi('system:info:edit')")
+    @Log(title = "员工银行信息", businessType = BusinessType.UPDATE)
+    @PutMapping()
+    public AjaxResult<Void> edit(@RequestBody StaffBankInfoEditBo bo) {
+        return toAjax(iStaffBankInfoService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除员工银行信息
+     */
+    @ApiOperation("删除员工银行信息")
+    @PreAuthorize("@ss.hasPermi('system:info:remove')")
+    @Log(title = "员工银行信息" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{infoIds}")
+    public AjaxResult<Void> remove(@PathVariable Long[] infoIds) {
+        return toAjax(iStaffBankInfoService.deleteWithValidByIds(Arrays.asList(infoIds), true) ? 1 : 0);
+    }
+}

+ 22 - 11
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/certificate/StaffCertificateController.java → zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffCertificateController.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.controller.certificate;
+package com.zhongzheng.controller.staff;
 
 import java.util.List;
 import java.util.Arrays;
@@ -18,15 +18,16 @@ import com.zhongzheng.common.annotation.Log;
 import com.zhongzheng.common.core.controller.BaseController;
 import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.common.enums.BusinessType;
-import com.zhongzheng.modules.certificate.vo.StaffCertificateVo;
-import com.zhongzheng.modules.certificate.bo.StaffCertificateQueryBo;
-import com.zhongzheng.modules.certificate.bo.StaffCertificateAddBo;
-import com.zhongzheng.modules.certificate.bo.StaffCertificateEditBo;
-import com.zhongzheng.modules.certificate.service.IStaffCertificateService;
+import com.zhongzheng.modules.staff.vo.StaffCertificateVo;
+import com.zhongzheng.modules.staff.bo.StaffCertificateQueryBo;
+import com.zhongzheng.modules.staff.bo.StaffCertificateAddBo;
+import com.zhongzheng.modules.staff.bo.StaffCertificateEditBo;
+import com.zhongzheng.modules.staff.service.IStaffCertificateService;
 import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.common.core.page.TableDataInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 员工证书Controller
@@ -83,7 +84,7 @@ public class StaffCertificateController extends BaseController {
     @ApiOperation("新增员工证书")
     @PreAuthorize("@ss.hasPermi('system:certificate:add')")
     @Log(title = "员工证书", businessType = BusinessType.INSERT)
-    @PostMapping()
+    @PostMapping("/add")
     public AjaxResult<Void> add(@RequestBody StaffCertificateAddBo bo) {
         return toAjax(iStaffCertificateService.insertByAddBo(bo) ? 1 : 0);
     }
@@ -94,7 +95,7 @@ public class StaffCertificateController extends BaseController {
     @ApiOperation("修改员工证书")
     @PreAuthorize("@ss.hasPermi('system:certificate:edit')")
     @Log(title = "员工证书", businessType = BusinessType.UPDATE)
-    @PutMapping()
+    @PostMapping("/update")
     public AjaxResult<Void> edit(@RequestBody StaffCertificateEditBo bo) {
         return toAjax(iStaffCertificateService.updateByEditBo(bo) ? 1 : 0);
     }
@@ -105,8 +106,18 @@ public class StaffCertificateController extends BaseController {
     @ApiOperation("删除员工证书")
     @PreAuthorize("@ss.hasPermi('system:certificate:remove')")
     @Log(title = "员工证书" , businessType = BusinessType.DELETE)
-    @DeleteMapping("/{certificateIds}")
-    public AjaxResult<Void> remove(@PathVariable Long[] certificateIds) {
-        return toAjax(iStaffCertificateService.deleteWithValidByIds(Arrays.asList(certificateIds), true) ? 1 : 0);
+    @PostMapping("/delete")
+    public AjaxResult<Void> remove(@RequestBody StaffCertificateEditBo bo) {
+        return toAjax(iStaffCertificateService.deleteWithValidByIds(bo) ? 1 : 0);
+    }
+    /**
+     * 导入部门员工证书excel
+     */
+    @ApiOperation("导入员工文档列表")
+    @PreAuthorize("@ss.hasPermi('system:staff:importStaffList')")
+    @Log(title = "部门员工" , businessType = BusinessType.DELETE)
+    @PostMapping("/importStaffCertificateList")
+    public AjaxResult<Void> importStaffCertificateList( MultipartFile file ) {
+        return toAjax(iStaffCertificateService.importStaffCertificateList(file)?1:0);
     }
 }

+ 112 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffContractArchivesController.java

@@ -0,0 +1,112 @@
+package com.zhongzheng.controller.staff;
+
+import java.util.List;
+import java.util.Arrays;
+
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.modules.staff.vo.StaffContractArchivesVo;
+import com.zhongzheng.modules.staff.bo.StaffContractArchivesQueryBo;
+import com.zhongzheng.modules.staff.bo.StaffContractArchivesAddBo;
+import com.zhongzheng.modules.staff.bo.StaffContractArchivesEditBo;
+import com.zhongzheng.modules.staff.service.IStaffContractArchivesService;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 员工合同档案Controller
+ * 
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Api(value = "员工合同档案控制器", tags = {"员工合同档案管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/archives")
+public class StaffContractArchivesController extends BaseController {
+
+    private final IStaffContractArchivesService iStaffContractArchivesService;
+
+    /**
+     * 查询员工合同档案列表
+     */
+    @ApiOperation("查询员工合同档案列表")
+    @PreAuthorize("@ss.hasPermi('system:archives:list')")
+    @GetMapping("/list")
+    public TableDataInfo<StaffContractArchivesVo> list(StaffContractArchivesQueryBo bo) {
+        startPage();
+        List<StaffContractArchivesVo> list = iStaffContractArchivesService.queryList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出员工合同档案列表
+     */
+    @ApiOperation("导出员工合同档案列表")
+    @PreAuthorize("@ss.hasPermi('system:archives:export')")
+    @Log(title = "员工合同档案", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult<StaffContractArchivesVo> export(StaffContractArchivesQueryBo bo) {
+        List<StaffContractArchivesVo> list = iStaffContractArchivesService.queryList(bo);
+        ExcelUtil<StaffContractArchivesVo> util = new ExcelUtil<StaffContractArchivesVo>(StaffContractArchivesVo.class);
+        return util.exportExcel(list, "员工合同档案");
+    }
+
+    /**
+     * 获取员工合同档案详细信息
+     */
+    @ApiOperation("获取员工合同档案详细信息")
+    @PreAuthorize("@ss.hasPermi('system:archives:query')")
+    @GetMapping("/{archivesId}")
+    public AjaxResult<StaffContractArchivesVo> getInfo(@PathVariable("archivesId" ) Long archivesId) {
+        return AjaxResult.success(iStaffContractArchivesService.queryById(archivesId));
+    }
+
+    /**
+     * 新增员工合同档案
+     */
+    @ApiOperation("新增员工合同档案")
+    @PreAuthorize("@ss.hasPermi('system:archives:add')")
+    @Log(title = "员工合同档案", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody StaffContractArchivesAddBo bo) {
+        return toAjax(iStaffContractArchivesService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改员工合同档案
+     */
+    @ApiOperation("修改员工合同档案")
+    @PreAuthorize("@ss.hasPermi('system:archives:edit')")
+    @Log(title = "员工合同档案", businessType = BusinessType.UPDATE)
+    @PutMapping()
+    public AjaxResult<Void> edit(@RequestBody StaffContractArchivesEditBo bo) {
+        return toAjax(iStaffContractArchivesService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除员工合同档案
+     */
+    @ApiOperation("删除员工合同档案")
+    @PreAuthorize("@ss.hasPermi('system:archives:remove')")
+    @Log(title = "员工合同档案" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{archivesIds}")
+    public AjaxResult<Void> remove(@PathVariable Long[] archivesIds) {
+        return toAjax(iStaffContractArchivesService.deleteWithValidByIds(Arrays.asList(archivesIds), true) ? 1 : 0);
+    }
+}

+ 123 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffController.java

@@ -0,0 +1,123 @@
+package com.zhongzheng.controller.staff;
+
+import java.util.List;
+import java.util.Arrays;
+
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.modules.staff.vo.StaffVo;
+import com.zhongzheng.modules.staff.bo.StaffQueryBo;
+import com.zhongzheng.modules.staff.bo.StaffAddBo;
+import com.zhongzheng.modules.staff.bo.StaffEditBo;
+import com.zhongzheng.modules.staff.service.IStaffService;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 企业部门员工Controller
+ * 
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Api(value = "企业部门员工控制器", tags = {"企业部门员工管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/staff")
+public class StaffController extends BaseController {
+
+    private final IStaffService iStaffService;
+
+    /**
+     * 查询企业部门员工列表
+     */
+    @ApiOperation("查询企业部门员工列表")
+    @PreAuthorize("@ss.hasPermi('system:staff:list')")
+    @GetMapping("/staffList")
+    public TableDataInfo<StaffVo> list(StaffQueryBo bo) {
+        startPage();
+        List<StaffVo> list = iStaffService.selectStaffList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出企业部门员工列表
+     */
+    @ApiOperation("导出企业部门员工列表")
+    @PreAuthorize("@ss.hasPermi('system:staff:export')")
+    @Log(title = "企业部门员工", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult<StaffVo> export(StaffQueryBo bo) {
+        List<StaffVo> list = iStaffService.queryList(bo);
+        ExcelUtil<StaffVo> util = new ExcelUtil<StaffVo>(StaffVo.class);
+        return util.exportExcel(list, "企业部门员工");
+    }
+
+    /**
+     * 获取企业部门员工详细信息
+     */
+    @ApiOperation("获取企业部门员工详细信息")
+    @PreAuthorize("@ss.hasPermi('system:staff:query')")
+    @GetMapping("/{staffId}")
+    public AjaxResult<StaffVo> getInfo(@PathVariable("staffId" ) Long staffId) {
+        return AjaxResult.success(iStaffService.queryById(staffId));
+    }
+
+    /**
+     * 新增企业部门员工
+     */
+    @ApiOperation("新增企业部门员工")
+    @PreAuthorize("@ss.hasPermi('system:staff:add')")
+    @Log(title = "企业部门员工", businessType = BusinessType.INSERT)
+    @PostMapping("/insertOrUpdateStaff")
+    public AjaxResult<Void> add(@RequestBody StaffAddBo bo) {
+        return toAjax(iStaffService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改企业部门员工
+     */
+    @ApiOperation("修改企业部门员工")
+    @PreAuthorize("@ss.hasPermi('system:staff:edit')")
+    @Log(title = "企业部门员工", businessType = BusinessType.UPDATE)
+    @PostMapping("/updateStaffRemarks")
+    public AjaxResult<Void> edit(@RequestBody StaffEditBo bo) {
+        return toAjax(iStaffService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除企业部门员工
+     */
+    @ApiOperation("删除企业部门员工")
+    @PreAuthorize("@ss.hasPermi('system:staff:remove')")
+    @Log(title = "企业部门员工" , businessType = BusinessType.DELETE)
+    @PostMapping("/deleteStaff")
+    public AjaxResult<Void> remove(@RequestBody StaffEditBo bo ) {
+        return toAjax(iStaffService.deleteWithValidByIds(bo)?1:0);
+    }
+    /**
+     * 导入部门员工excel
+     */
+    @ApiOperation("导入员工文档列表")
+    @PreAuthorize("@ss.hasPermi('system:staff:importStaffList')")
+    @Log(title = "部门员工" , businessType = BusinessType.DELETE)
+    @PostMapping("/importStaffList")
+    public AjaxResult<Void> importStaffList( MultipartFile  file ) {
+        return toAjax(iStaffService.importExcelList(file)?1:0);
+    }
+}

+ 112 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffEduBgController.java

@@ -0,0 +1,112 @@
+package com.zhongzheng.controller.staff;
+
+import java.util.List;
+import java.util.Arrays;
+
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.modules.staff.vo.StaffEduBgVo;
+import com.zhongzheng.modules.staff.bo.StaffEduBgQueryBo;
+import com.zhongzheng.modules.staff.bo.StaffEduBgAddBo;
+import com.zhongzheng.modules.staff.bo.StaffEduBgEditBo;
+import com.zhongzheng.modules.staff.service.IStaffEduBgService;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 员工教育背景Controller
+ * 
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Api(value = "员工教育背景控制器", tags = {"员工教育背景管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/bg")
+public class StaffEduBgController extends BaseController {
+
+    private final IStaffEduBgService iStaffEduBgService;
+
+    /**
+     * 查询员工教育背景列表
+     */
+    @ApiOperation("查询员工教育背景列表")
+    @PreAuthorize("@ss.hasPermi('system:bg:list')")
+    @GetMapping("/list")
+    public TableDataInfo<StaffEduBgVo> list(StaffEduBgQueryBo bo) {
+        startPage();
+        List<StaffEduBgVo> list = iStaffEduBgService.queryList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出员工教育背景列表
+     */
+    @ApiOperation("导出员工教育背景列表")
+    @PreAuthorize("@ss.hasPermi('system:bg:export')")
+    @Log(title = "员工教育背景", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult<StaffEduBgVo> export(StaffEduBgQueryBo bo) {
+        List<StaffEduBgVo> list = iStaffEduBgService.queryList(bo);
+        ExcelUtil<StaffEduBgVo> util = new ExcelUtil<StaffEduBgVo>(StaffEduBgVo.class);
+        return util.exportExcel(list, "员工教育背景");
+    }
+
+    /**
+     * 获取员工教育背景详细信息
+     */
+    @ApiOperation("获取员工教育背景详细信息")
+    @PreAuthorize("@ss.hasPermi('system:bg:query')")
+    @GetMapping("/{eduBgId}")
+    public AjaxResult<StaffEduBgVo> getInfo(@PathVariable("eduBgId" ) Long eduBgId) {
+        return AjaxResult.success(iStaffEduBgService.queryById(eduBgId));
+    }
+
+    /**
+     * 新增员工教育背景
+     */
+    @ApiOperation("新增员工教育背景")
+    @PreAuthorize("@ss.hasPermi('system:bg:add')")
+    @Log(title = "员工教育背景", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody StaffEduBgAddBo bo) {
+        return toAjax(iStaffEduBgService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改员工教育背景
+     */
+    @ApiOperation("修改员工教育背景")
+    @PreAuthorize("@ss.hasPermi('system:bg:edit')")
+    @Log(title = "员工教育背景", businessType = BusinessType.UPDATE)
+    @PutMapping()
+    public AjaxResult<Void> edit(@RequestBody StaffEduBgEditBo bo) {
+        return toAjax(iStaffEduBgService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除员工教育背景
+     */
+    @ApiOperation("删除员工教育背景")
+    @PreAuthorize("@ss.hasPermi('system:bg:remove')")
+    @Log(title = "员工教育背景" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{eduBgIds}")
+    public AjaxResult<Void> remove(@PathVariable Long[] eduBgIds) {
+        return toAjax(iStaffEduBgService.deleteWithValidByIds(Arrays.asList(eduBgIds), true) ? 1 : 0);
+    }
+}

+ 112 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffEmergencyContactController.java

@@ -0,0 +1,112 @@
+package com.zhongzheng.controller.staff;
+
+import java.util.List;
+import java.util.Arrays;
+
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.modules.staff.vo.StaffEmergencyContactVo;
+import com.zhongzheng.modules.staff.bo.StaffEmergencyContactQueryBo;
+import com.zhongzheng.modules.staff.bo.StaffEmergencyContactAddBo;
+import com.zhongzheng.modules.staff.bo.StaffEmergencyContactEditBo;
+import com.zhongzheng.modules.staff.service.IStaffEmergencyContactService;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 员工紧急联系人Controller
+ * 
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Api(value = "员工紧急联系人控制器", tags = {"员工紧急联系人管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/contact")
+public class StaffEmergencyContactController extends BaseController {
+
+    private final IStaffEmergencyContactService iStaffEmergencyContactService;
+
+    /**
+     * 查询员工紧急联系人列表
+     */
+    @ApiOperation("查询员工紧急联系人列表")
+    @PreAuthorize("@ss.hasPermi('system:contact:list')")
+    @GetMapping("/list")
+    public TableDataInfo<StaffEmergencyContactVo> list(StaffEmergencyContactQueryBo bo) {
+        startPage();
+        List<StaffEmergencyContactVo> list = iStaffEmergencyContactService.queryList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出员工紧急联系人列表
+     */
+    @ApiOperation("导出员工紧急联系人列表")
+    @PreAuthorize("@ss.hasPermi('system:contact:export')")
+    @Log(title = "员工紧急联系人", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult<StaffEmergencyContactVo> export(StaffEmergencyContactQueryBo bo) {
+        List<StaffEmergencyContactVo> list = iStaffEmergencyContactService.queryList(bo);
+        ExcelUtil<StaffEmergencyContactVo> util = new ExcelUtil<StaffEmergencyContactVo>(StaffEmergencyContactVo.class);
+        return util.exportExcel(list, "员工紧急联系人");
+    }
+
+    /**
+     * 获取员工紧急联系人详细信息
+     */
+    @ApiOperation("获取员工紧急联系人详细信息")
+    @PreAuthorize("@ss.hasPermi('system:contact:query')")
+    @GetMapping("/{contactId}")
+    public AjaxResult<StaffEmergencyContactVo> getInfo(@PathVariable("contactId" ) Long contactId) {
+        return AjaxResult.success(iStaffEmergencyContactService.queryById(contactId));
+    }
+
+    /**
+     * 新增员工紧急联系人
+     */
+    @ApiOperation("新增员工紧急联系人")
+    @PreAuthorize("@ss.hasPermi('system:contact:add')")
+    @Log(title = "员工紧急联系人", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody StaffEmergencyContactAddBo bo) {
+        return toAjax(iStaffEmergencyContactService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改员工紧急联系人
+     */
+    @ApiOperation("修改员工紧急联系人")
+    @PreAuthorize("@ss.hasPermi('system:contact:edit')")
+    @Log(title = "员工紧急联系人", businessType = BusinessType.UPDATE)
+    @PutMapping()
+    public AjaxResult<Void> edit(@RequestBody StaffEmergencyContactEditBo bo) {
+        return toAjax(iStaffEmergencyContactService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除员工紧急联系人
+     */
+    @ApiOperation("删除员工紧急联系人")
+    @PreAuthorize("@ss.hasPermi('system:contact:remove')")
+    @Log(title = "员工紧急联系人" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{contactIds}")
+    public AjaxResult<Void> remove(@PathVariable Long[] contactIds) {
+        return toAjax(iStaffEmergencyContactService.deleteWithValidByIds(Arrays.asList(contactIds), true) ? 1 : 0);
+    }
+}

+ 2 - 1
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/CompanyUserServiceImpl.java

@@ -2,6 +2,7 @@ package com.zhongzheng.framework.web.service;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -94,7 +95,7 @@ public class CompanyUserServiceImpl extends ServiceImpl<CompanyUserMapper, Compa
     @Override
     public List<CompanyUserVo> queryList(CompanyUserQueryBo bo) {
         LambdaQueryWrapper<CompanyUser> lqw = Wrappers.lambdaQuery();
-        lqw.eq(StrUtil.isNotBlank(bo.getCompanyId()), CompanyUser::getCompanyId, bo.getCompanyId());
+        lqw.eq(ObjectUtil.isNotEmpty(bo.getCompanyId()), CompanyUser::getCompanyId, bo.getCompanyId());
         lqw.like(StrUtil.isNotBlank(bo.getUsername()), CompanyUser::getUsername, bo.getUsername());
         lqw.eq(StrUtil.isNotBlank(bo.getPassword()), CompanyUser::getPassword, bo.getPassword());
         lqw.eq(bo.getStatus() != null, CompanyUser::getStatus, bo.getStatus());

+ 0 - 14
zhongzheng-system/src/main/java/com/zhongzheng/modules/certificate/mapper/StaffCertificateMapper.java

@@ -1,14 +0,0 @@
-package com.zhongzheng.modules.certificate.mapper;
-
-import com.zhongzheng.modules.certificate.domain.StaffCertificate;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * 员工证书Mapper接口
- *
- * @author ruoyi
- * @date 2024-03-18
- */
-public interface StaffCertificateMapper extends BaseMapper<StaffCertificate> {
-
-}

+ 0 - 110
zhongzheng-system/src/main/java/com/zhongzheng/modules/certificate/service/impl/StaffCertificateServiceImpl.java

@@ -1,110 +0,0 @@
-package com.zhongzheng.modules.certificate.service.impl;
-
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.util.StrUtil;
-import com.zhongzheng.common.utils.DateUtils;
-import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.github.pagehelper.Page;
-import com.zhongzheng.modules.certificate.bo.StaffCertificateAddBo;
-import com.zhongzheng.modules.certificate.bo.StaffCertificateQueryBo;
-import com.zhongzheng.modules.certificate.bo.StaffCertificateEditBo;
-import com.zhongzheng.modules.certificate.domain.StaffCertificate;
-import com.zhongzheng.modules.certificate.mapper.StaffCertificateMapper;
-import com.zhongzheng.modules.certificate.vo.StaffCertificateVo;
-import com.zhongzheng.modules.certificate.service.IStaffCertificateService;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * 员工证书Service业务层处理
- *
- * @author ruoyi
- * @date 2024-03-18
- */
-@Service
-public class StaffCertificateServiceImpl extends ServiceImpl<StaffCertificateMapper, StaffCertificate> implements IStaffCertificateService {
-
-    @Override
-    public StaffCertificateVo queryById(Long certificateId){
-        StaffCertificate db = this.baseMapper.selectById(certificateId);
-        return BeanUtil.toBean(db, StaffCertificateVo.class);
-    }
-
-    @Override
-    public List<StaffCertificateVo> queryList(StaffCertificateQueryBo bo) {
-        LambdaQueryWrapper<StaffCertificate> lqw = Wrappers.lambdaQuery();
-        lqw.eq(StrUtil.isNotBlank(bo.getCompanyId()), StaffCertificate::getCompanyId, bo.getCompanyId());
-        lqw.eq(StrUtil.isNotBlank(bo.getTenantId()), StaffCertificate::getTenantId, bo.getTenantId());
-        lqw.eq(StrUtil.isNotBlank(bo.getUserId()), StaffCertificate::getUserId, bo.getUserId());
-        lqw.eq(StrUtil.isNotBlank(bo.getCertificateNumber()), StaffCertificate::getCertificateNumber, bo.getCertificateNumber());
-        lqw.eq(bo.getCertificateType() != null, StaffCertificate::getCertificateType, bo.getCertificateType());
-        lqw.eq(StrUtil.isNotBlank(bo.getCertificateMajor()), StaffCertificate::getCertificateMajor, bo.getCertificateMajor());
-        lqw.eq(StrUtil.isNotBlank(bo.getStartTime()), StaffCertificate::getStartTime, bo.getStartTime());
-        lqw.eq(StrUtil.isNotBlank(bo.getEndTime()), StaffCertificate::getEndTime, bo.getEndTime());
-        lqw.eq(StrUtil.isNotBlank(bo.getCertificateAddress()), StaffCertificate::getCertificateAddress, bo.getCertificateAddress());
-        lqw.eq(bo.getWarningStatus() != null, StaffCertificate::getWarningStatus, bo.getWarningStatus());
-        lqw.eq(StrUtil.isNotBlank(bo.getPreviewImg()), StaffCertificate::getPreviewImg, bo.getPreviewImg());
-        lqw.eq(bo.getStatus() != null, StaffCertificate::getStatus, bo.getStatus());
-        return entity2Vo(this.list(lqw));
-    }
-
-    /**
-    * 实体类转化成视图对象
-    *
-    * @param collection 实体类集合
-    * @return
-    */
-    private List<StaffCertificateVo> entity2Vo(Collection<StaffCertificate> collection) {
-        List<StaffCertificateVo> voList = collection.stream()
-                .map(any -> BeanUtil.toBean(any, StaffCertificateVo.class))
-                .collect(Collectors.toList());
-        if (collection instanceof Page) {
-            Page<StaffCertificate> page = (Page<StaffCertificate>)collection;
-            Page<StaffCertificateVo> pageVo = new Page<>();
-            BeanUtil.copyProperties(page,pageVo);
-            pageVo.addAll(voList);
-            voList = pageVo;
-        }
-        return voList;
-    }
-
-    @Override
-    public Boolean insertByAddBo(StaffCertificateAddBo bo) {
-        StaffCertificate add = BeanUtil.toBean(bo, StaffCertificate.class);
-        validEntityBeforeSave(add);
-        add.setCreateTime(DateUtils.getNowTime());
-        add.setUpdateTime(DateUtils.getNowTime());
-        return this.save(add);
-    }
-
-    @Override
-    public Boolean updateByEditBo(StaffCertificateEditBo bo) {
-        StaffCertificate update = BeanUtil.toBean(bo, StaffCertificate.class);
-        validEntityBeforeSave(update);
-        update.setUpdateTime(DateUtils.getNowTime());
-        return this.updateById(update);
-    }
-
-    /**
-     * 保存前的数据校验
-     *
-     * @param entity 实体类数据
-     */
-    private void validEntityBeforeSave(StaffCertificate entity){
-        //TODO 做一些数据校验,如唯一约束
-    }
-
-    @Override
-    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        if(isValid){
-            //TODO 做一些业务上的校验,判断是否需要校验
-        }
-        return this.removeByIds(ids);
-    }
-}

+ 4 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyAddBo.java

@@ -70,7 +70,7 @@ public class CompanyAddBo {
     private Long companyLevel;
     /** 企业父级id */
     @ApiModelProperty("企业父级id")
-    private String fatherId;
+    private Long fatherId;
     /** 1有效 0无效 */
     @ApiModelProperty("1有效 0无效")
     private Integer status;
@@ -80,4 +80,7 @@ public class CompanyAddBo {
     /** 更新时间 */
     @ApiModelProperty("更新时间")
     private Long updateTime;
+    /** 更新时间 */
+    @ApiModelProperty("公司id")
+    private Long companyId;
 }

+ 63 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyCertificateAddBo.java

@@ -1,11 +1,14 @@
 package com.zhongzheng.modules.company.bo;
 
+import com.zhongzheng.common.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
-import java.util.Date;
+import org.apache.poi.ss.formula.functions.T;
 
+import java.util.Date;
+import java.util.List;
 
 
 /**
@@ -20,12 +23,15 @@ public class CompanyCertificateAddBo {
 
     /** 公司id */
     @ApiModelProperty("公司id")
-    private String companyId;
+    private Long companyId;
     @ApiModelProperty("机构名称")
     private String tenantId;
     /** 证书编号 */
     @ApiModelProperty("证书编号")
     private String certificateNumber;
+    /** 证书编号 */
+    @ApiModelProperty("证书名称")
+    private String certificateName;
     /** 证书类型 1:营业执照 2:资质证书 3:安全生产许可证 4:其他 */
     @ApiModelProperty("证书类型 1:营业执照 2:资质证书 3:安全生产许可证 4:其他")
     private Integer certificateType;
@@ -44,4 +50,59 @@ public class CompanyCertificateAddBo {
     /** 更新时间 */
     @ApiModelProperty("更新时间")
     private Long updateTime;
+    /** 1正本 2副本 */
+    @ApiModelProperty("证件类型")
+    private Integer documentType;
+    /** 发证机关 */
+    @ApiModelProperty("发证机关")
+    private String issuingAuthority;
+    /** 发证日期 */
+    @ApiModelProperty("发证日期")
+    private Long issuanceDate;
+    /** 有效日期 1:长期 */
+    @ApiModelProperty("有效日期")
+    private Long effectiveDate;
+    /** 资质证书信息 */
+    @ApiModelProperty("资质证书信息")
+    private String text;
+    /** 资质类别 */
+    @ApiModelProperty("资质类别")
+    private List<CompanyCertificateInfo> infoList;
+    /** 企业证书id */
+    @ApiModelProperty("企业证书id")
+    private Long certificateId;
+    /** 企业证书备注*/
+    @ApiModelProperty("企业证书备注")
+    private String remarks;
+    @ApiModelProperty("企业名称")
+    private String companyName;
+    /** 企业信用代码 */
+    @ApiModelProperty("企业信用代码")
+    private String creditCode;
+    @ApiModelProperty("企业类型 1:有限责任公司 2:国有企业 3:集体企业 4:股份合作企业 5:联营企业 6:私营企业 7:其他企业 8 合资经营企业(港或澳、台资) 9:合作经营企业(港或澳、台资) 10:港、澳、台商独资经营企业 11:港、澳、台商投资股份有限公司 12:其他港澳台商投资企业 13:中外合资经营企业 14:中外合作经营企业 15:外资企业 16:外商投资股份有限公司 17:其他外商投资企业")
+    private Long companyType;
+    /** 注册资本 */
+    @ApiModelProperty("注册资本")
+    private Long registeredCapital;
+    /** 法定代表人 */
+    @ApiModelProperty("法定代表人")
+    private String legalRepresentative;
+    /** 企业地址 */
+    @ApiModelProperty("企业地址")
+    private String companyAddress;
+    /** 成立日期 */
+    @ApiModelProperty("成立日期")
+    private Long establishDate;
+    /** 营业日期 */
+    @ApiModelProperty("营业日期")
+    private Long operateDate;
+    /** 登记机关 */
+    @ApiModelProperty("登记机关")
+    private String registrationAuthority;
+    /** 经验范围 */
+    @ApiModelProperty("经验范围")
+    private String experienceScope;
+    /** 企业证书备注 */
+    @ApiModelProperty("企业证书备注")
+    private String companyCertificateRemarks;
 }

+ 61 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyCertificateEditBo.java

@@ -1,10 +1,12 @@
 package com.zhongzheng.modules.company.bo;
 
+import com.zhongzheng.common.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import java.util.Date;
+import java.util.List;
 
 
 /**
@@ -25,11 +27,14 @@ public class CompanyCertificateEditBo {
 
     /** 公司id */
     @ApiModelProperty("公司id")
-    private String companyId;
+    private Long companyId;
 
     /** 证书编号 */
     @ApiModelProperty("证书编号")
     private String certificateNumber;
+    /** 证书编号 */
+    @ApiModelProperty("证书名称")
+    private String certificateName;
 
     /** 证书类型 1:营业执照 2:资质证书 3:安全生产许可证 4:其他 */
     @ApiModelProperty("证书类型 1:营业执照 2:资质证书 3:安全生产许可证 4:其他")
@@ -50,5 +55,59 @@ public class CompanyCertificateEditBo {
     /** 更新时间 */
     @ApiModelProperty("更新时间")
     private Long updateTime;
-
+    /** 1正本 2副本 */
+    @ApiModelProperty("证件类型")
+    private Integer documentType;
+    /** 发证机关 */
+    @ApiModelProperty("发证机关")
+    private String issuingAuthority;
+    /** 发证日期 */
+    @ApiModelProperty("发证日期")
+    private Long issuanceDate;
+    /** 有效日期 */
+    @ApiModelProperty("有效日期")
+    private Long effectiveDate;
+    /** 资质证书信息 */
+    @ApiModelProperty("资质证书信息")
+    private String text;
+    /** 企业证书ids集合 */
+    @ApiModelProperty("企业证书ids集合")
+    private List<Long> certificateIds;
+    /** 企业证书备注*/
+    @ApiModelProperty("企业证书备注")
+    private String remarks;
+    @ApiModelProperty("企业名称")
+    private String companyName;
+    /** 企业信用代码 */
+    @ApiModelProperty("企业信用代码")
+    private String creditCode;
+    @ApiModelProperty("企业类型 1:有限责任公司 2:国有企业 3:集体企业 4:股份合作企业 5:联营企业 6:私营企业 7:其他企业 8 合资经营企业(港或澳、台资) 9:合作经营企业(港或澳、台资) 10:港、澳、台商独资经营企业 11:港、澳、台商投资股份有限公司 12:其他港澳台商投资企业 13:中外合资经营企业 14:中外合作经营企业 15:外资企业 16:外商投资股份有限公司 17:其他外商投资企业")
+    private Long companyType;
+    /** 注册资本 */
+    @ApiModelProperty("注册资本")
+    private Long registeredCapital;
+    /** 法定代表人 */
+    @ApiModelProperty("法定代表人")
+    private String legalRepresentative;
+    /** 企业地址 */
+    @ApiModelProperty("企业地址")
+    private String companyAddress;
+    /** 成立日期 */
+    @ApiModelProperty("成立日期")
+    private Long establishDate;
+    /** 营业日期 */
+    @ApiModelProperty("营业日期")
+    private Long operateDate;
+    /** 登记机关 */
+    @ApiModelProperty("登记机关")
+    private String registrationAuthority;
+    /** 经验范围 */
+    @ApiModelProperty("经验范围")
+    private String experienceScope;
+    /** 企业证书备注 */
+    @ApiModelProperty("企业证书备注")
+    private String companyCertificateRemarks;
+    /** 资质类别 */
+    @ApiModelProperty("资质类别")
+    private List<CompanyCertificateInfo> infoList;
 }

+ 26 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyCertificateInfo.java

@@ -0,0 +1,26 @@
+package com.zhongzheng.modules.company.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 企业证书添加对象 company_certificate
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+@Data
+@ApiModel("企业证书添加对象")
+public class CompanyCertificateInfo {
+
+    /** 申请日期 */
+    @ApiModelProperty("申请日期")
+    private Long applicationDate;
+    @ApiModelProperty("主项/增项")
+    private Long itemClass;
+    /** 证书编号 */
+    @ApiModelProperty("资质类别/等级")
+    private String qualificationCategory;
+}

+ 53 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyCertificateQueryBo.java

@@ -1,5 +1,6 @@
 package com.zhongzheng.modules.company.bo;
 
+import com.zhongzheng.common.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -39,7 +40,7 @@ public class CompanyCertificateQueryBo extends BaseEntity {
 	private String tenantId;
 	/** 公司id */
 	@ApiModelProperty("公司id")
-	private String companyId;
+	private Long companyId;
 	/** 证书编号 */
 	@ApiModelProperty("证书编号")
 	private String certificateNumber;
@@ -55,4 +56,55 @@ public class CompanyCertificateQueryBo extends BaseEntity {
 	/** 1有效 0无效 */
 	@ApiModelProperty("1有效 0无效")
 	private Integer status;
+	/** 1正本 2副本 */
+	@ApiModelProperty("证件类型")
+	private Integer documentType;
+	/** 证书编号 */
+	@ApiModelProperty("证书名称")
+	private String certificateName;
+	/** 发证机关 */
+	@ApiModelProperty("发证机关")
+	private String issuingAuthority;
+	/** 发证日期 */
+	@ApiModelProperty("发证日期")
+	private Long issuanceDate;
+	/** 有效日期 */
+	@ApiModelProperty("有效日期")
+	private Long effectiveDate;
+	/** 资质证书信息 */
+	@ApiModelProperty("资质证书信息")
+	private String text;
+	/** 证书编号 */
+	@ApiModelProperty("企业名称")
+	private String companyName;
+	@ApiModelProperty("法定代表人")
+	private String legalRepresentative;
+	@ApiModelProperty("信用编码")
+	private String creditCode;
+	/** 企业证书备注*/
+	@ApiModelProperty("企业证书备注")
+	private String remarks;
+	@ApiModelProperty("企业类型 1:有限责任公司 2:国有企业 3:集体企业 4:股份合作企业 5:联营企业 6:私营企业 7:其他企业 8 合资经营企业(港或澳、台资) 9:合作经营企业(港或澳、台资) 10:港、澳、台商独资经营企业 11:港、澳、台商投资股份有限公司 12:其他港澳台商投资企业 13:中外合资经营企业 14:中外合作经营企业 15:外资企业 16:外商投资股份有限公司 17:其他外商投资企业")
+	private Long companyType;
+	/** 注册资本 */
+	@ApiModelProperty("注册资本")
+	private Long registeredCapital;
+	/** 企业地址 */
+	@ApiModelProperty("企业地址")
+	private String companyAddress;
+	/** 成立日期 */
+	@ApiModelProperty("成立日期")
+	private Long establishDate;
+	/** 营业日期 */
+	@ApiModelProperty("营业日期")
+	private Long operateDate;
+	/** 登记机关 */
+	@ApiModelProperty("登记机关")
+	private String registrationAuthority;
+	/** 经验范围 */
+	@ApiModelProperty("经验范围")
+	private String experienceScope;
+	/** 企业证书备注 */
+	@ApiModelProperty("企业证书备注")
+	private String companyCertificateRemarks;
 }

+ 4 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyDepartmentAddBo.java

@@ -21,7 +21,7 @@ public class CompanyDepartmentAddBo {
     private String tenantId;
     /** 公司id */
     @ApiModelProperty("公司id")
-    private String companyId;
+    private Long companyId;
     /** 部门名称 */
     @ApiModelProperty("部门名称")
     private String departmentName;
@@ -42,7 +42,7 @@ public class CompanyDepartmentAddBo {
     private String departmentRemarks;
     /** 部门父级id */
     @ApiModelProperty("部门父级id")
-    private String departmentFartherId;
+    private Long departmentFartherId;
     /** 部门级别 1:一级部门 */
     @ApiModelProperty("部门级别 1:一级部门")
     private Long departmentLevel;
@@ -55,4 +55,6 @@ public class CompanyDepartmentAddBo {
     /** 更新时间 */
     @ApiModelProperty("更新时间")
     private Long updateTime;
+    @ApiModelProperty("部门id")
+    private Long departmentId;
 }

+ 2 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyDepartmentEditBo.java

@@ -25,7 +25,7 @@ public class CompanyDepartmentEditBo {
     private String tenantId;
     /** 公司id */
     @ApiModelProperty("公司id")
-    private String companyId;
+    private Long companyId;
 
     /** 部门名称 */
     @ApiModelProperty("部门名称")
@@ -53,7 +53,7 @@ public class CompanyDepartmentEditBo {
 
     /** 部门父级id */
     @ApiModelProperty("部门父级id")
-    private String departmentFartherId;
+    private Long departmentFartherId;
 
     /** 部门级别 1:一级部门 */
     @ApiModelProperty("部门级别 1:一级部门")

+ 5 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyDepartmentQueryBo.java

@@ -39,7 +39,7 @@ public class CompanyDepartmentQueryBo extends BaseEntity {
 	private String tenantId;
 	/** 公司id */
 	@ApiModelProperty("公司id")
-	private String companyId;
+	private Long companyId;
 	/** 部门名称 */
 	@ApiModelProperty("部门名称")
 	private String departmentName;
@@ -60,11 +60,14 @@ public class CompanyDepartmentQueryBo extends BaseEntity {
 	private String departmentRemarks;
 	/** 部门父级id */
 	@ApiModelProperty("部门父级id")
-	private String departmentFartherId;
+	private Long departmentFartherId;
 	/** 部门级别 1:一级部门 */
 	@ApiModelProperty("部门级别 1:一级部门")
 	private Long departmentLevel;
 	/** 1有效 0无效 */
 	@ApiModelProperty("1有效 0无效")
 	private Integer status;
+	/** 1有效 0无效 */
+	@ApiModelProperty("部门id")
+	private Long departmentId;
 }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyEditBo.java

@@ -89,7 +89,7 @@ public class CompanyEditBo {
 
     /** 企业父级id */
     @ApiModelProperty("企业父级id")
-    private String fatherId;
+    private Long fatherId;
 
     /** 1有效 0无效 */
     @ApiModelProperty("1有效 0无效")

+ 4 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyQueryBo.java

@@ -87,8 +87,11 @@ public class CompanyQueryBo extends BaseEntity {
 	private Long companyLevel;
 	/** 企业父级id */
 	@ApiModelProperty("企业父级id")
-	private String fatherId;
+	private Long fatherId;
 	/** 1有效 0无效 */
 	@ApiModelProperty("1有效 0无效")
 	private Integer status;
+	/** 公司以及部门联系人 */
+	@ApiModelProperty("公司以及部门联系人")
+	private String AllTypeName;
 }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyUserAddBo.java

@@ -20,7 +20,7 @@ public class CompanyUserAddBo {
 
     /** 公司id */
     @ApiModelProperty("公司id")
-    private String companyId;
+    private Long companyId;
     /** 企业用户名 */
     @ApiModelProperty("企业用户名")
     private String username;

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyUserEditBo.java

@@ -24,7 +24,7 @@ public class CompanyUserEditBo {
 
     /** 公司id */
     @ApiModelProperty("公司id")
-    private String companyId;
+    private Long companyId;
 
     /** 企业用户名 */
     @ApiModelProperty("企业用户名")

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyUserQueryBo.java

@@ -38,7 +38,7 @@ public class CompanyUserQueryBo extends BaseEntity {
 
 	/** 公司id */
 	@ApiModelProperty("公司id")
-	private String companyId;
+	private Long companyId;
 	/** 企业用户名 */
 	@ApiModelProperty("企业用户名")
 	private String username;

+ 21 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/ExcelCompanyCertificateBo.java

@@ -0,0 +1,21 @@
+package com.zhongzheng.modules.company.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.web.multipart.MultipartFile;
+
+
+/**
+ * 企业证书文档列表添加对象 company
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+@Data
+@ApiModel("企业添加对象")
+public class ExcelCompanyCertificateBo {
+
+   private MultipartFile file;
+   private Integer certificateType;
+}

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/domain/Company.java

@@ -62,7 +62,7 @@ private static final long serialVersionUID=1L;
     /** 级别 1:总公司 2:分公司 */
     private Long companyLevel;
     /** 企业父级id */
-    private String fatherId;
+    private Long fatherId;
     /** 1有效 0无效 */
     private Integer status;
     /** 创建时间 */

+ 103 - 12
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/domain/CompanyCertificate.java

@@ -1,12 +1,15 @@
 package com.zhongzheng.modules.company.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
+
 import java.io.Serializable;
 import java.util.Date;
 import java.math.BigDecimal;
+
 import com.zhongzheng.common.annotation.Excel;
 
 /**
@@ -21,29 +24,117 @@ import com.zhongzheng.common.annotation.Excel;
 @TableName("company_certificate")
 public class CompanyCertificate implements Serializable {
 
-private static final long serialVersionUID=1L;
+    private static final long serialVersionUID = 1L;
 
-    /** $column.columnComment */
+    /**
+     * $column.columnComment
+     */
     @TableId(value = "certificate_id")
     private Long certificateId;
-    /** 机构名称 */
+    /**
+     * 机构名称
+     */
     private String tenantId;
-    /** 公司id */
-    private String companyId;
-    /** 证书编号 */
+    /**
+     * 公司id
+     */
+    private Long companyId;
+    /**
+     * 证书编号
+     */
     private String certificateNumber;
-    /** 证书类型 1:营业执照 2:资质证书 3:安全生产许可证 4:其他 */
+    /**
+     * 证书名称
+     */
+    private String certificateName;
+    /**
+     * 证书类型 1:营业执照 2:资质证书 3:安全生产许可证 4:其他
+     */
     private Integer certificateType;
-    /** 预警状态 1:正常 2:已过期 */
+    /**
+     * 发证机关
+     */
+    private String issuingAuthority;
+    /**
+     * 发证日期
+     */
+    private Long issuanceDate;
+    /**
+     * 有效日期
+     */
+    private Long effectiveDate;
+    /**
+     * 预警状态 1:正常 2:已过期
+     */
     private Integer warningStatus;
-    /** 预览 */
+    /**
+     * 预览
+     */
     private String previewImg;
-    /** 1有效 0无效 */
+    /**
+     * 1有效 0无效
+     */
     private Integer status;
-    /** 创建时间 */
+    /**
+     * 1正本 0副本
+     */
+    private Integer documentType;
+    /**
+     * 资质证书信息
+     */
+    private String text;
+    /**
+     * 企业证书备注
+     */
+    private String companyCertificateRemarks;
+    /**
+     * 创建时间
+     */
     @TableField(fill = FieldFill.INSERT)
     private Long createTime;
-    /** 更新时间 */
+    /**
+     * 更新时间
+     */
     @TableField(fill = FieldFill.INSERT_UPDATE)
     private Long updateTime;
+    /**
+     * 企业名称
+     */
+    private String companyName;
+    /**
+     * 企业信用代码
+     */
+    private String creditCode;
+    /**
+     * 企业类型 1:有限责任公司 2:国有企业 3:集体企业 4:股份合作企业 5:联营企业 6:私营企业 7:其他企业 8 合资经营企业(港或澳、台资) 9:合作经营企业(港或澳、台资) 10:港、澳、台商独资经营企业 11:港、澳、台商投资股份有限公司 12:其他港澳台商投资企业 13:中外合资经营企业 14:中外合作经营企业 15:外资企业 16:外商投资股份有限公司 17:其他外商投资企业
+     */
+    private Long companyType;
+    /**
+     * 注册资本
+     */
+    private Long registeredCapital;
+    /**
+     * 法定代表人
+     */
+    private String legalRepresentative;
+    /**
+     * 企业地址
+     */
+    private String companyAddress;
+    /**
+     * 成立日期
+     */
+    private Long establishDate;
+    /**
+     * 营业日期
+     */
+    private Long operateDate;
+    /**
+     * 登记机关
+     */
+    private String registrationAuthority;
+    /**
+     * 经验范围
+     */
+    private String experienceScope;
 }

+ 6 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/domain/CompanyDepartment.java

@@ -7,6 +7,8 @@ import lombok.experimental.Accessors;
 import java.io.Serializable;
 import java.util.Date;
 import java.math.BigDecimal;
+import java.util.List;
+
 import com.zhongzheng.common.annotation.Excel;
 
 /**
@@ -29,7 +31,7 @@ private static final long serialVersionUID=1L;
     /** 机构名称 */
     private String tenantId;
     /** 公司id */
-    private String companyId;
+    private Long companyId;
     /** 部门名称 */
     private String departmentName;
     /** 部门类型 1:部门 2:子级 */
@@ -43,7 +45,7 @@ private static final long serialVersionUID=1L;
     /** 部门备注 */
     private String departmentRemarks;
     /** 部门父级id */
-    private String departmentFartherId;
+    private Long departmentFartherId;
     /** 部门级别 1:一级部门 */
     private Long departmentLevel;
     /** 1有效 0无效 */
@@ -54,4 +56,6 @@ private static final long serialVersionUID=1L;
     /** 更新时间 */
     @TableField(fill = FieldFill.INSERT_UPDATE)
     private Long updateTime;
+    @TableField(exist = false)
+    private List<CompanyDepartment> children;
 }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/domain/CompanyUser.java

@@ -27,7 +27,7 @@ private static final long serialVersionUID=1L;
     @TableId(value = "user_id")
     private Long userId;
     /** 公司id */
-    private String companyId;
+    private Long companyId;
     /** 企业用户名 */
     private String username;
     /** 密码 */

+ 7 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/mapper/CompanyCertificateMapper.java

@@ -1,7 +1,13 @@
 package com.zhongzheng.modules.company.mapper;
 
+import com.zhongzheng.modules.company.bo.CompanyCertificateQueryBo;
 import com.zhongzheng.modules.company.domain.CompanyCertificate;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.company.vo.CompanyCertificateVo;
+import com.zhongzheng.modules.order.bo.OrderHandleQueryBo;
+import com.zhongzheng.modules.order.vo.OrderHandleVo;
+
+import java.util.List;
 
 /**
  * 企业证书Mapper接口
@@ -10,5 +16,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @date 2024-03-18
  */
 public interface CompanyCertificateMapper extends BaseMapper<CompanyCertificate> {
+    List<CompanyCertificateVo> selectCompanyCertificate(CompanyCertificateQueryBo bo);
 
 }

+ 11 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/service/ICompanyCertificateService.java

@@ -1,11 +1,13 @@
 package com.zhongzheng.modules.company.service;
 
+import com.zhongzheng.modules.company.bo.ExcelCompanyCertificateBo;
 import com.zhongzheng.modules.company.domain.CompanyCertificate;
 import com.zhongzheng.modules.company.vo.CompanyCertificateVo;
 import com.zhongzheng.modules.company.bo.CompanyCertificateQueryBo;
 import com.zhongzheng.modules.company.bo.CompanyCertificateAddBo;
 import com.zhongzheng.modules.company.bo.CompanyCertificateEditBo;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.Collection;
 import java.util.List;
@@ -44,9 +46,15 @@ public interface ICompanyCertificateService extends IService<CompanyCertificate>
 
 	/**
 	 * 校验并删除数据
-	 * @param ids 主键集合
-	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @param bo
 	 * @return
 	 */
-	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+	Boolean deleteWithValidByIds(CompanyCertificateEditBo bo);
+
+	/**
+	 * 导入企业证书文件
+	 * @param file 主键集合
+	 * @return
+	 */
+	Boolean importCertificateExcel(ExcelCompanyCertificateBo bo);
 }

+ 8 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/service/ICompanyDepartmentService.java

@@ -48,5 +48,12 @@ public interface ICompanyDepartmentService extends IService<CompanyDepartment> {
 	 * @param isValid 是否校验,true-删除前校验,false-不校验
 	 * @return
 	 */
-	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+	Boolean deleteWithValidByIds(CompanyDepartmentEditBo bo);
+	/**
+	 * 获取公司部门列表
+	 * @param   depts
+	 * @param
+	 * @return
+	 */
+	List<CompanyDepartment> buildDeptTree(List<CompanyDepartment> depts);
 }

+ 8 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/service/ICompanyService.java

@@ -44,9 +44,14 @@ public interface ICompanyService extends IService<Company> {
 
 	/**
 	 * 校验并删除数据
-	 * @param ids 主键集合
-	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @param bo 获取ids
 	 * @return
 	 */
-	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+	Boolean deleteWithValidByIds(CompanyEditBo bo);
+	/**
+	 * 查询企业部门列表
+	 * @param bo
+	 * @return
+	 */
+	List<CompanyVo> selectCompanyDepartment(CompanyQueryBo bo);
 }

+ 374 - 36
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/service/impl/CompanyCertificateServiceImpl.java

@@ -1,25 +1,40 @@
 package com.zhongzheng.modules.company.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.common.utils.poi.EasyPoiUtil;
+import com.zhongzheng.modules.company.bo.*;
+import com.zhongzheng.modules.company.domain.Company;
+import com.zhongzheng.modules.company.service.ICompanyService;
+import com.zhongzheng.modules.company.vo.ExcelCompanyCertificateVo;
+import com.zhongzheng.modules.tencentcloud.service.IFaceOcrService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.Page;
-import com.zhongzheng.modules.company.bo.CompanyCertificateAddBo;
-import com.zhongzheng.modules.company.bo.CompanyCertificateQueryBo;
-import com.zhongzheng.modules.company.bo.CompanyCertificateEditBo;
 import com.zhongzheng.modules.company.domain.CompanyCertificate;
 import com.zhongzheng.modules.company.mapper.CompanyCertificateMapper;
 import com.zhongzheng.modules.company.vo.CompanyCertificateVo;
 import com.zhongzheng.modules.company.service.ICompanyCertificateService;
+import org.springframework.web.multipart.MultipartFile;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
+import java.text.SimpleDateFormat;
+import java.time.*;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import static cn.hutool.core.date.DateUtil.*;
 
 /**
  * 企业证书Service业务层处理
@@ -29,40 +44,56 @@ import java.util.stream.Collectors;
  */
 @Service
 public class CompanyCertificateServiceImpl extends ServiceImpl<CompanyCertificateMapper, CompanyCertificate> implements ICompanyCertificateService {
+    @Autowired
+    private ICompanyService iCompanyService;
 
     @Override
-    public CompanyCertificateVo queryById(Long certificateId){
+    public CompanyCertificateVo queryById(Long certificateId) {
         CompanyCertificate db = this.baseMapper.selectById(certificateId);
         return BeanUtil.toBean(db, CompanyCertificateVo.class);
     }
 
     @Override
     public List<CompanyCertificateVo> queryList(CompanyCertificateQueryBo bo) {
-        LambdaQueryWrapper<CompanyCertificate> lqw = Wrappers.lambdaQuery();
-        lqw.eq(StrUtil.isNotBlank(bo.getCompanyId()), CompanyCertificate::getCompanyId, bo.getCompanyId());
-        lqw.eq(StrUtil.isNotBlank(bo.getTenantId()), CompanyCertificate::getTenantId, bo.getTenantId());
-        lqw.eq(StrUtil.isNotBlank(bo.getCertificateNumber()), CompanyCertificate::getCertificateNumber, bo.getCertificateNumber());
-        lqw.eq(bo.getCertificateType() != null, CompanyCertificate::getCertificateType, bo.getCertificateType());
-        lqw.eq(bo.getWarningStatus() != null, CompanyCertificate::getWarningStatus, bo.getWarningStatus());
-        lqw.eq(StrUtil.isNotBlank(bo.getPreviewImg()), CompanyCertificate::getPreviewImg, bo.getPreviewImg());
-        lqw.eq(bo.getStatus() != null, CompanyCertificate::getStatus, bo.getStatus());
-        return entity2Vo(this.list(lqw));
+        List<CompanyCertificateVo> companyCertificateVos = baseMapper.selectCompanyCertificate(bo);
+        if (CollectionUtils.isEmpty(companyCertificateVos)) {
+            return new ArrayList<>();
+        }
+        companyCertificateVos.forEach(item -> {
+            if (ObjectUtil.isAllNotEmpty(item.getEffectiveDate(), item.getIssuanceDate())) {
+                Date effectivedate = new Date(item.getEffectiveDate() * 1000L);
+                if (effectivedate.compareTo(new Date()) > 0) {
+                    item.setExpirationTime(0L);
+                } else {
+                    //查询实时证书过期时间更新证书预警状态
+                    CompanyCertificate companyCertificate = new CompanyCertificate();
+                    companyCertificate.setUpdateTime(DateUtils.getNowTime());
+                    companyCertificate.setWarningStatus(2);
+                    companyCertificate.setCertificateId(item.getCertificateId());
+                    this.baseMapper.updateById(companyCertificate);
+                    long l = DateUtil.between(effectivedate, new Date(), DateUnit.DAY);
+                    item.setWarningStatus(2);
+                    item.setExpirationTime(l);
+                }
+            }
+        });
+        return companyCertificateVos;
     }
 
     /**
-    * 实体类转化成视图对象
-    *
-    * @param collection 实体类集合
-    * @return
-    */
+     * 实体类转化成视图对象
+     *
+     * @param collection 实体类集合
+     * @return
+     */
     private List<CompanyCertificateVo> entity2Vo(Collection<CompanyCertificate> collection) {
         List<CompanyCertificateVo> voList = collection.stream()
                 .map(any -> BeanUtil.toBean(any, CompanyCertificateVo.class))
                 .collect(Collectors.toList());
         if (collection instanceof Page) {
-            Page<CompanyCertificate> page = (Page<CompanyCertificate>)collection;
+            Page<CompanyCertificate> page = (Page<CompanyCertificate>) collection;
             Page<CompanyCertificateVo> pageVo = new Page<>();
-            BeanUtil.copyProperties(page,pageVo);
+            BeanUtil.copyProperties(page, pageVo);
             pageVo.addAll(voList);
             voList = pageVo;
         }
@@ -72,7 +103,29 @@ public class CompanyCertificateServiceImpl extends ServiceImpl<CompanyCertificat
     @Override
     public Boolean insertByAddBo(CompanyCertificateAddBo bo) {
         CompanyCertificate add = BeanUtil.toBean(bo, CompanyCertificate.class);
-        validEntityBeforeSave(add);
+        add.setCertificateId(bo.getCertificateId());
+        if (bo.getCertificateType().equals(2)) {
+            add.setText(JSONArray.toJSONString(bo.getInfoList()));
+        }
+        //证书有效时间判断
+        if (ObjectUtil.isNotEmpty(bo.getIssuanceDate()) && ObjectUtil.isNotEmpty(bo.getEffectiveDate())) {
+            if (bo.getEffectiveDate().equals(1L)) {
+                bo.setWarningStatus(1);
+            } else {
+                Date issuancedate = new Date(bo.getIssuanceDate() * 1000L);
+                Date effectivedate = new Date(bo.getEffectiveDate() * 1000L);
+                if (effectivedate.compareTo(issuancedate) < 0) {
+                    throw new CustomException("证书有效时间错误");
+                }
+                if (effectivedate.compareTo(new Date()) < 0) {
+                    add.setWarningStatus(1);
+                } else {
+                    add.setWarningStatus(2);
+                }
+            }
+        } else {
+            throw new CustomException("时间不能为空");
+        }
         add.setCreateTime(DateUtils.getNowTime());
         add.setUpdateTime(DateUtils.getNowTime());
         return this.save(add);
@@ -81,25 +134,310 @@ public class CompanyCertificateServiceImpl extends ServiceImpl<CompanyCertificat
     @Override
     public Boolean updateByEditBo(CompanyCertificateEditBo bo) {
         CompanyCertificate update = BeanUtil.toBean(bo, CompanyCertificate.class);
-        validEntityBeforeSave(update);
+        if (ObjectUtil.isNotEmpty(bo.getInfoList())) {
+            update.setText(JSONArray.toJSONString(bo.getInfoList()));
+        }
+        if (ObjectUtil.isNotEmpty(bo.getIssuanceDate()) && ObjectUtil.isNotEmpty(bo.getEffectiveDate())) {
+            if (bo.getEffectiveDate().equals(1L)) {
+                bo.setWarningStatus(1);
+            } else {
+                Date issuancedate = new Date(bo.getIssuanceDate() * 1000L);
+                Date effectivedate = new Date(bo.getEffectiveDate() * 1000L);
+                if (effectivedate.compareTo(issuancedate) < 0) {
+                    throw new CustomException("证书有效时间错误");
+                }
+            }
+        }
         update.setUpdateTime(DateUtils.getNowTime());
         return this.updateById(update);
     }
 
-    /**
-     * 保存前的数据校验
-     *
-     * @param entity 实体类数据
-     */
-    private void validEntityBeforeSave(CompanyCertificate entity){
-        //TODO 做一些数据校验,如唯一约束
+
+    @Override
+    public Boolean deleteWithValidByIds(CompanyCertificateEditBo bo) {
+        if (ObjectUtil.isEmpty(bo.getCertificateIds())) {
+            throw new CustomException("请先勾选数据");
+        }
+        List<Long> certificateIds = bo.getCertificateIds();
+        certificateIds.forEach(item -> {
+            CompanyCertificate companyCertificate = this.baseMapper.selectById(item);
+            companyCertificate.setStatus(0);
+            this.baseMapper.updateById(companyCertificate);
+        });
+        return true;
+    }
+
+    public Integer getCompanyTypeByName(String companyTypeName) {
+        //公司类型判断
+        switch (companyTypeName) {
+            case "有限责任公司":
+                return 1;
+            case "国有企业":
+                return 2;
+            case "集体企业":
+                return 3;
+            case "股份合作企业":
+                return 4;
+            case "联营企业":
+                return 5;
+            case "私营企业":
+                return 6;
+            case "其他企业":
+                return 7;
+            case "合资经营企业 (港或澳、台资)":
+                return 8;
+            case "合作经营企业 (港或澳、台资)":
+                return 9;
+            case "港、澳、台商独资经营企业":
+                return 10;
+            case "港、澳、台商投资股份有限公司":
+                return 11;
+            case "其他港、澳、台商投资企业":
+                return 12;
+            case "中外合资经营企业":
+                return 13;
+            case "中外合作经营企业":
+                return 14;
+            case "外资企业":
+                return 15;
+            case "外商投资股份有限公司":
+                return 16;
+            case "其他外商投资企业":
+                return 17;
+        }
+        return null;
+    }
+
+    public Integer getDocumentTypeByName(String documentTypeName) {
+        //公司类型判断
+        switch (documentTypeName) {
+            case "正本":
+                return 1;
+            case "副本":
+                return 2;
+        }
+        return null;
+    }
+
+    public Integer getZzDocumentTypeByName(String documentTypeName) {
+        //公司类型判断
+        switch (documentTypeName) {
+            case "主项":
+                return 1;
+            case "增项":
+                return 2;
+        }
+        return null;
     }
 
     @Override
-    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        if(isValid){
-            //TODO 做一些业务上的校验,判断是否需要校验
+    public Boolean importCertificateExcel(ExcelCompanyCertificateBo bo) {
+        if (bo.getCertificateType() == null) {
+            throw new CustomException("企业证书类型为空");
+        }
+        List<ExcelCompanyCertificateVo> companyCertificateVos = EasyPoiUtil.importExcel(bo.getFile(), 0, 1, ExcelCompanyCertificateVo.class);
+        if (ObjectUtil.isEmpty(companyCertificateVos)) {
+            throw new CustomException("文档数据为空");
+        }
+        //判断不同证书类型 1:营业执照 2:资质证书 3:安全生产许可证 4:其他证书
+        switch (bo.getCertificateType()) {
+            case 1:
+                companyCertificateVos.forEach(item -> {
+                    if (ObjectUtil.isAllNotEmpty(item.getCompanyName(), item.getDocumentTypeName())) {
+                        List<Company> companyList = iCompanyService.list(new LambdaQueryWrapper<Company>().eq(Company::getCompanyName, item.getCompanyName()).eq(Company::getStatus, 1));
+                        if (ObjectUtil.isNotEmpty(companyList)) {
+                            Company company = companyList.get(0);
+                            CompanyCertificate companyCertificate = new CompanyCertificate();
+                            companyCertificate.setCertificateType(bo.getCertificateType());
+                            companyCertificate.setCompanyId(company.getCompanyId());
+                            companyCertificate.setCompanyName(item.getCompanyName());
+                            Integer documentTypeByName = getDocumentTypeByName(item.getDocumentTypeName());
+                            companyCertificate.setDocumentType(documentTypeByName);
+                            Integer companyType = getCompanyTypeByName(item.getCompanyTypeName());
+                            companyCertificate.setCompanyType(Long.valueOf(companyType));
+                            if (ObjectUtil.isNotEmpty(item.getEstablishDateName())) {
+                                String establishDateName = item.getEstablishDateName();
+                                Long dateTimeSec = DateUtils.dateTimeSec("yyyy/MM/dd", establishDateName);
+                                companyCertificate.setEstablishDate(dateTimeSec);
+                            }
+                            if (ObjectUtil.isNotEmpty(item.getOperateDateName())) {
+                                if (item.getOperateDateName().equals("长期")) {
+                                    companyCertificate.setOperateDate(1L);
+                                } else {
+                                    String operateDateName = item.getOperateDateName();
+                                    Long operateDate = DateUtils.dateTimeSec("yyyy/MM/dd", operateDateName);
+                                    companyCertificate.setEstablishDate(operateDate);
+                                }
+                            }
+                            companyCertificate.setCreditCode(item.getCreditCode());
+                            companyCertificate.setRegisteredCapital(item.getRegisteredCapital());
+                            companyCertificate.setLegalRepresentative(item.getLegalRepresentative());
+                            companyCertificate.setCompanyAddress(item.getCompanyAddress());
+                            companyCertificate.setRegistrationAuthority(item.getRegistrationAuthority());
+                            companyCertificate.setExperienceScope(item.getExperienceScope());
+                            companyCertificate.setCreateTime(DateUtils.getNowTime());
+                            companyCertificate.setUpdateTime(DateUtils.getNowTime());
+                            this.baseMapper.insert(companyCertificate);
+                        }
+                    }
+                });
+                break;
+            case 2:
+                Map<String, List<ExcelCompanyCertificateVo>> collect = companyCertificateVos.stream().collect(Collectors.groupingBy(ExcelCompanyCertificateVo::getCertificateNumber));
+                List<ExcelCompanyCertificateVo> certificateVos = new ArrayList<>();
+                ArrayList<CompanyCertificateInfo> companyCertificateInfos = new ArrayList<>();
+                //根据证书编号分组获取证书列表
+                collect.forEach((k, v) -> {
+                    List<ExcelCompanyCertificateVo> excelCompanyCertificateVos = collect.get(k);
+                    ExcelCompanyCertificateVo excelCompanyCertificateVo = excelCompanyCertificateVos.get(0);
+                     excelCompanyCertificateVos.forEach(item -> {
+                        CompanyCertificateInfo companyCertificateInfo = new CompanyCertificateInfo();
+                        if (ObjectUtil.isNotEmpty(item.getDocumentTypeName())){
+                            Integer zzDocumentTypeByName = getZzDocumentTypeByName(item.getDocumentTypeName());
+                            companyCertificateInfo.setItemClass(Long.valueOf(zzDocumentTypeByName));
+                        }
+                        if (ObjectUtil.isNotEmpty(item.getGiveDate())) {
+                            String giveDate = item.getGiveDate();
+                            Long applicationDate = DateUtils.dateTimeSec("yyyy/MM/dd", giveDate);
+                            companyCertificateInfo.setApplicationDate(applicationDate);
+                        }
+                        companyCertificateInfo.setQualificationCategory(item.getZzSort());
+                        companyCertificateInfos.add(companyCertificateInfo);
+                    });
+                    excelCompanyCertificateVo.setText(JSONArray.toJSONString(companyCertificateInfos));
+                    certificateVos.add(excelCompanyCertificateVo);
+                    if (ObjectUtil.isNotEmpty(excelCompanyCertificateVo.getIssuanceDateName())) {
+                        String issuanceDateName = excelCompanyCertificateVo.getIssuanceDateName();
+                        Long dateTimeSec = DateUtils.dateTimeSec("yyyy/MM/dd", issuanceDateName);
+                        excelCompanyCertificateVo.setIssuanceDate(dateTimeSec);
+                    }
+                    if (ObjectUtil.isNotEmpty(excelCompanyCertificateVo.getEffectiveDateName())) {
+                        if (excelCompanyCertificateVo.getEffectiveDateName().equals("长期")) {
+                            excelCompanyCertificateVo.setEffectiveDate(1L);
+                        } else {
+                            String effectiveDateName = excelCompanyCertificateVo.getEffectiveDateName();
+                            Long operateDate = DateUtils.dateTimeSec("yyyy/MM/dd", effectiveDateName);
+                            excelCompanyCertificateVo.setEffectiveDate(operateDate);
+                        }
+                    }
+                });
+                //判断当前列表中企业名称是否存在company表中
+                ExcelCompanyCertificateVo excelCompanyCertificateVo = certificateVos.get(0);
+                if (ObjectUtil.isAllNotEmpty(excelCompanyCertificateVo.getCompanyName(), excelCompanyCertificateVo.getDocumentTypeName())) {
+                    List<Company> companyList = iCompanyService.list(new LambdaQueryWrapper<Company>().eq(Company::getCompanyName, excelCompanyCertificateVo.getCompanyName()).eq(Company::getStatus, 1));
+                    if (ObjectUtil.isNotEmpty(companyList)) {
+                        Company company = companyList.get(0);
+                        CompanyCertificate companyCertificate = new CompanyCertificate();
+                        companyCertificate.setCertificateType(bo.getCertificateType());
+                        companyCertificate.setCompanyId(company.getCompanyId());
+                        companyCertificate.setCompanyName(company.getCompanyName());
+                        companyCertificate.setCreditCode(company.getCreditCode());
+                        companyCertificate.setCompanyType(company.getCompanyType());
+                        companyCertificate.setRegisteredCapital(company.getRegisteredCapital());
+                        companyCertificate.setLegalRepresentative(company.getLegalRepresentative());
+                        companyCertificate.setCompanyAddress(company.getCompanyAddress());
+                        companyCertificate.setEstablishDate(company.getEstablishDate());
+                        companyCertificate.setOperateDate(company.getOperateDate());
+                        companyCertificate.setRegistrationAuthority(company.getRegistrationAuthority());
+                        companyCertificate.setExperienceScope(company.getExperienceScope());
+                        companyCertificate.setCertificateName(excelCompanyCertificateVo.getCertificateName());
+                        companyCertificate.setText(excelCompanyCertificateVo.getText());
+                        companyCertificate.setCertificateNumber(excelCompanyCertificateVo.getCertificateNumber());
+                        companyCertificate.setIssuanceDate(excelCompanyCertificateVo.getIssuanceDate());
+                        companyCertificate.setEffectiveDate(excelCompanyCertificateVo.getEffectiveDate());
+                        companyCertificate.setIssuingAuthority(excelCompanyCertificateVo.getIssuingAuthority());
+                        companyCertificate.setCreateTime(DateUtils.getNowTime());
+                        companyCertificate.setUpdateTime(DateUtils.getNowTime());
+                        this.baseMapper.insert(companyCertificate);
+                    }
+                }
+                break;
+            case 3:
+                companyCertificateVos.forEach(item -> {
+                    if (ObjectUtil.isAllNotEmpty(item.getCompanyName(), item.getCertificateNumber())) {
+                        List<Company> companyList = iCompanyService.list(new LambdaQueryWrapper<Company>().eq(Company::getCompanyName, item.getCompanyName()).eq(Company::getStatus, 1));
+                        if (ObjectUtil.isNotEmpty(companyList)) {
+                            Company company = companyList.get(0);
+                            CompanyCertificate companyCertificate = new CompanyCertificate();
+                            companyCertificate.setCertificateType(bo.getCertificateType());
+                            companyCertificate.setCompanyName(item.getCompanyName());
+                            companyCertificate.setCertificateNumber(item.getCertificateNumber());
+                            companyCertificate.setCompanyId(company.getCompanyId());
+                            companyCertificate.setCompanyName(company.getCompanyName());
+                            companyCertificate.setCreditCode(company.getCreditCode());
+                            companyCertificate.setCompanyType(company.getCompanyType());
+                            companyCertificate.setRegisteredCapital(company.getRegisteredCapital());
+                            companyCertificate.setLegalRepresentative(company.getLegalRepresentative());
+                            companyCertificate.setCompanyAddress(company.getCompanyAddress());
+                            companyCertificate.setEstablishDate(company.getEstablishDate());
+                            companyCertificate.setOperateDate(company.getOperateDate());
+                            companyCertificate.setRegistrationAuthority(company.getRegistrationAuthority());
+                            companyCertificate.setExperienceScope(company.getExperienceScope());
+                            if (ObjectUtil.isNotEmpty(item.getIssuanceDateName())) {
+                                String issuanceDateName = item.getIssuanceDateName();
+                                Long dateTimeSec = DateUtils.dateTimeSec("yyyy/MM/dd", issuanceDateName);
+                                companyCertificate.setIssuanceDate(dateTimeSec);
+                            }
+                            if (ObjectUtil.isNotEmpty(item.getEffectiveDateName())) {
+                                if (item.getEffectiveDateName().equals("长期")) {
+                                    companyCertificate.setEffectiveDate(1L);
+                                } else {
+                                    String effectiveDateName = item.getEffectiveDateName();
+                                    Long operateDate = DateUtils.dateTimeSec("yyyy/MM/dd", effectiveDateName);
+                                    companyCertificate.setEffectiveDate(operateDate);
+                                }
+                            }
+                            companyCertificate.setIssuingAuthority(item.getIssuingAuthority());
+                            companyCertificate.setCreateTime(DateUtils.getNowTime());
+                            companyCertificate.setUpdateTime(DateUtils.getNowTime());
+                            this.baseMapper.insert(companyCertificate);
+                        }
+                    }
+                });
+                break;
+            case 4:
+                companyCertificateVos.forEach(item -> {
+                    if (ObjectUtil.isAllNotEmpty(item.getCompanyName(), item.getCertificateNumber())) {
+                        List<Company> companyList = iCompanyService.list(new LambdaQueryWrapper<Company>().eq(Company::getCompanyName, item.getCompanyName()).eq(Company::getStatus, 1));
+                        if (ObjectUtil.isNotEmpty(companyList)) {
+                            Company company = companyList.get(0);
+                            CompanyCertificate companyCertificate = new CompanyCertificate();
+                            companyCertificate.setCertificateType(bo.getCertificateType());
+                            companyCertificate.setCompanyId(company.getCompanyId());
+                            companyCertificate.setCompanyName(company.getCompanyName());
+                            companyCertificate.setCreditCode(company.getCreditCode());
+                            companyCertificate.setCompanyType(company.getCompanyType());
+                            companyCertificate.setRegisteredCapital(company.getRegisteredCapital());
+                            companyCertificate.setLegalRepresentative(company.getLegalRepresentative());
+                            companyCertificate.setCompanyAddress(company.getCompanyAddress());
+                            companyCertificate.setEstablishDate(company.getEstablishDate());
+                            companyCertificate.setOperateDate(company.getOperateDate());
+                            companyCertificate.setRegistrationAuthority(company.getRegistrationAuthority());
+                            companyCertificate.setExperienceScope(company.getExperienceScope());
+                            companyCertificate.setCertificateName(item.getCertificateName());
+                            if (ObjectUtil.isNotEmpty(item.getIssuanceDateName())) {
+                                String issuanceDateName = item.getIssuanceDateName();
+                                Long dateTimeSec = DateUtils.dateTimeSec("yyyy/MM/dd", issuanceDateName);
+                                companyCertificate.setIssuanceDate(dateTimeSec);
+                            }
+                            if (ObjectUtil.isNotEmpty(item.getEffectiveDateName())) {
+                                if (item.getEffectiveDateName().equals("长期")) {
+                                    companyCertificate.setEffectiveDate(1L);
+                                } else {
+                                    String effectiveDateName = item.getEffectiveDateName();
+                                    Long operateDate = DateUtils.dateTimeSec("yyyy/MM/dd", effectiveDateName);
+                                    companyCertificate.setEffectiveDate(operateDate);
+                                }
+                            }
+                            companyCertificate.setIssuingAuthority(item.getIssuingAuthority());
+                            companyCertificate.setCreateTime(DateUtils.getNowTime());
+                            companyCertificate.setUpdateTime(DateUtils.getNowTime());
+                            this.baseMapper.insert(companyCertificate);
+                        }
+                    }
+                });
+                break;
         }
-        return this.removeByIds(ids);
+        return true;
     }
 }

+ 114 - 14
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/service/impl/CompanyDepartmentServiceImpl.java

@@ -1,8 +1,14 @@
 package com.zhongzheng.modules.company.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.lang.Validator;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import com.zhongzheng.common.core.domain.TreeSelect;
+import com.zhongzheng.common.core.domain.entity.SysDept;
+import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.company.bo.CompanyQueryBo;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -16,9 +22,7 @@ import com.zhongzheng.modules.company.mapper.CompanyDepartmentMapper;
 import com.zhongzheng.modules.company.vo.CompanyDepartmentVo;
 import com.zhongzheng.modules.company.service.ICompanyDepartmentService;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -39,18 +43,17 @@ public class CompanyDepartmentServiceImpl extends ServiceImpl<CompanyDepartmentM
     @Override
     public List<CompanyDepartmentVo> queryList(CompanyDepartmentQueryBo bo) {
         LambdaQueryWrapper<CompanyDepartment> lqw = Wrappers.lambdaQuery();
-        lqw.eq(StrUtil.isNotBlank(bo.getCompanyId()), CompanyDepartment::getCompanyId, bo.getCompanyId());
+        lqw.eq(ObjectUtil.isNotEmpty(bo.getCompanyId()), CompanyDepartment::getCompanyId, bo.getCompanyId());
         lqw.eq(StrUtil.isNotBlank(bo.getTenantId()), CompanyDepartment::getTenantId, bo.getTenantId());
-        lqw.like(StrUtil.isNotBlank(bo.getDepartmentName()), CompanyDepartment::getDepartmentName, bo.getDepartmentName());
         lqw.eq(bo.getDepartmentType() != null, CompanyDepartment::getDepartmentType, bo.getDepartmentType());
         lqw.eq(StrUtil.isNotBlank(bo.getRegisteredContacts()), CompanyDepartment::getRegisteredContacts, bo.getRegisteredContacts());
         lqw.eq(StrUtil.isNotBlank(bo.getDepartmentPhone()), CompanyDepartment::getDepartmentPhone, bo.getDepartmentPhone());
         lqw.eq(bo.getDepartmentNum() != null, CompanyDepartment::getDepartmentNum, bo.getDepartmentNum());
         lqw.eq(StrUtil.isNotBlank(bo.getDepartmentRemarks()), CompanyDepartment::getDepartmentRemarks, bo.getDepartmentRemarks());
-        lqw.eq(StrUtil.isNotBlank(bo.getDepartmentFartherId()), CompanyDepartment::getDepartmentFartherId, bo.getDepartmentFartherId());
+        lqw.eq(ObjectUtil.isNotEmpty(bo.getDepartmentFartherId()), CompanyDepartment::getDepartmentFartherId, bo.getDepartmentFartherId());
         lqw.eq(bo.getDepartmentLevel() != null, CompanyDepartment::getDepartmentLevel, bo.getDepartmentLevel());
-        lqw.eq(bo.getStatus() != null, CompanyDepartment::getStatus, bo.getStatus());
-        return entity2Vo(this.list(lqw));
+        lqw.eq(bo.getStatus() != null, CompanyDepartment::getStatus, 1);
+       return entity2Vo(this.list(lqw));
     }
 
     /**
@@ -73,10 +76,81 @@ public class CompanyDepartmentServiceImpl extends ServiceImpl<CompanyDepartmentM
         return voList;
     }
 
+    @Override
+    public List<CompanyDepartment> buildDeptTree(List<CompanyDepartment> depts) {
+        List<CompanyDepartment> returnList = new ArrayList<CompanyDepartment>();
+        List<Long> tempList = new ArrayList<Long>();
+        for (CompanyDepartment dept : depts) {
+            tempList.add(dept.getDepartmentId());
+        }
+        for (Iterator<CompanyDepartment> iterator = depts.iterator(); iterator.hasNext(); ) {
+            CompanyDepartment dept = (CompanyDepartment) iterator.next();
+            // 如果是顶级节点, 遍历该父节点的所有子节点
+            if (!tempList.contains(dept.getDepartmentFartherId())) {
+                recursionFn(depts, dept);
+                returnList.add(dept);
+            }
+        }
+        if (returnList.isEmpty()) {
+            returnList = depts;
+        }
+        returnList=returnList.stream().filter(s->s.getDepartmentLevel()==1).collect(Collectors.toList());
+        return returnList;
+    }
+
+    /**
+     * 递归列表
+     */
+    private void recursionFn(List<CompanyDepartment> list, CompanyDepartment t) {
+        // 得到子节点列表
+        List<CompanyDepartment> childList = getChildList(list, t);
+        t.setChildren(childList);
+        for (CompanyDepartment tChild : childList) {
+            if (hasChild(list, tChild)) {
+                recursionFn(list, tChild);
+            }
+        }
+    }
+
+    private boolean hasChild(List<CompanyDepartment> list, CompanyDepartment t) {
+        return getChildList(list, t).size() > 0 ? true : false;
+    }
+
+    /**
+     * 得到子节点列表
+     */
+    private List<CompanyDepartment> getChildList(List<CompanyDepartment> list, CompanyDepartment t) {
+        List<CompanyDepartment> tlist = new ArrayList<CompanyDepartment>();
+        Iterator<CompanyDepartment> it = list.iterator();
+        while (it.hasNext()) {
+            CompanyDepartment n = (CompanyDepartment) it.next();
+                if (Validator.isNotNull(n.getDepartmentFartherId()) && n.getDepartmentFartherId().equals(t.getDepartmentId())) {
+                    tlist.add(n);
+            }
+        }
+        return tlist;
+    }
+
+
     @Override
     public Boolean insertByAddBo(CompanyDepartmentAddBo bo) {
         CompanyDepartment add = BeanUtil.toBean(bo, CompanyDepartment.class);
         validEntityBeforeSave(add);
+        if (ObjectUtil.isEmpty(add.getCompanyId())){
+            throw new CustomException("未选择企业");
+        }
+        if (ObjectUtil.isNotEmpty(add.getDepartmentId())){
+            CompanyDepartment companyDepartment = this.baseMapper.selectById(add.getDepartmentId());
+            if (ObjectUtil.isNotEmpty(companyDepartment)&&companyDepartment.getStatus().equals(1)){
+                add.setDepartmentFartherId(companyDepartment.getDepartmentId());
+                add.setDepartmentLevel(companyDepartment.getDepartmentLevel()+1L);
+            }
+            else {
+                throw new CustomException("父级部门不存在");
+            }
+        }else {
+            add.setDepartmentLevel(1L);
+        }
         add.setCreateTime(DateUtils.getNowTime());
         add.setUpdateTime(DateUtils.getNowTime());
         return this.save(add);
@@ -98,12 +172,38 @@ public class CompanyDepartmentServiceImpl extends ServiceImpl<CompanyDepartmentM
     private void validEntityBeforeSave(CompanyDepartment entity){
         //TODO 做一些数据校验,如唯一约束
     }
-
-    @Override
-    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        if(isValid){
-            //TODO 做一些业务上的校验,判断是否需要校验
+    /**
+     * 获取当前部门所有子级部门列表集合
+     *
+     * @param departmentId 实体类数据
+     */
+    public List<CompanyDepartment> selectListByFartherId(Long departmentId){
+        ArrayList<CompanyDepartment> sonCompanyDepartmentList = new ArrayList<>();
+        List<CompanyDepartment> companyDepartments = this.baseMapper.selectList(new LambdaQueryWrapper<CompanyDepartment>().eq(CompanyDepartment::getDepartmentFartherId, departmentId).eq(CompanyDepartment::getStatus, 1));
+        if (ObjectUtil.isNotEmpty(companyDepartments)){
+            sonCompanyDepartmentList.addAll(companyDepartments);
+            companyDepartments.forEach(item->{
+                List<CompanyDepartment> companyDepartmentList = this.selectListByFartherId(item.getDepartmentId());
+                sonCompanyDepartmentList.addAll(companyDepartmentList);
+            });
         }
-        return this.removeByIds(ids);
+        return sonCompanyDepartmentList;
+    }
+    /**
+     * 删除当前部门及子级列表集合
+     *
+     * @param bo 实体类数据
+     */
+    @Override
+    public Boolean deleteWithValidByIds(CompanyDepartmentEditBo bo) {
+        CompanyDepartment companyDepartment = this.baseMapper.selectById(bo.getDepartmentId());
+        List<CompanyDepartment> companyDepartments = this.selectListByFartherId(bo.getDepartmentId());
+        companyDepartments.add(companyDepartment);
+        companyDepartments.forEach(item->{
+            item.setStatus(0);
+            this.baseMapper.updateById(item);
+        });
+        return true;
     }
+
 }

+ 64 - 11
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/service/impl/CompanyServiceImpl.java

@@ -5,7 +5,12 @@ import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.company.domain.CompanyCertificate;
+import com.zhongzheng.modules.company.domain.CompanyDepartment;
+import com.zhongzheng.modules.company.service.ICompanyCertificateService;
 import com.zhongzheng.modules.company.service.ICompanyDepartmentService;
+import com.zhongzheng.modules.staff.domain.Staff;
+import com.zhongzheng.modules.staff.service.IStaffService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -21,7 +26,7 @@ import com.zhongzheng.modules.company.vo.CompanyVo;
 import com.zhongzheng.modules.company.service.ICompanyService;
 
 import java.util.Collection;
-import java.util.Collections;
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -35,6 +40,10 @@ import java.util.stream.Collectors;
 public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> implements ICompanyService {
     @Autowired
     private ICompanyDepartmentService iCompanyDepartmentService;
+    @Autowired
+    private ICompanyCertificateService iCompanyCertificateService;
+    @Autowired
+    private IStaffService iStaffService;
 
     @Override
     public CompanyVo queryById(Long companyId){
@@ -61,9 +70,10 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
         lqw.eq(StrUtil.isNotBlank(bo.getPosition()), Company::getPosition, bo.getPosition());
         lqw.eq(StrUtil.isNotBlank(bo.getCompanyRemarks()), Company::getCompanyRemarks, bo.getCompanyRemarks());
         lqw.eq(bo.getCompanyLevel() != null, Company::getCompanyLevel, bo.getCompanyLevel());
-        lqw.eq(StrUtil.isNotBlank(bo.getFatherId()), Company::getFatherId, bo.getFatherId());
-        lqw.eq(bo.getStatus() != null, Company::getStatus, bo.getStatus());
+        lqw.eq(ObjectUtil.isNotEmpty(bo.getFatherId()), Company::getFatherId, bo.getFatherId());
+        lqw.eq(bo.getStatus() != null, Company::getStatus, 1);
         return entity2Vo(this.list(lqw));
+
     }
 
     /**
@@ -90,14 +100,19 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
     public Boolean insertByAddBo(CompanyAddBo bo) {
         Company add = BeanUtil.toBean(bo, Company.class);
         validEntityBeforeSave(add);
+        Date issuancedate = new Date(bo.getEstablishDate()* 1000L);
+        Date effectivedate = new Date(bo.getOperateDate() * 1000L);
+        if (effectivedate.compareTo(issuancedate)<0){
+            throw new CustomException("营业时间错误");
+        }
         if (ObjectUtil.isNotEmpty(add.getCompanyId())){
             Company company = this.baseMapper.selectById(add.getCompanyId());
-            if (ObjectUtil.isEmpty(company)){
+            if (ObjectUtil.isEmpty(company)&&company.getStatus().equals(1)){
                 throw new CustomException("总公司不存在");
             }
-            add.setFatherId(String.valueOf(add.getCompanyId()));
-            Long companyLevel = add.getCompanyLevel();
-            add.setCompanyLevel(++companyLevel);
+            add.setFatherId(add.getCompanyId());
+            Long companyLevel = company.getCompanyLevel();
+            add.setCompanyLevel(companyLevel+1L);
         }else {
             add.setCompanyLevel(1L);
         }
@@ -109,6 +124,13 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
     @Override
     public Boolean updateByEditBo(CompanyEditBo bo) {
         Company update = BeanUtil.toBean(bo, Company.class);
+        if (ObjectUtil.isAllNotEmpty(bo.getEstablishDate(),bo.getOperateDate())){
+            Date issuancedate = new Date(bo.getEstablishDate()* 1000L);
+            Date effectivedate = new Date(bo.getOperateDate() * 1000L);
+            if (effectivedate.compareTo(issuancedate)<0){
+                throw new CustomException("营业时间错误");
+            }
+        }
         validEntityBeforeSave(update);
         update.setUpdateTime(DateUtils.getNowTime());
         return this.updateById(update);
@@ -124,10 +146,41 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
     }
 
     @Override
-    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        if(isValid){
-            //TODO 做一些业务上的校验,判断是否需要校验
+    public Boolean deleteWithValidByIds(CompanyEditBo bo) {
+        Company company = this.baseMapper.selectById(bo.getCompanyId());
+        if (ObjectUtil.isEmpty(company)){
+            throw new CustomException("当前企业不存在");
+        }
+        company.setStatus(0);
+        this.baseMapper.updateById(company);
+        return true;
+    }
+    /**
+     * 查询企业部门列表
+     *
+     * @param bo 实体类数据
+     */
+    @Override
+    public List<CompanyVo> selectCompanyDepartment(CompanyQueryBo bo) {
+        List<CompanyVo> companyVos = this.queryList(bo);
+        if (ObjectUtil.isNotEmpty(companyVos)){
+            companyVos.forEach(item->{
+                //判断当前企业是否关联企业证书和员工信息
+                List<CompanyCertificate> companyCertificates = iCompanyCertificateService.list(new LambdaQueryWrapper<CompanyCertificate>().eq(CompanyCertificate::getCompanyId, item.getCompanyId()).eq(CompanyCertificate::getStatus, 1));
+                List<Staff> staffList = iStaffService.list(new LambdaQueryWrapper<Staff>().eq(Staff::getCompanyId, item.getCompanyId()).eq(Staff::getStatus, 1));
+                if (ObjectUtil.isNotEmpty(companyCertificates)||ObjectUtil.isNotEmpty(staffList)){
+                    item.setDeleteStatus(2);
+                }else {
+                    item.setDeleteStatus(1);
+                }
+                List<CompanyDepartment> list = iCompanyDepartmentService.list(new LambdaQueryWrapper<CompanyDepartment>().eq(CompanyDepartment::getCompanyId, item.getCompanyId())
+                        .eq(CompanyDepartment::getStatus, 1));
+                list=iCompanyDepartmentService.buildDeptTree(list);
+                if (ObjectUtil.isNotEmpty(list)){
+                    item.setCompanyDepartmentList(list);
+                }
+            });
         }
-        return this.removeByIds(ids);
+        return companyVos;
     }
 }

+ 84 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/vo/CompanyCertificateVo.java

@@ -1,5 +1,8 @@
 package com.zhongzheng.modules.company.vo;
 
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.zhongzheng.common.annotation.Excel;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
@@ -35,6 +38,10 @@ public class CompanyCertificateVo {
 	@Excel(name = "证书编号")
 	@ApiModelProperty("证书编号")
 	private String certificateNumber;
+	/** 证书编号 */
+	@Excel(name = "证书名称")
+	@ApiModelProperty("证书名称")
+	private String certificateName;
 	/** 证书类型 1:营业执照 2:资质证书 3:安全生产许可证 4:其他 */
 	@Excel(name = "证书类型 1:营业执照 2:资质证书 3:安全生产许可证 4:其他")
 	@ApiModelProperty("证书类型 1:营业执照 2:资质证书 3:安全生产许可证 4:其他")
@@ -51,4 +58,81 @@ public class CompanyCertificateVo {
 	@Excel(name = "1有效 0无效")
 	@ApiModelProperty("1有效 0无效")
 	private Integer status;
+	/** *证件类型 1正本 2副本 */
+	@Excel(name = "*证件类型")
+	@ApiModelProperty("证件类型")
+	private Integer documentType;
+	/** 发证机关 */
+	@Excel(name = "发证机关")
+	@ApiModelProperty("发证机关")
+	private String issuingAuthority;;
+	/** 发证日期 */
+	@Excel(name = "发证日期")
+	@ApiModelProperty("发证日期")
+	private Long issuanceDate;
+	/** 有效日期 1:长期 */
+	@Excel(name = "有效日期")
+	@ApiModelProperty("有效日期")
+	private Long effectiveDate;
+	/** 企业证书备注*/
+	@Excel(name = "企业证书备注")
+	@ApiModelProperty("企业证书备注")
+	private String companyCertificateRemarks;
+	@Excel(name = "*企业名称")
+	@ApiModelProperty("企业名称")
+	private String companyName;
+	/** 企业信用代码 */
+	@Excel(name = "信用代码")
+	@ApiModelProperty("企业信用代码")
+	private String creditCode;
+	@ApiModelProperty("企业类型 1:有限责任公司 2:国有企业 3:集体企业 4:股份合作企业 5:联营企业 6:私营企业 7:其他企业 8 合资经营企业(港或澳、台资) 9:合作经营企业(港或澳、台资) 10:港、澳、台商独资经营企业 11:港、澳、台商投资股份有限公司 12:其他港澳台商投资企业 13:中外合资经营企业 14:中外合作经营企业 15:外资企业 16:外商投资股份有限公司 17:其他外商投资企业")
+	private Long companyType;
+	/** 注册资本 */
+	@Excel(name = "注册资本(万元/人民币)")
+	@ApiModelProperty("注册资本")
+	private Long registeredCapital;
+	/** 法定代表人 */
+	@Excel(name = "法定代表")
+	@ApiModelProperty("法定代表人")
+	private String legalRepresentative;
+	/** 企业地址 */
+	@Excel(name = "企业地址")
+	@ApiModelProperty("企业地址")
+	private String companyAddress;
+	/** 成立日期 */
+	@ApiModelProperty("成立日期")
+	private Long establishDate;
+	/** 营业日期 */
+	@ApiModelProperty("营业日期")
+	private Long operateDate;
+	/** 登记机关 */
+	@Excel(name = "登记机关")
+	@ApiModelProperty("登记机关")
+	private String registrationAuthority;
+	/** 经验范围 */
+	@Excel(name = "经营范围")
+	@ApiModelProperty("经验范围")
+	private String experienceScope;
+	/** 企业联系人 */
+	@ApiModelProperty("企业联系人")
+	private String companyContacts;
+	/** 企业联系电话 */
+	@ApiModelProperty("企业联系电话")
+	private String contactPhone;
+	/** 所在部门 */
+	@ApiModelProperty("所在部门")
+	private String department;
+	/** 所在岗位 */
+	@ApiModelProperty("所在岗位")
+	private String position;
+	/** 企业备注 */
+	@ApiModelProperty("企业备注")
+	private String companyRemarks;
+	/** 资质证书信息 */
+	@ApiModelProperty("资质证书信息")
+	private String text;
+	/** 证书过期时间 */
+	private Long expirationTime;
+
+
 }

+ 2 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/vo/CompanyDepartmentVo.java

@@ -59,7 +59,7 @@ public class CompanyDepartmentVo {
 	/** 部门父级id */
 	@Excel(name = "部门父级id")
 	@ApiModelProperty("部门父级id")
-	private String departmentFartherId;
+	private Long departmentFartherId;
 	/** 部门级别 1:一级部门 */
 	@Excel(name = "部门级别 1:一级部门")
 	@ApiModelProperty("部门级别 1:一级部门")
@@ -69,5 +69,5 @@ public class CompanyDepartmentVo {
 	@ApiModelProperty("1有效 0无效")
 	private Integer status;
 	@ApiModelProperty("子级部门列表")
-	private List<CompanyDepartment> childCompanyDepartment;
+	private List<CompanyDepartmentVo> companyDepartmentVoList;
 }

+ 8 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/vo/CompanyVo.java

@@ -95,13 +95,18 @@ public class CompanyVo {
 	/** 企业父级id */
 	@Excel(name = "企业父级id")
 	@ApiModelProperty("企业父级id")
-	private String fatherId;
+	private Long fatherId;
 	/** 1有效 0无效 */
 	@Excel(name = "1有效 0无效")
 	@ApiModelProperty("1有效 0无效")
 	private Integer status;
-	@Excel(name = "1有效 0无效")
-	@ApiModelProperty("1有效 0无效")
+	/** 公司父子部门列表 */
+	@Excel(name = "公司父子部门列表")
+	@ApiModelProperty("公司父子部门列表")
 	private List<CompanyDepartment> companyDepartmentList;
+	/** 是否可删除状态 1可删除 2 不可删除 */
+	@Excel(name = "是否可删除状态")
+	@ApiModelProperty("是否可删除状态")
+	private Integer deleteStatus;
 
 }

+ 145 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/vo/ExcelCompanyCertificateVo.java

@@ -0,0 +1,145 @@
+package com.zhongzheng.modules.company.vo;
+
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 企业证书表格导入视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+@Data
+@ApiModel("企业证书视图对象")
+public class ExcelCompanyCertificateVo {
+	/** 机构名称 */
+	@Excel(name = "机构名称")
+	@ApiModelProperty("机构名称")
+	private String tenantId;
+	/** 公司id */
+	@Excel(name = "公司id")
+	@ApiModelProperty("公司id")
+	private String companyId;
+	/** 证书编号 */
+	@Excel(name = "*证书编号")
+	@ApiModelProperty("证书编号")
+	private String certificateNumber;
+	/** 证书编号 */
+	@Excel(name = "证书名称")
+	@ApiModelProperty("证书名称")
+	private String certificateName;
+	/** 证书类型 1:营业执照 2:资质证书 3:安全生产许可证 4:其他 */
+	@Excel(name = "证书类型 1:营业执照 2:资质证书 3:安全生产许可证 4:其他")
+	@ApiModelProperty("证书类型 1:营业执照 2:资质证书 3:安全生产许可证 4:其他")
+	private Integer certificateType;
+	/** 预警状态 1:正常 2:已过期 */
+	@Excel(name = "预警状态 1:正常 2:已过期")
+	@ApiModelProperty("预警状态 1:正常 2:已过期")
+	private Integer warningStatus;
+	/** 预览 */
+	@Excel(name = "预览")
+	@ApiModelProperty("预览")
+	private String previewImg;
+	/** 1有效 0无效 */
+	@Excel(name = "1有效 0无效")
+	@ApiModelProperty("1有效 0无效")
+	private Integer status;
+	/** *证件类型 1正本 2副本 */
+	@ApiModelProperty("证件类型")
+	private Integer documentType;
+	@Excel(name = "*证件类型")
+	@ApiModelProperty("证件类型名称")
+	private String documentTypeName;
+	/** 发证机关 */
+	@Excel(name = "发证机关")
+	@ApiModelProperty("发证机关")
+	private String issuingAuthority;;
+	/** 发证日期 */
+	@Excel(name = "发证日期")
+	@ApiModelProperty("发证日期")
+	private String issuanceDateName;
+	/** 有效日期 1:长期 */
+	@Excel(name = "有效日期")
+	@ApiModelProperty("有效日期")
+	private String effectiveDateName;
+	/** 企业证书备注*/
+	@Excel(name = "企业证书备注")
+	@ApiModelProperty("企业证书备注")
+	private String companyCertificateRemarks;
+	@Excel(name = "*企业名称")
+	@ApiModelProperty("企业名称")
+	private String companyName;
+	/** 企业信用代码 */
+	@Excel(name = "信用代码")
+	@ApiModelProperty("企业信用代码")
+	private String creditCode;
+	@ApiModelProperty("企业类型 1:有限责任公司 2:国有企业 3:集体企业 4:股份合作企业 5:联营企业 6:私营企业 7:其他企业 8 合资经营企业(港或澳、台资) 9:合作经营企业(港或澳、台资) 10:港、澳、台商独资经营企业 11:港、澳、台商投资股份有限公司 12:其他港澳台商投资企业 13:中外合资经营企业 14:中外合作经营企业 15:外资企业 16:外商投资股份有限公司 17:其他外商投资企业")
+	private Long companyType;
+	@Excel(name = "企业类型")
+	@ApiModelProperty("企业类型名称 1:有限责任公司 2:国有企业 3:集体企业 4:股份合作企业 5:联营企业 6:私营企业 7:其他企业 8 合资经营企业(港或澳、台资) 9:合作经营企业(港或澳、台资) 10:港、澳、台商独资经营企业 11:港、澳、台商投资股份有限公司 12:其他港澳台商投资企业 13:中外合资经营企业 14:中外合作经营企业 15:外资企业 16:外商投资股份有限公司 17:其他外商投资企业")
+	private String companyTypeName;
+	/** 注册资本 */
+	@Excel(name = "注册资本(万元/人民币)")
+	@ApiModelProperty("注册资本")
+	private Long registeredCapital;
+	/** 法定代表人 */
+	@Excel(name = "法定代表")
+	@ApiModelProperty("法定代表人")
+	private String legalRepresentative;
+	/** 企业地址 */
+	@Excel(name = "企业地址")
+	@ApiModelProperty("企业地址")
+	private String companyAddress;
+	/** 成立日期名称 */
+	@Excel(name = "成立日期")
+	@ApiModelProperty("成立日期")
+	private String establishDateName;
+	/** 营业日期名称 */
+	@Excel(name = "营业期限")
+	@ApiModelProperty("营业期限")
+	private String operateDateName;
+	/** 登记机关 */
+	@Excel(name = "登记机关")
+	@ApiModelProperty("登记机关")
+	private String registrationAuthority;
+	/** 经验范围 */
+	@Excel(name = "经营范围")
+	@ApiModelProperty("经验范围")
+	private String experienceScope;
+	/** 企业联系人 */
+	@ApiModelProperty("企业联系人")
+	private String companyContacts;
+	/** 企业联系电话 */
+	@ApiModelProperty("企业联系电话")
+	private String contactPhone;
+	/** 所在部门 */
+	@ApiModelProperty("所在部门")
+	private String department;
+	/** 所在岗位 */
+	@ApiModelProperty("所在岗位")
+	private String position;
+	/** 企业备注 */
+	@ApiModelProperty("企业备注")
+	private String companyRemarks;
+	/** 资质证书信息 */
+	@ApiModelProperty("资质证书信息")
+	private String text;
+	/** 资质证书信息 */
+	@Excel(name = "资质类别/等级")
+	@ApiModelProperty("资质类别/等级")
+	private String zzSort;
+	/** 资质证书信息 */
+	@Excel(name = "申请日期")
+	@ApiModelProperty("申请日期")
+	private String giveDate;
+	/** 证书过期时间 */
+	private Long expirationTime;
+	/** 发证日期 */
+	private Long issuanceDate;
+	/** 有效日期 */
+	private Long effectiveDate;
+}

+ 0 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderBusinessConfig.java

@@ -38,8 +38,6 @@ private static final long serialVersionUID=1L;
     private Long updateTime;
     /** 状态 1有效 0无效 */
     private Integer status;
-    /** 主图 */
-    private String mainImg;
     /** 班级类型 1基础班 2强化班 3私塾班 */
     private Integer gradeType;
 }

+ 130 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffAddBo.java

@@ -0,0 +1,130 @@
+package com.zhongzheng.modules.staff.bo;
+
+import com.zhongzheng.modules.staff.domain.StaffBankInfo;
+import com.zhongzheng.modules.staff.domain.StaffContractArchives;
+import com.zhongzheng.modules.staff.domain.StaffEduBg;
+import com.zhongzheng.modules.staff.domain.StaffEmergencyContact;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.apache.catalina.LifecycleState;
+
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 企业部门员工添加对象 staff
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@ApiModel("企业部门员工添加对象")
+public class StaffAddBo {
+
+    /** 企业id */
+    @ApiModelProperty("企业id")
+    private Long companyId;
+    /** 部门id */
+    @ApiModelProperty("部门id")
+    private Long departmentId;
+    /** 员工姓名 */
+    @ApiModelProperty("员工姓名")
+    private String staffName;
+    /** 身份证号 */
+    @ApiModelProperty("身份证号")
+    private String idCard;
+    /** 手机号 */
+    @ApiModelProperty("手机号")
+    private String telephone;
+    /** 邮箱 */
+    @ApiModelProperty("邮箱")
+    private String email;
+    /** 性别 1:男 2:女 */
+    @ApiModelProperty("性别 1:男 2:女")
+    private Long sex;
+    /** 出生日期 */
+    @ApiModelProperty("出生日期")
+    private Long birthday;
+    /** 民族 */
+    @ApiModelProperty("民族")
+    private String nation;
+    /** 政治面貌 */
+    @ApiModelProperty("政治面貌")
+    private String politicsFace;
+    /** 户口所在地 */
+    @ApiModelProperty("户口所在地")
+    private String hkLocation;
+    @ApiModelProperty("居住地")
+    private String homeAddress;
+    /** 员工编号 */
+    @ApiModelProperty("员工编号")
+    private String staffNumber;
+    /** 所属企业 */
+    @ApiModelProperty("所属企业")
+    private String companyName;
+    /** 所在部门 */
+    @ApiModelProperty("所在部门")
+    private String departmentName;
+    /** 所在岗位 */
+    @ApiModelProperty("所在岗位")
+    private String position;
+    /** 岗位状态 1:全职 2:离职 3:编外 */
+    @ApiModelProperty("岗位状态 1:全职 2:离职 3:编外")
+    private Long positionStatus;
+    /** 招聘渠道 */
+    @ApiModelProperty("招聘渠道")
+    private String recruitmentChannel;
+    /** 参与工作时间 */
+    @ApiModelProperty("参与工作时间")
+    private Long workDate;
+    /** 入职时间 */
+    @ApiModelProperty("入职时间")
+    private Long entryDate;
+    /** 离职时间 */
+    @ApiModelProperty("离职时间")
+    private Long leaveDate;
+    /** 身份证正面 */
+    @ApiModelProperty("身份证正面")
+    private String zCard;
+    /** 身份证反面 */
+    @ApiModelProperty("身份证反面")
+    private String fCard;
+    /** 身份证签发机关 */
+    @ApiModelProperty("身份证签发机关")
+    private String issuingOrganization;
+    /** 身份证开始期限 */
+    @ApiModelProperty("身份证开始期限")
+    private Long startDate;
+    /** 身份证结束期限 */
+    @ApiModelProperty("身份证结束期限")
+    private Long endDate;
+    /** 标签 */
+    @ApiModelProperty("标签")
+    private String label;
+    /** 备注 */
+    @ApiModelProperty("备注")
+    private String remarks;
+    /** 状态 */
+    @ApiModelProperty("状态")
+    private Integer status;
+    /** 创建时间 */
+    @ApiModelProperty("创建时间")
+    private Long createTime;
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+    /** 员工教育背景集合 */
+    private List<StaffEduBgAddBo> staffEduBgList;
+    /** 员工紧急联系人集合 */
+    private List<StaffEmergencyContactAddBo> staffEmergencyContactList;
+    /** 员工银行信息集合 */
+    private List<StaffBankInfoAddBo> staffBankInfoList;
+    /** 员工电子档案集合 */
+    private List<StaffContractArchivesAddBo> staffContractArchivesList;
+    /** 员工id */
+    private Long staffId;
+
+}

+ 45 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffBankInfoAddBo.java

@@ -0,0 +1,45 @@
+package com.zhongzheng.modules.staff.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 员工银行信息添加对象 staff_bank_info
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@ApiModel("员工银行信息添加对象")
+public class StaffBankInfoAddBo {
+
+    /** 员工id */
+    @ApiModelProperty("员工id")
+    private Long staffId;
+    /** 企业id */
+    @ApiModelProperty("企业id")
+    private Long companyId;
+    /** 开户名 */
+    @ApiModelProperty("开户名")
+    private String openName;
+    /** 开户行 */
+    @ApiModelProperty("开户行")
+    private String openBank;
+    /** 卡号 */
+    @ApiModelProperty("卡号")
+    private String bankNumber;
+    /** 状态 */
+    @ApiModelProperty("状态")
+    private Integer status;
+    /** 创建时间 */
+    @ApiModelProperty("创建时间")
+    private Long createTime;
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+}

+ 53 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffBankInfoEditBo.java

@@ -0,0 +1,53 @@
+package com.zhongzheng.modules.staff.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 员工银行信息编辑对象 staff_bank_info
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@ApiModel("员工银行信息编辑对象")
+public class StaffBankInfoEditBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long infoId;
+
+    /** 员工id */
+    @ApiModelProperty("员工id")
+    private Long staffId;
+
+
+    /** 企业id */
+    @ApiModelProperty("企业id")
+    private Long companyId;
+
+    /** 开户名 */
+    @ApiModelProperty("开户名")
+    private String openName;
+
+    /** 开户行 */
+    @ApiModelProperty("开户行")
+    private String openBank;
+
+    /** 卡号 */
+    @ApiModelProperty("卡号")
+    private String bankNumber;
+
+    /** 状态 */
+    @ApiModelProperty("状态")
+    private Integer status;
+
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+
+}

+ 57 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffBankInfoQueryBo.java

@@ -0,0 +1,57 @@
+package com.zhongzheng.modules.staff.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 员工银行信息分页查询对象 staff_bank_info
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("员工银行信息分页查询对象")
+public class StaffBankInfoQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 员工id */
+	@ApiModelProperty("员工id")
+	private Long staffId;
+	/** 企业id */
+	@ApiModelProperty("企业id")
+	private Long companyId;
+	/** 开户名 */
+	@ApiModelProperty("开户名")
+	private String openName;
+	/** 开户行 */
+	@ApiModelProperty("开户行")
+	private String openBank;
+	/** 卡号 */
+	@ApiModelProperty("卡号")
+	private String bankNumber;
+	/** 状态 */
+	@ApiModelProperty("状态")
+	private Integer status;
+}

+ 16 - 11
zhongzheng-system/src/main/java/com/zhongzheng/modules/certificate/bo/StaffCertificateAddBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffCertificateAddBo.java

@@ -1,11 +1,10 @@
-package com.zhongzheng.modules.certificate.bo;
+package com.zhongzheng.modules.staff.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
-import java.util.Date;
 
+import java.util.List;
 
 
 /**
@@ -19,12 +18,9 @@ import java.util.Date;
 public class StaffCertificateAddBo {
     @ApiModelProperty("机构名称")
     private String tenantId;
-    /** 公司id */
-    @ApiModelProperty("公司id")
-    private String companyId;
-    /** 用户id */
-    @ApiModelProperty("用户id")
-    private String userId;
+    /** 员工id */
+    @ApiModelProperty("员工id")
+    private String staffId;
     /** 证书编号 */
     @ApiModelProperty("证书编号")
     private String certificateNumber;
@@ -36,10 +32,10 @@ public class StaffCertificateAddBo {
     private String certificateMajor;
     /** 发证时间 */
     @ApiModelProperty("发证时间")
-    private String startTime;
+    private Long startTime;
     /** 有效时间 */
     @ApiModelProperty("有效时间")
-    private String endTime;
+    private Long endTime;
     /** 发证机关 */
     @ApiModelProperty("发证机关")
     private String certificateAddress;
@@ -49,13 +45,22 @@ public class StaffCertificateAddBo {
     /** 证书预览 */
     @ApiModelProperty("证书预览")
     private String previewImg;
+    /** 证书名称 */
+    @ApiModelProperty("证书名称")
+    private String certificateName;
     /** 1有效 0无效 */
     @ApiModelProperty("1有效 0无效")
     private Integer status;
+    /** 员工证书备注 */
+    @ApiModelProperty("员工证书备注")
+    private String staffRemarks;
     /** 创建时间 */
     @ApiModelProperty("创建时间")
     private Long createTime;
     /** 更新时间 */
     @ApiModelProperty("更新时间")
     private Long updateTime;
+    /** 证书专业 */
+    @ApiModelProperty("证书专业")
+    private List<StaffCertificateMajorInfo> certificateMajorList;
 }

+ 21 - 13
zhongzheng-system/src/main/java/com/zhongzheng/modules/certificate/bo/StaffCertificateEditBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffCertificateEditBo.java

@@ -1,10 +1,10 @@
-package com.zhongzheng.modules.certificate.bo;
+package com.zhongzheng.modules.staff.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
-import java.util.Date;
+
+import java.util.List;
 
 
 /**
@@ -19,17 +19,14 @@ public class StaffCertificateEditBo {
 
     /** $column.columnComment */
     @ApiModelProperty("$column.columnComment")
-    private Long certificateId;
+    private Long staffCertificateId;
 
     @ApiModelProperty("机构名称")
     private String tenantId;
-    /** 公司id */
-    @ApiModelProperty("公司id")
-    private String companyId;
 
-    /** 用户id */
-    @ApiModelProperty("用户id")
-    private String userId;
+    /** 员工id */
+    @ApiModelProperty("员工id")
+    private String staffId;
 
     /** 证书编号 */
     @ApiModelProperty("证书编号")
@@ -39,17 +36,21 @@ public class StaffCertificateEditBo {
     @ApiModelProperty("证书类型 1:注册证书 2:技术职称 3:线程管理 4:安管三类 5:职业技能 6:待种作业 7:其他")
     private Integer certificateType;
 
+    /** 证书名称 */
+    @ApiModelProperty("证书名称")
+    private String certificateName;
+
     /** 证书专业 */
     @ApiModelProperty("证书专业")
     private String certificateMajor;
 
     /** 发证时间 */
     @ApiModelProperty("发证时间")
-    private String startTime;
+    private Long startTime;
 
     /** 有效时间 */
     @ApiModelProperty("有效时间")
-    private String endTime;
+    private Long endTime;
 
     /** 发证机关 */
     @ApiModelProperty("发证机关")
@@ -63,6 +64,9 @@ public class StaffCertificateEditBo {
     @ApiModelProperty("证书预览")
     private String previewImg;
 
+    /** 员工证书备注 */
+    private String staffRemarks;
+
     /** 1有效 0无效 */
     @ApiModelProperty("1有效 0无效")
     private Integer status;
@@ -70,5 +74,9 @@ public class StaffCertificateEditBo {
     /** 更新时间 */
     @ApiModelProperty("更新时间")
     private Long updateTime;
-
+    /** 证书专业 */
+    @ApiModelProperty("证书专业")
+    private List<StaffCertificateMajorInfo> certificateMajorList;
+    @ApiModelProperty("员工证书ids集合")
+    private List<Long> staffCertificateIds;
 }

+ 31 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffCertificateMajorInfo.java

@@ -0,0 +1,31 @@
+package com.zhongzheng.modules.staff.bo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 员工证书分页查询对象 staff_certificate
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+@Data
+@ApiModel("员工证书专业类型集合")
+public class StaffCertificateMajorInfo {
+    /** 证书专业 */
+    @ApiModelProperty("证书专业")
+    private String certificateMajor;
+    /** 有效日期开始 */
+    @Excel(name = "有效日期开始")
+    @ApiModelProperty("有效日期开始")
+    private Long startEffectiveDate;
+    /** 有效日期开始 */
+    @Excel(name = "有效日期结束")
+    @ApiModelProperty("有效日期结束")
+    private Long endEffectiveDate;
+}

+ 22 - 13
zhongzheng-system/src/main/java/com/zhongzheng/modules/certificate/bo/StaffCertificateQueryBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffCertificateQueryBo.java

@@ -1,14 +1,10 @@
-package com.zhongzheng.modules.certificate.bo;
+package com.zhongzheng.modules.staff.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
-import java.util.Date;
-import java.util.Map;
-import java.util.HashMap;
-
 import com.zhongzheng.common.core.domain.BaseEntity;
 
 /**
@@ -37,12 +33,9 @@ public class StaffCertificateQueryBo extends BaseEntity {
 
 	@ApiModelProperty("机构名称")
 	private String tenantId;
-	/** 公司id */
-	@ApiModelProperty("公司id")
-	private String companyId;
-	/** 用户id */
-	@ApiModelProperty("用户id")
-	private String userId;
+	/** 员工id */
+	@ApiModelProperty("员工id")
+	private Integer staffId;
 	/** 证书编号 */
 	@ApiModelProperty("证书编号")
 	private String certificateNumber;
@@ -54,10 +47,10 @@ public class StaffCertificateQueryBo extends BaseEntity {
 	private String certificateMajor;
 	/** 发证时间 */
 	@ApiModelProperty("发证时间")
-	private String startTime;
+	private Long startTime;
 	/** 有效时间 */
 	@ApiModelProperty("有效时间")
-	private String endTime;
+	private Long endTime;
 	/** 发证机关 */
 	@ApiModelProperty("发证机关")
 	private String certificateAddress;
@@ -70,4 +63,20 @@ public class StaffCertificateQueryBo extends BaseEntity {
 	/** 1有效 0无效 */
 	@ApiModelProperty("1有效 0无效")
 	private Integer status;
+	/** 员工证书备注 */
+	@ApiModelProperty("员工证书备注")
+	private String staffRemarks;
+	/** 企业名称 */
+	@ApiModelProperty("企业名称")
+	private String companyName;
+	/** 员工姓名 */
+	@ApiModelProperty("员工姓名")
+	private String staffName;
+	/** 员工身份证 */
+	@ApiModelProperty("员工身份证")
+	private String idCard;
+	/** 证书名称 */
+	@ApiModelProperty("证书名称")
+	private String certificateName;
+
 }

+ 57 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffContractArchivesAddBo.java

@@ -0,0 +1,57 @@
+package com.zhongzheng.modules.staff.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 员工合同档案添加对象 staff_contract_archives
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@ApiModel("员工合同档案添加对象")
+public class StaffContractArchivesAddBo {
+
+    /** 员工id */
+    @ApiModelProperty("员工id")
+    private Long staffId;
+    /** 企业id */
+    @ApiModelProperty("企业id")
+    private Long companyId;
+    /** 档案编号 */
+    @ApiModelProperty("档案编号")
+    private String archivesNumber;
+    /** 档案名称 */
+    @ApiModelProperty("档案名称")
+    private String archivesName;
+    /** 档案类型 1:劳动合同 2:编外合同 3:其他合同 */
+    @ApiModelProperty("档案类型 1:劳动合同 2:编外合同 3:其他合同")
+    private Long archivesType;
+    /** 签署时间 */
+    @ApiModelProperty("签署时间")
+    private Long signingDate;
+    /** 生效时间 */
+    @ApiModelProperty("生效时间")
+    private Long effectiveDate;
+    /** 终止时间 */
+    @ApiModelProperty("终止时间")
+    private Long endDate;
+    /** 电子档案 */
+    @ApiModelProperty("电子档案")
+    private String electronicArchives;
+    /** 状态 */
+    @ApiModelProperty("状态")
+    private Integer status;
+    /** 创建时间 */
+    @ApiModelProperty("创建时间")
+    private Long createTime;
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+}

+ 69 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffContractArchivesEditBo.java

@@ -0,0 +1,69 @@
+package com.zhongzheng.modules.staff.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 员工合同档案编辑对象 staff_contract_archives
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@ApiModel("员工合同档案编辑对象")
+public class StaffContractArchivesEditBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long archivesId;
+
+    /** 员工id */
+    @ApiModelProperty("员工id")
+    private Long staffId;
+
+
+    /** 企业id */
+    @ApiModelProperty("企业id")
+    private Long companyId;
+
+    /** 档案编号 */
+    @ApiModelProperty("档案编号")
+    private String archivesNumber;
+
+    /** 档案名称 */
+    @ApiModelProperty("档案名称")
+    private String archivesName;
+
+    /** 档案类型 1:劳动合同 2:编外合同 3:其他合同 */
+    @ApiModelProperty("档案类型 1:劳动合同 2:编外合同 3:其他合同")
+    private Long archivesType;
+
+    /** 签署时间 */
+    @ApiModelProperty("签署时间")
+    private Long signingDate;
+
+    /** 生效时间 */
+    @ApiModelProperty("生效时间")
+    private Long effectiveDate;
+
+    /** 终止时间 */
+    @ApiModelProperty("终止时间")
+    private Long endDate;
+
+    /** 电子档案 */
+    @ApiModelProperty("电子档案")
+    private String electronicArchives;
+
+    /** 状态 */
+    @ApiModelProperty("状态")
+    private Integer status;
+
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+
+}

+ 69 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffContractArchivesQueryBo.java

@@ -0,0 +1,69 @@
+package com.zhongzheng.modules.staff.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 员工合同档案分页查询对象 staff_contract_archives
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("员工合同档案分页查询对象")
+public class StaffContractArchivesQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 员工id */
+	@ApiModelProperty("员工id")
+	private Long staffId;
+	/** 企业id */
+	@ApiModelProperty("企业id")
+	private Long companyId;
+	/** 档案编号 */
+	@ApiModelProperty("档案编号")
+	private String archivesNumber;
+	/** 档案名称 */
+	@ApiModelProperty("档案名称")
+	private String archivesName;
+	/** 档案类型 1:劳动合同 2:编外合同 3:其他合同 */
+	@ApiModelProperty("档案类型 1:劳动合同 2:编外合同 3:其他合同")
+	private Long archivesType;
+	/** 签署时间 */
+	@ApiModelProperty("签署时间")
+	private Long signingDate;
+	/** 生效时间 */
+	@ApiModelProperty("生效时间")
+	private Long effectiveDate;
+	/** 终止时间 */
+	@ApiModelProperty("终止时间")
+	private Long endDate;
+	/** 电子档案 */
+	@ApiModelProperty("电子档案")
+	private String electronicArchives;
+	/** 状态 */
+	@ApiModelProperty("状态")
+	private Integer status;
+}

+ 144 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffEditBo.java

@@ -0,0 +1,144 @@
+package com.zhongzheng.modules.staff.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 企业部门员工编辑对象 staff
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@ApiModel("企业部门员工编辑对象")
+public class StaffEditBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long staffId;
+
+
+    /** 企业id */
+    @ApiModelProperty("企业id")
+    private Long companyId;
+
+    /** 部门id */
+    @ApiModelProperty("部门id")
+    private Long departmentId;
+
+    /** 员工姓名 */
+    @ApiModelProperty("员工姓名")
+    private String staffName;
+
+    /** 身份证号 */
+    @ApiModelProperty("身份证号")
+    private String idCard;
+
+    /** 手机号 */
+    @ApiModelProperty("手机号")
+    private String telephone;
+
+    /** 邮箱 */
+    @ApiModelProperty("邮箱")
+    private String email;
+
+    /** 性别 1:男 2:女 */
+    @ApiModelProperty("性别 1:男 2:女")
+    private Long sex;
+
+    /** 出生日期 */
+    @ApiModelProperty("出生日期")
+    private Long birthday;
+
+    /** 民族 */
+    @ApiModelProperty("民族")
+    private String nation;
+
+    /** 政治面貌 */
+    @ApiModelProperty("政治面貌")
+    private String politicsFace;
+
+    /** 户口所在地 */
+    @ApiModelProperty("户口所在地")
+    private String hkLocation;
+    @ApiModelProperty("居住地")
+    private String homeAddress;
+
+    /** 员工编号 */
+    @ApiModelProperty("员工编号")
+    private String staffNumber;
+
+    /** 所属企业 */
+    @ApiModelProperty("所属企业")
+    private String companyName;
+
+    /** 所在部门 */
+    @ApiModelProperty("所在部门")
+    private String departmentName;
+
+    /** 所在岗位 */
+    @ApiModelProperty("所在岗位")
+    private String position;
+
+    /** 岗位状态 1:全职 2:离职 3:编外 */
+    @ApiModelProperty("岗位状态 1:全职 2:离职 3:编外")
+    private Long positionStatus;
+
+    /** 招聘渠道 */
+    @ApiModelProperty("招聘渠道")
+    private String recruitmentChannel;
+
+    /** 参与工作时间 */
+    @ApiModelProperty("参与工作时间")
+    private Long workDate;
+
+    /** 入职时间 */
+    @ApiModelProperty("入职时间")
+    private Long entryDate;
+
+    /** 离职时间 */
+    @ApiModelProperty("离职时间")
+    private Long leaveDate;
+
+    /** 身份证正面 */
+    @ApiModelProperty("身份证正面")
+    private String zCard;
+
+    /** 身份证反面 */
+    @ApiModelProperty("身份证反面")
+    private String fCard;
+
+    /** 身份证签发机关 */
+    @ApiModelProperty("身份证签发机关")
+    private String issuingOrganization;
+
+    /** 身份证开始期限 */
+    @ApiModelProperty("身份证开始期限")
+    private Long startDate;
+
+    /** 身份证结束期限 */
+    @ApiModelProperty("身份证结束期限")
+    private Long endDate;
+
+    /** 标签 */
+    @ApiModelProperty("标签")
+    private String label;
+
+    /** 备注 */
+    @ApiModelProperty("备注")
+    private String remarks;
+
+    /** 状态 */
+    @ApiModelProperty("状态")
+    private Integer status;
+
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+    private List<Long> staffIds;
+}

+ 60 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffEduBgAddBo.java

@@ -0,0 +1,60 @@
+package com.zhongzheng.modules.staff.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 员工教育背景添加对象 staff_edu_bg
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@ApiModel("员工教育背景添加对象")
+public class StaffEduBgAddBo {
+
+    /** 员工id */
+    @ApiModelProperty("员工id")
+    private Long staffId;
+    /** 企业id */
+    @ApiModelProperty("企业id")
+    private Long companyId;
+    /** 开始日期 */
+    @ApiModelProperty("开始日期")
+    private Long startDate;
+    /** 结束日期 */
+    @ApiModelProperty("结束日期")
+    private Long endDate;
+    /** 毕业学校 */
+    @ApiModelProperty("毕业学校")
+    private String graduationSchool;
+    /** 专业 */
+    @ApiModelProperty("专业")
+    private String major;
+    /** 学习类型 1:全日制 2:非全日制 */
+    @ApiModelProperty("学习类型 1:全日制 2:非全日制")
+    private Long learningType;
+    /** 学历/学位 1:小学 2:中学 3:职高 4:高中 5:专科 6:本科 7:硕士研究生 8:博士研究生 */
+    @ApiModelProperty("学历/学位 1:小学 2:中学 3:职高 4:高中 5:专科 6:本科 7:硕士研究生 8:博士研究生")
+    private Long degree;
+    /** 毕业证书 */
+    @ApiModelProperty("毕业证书")
+    private String graduationCertificate;
+    /** 学信网验证 */
+    @ApiModelProperty("学信网验证")
+    private String validate;
+    /** 状态 */
+    @ApiModelProperty("状态")
+    private Integer status;
+    /** 创建时间 */
+    @ApiModelProperty("创建时间")
+    private Long createTime;
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+}

+ 73 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffEduBgEditBo.java

@@ -0,0 +1,73 @@
+package com.zhongzheng.modules.staff.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 员工教育背景编辑对象 staff_edu_bg
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@ApiModel("员工教育背景编辑对象")
+public class StaffEduBgEditBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long eduBgId;
+
+    /** 员工id */
+    @ApiModelProperty("员工id")
+    private Long staffId;
+
+
+    /** 企业id */
+    @ApiModelProperty("企业id")
+    private Long companyId;
+
+    /** 开始日期 */
+    @ApiModelProperty("开始日期")
+    private Long startDate;
+
+    /** 结束日期 */
+    @ApiModelProperty("结束日期")
+    private Long endDate;
+
+    /** 毕业学校 */
+    @ApiModelProperty("毕业学校")
+    private String graduationSchool;
+
+    /** 专业 */
+    @ApiModelProperty("专业")
+    private String major;
+
+    /** 学习类型 1:全日制 2:非全日制 */
+    @ApiModelProperty("学习类型 1:全日制 2:非全日制")
+    private Long learningType;
+
+    /** 学历/学位 1:小学 2:中学 3:职高 4:高中 5:专科 6:本科 7:硕士研究生 8:博士研究生 */
+    @ApiModelProperty("学历/学位 1:小学 2:中学 3:职高 4:高中 5:专科 6:本科 7:硕士研究生 8:博士研究生")
+    private Long degree;
+
+    /** 毕业证书 */
+    @ApiModelProperty("毕业证书")
+    private String graduationCertificate;
+
+    /** 学信网验证 */
+    @ApiModelProperty("学信网验证")
+    private String validate;
+
+    /** 状态 */
+    @ApiModelProperty("状态")
+    private Integer status;
+
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+
+}

+ 72 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffEduBgQueryBo.java

@@ -0,0 +1,72 @@
+package com.zhongzheng.modules.staff.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 员工教育背景分页查询对象 staff_edu_bg
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("员工教育背景分页查询对象")
+public class StaffEduBgQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 员工id */
+	@ApiModelProperty("员工id")
+	private Long staffId;
+	/** 企业id */
+	@ApiModelProperty("企业id")
+	private Long companyId;
+	/** 开始日期 */
+	@ApiModelProperty("开始日期")
+	private Long startDate;
+	/** 结束日期 */
+	@ApiModelProperty("结束日期")
+	private Long endDate;
+	/** 毕业学校 */
+	@ApiModelProperty("毕业学校")
+	private String graduationSchool;
+	/** 专业 */
+	@ApiModelProperty("专业")
+	private String major;
+	/** 学习类型 1:全日制 2:非全日制 */
+	@ApiModelProperty("学习类型 1:全日制 2:非全日制")
+	private Long learningType;
+	/** 学历/学位 1:小学 2:中学 3:职高 4:高中 5:专科 6:本科 7:硕士研究生 8:博士研究生 */
+	@ApiModelProperty("学历/学位 1:小学 2:中学 3:职高 4:高中 5:专科 6:本科 7:硕士研究生 8:博士研究生")
+	private Long degree;
+	/** 毕业证书 */
+	@ApiModelProperty("毕业证书")
+	private String graduationCertificate;
+	/** 学信网验证 */
+	@ApiModelProperty("学信网验证")
+	private String validate;
+	/** 状态 */
+	@ApiModelProperty("状态")
+	private Integer status;
+}

+ 45 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffEmergencyContactAddBo.java

@@ -0,0 +1,45 @@
+package com.zhongzheng.modules.staff.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 员工紧急联系人添加对象 staff_emergency_contact
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@ApiModel("员工紧急联系人添加对象")
+public class StaffEmergencyContactAddBo {
+
+    /** 员工id */
+    @ApiModelProperty("员工id")
+    private Long staffId;
+    /** 企业id */
+    @ApiModelProperty("企业id")
+    private Long companyId;
+    /** 关系 */
+    @ApiModelProperty("关系")
+    private String relation;
+    /** 联系人姓名 */
+    @ApiModelProperty("联系人姓名")
+    private String contactName;
+    /** 联系电话 */
+    @ApiModelProperty("联系电话")
+    private String contactTelephone;
+    /** 状态 */
+    @ApiModelProperty("状态")
+    private Integer status;
+    /** 创建时间 */
+    @ApiModelProperty("创建时间")
+    private Long createTime;
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+}

+ 53 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffEmergencyContactEditBo.java

@@ -0,0 +1,53 @@
+package com.zhongzheng.modules.staff.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 员工紧急联系人编辑对象 staff_emergency_contact
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@ApiModel("员工紧急联系人编辑对象")
+public class StaffEmergencyContactEditBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long contactId;
+
+    /** 员工id */
+    @ApiModelProperty("员工id")
+    private Long staffId;
+
+
+    /** 企业id */
+    @ApiModelProperty("企业id")
+    private Long companyId;
+
+    /** 关系 */
+    @ApiModelProperty("关系")
+    private String relation;
+
+    /** 联系人姓名 */
+    @ApiModelProperty("联系人姓名")
+    private String contactName;
+
+    /** 联系电话 */
+    @ApiModelProperty("联系电话")
+    private String contactTelephone;
+
+    /** 状态 */
+    @ApiModelProperty("状态")
+    private Integer status;
+
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    private Long updateTime;
+
+}

+ 57 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffEmergencyContactQueryBo.java

@@ -0,0 +1,57 @@
+package com.zhongzheng.modules.staff.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 员工紧急联系人分页查询对象 staff_emergency_contact
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("员工紧急联系人分页查询对象")
+public class StaffEmergencyContactQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 员工id */
+	@ApiModelProperty("员工id")
+	private Long staffId;
+	/** 企业id */
+	@ApiModelProperty("企业id")
+	private Long companyId;
+	/** 关系 */
+	@ApiModelProperty("关系")
+	private String relation;
+	/** 联系人姓名 */
+	@ApiModelProperty("联系人姓名")
+	private String contactName;
+	/** 联系电话 */
+	@ApiModelProperty("联系电话")
+	private String contactTelephone;
+	/** 状态 */
+	@ApiModelProperty("状态")
+	private Integer status;
+}

+ 133 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffQueryBo.java

@@ -0,0 +1,133 @@
+package com.zhongzheng.modules.staff.bo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 企业部门员工分页查询对象 staff
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("企业部门员工分页查询对象")
+public class StaffQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 企业id */
+	@ApiModelProperty("企业id")
+	private Long companyId;
+	/** 部门id */
+	@ApiModelProperty("部门id")
+	private Long departmentId;
+	/** 员工姓名 */
+	@ApiModelProperty("员工姓名")
+	private String staffName;
+	/** 身份证号 */
+	@ApiModelProperty("身份证号")
+	private String idCard;
+	/** 手机号 */
+	@ApiModelProperty("手机号")
+	private String telephone;
+	/** 邮箱 */
+	@ApiModelProperty("邮箱")
+	private String email;
+	/** 性别 1:男 2:女 */
+	@ApiModelProperty("性别 1:男 2:女")
+	private Long sex;
+	/** 出生日期 */
+	@ApiModelProperty("出生日期")
+	private Long birthday;
+	/** 民族 */
+	@ApiModelProperty("民族")
+	private String nation;
+	/** 政治面貌 */
+	@ApiModelProperty("政治面貌")
+	private String politicsFace;
+	/** 户口所在地 */
+	@ApiModelProperty("户口所在地")
+	private String hkLocation;
+	/** 员工编号 */
+	@ApiModelProperty("员工编号")
+	private String staffNumber;
+	/** 所属企业 */
+	@ApiModelProperty("所属企业")
+	private String companyName;
+	/** 所在部门 */
+	@ApiModelProperty("所在部门")
+	private String departmentName;
+	/** 所在岗位 */
+	@ApiModelProperty("所在岗位")
+	private String position;
+	/** 岗位状态 1:全职 2:离职 3:编外 */
+	@ApiModelProperty("岗位状态 1:全职 2:离职 3:编外")
+	private Long positionStatus;
+	/** 招聘渠道 */
+	@ApiModelProperty("招聘渠道")
+	private String recruitmentChannel;
+	/** 参与工作时间 */
+	@ApiModelProperty("参与工作时间")
+	private Long workDate;
+	/** 入职时间 */
+	@ApiModelProperty("入职时间")
+	private Long entryDate;
+	/** 离职时间 */
+	@ApiModelProperty("离职时间")
+	private Long leaveDate;
+	/** 身份证正面 */
+	@ApiModelProperty("身份证正面")
+	private String zCard;
+	/** 身份证反面 */
+	@ApiModelProperty("身份证反面")
+	private String fCard;
+	/** 身份证签发机关 */
+	@ApiModelProperty("身份证签发机关")
+	private String issuingOrganization;
+	/** 身份证开始期限 */
+	@ApiModelProperty("身份证开始期限")
+	private Long startDate;
+	/** 身份证结束期限 */
+	@ApiModelProperty("身份证结束期限")
+	private Long endDate;
+	/** 标签 */
+	@ApiModelProperty("标签")
+	private String label;
+	/** 备注 */
+	@ApiModelProperty("备注")
+	private String remarks;
+	/** 状态 */
+	@ApiModelProperty("状态")
+	private Integer status;
+	/** 学历学位 */
+	@ApiModelProperty("学历学位")
+	private Long degree;
+	/** 专业 */
+	@ApiModelProperty("专业")
+	private String major;
+	/** 专业 */
+	@ApiModelProperty("专业")
+	private Long staffId;
+}

+ 94 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/domain/Staff.java

@@ -0,0 +1,94 @@
+package com.zhongzheng.modules.staff.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.zhongzheng.common.annotation.Excel;
+
+/**
+ * 企业部门员工对象 staff
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("staff")
+public class Staff implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @TableId(value = "staff_id")
+    private Long staffId;
+    /** 企业id */
+    private Long companyId;
+    /** 部门id */
+    private Long departmentId;
+    /** 员工姓名 */
+    private String staffName;
+    /** 身份证号 */
+    private String idCard;
+    /** 手机号 */
+    private String telephone;
+    /** 邮箱 */
+    private String email;
+    /** 性别 1:男 2:女 */
+    private Long sex;
+    /** 出生日期 */
+    private Long birthday;
+    /** 民族 */
+    private String nation;
+    /** 政治面貌 */
+    private String politicsFace;
+    /** 户口所在地 */
+    private String hkLocation;
+    /** 居住地  */
+    private String homeAddress;
+    /** 员工编号 */
+    private String staffNumber;
+    /** 所属企业 */
+    private String companyName;
+    /** 所在部门 */
+    private String departmentName;
+    /** 所在岗位 */
+    private String position;
+    /** 岗位状态 1:全职 2:离职 3:编外 */
+    private Long positionStatus;
+    /** 招聘渠道 */
+    private String recruitmentChannel;
+    /** 参与工作时间 */
+    private Long workDate;
+    /** 入职时间 */
+    private Long entryDate;
+    /** 离职时间 */
+    private Long leaveDate;
+    /** 身份证正面 */
+    private String zCard;
+    /** 身份证反面 */
+    private String fCard;
+    /** 身份证签发机关 */
+    private String issuingOrganization;
+    /** 身份证开始期限 */
+    private Long startDate;
+    /** 身份证结束期限 */
+    private Long endDate;
+    /** 标签 */
+    private String label;
+    /** 备注 */
+    private String remarks;
+    /** 状态 */
+    private Integer status;
+    /** 创建时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 更新时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+}

+ 47 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/domain/StaffBankInfo.java

@@ -0,0 +1,47 @@
+package com.zhongzheng.modules.staff.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.zhongzheng.common.annotation.Excel;
+
+/**
+ * 员工银行信息对象 staff_bank_info
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("staff_bank_info")
+public class StaffBankInfo implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @TableId(value = "info_id")
+    private Long infoId;
+    /** 员工id */
+    private Long staffId;
+    /** 企业id */
+    private Long companyId;
+    /** 开户名 */
+    private String openName;
+    /** 开户行 */
+    private String openBank;
+    /** 卡号 */
+    private String bankNumber;
+    /** 状态 */
+    private Integer status;
+    /** 创建时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 更新时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+}

+ 11 - 12
zhongzheng-system/src/main/java/com/zhongzheng/modules/certificate/domain/StaffCertificate.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/domain/StaffCertificate.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.certificate.domain;
+package com.zhongzheng.modules.staff.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
 import io.swagger.annotations.ApiModelProperty;
@@ -6,9 +6,6 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
 import java.io.Serializable;
-import java.util.Date;
-import java.math.BigDecimal;
-import com.zhongzheng.common.annotation.Excel;
 
 /**
  * 员工证书对象 staff_certificate
@@ -25,24 +22,24 @@ public class StaffCertificate implements Serializable {
 private static final long serialVersionUID=1L;
 
     /** $column.columnComment */
-    @TableId(value = "certificate_id")
-    private Long certificateId;
+    @TableId(value = "staff_certificate_id")
+    private Long staffCertificateId;
     /** 机构名称 */
     private String tenantId;
-    /** 公司id */
-    private String companyId;
-    /** 用户id */
-    private String userId;
+    /** 员工id */
+    private String staffId;
     /** 证书编号 */
     private String certificateNumber;
+    /** 证书名称 */
+    private String certificateName;
     /** 证书类型 1:注册证书 2:技术职称 3:线程管理 4:安管三类 5:职业技能 6:待种作业 7:其他 */
     private Integer certificateType;
     /** 证书专业 */
     private String certificateMajor;
     /** 发证时间 */
-    private String startTime;
+    private Long startTime;
     /** 有效时间 */
-    private String endTime;
+    private Long endTime;
     /** 发证机关 */
     private String certificateAddress;
     /** 预警状态 1:正常 2:已过期 */
@@ -51,6 +48,8 @@ private static final long serialVersionUID=1L;
     private String previewImg;
     /** 1有效 0无效 */
     private Integer status;
+    /** 员工证书备注 */
+    private String staffRemarks;
     /** 创建时间 */
     @TableField(fill = FieldFill.INSERT)
     private Long createTime;

+ 55 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/domain/StaffContractArchives.java

@@ -0,0 +1,55 @@
+package com.zhongzheng.modules.staff.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.zhongzheng.common.annotation.Excel;
+
+/**
+ * 员工合同档案对象 staff_contract_archives
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("staff_contract_archives")
+public class StaffContractArchives implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @TableId(value = "archives_id")
+    private Long archivesId;
+    /** 员工id */
+    private Long staffId;
+    /** 企业id */
+    private Long companyId;
+    /** 档案编号 */
+    private String archivesNumber;
+    /** 档案名称 */
+    private String archivesName;
+    /** 档案类型 1:劳动合同 2:编外合同 3:其他合同 */
+    private Long archivesType;
+    /** 签署时间 */
+    private Long signingDate;
+    /** 生效时间 */
+    private Long effectiveDate;
+    /** 终止时间 */
+    private Long endDate;
+    /** 电子档案 */
+    private String electronicArchives;
+    /** 状态 */
+    private Integer status;
+    /** 创建时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 更新时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+}

+ 57 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/domain/StaffEduBg.java

@@ -0,0 +1,57 @@
+package com.zhongzheng.modules.staff.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.zhongzheng.common.annotation.Excel;
+
+/**
+ * 员工教育背景对象 staff_edu_bg
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("staff_edu_bg")
+public class StaffEduBg implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @TableId(value = "edu_bg_id")
+    private Long eduBgId;
+    /** 员工id */
+    private Long staffId;
+    /** 企业id */
+    private Long companyId;
+    /** 开始日期 */
+    private Long startDate;
+    /** 结束日期 */
+    private Long endDate;
+    /** 毕业学校 */
+    private String graduationSchool;
+    /** 专业 */
+    private String major;
+    /** 学习类型 1:全日制 2:非全日制 */
+    private Long learningType;
+    /** 学历/学位 1:小学 2:中学 3:职高 4:高中 5:专科 6:本科 7:硕士研究生 8:博士研究生 */
+    private Long degree;
+    /** 毕业证书 */
+    private String graduationCertificate;
+    /** 学信网验证 */
+    private String validate;
+    /** 状态 */
+    private Integer status;
+    /** 创建时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 更新时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+}

+ 47 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/domain/StaffEmergencyContact.java

@@ -0,0 +1,47 @@
+package com.zhongzheng.modules.staff.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.zhongzheng.common.annotation.Excel;
+
+/**
+ * 员工紧急联系人对象 staff_emergency_contact
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("staff_emergency_contact")
+public class StaffEmergencyContact implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @TableId(value = "contact_id")
+    private Long contactId;
+    /** 员工id */
+    private Long staffId;
+    /** 企业id */
+    private Long companyId;
+    /** 关系 */
+    private String relation;
+    /** 联系人姓名 */
+    private String contactName;
+    /** 联系电话 */
+    private String contactTelephone;
+    /** 状态 */
+    private Integer status;
+    /** 创建时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 更新时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+}

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/mapper/StaffBankInfoMapper.java

@@ -0,0 +1,14 @@
+package com.zhongzheng.modules.staff.mapper;
+
+import com.zhongzheng.modules.staff.domain.StaffBankInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 员工银行信息Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+public interface StaffBankInfoMapper extends BaseMapper<StaffBankInfo> {
+
+}

+ 19 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/mapper/StaffCertificateMapper.java

@@ -0,0 +1,19 @@
+package com.zhongzheng.modules.staff.mapper;
+
+import com.zhongzheng.modules.staff.bo.StaffCertificateQueryBo;
+import com.zhongzheng.modules.staff.domain.StaffCertificate;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.staff.vo.StaffCertificateVo;
+
+import java.util.List;
+
+/**
+ * 员工证书Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+public interface StaffCertificateMapper extends BaseMapper<StaffCertificate> {
+    List<StaffCertificateVo> selectAllByCertificate(StaffCertificateQueryBo bo);
+
+}

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/mapper/StaffContractArchivesMapper.java

@@ -0,0 +1,14 @@
+package com.zhongzheng.modules.staff.mapper;
+
+import com.zhongzheng.modules.staff.domain.StaffContractArchives;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 员工合同档案Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+public interface StaffContractArchivesMapper extends BaseMapper<StaffContractArchives> {
+
+}

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/mapper/StaffEduBgMapper.java

@@ -0,0 +1,14 @@
+package com.zhongzheng.modules.staff.mapper;
+
+import com.zhongzheng.modules.staff.domain.StaffEduBg;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 员工教育背景Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+public interface StaffEduBgMapper extends BaseMapper<StaffEduBg> {
+
+}

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/mapper/StaffEmergencyContactMapper.java

@@ -0,0 +1,14 @@
+package com.zhongzheng.modules.staff.mapper;
+
+import com.zhongzheng.modules.staff.domain.StaffEmergencyContact;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 员工紧急联系人Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+public interface StaffEmergencyContactMapper extends BaseMapper<StaffEmergencyContact> {
+
+}

+ 20 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/mapper/StaffMapper.java

@@ -0,0 +1,20 @@
+package com.zhongzheng.modules.staff.mapper;
+
+import com.zhongzheng.modules.staff.bo.StaffQueryBo;
+import com.zhongzheng.modules.staff.domain.Staff;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.staff.vo.StaffVo;
+
+import java.util.List;
+
+/**
+ * 企业部门员工Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+public interface StaffMapper extends BaseMapper<Staff> {
+
+    List<StaffVo> selectAllStaffList(StaffQueryBo bo);
+
+}

+ 52 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/IStaffBankInfoService.java

@@ -0,0 +1,52 @@
+package com.zhongzheng.modules.staff.service;
+
+import com.zhongzheng.modules.staff.domain.StaffBankInfo;
+import com.zhongzheng.modules.staff.vo.StaffBankInfoVo;
+import com.zhongzheng.modules.staff.bo.StaffBankInfoQueryBo;
+import com.zhongzheng.modules.staff.bo.StaffBankInfoAddBo;
+import com.zhongzheng.modules.staff.bo.StaffBankInfoEditBo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 员工银行信息Service接口
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+public interface IStaffBankInfoService extends IService<StaffBankInfo> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	StaffBankInfoVo queryById(Long infoId);
+
+	/**
+	 * 查询列表
+	 */
+	List<StaffBankInfoVo> queryList(StaffBankInfoQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入员工银行信息
+	 * @param bo 员工银行信息新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(StaffBankInfoAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改员工银行信息
+	 * @param bo 员工银行信息编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(StaffBankInfoEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 14 - 9
zhongzheng-system/src/main/java/com/zhongzheng/modules/certificate/service/IStaffCertificateService.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/IStaffCertificateService.java

@@ -1,11 +1,12 @@
-package com.zhongzheng.modules.certificate.service;
+package com.zhongzheng.modules.staff.service;
 
-import com.zhongzheng.modules.certificate.domain.StaffCertificate;
-import com.zhongzheng.modules.certificate.vo.StaffCertificateVo;
-import com.zhongzheng.modules.certificate.bo.StaffCertificateQueryBo;
-import com.zhongzheng.modules.certificate.bo.StaffCertificateAddBo;
-import com.zhongzheng.modules.certificate.bo.StaffCertificateEditBo;
+import com.zhongzheng.modules.staff.domain.StaffCertificate;
+import com.zhongzheng.modules.staff.vo.StaffCertificateVo;
+import com.zhongzheng.modules.staff.bo.StaffCertificateQueryBo;
+import com.zhongzheng.modules.staff.bo.StaffCertificateAddBo;
+import com.zhongzheng.modules.staff.bo.StaffCertificateEditBo;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.Collection;
 import java.util.List;
@@ -44,9 +45,13 @@ public interface IStaffCertificateService extends IService<StaffCertificate> {
 
 	/**
 	 * 校验并删除数据
-	 * @param ids 主键集合
-	 * @param isValid 是否校验,true-删除前校验,false-不校验
 	 * @return
 	 */
-	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+	Boolean deleteWithValidByIds(StaffCertificateEditBo bo);
+	/**
+	 * 文档导入员工列表
+	 * @param file 主键集合
+	 * @return
+	 */
+	Boolean importStaffCertificateList(MultipartFile file);
 }

+ 52 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/IStaffContractArchivesService.java

@@ -0,0 +1,52 @@
+package com.zhongzheng.modules.staff.service;
+
+import com.zhongzheng.modules.staff.domain.StaffContractArchives;
+import com.zhongzheng.modules.staff.vo.StaffContractArchivesVo;
+import com.zhongzheng.modules.staff.bo.StaffContractArchivesQueryBo;
+import com.zhongzheng.modules.staff.bo.StaffContractArchivesAddBo;
+import com.zhongzheng.modules.staff.bo.StaffContractArchivesEditBo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 员工合同档案Service接口
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+public interface IStaffContractArchivesService extends IService<StaffContractArchives> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	StaffContractArchivesVo queryById(Long archivesId);
+
+	/**
+	 * 查询列表
+	 */
+	List<StaffContractArchivesVo> queryList(StaffContractArchivesQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入员工合同档案
+	 * @param bo 员工合同档案新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(StaffContractArchivesAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改员工合同档案
+	 * @param bo 员工合同档案编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(StaffContractArchivesEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 52 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/IStaffEduBgService.java

@@ -0,0 +1,52 @@
+package com.zhongzheng.modules.staff.service;
+
+import com.zhongzheng.modules.staff.domain.StaffEduBg;
+import com.zhongzheng.modules.staff.vo.StaffEduBgVo;
+import com.zhongzheng.modules.staff.bo.StaffEduBgQueryBo;
+import com.zhongzheng.modules.staff.bo.StaffEduBgAddBo;
+import com.zhongzheng.modules.staff.bo.StaffEduBgEditBo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 员工教育背景Service接口
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+public interface IStaffEduBgService extends IService<StaffEduBg> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	StaffEduBgVo queryById(Long eduBgId);
+
+	/**
+	 * 查询列表
+	 */
+	List<StaffEduBgVo> queryList(StaffEduBgQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入员工教育背景
+	 * @param bo 员工教育背景新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(StaffEduBgAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改员工教育背景
+	 * @param bo 员工教育背景编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(StaffEduBgEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 52 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/IStaffEmergencyContactService.java

@@ -0,0 +1,52 @@
+package com.zhongzheng.modules.staff.service;
+
+import com.zhongzheng.modules.staff.domain.StaffEmergencyContact;
+import com.zhongzheng.modules.staff.vo.StaffEmergencyContactVo;
+import com.zhongzheng.modules.staff.bo.StaffEmergencyContactQueryBo;
+import com.zhongzheng.modules.staff.bo.StaffEmergencyContactAddBo;
+import com.zhongzheng.modules.staff.bo.StaffEmergencyContactEditBo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 员工紧急联系人Service接口
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+public interface IStaffEmergencyContactService extends IService<StaffEmergencyContact> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	StaffEmergencyContactVo queryById(Long contactId);
+
+	/**
+	 * 查询列表
+	 */
+	List<StaffEmergencyContactVo> queryList(StaffEmergencyContactQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入员工紧急联系人
+	 * @param bo 员工紧急联系人新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(StaffEmergencyContactAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改员工紧急联系人
+	 * @param bo 员工紧急联系人编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(StaffEmergencyContactEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 63 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/IStaffService.java

@@ -0,0 +1,63 @@
+package com.zhongzheng.modules.staff.service;
+
+import com.zhongzheng.modules.staff.domain.Staff;
+import com.zhongzheng.modules.staff.vo.StaffVo;
+import com.zhongzheng.modules.staff.bo.StaffQueryBo;
+import com.zhongzheng.modules.staff.bo.StaffAddBo;
+import com.zhongzheng.modules.staff.bo.StaffEditBo;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 企业部门员工Service接口
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+public interface IStaffService extends IService<Staff> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	StaffVo queryById(Long staffId);
+
+	/**
+	 * 查询列表
+	 */
+	List<StaffVo> queryList(StaffQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入企业部门员工
+	 * @param bo 企业部门员工新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(StaffAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改企业部门员工
+	 * @param bo 企业部门员工编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(StaffEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(StaffEditBo bo);
+	/**
+	 * 获取员工列表
+	 * @param bo 主键集合
+	 * @return
+	 */
+	List<StaffVo> selectStaffList(StaffQueryBo bo);
+	/**
+	 * 文档导入员工列表
+	 * @param file 主键集合
+	 * @return
+	 */
+	Boolean importExcelList(MultipartFile  file);
+}

+ 104 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/impl/StaffBankInfoServiceImpl.java

@@ -0,0 +1,104 @@
+package com.zhongzheng.modules.staff.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.zhongzheng.common.utils.DateUtils;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.Page;
+import com.zhongzheng.modules.staff.bo.StaffBankInfoAddBo;
+import com.zhongzheng.modules.staff.bo.StaffBankInfoQueryBo;
+import com.zhongzheng.modules.staff.bo.StaffBankInfoEditBo;
+import com.zhongzheng.modules.staff.domain.StaffBankInfo;
+import com.zhongzheng.modules.staff.mapper.StaffBankInfoMapper;
+import com.zhongzheng.modules.staff.vo.StaffBankInfoVo;
+import com.zhongzheng.modules.staff.service.IStaffBankInfoService;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 员工银行信息Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Service
+public class StaffBankInfoServiceImpl extends ServiceImpl<StaffBankInfoMapper, StaffBankInfo> implements IStaffBankInfoService {
+
+    @Override
+    public StaffBankInfoVo queryById(Long infoId){
+        StaffBankInfo db = this.baseMapper.selectById(infoId);
+        return BeanUtil.toBean(db, StaffBankInfoVo.class);
+    }
+
+    @Override
+    public List<StaffBankInfoVo> queryList(StaffBankInfoQueryBo bo) {
+        LambdaQueryWrapper<StaffBankInfo> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getStaffId() != null, StaffBankInfo::getStaffId, bo.getStaffId());
+        lqw.eq(bo.getCompanyId() != null, StaffBankInfo::getCompanyId, bo.getCompanyId());
+        lqw.like(StrUtil.isNotBlank(bo.getOpenName()), StaffBankInfo::getOpenName, bo.getOpenName());
+        lqw.eq(StrUtil.isNotBlank(bo.getOpenBank()), StaffBankInfo::getOpenBank, bo.getOpenBank());
+        lqw.eq(StrUtil.isNotBlank(bo.getBankNumber()), StaffBankInfo::getBankNumber, bo.getBankNumber());
+        lqw.eq(bo.getStatus() != null, StaffBankInfo::getStatus, bo.getStatus());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<StaffBankInfoVo> entity2Vo(Collection<StaffBankInfo> collection) {
+        List<StaffBankInfoVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, StaffBankInfoVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<StaffBankInfo> page = (Page<StaffBankInfo>)collection;
+            Page<StaffBankInfoVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(StaffBankInfoAddBo bo) {
+        StaffBankInfo add = BeanUtil.toBean(bo, StaffBankInfo.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(StaffBankInfoEditBo bo) {
+        StaffBankInfo update = BeanUtil.toBean(bo, StaffBankInfo.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(StaffBankInfo entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 205 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/impl/StaffCertificateServiceImpl.java

@@ -0,0 +1,205 @@
+package com.zhongzheng.modules.staff.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.zhongzheng.common.exception.CustomException;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.company.domain.CompanyCertificate;
+import com.zhongzheng.modules.staff.bo.StaffCertificateMajorInfo;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.Page;
+import com.zhongzheng.modules.staff.bo.StaffCertificateAddBo;
+import com.zhongzheng.modules.staff.bo.StaffCertificateQueryBo;
+import com.zhongzheng.modules.staff.bo.StaffCertificateEditBo;
+import com.zhongzheng.modules.staff.domain.StaffCertificate;
+import com.zhongzheng.modules.staff.mapper.StaffCertificateMapper;
+import com.zhongzheng.modules.staff.vo.StaffCertificateVo;
+import com.zhongzheng.modules.staff.service.IStaffCertificateService;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 员工证书Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+@Service
+public class StaffCertificateServiceImpl extends ServiceImpl<StaffCertificateMapper, StaffCertificate> implements IStaffCertificateService {
+
+    @Override
+    public StaffCertificateVo queryById(Long certificateId) {
+        StaffCertificate db = this.baseMapper.selectById(certificateId);
+        return BeanUtil.toBean(db, StaffCertificateVo.class);
+    }
+
+    @Override
+    public List<StaffCertificateVo> queryList(StaffCertificateQueryBo bo) {
+        List<StaffCertificateVo> staffCertificateVos = this.baseMapper.selectAllByCertificate(bo);
+        if (CollectionUtils.isEmpty(staffCertificateVos)) {
+            return new ArrayList<>();
+        }
+        staffCertificateVos.forEach(item->{
+            if (ObjectUtil.isAllNotEmpty(item.getStartTime(),item.getEndTime())){
+                Date effectivedate = new Date(item.getEndTime() * 1000L);
+                if (effectivedate.compareTo(new Date())>0){
+                    item.setExpirationTime(0L);
+                }else {
+                    //查询实时证书过期时间更新证书预警状态
+                    StaffCertificate staffCertificate = new StaffCertificate();
+                    staffCertificate.setUpdateTime(DateUtils.getNowTime());
+                    staffCertificate.setWarningStatus(2);
+                    staffCertificate.setStaffCertificateId(item.getStaffCertificateId());
+                    this.baseMapper.updateById(staffCertificate);
+                    long l = DateUtil.between(effectivedate,new Date(), DateUnit.DAY);
+                    item.setWarningStatus(2);
+                    item.setExpirationTime(l);
+                }
+            }
+        });
+        return staffCertificateVos;
+    }
+
+    /**
+     * 实体类转化成视图对象
+     *
+     * @param collection 实体类集合
+     * @return
+     */
+    private List<StaffCertificateVo> entity2Vo(Collection<StaffCertificate> collection) {
+        List<StaffCertificateVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, StaffCertificateVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<StaffCertificate> page = (Page<StaffCertificate>) collection;
+            Page<StaffCertificateVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page, pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(StaffCertificateAddBo bo) {
+        StaffCertificate add = BeanUtil.toBean(bo, StaffCertificate.class);
+        List<StaffCertificateMajorInfo> certificateMajorList = bo.getCertificateMajorList();
+        //证书专业有效时间判断
+        if (ObjectUtil.isNotEmpty(certificateMajorList)) {
+            certificateMajorList.forEach(item -> {
+                if (ObjectUtil.isNotEmpty(item.getStartEffectiveDate()) && ObjectUtil.isNotEmpty(item.getEndEffectiveDate())) {
+                    Date issuancedate = new Date(item.getStartEffectiveDate() * 1000L);
+                    Date effectivedate = new Date(item.getEndEffectiveDate() * 1000L);
+                    if (effectivedate.compareTo(issuancedate) < 0) {
+                        throw new CustomException("证书专业有效时间错误");
+                    }
+                    add.setCertificateMajor(JSONArray.toJSONString(bo.getCertificateMajorList()));
+                }
+
+            });
+        }
+        //证书有效时间判断
+        if (ObjectUtil.isNotEmpty(bo.getStartTime()) && ObjectUtil.isNotEmpty(bo.getEndTime())) {
+            Date issuancedate = new Date(bo.getStartTime() * 1000L);
+            Date effectivedate = new Date(bo.getEndTime() * 1000L);
+            if (effectivedate.compareTo(issuancedate) < 0) {
+                throw new CustomException("证书有效时间错误");
+            }
+            if (effectivedate.compareTo(new Date()) < 0) {
+                add.setWarningStatus(1);
+            } else {
+                add.setWarningStatus(2);
+            }
+        } else {
+            throw new CustomException("时间不能为空");
+        }
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(StaffCertificateEditBo bo) {
+        StaffCertificate update = BeanUtil.toBean(bo, StaffCertificate.class);
+        List<StaffCertificateMajorInfo> certificateMajorList = bo.getCertificateMajorList();
+        //证书专业有效时间判断
+        if (ObjectUtil.isNotEmpty(certificateMajorList)) {
+            certificateMajorList.forEach(item -> {
+                if (ObjectUtil.isNotEmpty(item.getStartEffectiveDate()) && ObjectUtil.isNotEmpty(item.getEndEffectiveDate())) {
+                    Date issuancedate = new Date(item.getStartEffectiveDate() * 1000L);
+                    Date effectivedate = new Date(item.getEndEffectiveDate() * 1000L);
+                    if (effectivedate.compareTo(issuancedate) < 0) {
+                        throw new CustomException("证书专业有效时间错误");
+                    }
+                    update.setCertificateMajor(JSONArray.toJSONString(bo.getCertificateMajorList()));
+                }
+
+            });
+        }
+        //证书有效时间判断
+        if (ObjectUtil.isNotEmpty(bo.getStartTime()) && ObjectUtil.isNotEmpty(bo.getEndTime())) {
+            Date issuancedate = new Date(bo.getStartTime() * 1000L);
+            Date effectivedate = new Date(bo.getEndTime() * 1000L);
+            if (effectivedate.compareTo(issuancedate) < 0) {
+                throw new CustomException("证书有效时间错误");
+            }
+            if (effectivedate.compareTo(new Date()) < 0) {
+                update.setWarningStatus(1);
+            } else {
+                update.setWarningStatus(2);
+            }
+        } else {
+            throw new CustomException("时间不能为空");
+        }
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(StaffCertificate entity) {
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(StaffCertificateEditBo bo) {
+        List<Long> certificateIds = bo.getStaffCertificateIds();
+        if (ObjectUtil.isNotEmpty(certificateIds)) {
+            certificateIds.forEach(item -> {
+                StaffCertificate staffCertificate = this.baseMapper.selectById(item);
+                if (ObjectUtil.isNotEmpty(staffCertificate)) {
+                    staffCertificate.setStatus(0);
+                    this.baseMapper.updateById(staffCertificate);
+                } else {
+                    throw new CustomException("企业证书不存在");
+                }
+            });
+        } else {
+            throw new CustomException("请先勾选数据");
+        }
+        return true;
+    }
+
+    @Override
+    public Boolean importStaffCertificateList(MultipartFile file) {
+        return null;
+    }
+}

+ 108 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/impl/StaffContractArchivesServiceImpl.java

@@ -0,0 +1,108 @@
+package com.zhongzheng.modules.staff.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.zhongzheng.common.utils.DateUtils;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.Page;
+import com.zhongzheng.modules.staff.bo.StaffContractArchivesAddBo;
+import com.zhongzheng.modules.staff.bo.StaffContractArchivesQueryBo;
+import com.zhongzheng.modules.staff.bo.StaffContractArchivesEditBo;
+import com.zhongzheng.modules.staff.domain.StaffContractArchives;
+import com.zhongzheng.modules.staff.mapper.StaffContractArchivesMapper;
+import com.zhongzheng.modules.staff.vo.StaffContractArchivesVo;
+import com.zhongzheng.modules.staff.service.IStaffContractArchivesService;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 员工合同档案Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Service
+public class StaffContractArchivesServiceImpl extends ServiceImpl<StaffContractArchivesMapper, StaffContractArchives> implements IStaffContractArchivesService {
+
+    @Override
+    public StaffContractArchivesVo queryById(Long archivesId){
+        StaffContractArchives db = this.baseMapper.selectById(archivesId);
+        return BeanUtil.toBean(db, StaffContractArchivesVo.class);
+    }
+
+    @Override
+    public List<StaffContractArchivesVo> queryList(StaffContractArchivesQueryBo bo) {
+        LambdaQueryWrapper<StaffContractArchives> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getStaffId() != null, StaffContractArchives::getStaffId, bo.getStaffId());
+        lqw.eq(bo.getCompanyId() != null, StaffContractArchives::getCompanyId, bo.getCompanyId());
+        lqw.eq(StrUtil.isNotBlank(bo.getArchivesNumber()), StaffContractArchives::getArchivesNumber, bo.getArchivesNumber());
+        lqw.like(StrUtil.isNotBlank(bo.getArchivesName()), StaffContractArchives::getArchivesName, bo.getArchivesName());
+        lqw.eq(bo.getArchivesType() != null, StaffContractArchives::getArchivesType, bo.getArchivesType());
+        lqw.eq(bo.getSigningDate() != null, StaffContractArchives::getSigningDate, bo.getSigningDate());
+        lqw.eq(bo.getEffectiveDate() != null, StaffContractArchives::getEffectiveDate, bo.getEffectiveDate());
+        lqw.eq(bo.getEndDate() != null, StaffContractArchives::getEndDate, bo.getEndDate());
+        lqw.eq(StrUtil.isNotBlank(bo.getElectronicArchives()), StaffContractArchives::getElectronicArchives, bo.getElectronicArchives());
+        lqw.eq(bo.getStatus() != null, StaffContractArchives::getStatus, bo.getStatus());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<StaffContractArchivesVo> entity2Vo(Collection<StaffContractArchives> collection) {
+        List<StaffContractArchivesVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, StaffContractArchivesVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<StaffContractArchives> page = (Page<StaffContractArchives>)collection;
+            Page<StaffContractArchivesVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(StaffContractArchivesAddBo bo) {
+        StaffContractArchives add = BeanUtil.toBean(bo, StaffContractArchives.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(StaffContractArchivesEditBo bo) {
+        StaffContractArchives update = BeanUtil.toBean(bo, StaffContractArchives.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(StaffContractArchives entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 109 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/impl/StaffEduBgServiceImpl.java

@@ -0,0 +1,109 @@
+package com.zhongzheng.modules.staff.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.zhongzheng.common.utils.DateUtils;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.Page;
+import com.zhongzheng.modules.staff.bo.StaffEduBgAddBo;
+import com.zhongzheng.modules.staff.bo.StaffEduBgQueryBo;
+import com.zhongzheng.modules.staff.bo.StaffEduBgEditBo;
+import com.zhongzheng.modules.staff.domain.StaffEduBg;
+import com.zhongzheng.modules.staff.mapper.StaffEduBgMapper;
+import com.zhongzheng.modules.staff.vo.StaffEduBgVo;
+import com.zhongzheng.modules.staff.service.IStaffEduBgService;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 员工教育背景Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Service
+public class StaffEduBgServiceImpl extends ServiceImpl<StaffEduBgMapper, StaffEduBg> implements IStaffEduBgService {
+
+    @Override
+    public StaffEduBgVo queryById(Long eduBgId){
+        StaffEduBg db = this.baseMapper.selectById(eduBgId);
+        return BeanUtil.toBean(db, StaffEduBgVo.class);
+    }
+
+    @Override
+    public List<StaffEduBgVo> queryList(StaffEduBgQueryBo bo) {
+        LambdaQueryWrapper<StaffEduBg> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getStaffId() != null, StaffEduBg::getStaffId, bo.getStaffId());
+        lqw.eq(bo.getCompanyId() != null, StaffEduBg::getCompanyId, bo.getCompanyId());
+        lqw.eq(bo.getStartDate() != null, StaffEduBg::getStartDate, bo.getStartDate());
+        lqw.eq(bo.getEndDate() != null, StaffEduBg::getEndDate, bo.getEndDate());
+        lqw.eq(StrUtil.isNotBlank(bo.getGraduationSchool()), StaffEduBg::getGraduationSchool, bo.getGraduationSchool());
+        lqw.eq(StrUtil.isNotBlank(bo.getMajor()), StaffEduBg::getMajor, bo.getMajor());
+        lqw.eq(bo.getLearningType() != null, StaffEduBg::getLearningType, bo.getLearningType());
+        lqw.eq(bo.getDegree() != null, StaffEduBg::getDegree, bo.getDegree());
+        lqw.eq(StrUtil.isNotBlank(bo.getGraduationCertificate()), StaffEduBg::getGraduationCertificate, bo.getGraduationCertificate());
+        lqw.eq(StrUtil.isNotBlank(bo.getValidate()), StaffEduBg::getValidate, bo.getValidate());
+        lqw.eq(bo.getStatus() != null, StaffEduBg::getStatus, bo.getStatus());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<StaffEduBgVo> entity2Vo(Collection<StaffEduBg> collection) {
+        List<StaffEduBgVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, StaffEduBgVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<StaffEduBg> page = (Page<StaffEduBg>)collection;
+            Page<StaffEduBgVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(StaffEduBgAddBo bo) {
+        StaffEduBg add = BeanUtil.toBean(bo, StaffEduBg.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(StaffEduBgEditBo bo) {
+        StaffEduBg update = BeanUtil.toBean(bo, StaffEduBg.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(StaffEduBg entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 104 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/impl/StaffEmergencyContactServiceImpl.java

@@ -0,0 +1,104 @@
+package com.zhongzheng.modules.staff.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.zhongzheng.common.utils.DateUtils;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.Page;
+import com.zhongzheng.modules.staff.bo.StaffEmergencyContactAddBo;
+import com.zhongzheng.modules.staff.bo.StaffEmergencyContactQueryBo;
+import com.zhongzheng.modules.staff.bo.StaffEmergencyContactEditBo;
+import com.zhongzheng.modules.staff.domain.StaffEmergencyContact;
+import com.zhongzheng.modules.staff.mapper.StaffEmergencyContactMapper;
+import com.zhongzheng.modules.staff.vo.StaffEmergencyContactVo;
+import com.zhongzheng.modules.staff.service.IStaffEmergencyContactService;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 员工紧急联系人Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Service
+public class StaffEmergencyContactServiceImpl extends ServiceImpl<StaffEmergencyContactMapper, StaffEmergencyContact> implements IStaffEmergencyContactService {
+
+    @Override
+    public StaffEmergencyContactVo queryById(Long contactId){
+        StaffEmergencyContact db = this.baseMapper.selectById(contactId);
+        return BeanUtil.toBean(db, StaffEmergencyContactVo.class);
+    }
+
+    @Override
+    public List<StaffEmergencyContactVo> queryList(StaffEmergencyContactQueryBo bo) {
+        LambdaQueryWrapper<StaffEmergencyContact> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getStaffId() != null, StaffEmergencyContact::getStaffId, bo.getStaffId());
+        lqw.eq(bo.getCompanyId() != null, StaffEmergencyContact::getCompanyId, bo.getCompanyId());
+        lqw.eq(StrUtil.isNotBlank(bo.getRelation()), StaffEmergencyContact::getRelation, bo.getRelation());
+        lqw.like(StrUtil.isNotBlank(bo.getContactName()), StaffEmergencyContact::getContactName, bo.getContactName());
+        lqw.eq(StrUtil.isNotBlank(bo.getContactTelephone()), StaffEmergencyContact::getContactTelephone, bo.getContactTelephone());
+        lqw.eq(bo.getStatus() != null, StaffEmergencyContact::getStatus, bo.getStatus());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<StaffEmergencyContactVo> entity2Vo(Collection<StaffEmergencyContact> collection) {
+        List<StaffEmergencyContactVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, StaffEmergencyContactVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<StaffEmergencyContact> page = (Page<StaffEmergencyContact>)collection;
+            Page<StaffEmergencyContactVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(StaffEmergencyContactAddBo bo) {
+        StaffEmergencyContact add = BeanUtil.toBean(bo, StaffEmergencyContact.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(StaffEmergencyContactEditBo bo) {
+        StaffEmergencyContact update = BeanUtil.toBean(bo, StaffEmergencyContact.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(StaffEmergencyContact entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 485 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/service/impl/StaffServiceImpl.java

@@ -0,0 +1,485 @@
+package com.zhongzheng.modules.staff.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.zhongzheng.common.exception.CustomException;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.common.utils.poi.EasyPoiUtil;
+import com.zhongzheng.modules.company.domain.Company;
+import com.zhongzheng.modules.company.domain.CompanyDepartment;
+import com.zhongzheng.modules.company.service.ICompanyDepartmentService;
+import com.zhongzheng.modules.company.service.ICompanyService;
+import com.zhongzheng.modules.staff.bo.*;
+import com.zhongzheng.modules.staff.domain.*;
+import com.zhongzheng.modules.staff.service.*;
+import com.zhongzheng.modules.staff.vo.ExcelStaffVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.Page;
+import com.zhongzheng.modules.staff.mapper.StaffMapper;
+import com.zhongzheng.modules.staff.vo.StaffVo;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 企业部门员工Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Service
+public class StaffServiceImpl extends ServiceImpl<StaffMapper, Staff> implements IStaffService {
+    @Autowired
+    private IStaffEduBgService iStaffEduBgService;
+    @Autowired
+    private IStaffEmergencyContactService iStaffEmergencyContactService;
+    @Autowired
+    private IStaffBankInfoService iStaffBankInfoService;
+    @Autowired
+    private IStaffContractArchivesService iStaffContractArchivesService;
+    @Autowired
+    private IStaffCertificateService iStaffCertificateService;
+    @Autowired
+    private ICompanyService iCompanyService;
+    @Autowired
+    private ICompanyDepartmentService iCompanyDepartmentService;
+    @Override
+    public StaffVo queryById(Long staffId) {
+        Staff db = this.baseMapper.selectById(staffId);
+        return BeanUtil.toBean(db, StaffVo.class);
+    }
+
+    @Override
+    public List<StaffVo> queryList(StaffQueryBo bo) {
+        LambdaQueryWrapper<Staff> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getCompanyId() != null, Staff::getCompanyId, bo.getCompanyId());
+        lqw.eq(bo.getDepartmentId() != null, Staff::getDepartmentId, bo.getDepartmentId());
+        lqw.like(StrUtil.isNotBlank(bo.getStaffName()), Staff::getStaffName, bo.getStaffName());
+        lqw.eq(StrUtil.isNotBlank(bo.getIdCard()), Staff::getIdCard, bo.getIdCard());
+        lqw.eq(StrUtil.isNotBlank(bo.getTelephone()), Staff::getTelephone, bo.getTelephone());
+        lqw.eq(StrUtil.isNotBlank(bo.getEmail()), Staff::getEmail, bo.getEmail());
+        lqw.eq(bo.getSex() != null, Staff::getSex, bo.getSex());
+        lqw.eq(bo.getBirthday() != null, Staff::getBirthday, bo.getBirthday());
+        lqw.eq(StrUtil.isNotBlank(bo.getNation()), Staff::getNation, bo.getNation());
+        lqw.eq(StrUtil.isNotBlank(bo.getPoliticsFace()), Staff::getPoliticsFace, bo.getPoliticsFace());
+        lqw.eq(StrUtil.isNotBlank(bo.getHkLocation()), Staff::getHkLocation, bo.getHkLocation());
+        lqw.eq(StrUtil.isNotBlank(bo.getStaffNumber()), Staff::getStaffNumber, bo.getStaffNumber());
+        lqw.like(StrUtil.isNotBlank(bo.getCompanyName()), Staff::getCompanyName, bo.getCompanyName());
+        lqw.like(StrUtil.isNotBlank(bo.getDepartmentName()), Staff::getDepartmentName, bo.getDepartmentName());
+        lqw.eq(StrUtil.isNotBlank(bo.getPosition()), Staff::getPosition, bo.getPosition());
+        lqw.eq(bo.getPositionStatus() != null, Staff::getPositionStatus, bo.getPositionStatus());
+        lqw.eq(StrUtil.isNotBlank(bo.getRecruitmentChannel()), Staff::getRecruitmentChannel, bo.getRecruitmentChannel());
+        lqw.eq(bo.getWorkDate() != null, Staff::getWorkDate, bo.getWorkDate());
+        lqw.eq(bo.getEntryDate() != null, Staff::getEntryDate, bo.getEntryDate());
+        lqw.eq(bo.getLeaveDate() != null, Staff::getLeaveDate, bo.getLeaveDate());
+        lqw.eq(StrUtil.isNotBlank(bo.getZCard()), Staff::getZCard, bo.getZCard());
+        lqw.eq(StrUtil.isNotBlank(bo.getFCard()), Staff::getFCard, bo.getFCard());
+        lqw.eq(StrUtil.isNotBlank(bo.getIssuingOrganization()), Staff::getIssuingOrganization, bo.getIssuingOrganization());
+        lqw.eq(bo.getStartDate() != null, Staff::getStartDate, bo.getStartDate());
+        lqw.eq(bo.getEndDate() != null, Staff::getEndDate, bo.getEndDate());
+        lqw.eq(StrUtil.isNotBlank(bo.getLabel()), Staff::getLabel, bo.getLabel());
+        lqw.eq(StrUtil.isNotBlank(bo.getRemarks()), Staff::getRemarks, bo.getRemarks());
+        lqw.eq(bo.getStatus() != null, Staff::getStatus, bo.getStatus());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+     * 实体类转化成视图对象
+     *
+     * @param collection 实体类集合
+     * @return
+     */
+    private List<StaffVo> entity2Vo(Collection<Staff> collection) {
+        List<StaffVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, StaffVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<Staff> page = (Page<Staff>) collection;
+            Page<StaffVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page, pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean insertByAddBo(StaffAddBo bo) {
+        Staff add = BeanUtil.toBean(bo, Staff.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        boolean save = this.save(add);
+        if (save) {
+            StaffQueryBo staffQueryBo = new StaffQueryBo();
+            List<StaffVo> staffVos = this.queryList(staffQueryBo);
+            List<StaffVo> collect = staffVos.stream().filter(s -> s.getIdCard().equals(bo.getIdCard())).collect(Collectors.toList());
+            StaffVo staffVo = collect.get(0);
+            Long staffId = staffVo.getStaffId();
+            List<StaffEduBgAddBo> staffEduBgList = bo.getStaffEduBgList();
+            if (ObjectUtil.isNotEmpty(staffEduBgList)) {
+                staffEduBgList.forEach(item -> {
+                    item.setCompanyId(staffVo.getCompanyId());
+                    item.setStaffId(staffId);
+                    iStaffEduBgService.insertByAddBo(item);
+                });
+            }
+            List<StaffEmergencyContactAddBo> staffEmergencyContactList = bo.getStaffEmergencyContactList();
+            if (ObjectUtil.isNotEmpty(staffEmergencyContactList)) {
+                staffEmergencyContactList.forEach(item -> {
+                    item.setCompanyId(staffVo.getCompanyId());
+                    item.setStaffId(staffId);
+                    iStaffEmergencyContactService.insertByAddBo(item);
+                });
+            }
+            List<StaffBankInfoAddBo> staffBankInfoList = bo.getStaffBankInfoList();
+            if (ObjectUtil.isNotEmpty(staffBankInfoList)) {
+                staffBankInfoList.forEach(item -> {
+                    item.setCompanyId(staffVo.getCompanyId());
+                    item.setStaffId(staffId);
+                    iStaffBankInfoService.insertByAddBo(item);
+                });
+            }
+            List<StaffContractArchivesAddBo> staffContractArchivesList = bo.getStaffContractArchivesList();
+            if (ObjectUtil.isNotEmpty(staffContractArchivesList)) {
+                staffContractArchivesList.forEach(item -> {
+                    item.setCompanyId(staffVo.getCompanyId());
+                    item.setStaffId(staffId);
+                    iStaffContractArchivesService.insertByAddBo(item);
+                });
+            }
+        } else {
+            throw new CustomException("保存员工信息错误");
+        }
+        return save;
+    }
+
+    @Override
+    public Boolean updateByEditBo(StaffEditBo bo) {
+        bo.setStatus(1);
+        Staff staff = this.baseMapper.selectById(bo.getStaffId());
+        if (ObjectUtil.isNotEmpty(staff)) {
+            staff.setRemarks(bo.getRemarks());
+        } else {
+            throw new CustomException("员工不存在");
+        }
+        staff.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(staff);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(Staff entity) {
+        //TODO 做一些数据校验,如唯一约束
+        if (ObjectUtil.isNotEmpty(entity.getStaffId())) {
+            this.baseMapper.deleteById(entity.getStaffId());
+            List<StaffEduBg> staffEduBgList = iStaffEduBgService.list(new LambdaQueryWrapper<StaffEduBg>().eq(StaffEduBg::getStaffId, entity.getStaffId()).eq(StaffEduBg::getStatus, 1));
+            if (ObjectUtil.isNotEmpty(staffEduBgList)) {
+                staffEduBgList.forEach(item -> {
+                    iStaffEduBgService.removeById(item.getEduBgId());
+                });
+            }
+            List<StaffBankInfo> staffBankInfoList = iStaffBankInfoService.list(new LambdaQueryWrapper<StaffBankInfo>().eq(StaffBankInfo::getStaffId, entity.getStaffId()).eq(StaffBankInfo::getStatus, 1));
+            if (ObjectUtil.isNotEmpty(staffBankInfoList)) {
+                staffBankInfoList.forEach(item -> {
+                    iStaffBankInfoService.removeById(item.getInfoId());
+                });
+            }
+            List<StaffContractArchives> staffContractArchivesList = iStaffContractArchivesService.list(new LambdaQueryWrapper<StaffContractArchives>().eq(StaffContractArchives::getStaffId, entity.getStaffId()).eq(StaffContractArchives::getStatus, 1));
+            if (ObjectUtil.isNotEmpty(staffContractArchivesList)) {
+                staffContractArchivesList.forEach(item -> {
+                    iStaffContractArchivesService.removeById(item.getArchivesId());
+                });
+            }
+            List<StaffEmergencyContact> staffEmergencyContactList = iStaffEmergencyContactService.list(new LambdaQueryWrapper<StaffEmergencyContact>().eq(StaffEmergencyContact::getStaffId, entity.getStaffId()).eq(StaffEmergencyContact::getStatus, 1));
+            if (ObjectUtil.isNotEmpty(staffEmergencyContactList)) {
+                staffEmergencyContactList.forEach(item -> {
+                    iStaffEmergencyContactService.removeById(item.getContactId());
+                });
+            }
+        }
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(StaffEditBo bo) {
+        List<Long> staffIds = bo.getStaffIds();
+        if (ObjectUtil.isEmpty(staffIds)) {
+            throw new CustomException("请先勾勾选数据");
+        }
+        for (Long id : staffIds) {
+            Staff staff = this.baseMapper.selectById(id);
+            staff.setStatus(0);
+            this.baseMapper.updateById(staff);
+            List<StaffEduBg> staffEduBgList = iStaffEduBgService.list(new LambdaQueryWrapper<StaffEduBg>().eq(StaffEduBg::getStaffId, staff.getStaffId()));
+            if (ObjectUtil.isNotEmpty(staffEduBgList)) {
+                staffEduBgList.forEach(item -> {
+                    item.setStatus(0);
+                    iStaffEduBgService.updateById(item);
+                });
+            }
+            List<StaffBankInfo> staffBankInfoList = iStaffBankInfoService.list(new LambdaQueryWrapper<StaffBankInfo>().eq(StaffBankInfo::getStaffId, staff.getStaffId()));
+            if (ObjectUtil.isNotEmpty(staffBankInfoList)) {
+                staffBankInfoList.forEach(item -> {
+                    item.setStatus(0);
+                    iStaffBankInfoService.updateById(item);
+                });
+            }
+            List<StaffContractArchives> staffContractArchivesList = iStaffContractArchivesService.list(new LambdaQueryWrapper<StaffContractArchives>().eq(StaffContractArchives::getStaffId, staff.getStaffId()));
+            if (ObjectUtil.isNotEmpty(staffContractArchivesList)) {
+                staffContractArchivesList.forEach(item -> {
+                    item.setStatus(0);
+                    iStaffContractArchivesService.updateById(item);
+                });
+            }
+            List<StaffEmergencyContact> staffEmergencyContactList = iStaffEmergencyContactService.list(new LambdaQueryWrapper<StaffEmergencyContact>().eq(StaffEmergencyContact::getStaffId, staff.getStaffId()));
+            if (ObjectUtil.isNotEmpty(staffEmergencyContactList)) {
+                staffEmergencyContactList.forEach(item -> {
+                    item.setStatus(0);
+                    iStaffEmergencyContactService.updateById(item);
+                });
+            }
+            List<StaffCertificate> staffCertificateList = iStaffCertificateService.list(new LambdaQueryWrapper<StaffCertificate>().eq(StaffCertificate::getStaffId, staff.getStaffId()));
+            if (ObjectUtil.isNotEmpty(staffCertificateList)) {
+                staffCertificateList.forEach(item -> {
+                    item.setStatus(0);
+                    iStaffCertificateService.updateById(item);
+                });
+            }
+        }
+        return true;
+    }
+
+    @Override
+    public List<StaffVo> selectStaffList(StaffQueryBo bo) {
+        List<StaffVo> staffVos = this.baseMapper.selectAllStaffList(bo);
+        staffVos.forEach(item -> {
+            List<StaffEduBg> staffEduBgList = iStaffEduBgService.list(new LambdaQueryWrapper<StaffEduBg>().eq(StaffEduBg::getStaffId, item.getStaffId()));
+            List<StaffBankInfo> staffBankInfoList = iStaffBankInfoService.list(new LambdaQueryWrapper<StaffBankInfo>().eq(StaffBankInfo::getStaffId, item.getStaffId()));
+            List<StaffEmergencyContact> staffEmergencyContactList = iStaffEmergencyContactService.list(new LambdaQueryWrapper<StaffEmergencyContact>().eq(StaffEmergencyContact::getStaffId, item.getStaffId()));
+            List<StaffContractArchives> staffContractArchivesList = iStaffContractArchivesService.list(new LambdaQueryWrapper<StaffContractArchives>().eq(StaffContractArchives::getStaffId, item.getStaffId()));
+            List<StaffCertificate> staffCertificateList = iStaffCertificateService.list(new LambdaQueryWrapper<StaffCertificate>().eq(StaffCertificate::getStaffId, item.getStaffId()).eq(StaffCertificate::getStatus, 1));
+            item.setStaffCertificateCount((staffCertificateList.size()));
+            item.setStaffEduBgList(staffEduBgList);
+            item.setStaffBankInfoList(staffBankInfoList);
+            item.setStaffEmergencyContactList(staffEmergencyContactList);
+            item.setStaffContractArchivesList(staffContractArchivesList);
+        });
+        return staffVos;
+    }
+
+
+    public Integer getDegreeType(String degree) {
+        //公司类型判断
+        switch (degree) {
+            case "小学":
+                return 1;
+            case "中学":
+                return 2;
+            case "职高":
+                return 3;
+            case "高中":
+                return 4;
+            case "专科":
+                return 5;
+            case "本科":
+                return 6;
+            case "硕士研究生":
+                return 7;
+            case "博士研究生":
+                return 8;
+        }
+        return null;
+    }
+
+    public Integer getSexType(String sex) {
+        //公司类型判断
+        switch (sex) {
+            case "男":
+                return 1;
+            case "女":
+                return 2;
+        }
+        return null;
+    }
+
+    public Integer getLearnIngType(String learnIngType) {
+        //公司类型判断
+        switch (learnIngType) {
+            case "全日制":
+                return 1;
+            case "非全日制":
+                return 2;
+        }
+        return null;
+    }
+    public Long getArchivesType(String archivesType) {
+        //公司类型判断
+        switch (archivesType) {
+            case "劳动合同":
+                return 1L;
+            case "编外合同":
+                return 2L;
+            case "其他合同":
+                return 3L;
+        }
+        return null;
+    }
+
+    public Integer getPositionStatus(String positionStatus) {
+        //公司类型判断
+        switch (positionStatus) {
+            case "全职":
+                return 1;
+            case "离职":
+                return 2;
+            case "编外":
+                return 3;
+        }
+        return null;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean importExcelList(MultipartFile file) {
+        List<ExcelStaffVo> excelStaffVos = EasyPoiUtil.importExcel(file, 1, 1, ExcelStaffVo.class);
+        if (ObjectUtil.isEmpty(excelStaffVos)) {
+            throw new CustomException("文档数据为空");
+        }
+        Map<String, List<ExcelStaffVo>> excelList = excelStaffVos.stream().collect(Collectors.groupingBy(ExcelStaffVo::getIdCard));
+        excelList.forEach((k, v) -> {
+            List<ExcelStaffVo> excelStaffVosList = excelList.get(k);
+            ExcelStaffVo excelStaffVo = excelStaffVosList.get(0);
+            if (ObjectUtil.isAllNotEmpty(excelStaffVo.getStaffName(), excelStaffVo.getIdCard(), excelStaffVo.getTelephone(), excelStaffVo.getCompanyName())) {
+                List<Company> companies = iCompanyService.list(new LambdaQueryWrapper<Company>().eq(Company::getCompanyName, excelStaffVo.getCompanyName()).eq(Company::getStatus, 1));
+                if (ObjectUtil.isNotEmpty(companies)) {
+                    Company company = companies.get(0);
+                    Staff staff = new Staff();
+                    staff.setStaffName(excelStaffVo.getStaffName());
+                    staff.setIdCard(excelStaffVo.getIdCard());
+                    staff.setTelephone(excelStaffVo.getTelephone());
+                    staff.setEmail(excelStaffVo.getEmail());
+                    if (ObjectUtil.isNotEmpty(excelStaffVo.getSex())) {
+                        Integer sexType = getSexType(excelStaffVo.getSex());
+                        staff.setSex(Long.valueOf(sexType));
+                    }
+                    if (ObjectUtil.isNotEmpty(excelStaffVo.getBirthday())) {
+                        String birthday = excelStaffVo.getBirthday();
+                        Long timeSec = DateUtils.dateTimeSec("yyyy/MM/dd", birthday);
+                        staff.setBirthday(timeSec);
+                    }
+                    staff.setNation(excelStaffVo.getNation());
+                    staff.setPoliticsFace(excelStaffVo.getPoliticsFace());
+                    staff.setHkLocation(excelStaffVo.getHkLocation());
+                    staff.setHomeAddress(excelStaffVo.getHomeAddress());
+                    staff.setCompanyId(company.getCompanyId());
+                    staff.setStaffNumber(excelStaffVo.getStaffNumber());
+                    staff.setCompanyName(company.getCompanyName());
+                    staff.setDepartmentName(excelStaffVo.getDepartmentName());
+                    List<CompanyDepartment> departments = iCompanyDepartmentService.list(new LambdaQueryWrapper<CompanyDepartment>().eq(CompanyDepartment::getDepartmentName, excelStaffVo.getDepartmentName()).eq(CompanyDepartment::getStatus, 1));
+                    if (ObjectUtil.isNotEmpty(departments)){
+                        CompanyDepartment companyDepartment = departments.get(0);
+                        staff.setDepartmentId(companyDepartment.getDepartmentId());
+                    }
+                    staff.setPosition(excelStaffVo.getPosition());
+                    if (ObjectUtil.isNotEmpty(excelStaffVo.getPositionStatus())) {
+                        staff.setPositionStatus(Long.valueOf(getPositionStatus(excelStaffVo.getPositionStatus())));
+                    }
+                    staff.setRecruitmentChannel(excelStaffVo.getRecruitmentChannel());
+                    if (ObjectUtil.isNotEmpty(excelStaffVo.getWorkDate())) {
+                        staff.setWorkDate(DateUtils.dateTimeSec("yyyy/MM/dd", excelStaffVo.getWorkDate()));
+                    }
+                    if (ObjectUtil.isNotEmpty(excelStaffVo.getEntryDate())) {
+                        staff.setEntryDate(DateUtils.dateTimeSec("yyyy/MM/dd", excelStaffVo.getEntryDate()));
+                    }
+                    if (ObjectUtil.isNotEmpty(excelStaffVo.getLeaveDate())) {
+                        staff.setLeaveDate(DateUtils.dateTimeSec("yyyy/MM/dd", excelStaffVo.getLeaveDate()));
+                    }
+                    staff.setIssuingOrganization(excelStaffVo.getIssuingOrganization());
+                    if (ObjectUtil.isNotEmpty(excelStaffVo.getStartDate())) {
+                        staff.setStartDate(DateUtils.dateTimeSec("yyyy/MM/dd", excelStaffVo.getStartDate()));
+                    }
+                    if (ObjectUtil.isNotEmpty(excelStaffVo.getEndDate())) {
+                        staff.setEndDate(DateUtils.dateTimeSec("yyyy/MM/dd", excelStaffVo.getEndDate()));
+                    }
+                    staff.setCreateTime(DateUtils.getNowTime());
+                    staff.setUpdateTime(DateUtils.getNowTime());
+                    this.baseMapper.insert(staff);
+                    excelStaffVosList.forEach(item -> {
+                        List<Staff> staffList = this.baseMapper.selectList(new LambdaQueryWrapper<Staff>().eq(Staff::getIdCard, item.getIdCard()).eq(Staff::getStatus, 1));
+                        if (ObjectUtil.isNotEmpty(staffList)) {
+                            Staff staff1 = staffList.get(0);
+                            StaffEduBg staffEduBg = new StaffEduBg();
+                            if (ObjectUtil.isNotEmpty(item.getStartTime())) {
+                                staffEduBg.setStartDate(DateUtils.dateTimeSec("yyyy/MM/dd", item.getStartTime()));
+                            }
+                            if (ObjectUtil.isNotEmpty(item.getEndTime())) {
+                                staffEduBg.setEndDate(DateUtils.dateTimeSec("yyyy/MM/dd", item.getEndTime()));
+                            }
+                            staffEduBg.setStaffId(staff1.getStaffId());
+                            staffEduBg.setGraduationSchool(item.getGraduationSchool());
+                            staffEduBg.setMajor(item.getMajor());
+                            staffEduBg.setLearningType(Long.valueOf(getLearnIngType(item.getLearnType())));
+                            staffEduBg.setDegree(Long.valueOf(getLearnIngType(item.getLearnType())));
+                            staffEduBg.setCreateTime(DateUtils.getNowTime());
+                            staffEduBg.setUpdateTime(DateUtils.getNowTime());
+                            staffEduBg.setCompanyId(company.getCompanyId());
+                            StaffEduBgAddBo staffEduBgAddBo = BeanUtil.toBean(staffEduBg, StaffEduBgAddBo.class);
+                            staffEduBgAddBo.setCreateTime(DateUtils.getNowTime());
+                            staffEduBgAddBo.setUpdateTime(DateUtils.getNowTime());
+                            iStaffEduBgService.insertByAddBo(staffEduBgAddBo);
+                            StaffEmergencyContact staffEmergencyContact = new StaffEmergencyContact();
+                            staffEmergencyContact.setRelation(item.getRelation());
+                            staffEmergencyContact.setCompanyId(company.getCompanyId());
+                            staffEmergencyContact.setStaffId(staff1.getStaffId());
+                            staffEmergencyContact.setContactName(item.getContactName());
+                            staffEmergencyContact.setContactTelephone(item.getContactTelephone());
+                            StaffEmergencyContactAddBo staffEmergencyContactAddBo = BeanUtil.toBean(staffEmergencyContact, StaffEmergencyContactAddBo.class);
+                            staffEmergencyContactAddBo.setCreateTime(DateUtils.getNowTime());
+                            staffEmergencyContactAddBo.setUpdateTime(DateUtils.getNowTime());
+                            iStaffEmergencyContactService.insertByAddBo(staffEmergencyContactAddBo);
+                            StaffBankInfo staffBankInfo = new StaffBankInfo();
+                            staffBankInfo.setStaffId(staff1.getStaffId());
+                            staffBankInfo.setCompanyId(company.getCompanyId());
+                            staffBankInfo.setOpenName(item.getOpenName());
+                            staffBankInfo.setOpenBank(item.getOpenBank());
+                            staffBankInfo.setBankNumber(item.getBankNumber());
+                            StaffBankInfoAddBo staffBankInfoAddBo = BeanUtil.toBean(staffBankInfo, StaffBankInfoAddBo.class);
+                            staffBankInfoAddBo.setCreateTime(DateUtils.getNowTime());
+                            staffBankInfoAddBo.setUpdateTime(DateUtils.getNowTime());
+                            iStaffBankInfoService.insertByAddBo(staffBankInfoAddBo);
+                            StaffContractArchives staffContractArchives = new StaffContractArchives();
+                            staffContractArchives.setStaffId(staff1.getStaffId());
+                            staffContractArchives.setCompanyId(company.getCompanyId());
+                            staffContractArchives.setArchivesNumber(item.getArchivesNumber());
+                            staffContractArchives.setArchivesName(item.getArchivesName());
+                            staffContractArchives.setArchivesType(getArchivesType(item.getArchivesType()));
+                            if (ObjectUtil.isNotEmpty(item.getSigningDate())) {
+                                staffContractArchives.setSigningDate(DateUtils.dateTimeSec("yyyy/MM/dd", item.getSigningDate()));
+                            }
+                            if (ObjectUtil.isNotEmpty(item.getEffectiveDate())) {
+                                staffContractArchives.setEffectiveDate(DateUtils.dateTimeSec("yyyy/MM/dd", item.getEffectiveDate()));
+                            }
+                            if (ObjectUtil.isNotEmpty(item.getOutDate())) {
+                                staffContractArchives.setEndDate(DateUtils.dateTimeSec("yyyy/MM/dd", item.getOutDate()));
+                            }
+                            StaffContractArchivesAddBo staffContractArchivesAddBo = BeanUtil.toBean(staffContractArchives, StaffContractArchivesAddBo.class);
+                            iStaffContractArchivesService.insertByAddBo(staffContractArchivesAddBo);
+                        }
+                    });
+                }
+            }
+        });
+        return true;
+    }
+}

+ 81 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/vo/ExcelStaffCertificateVo.java

@@ -0,0 +1,81 @@
+package com.zhongzheng.modules.staff.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 员工证书视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+@Data
+@ApiModel("员工证书视图对象")
+public class ExcelStaffCertificateVo {
+	/** 证书编号 */
+	@Excel(name = "证书编号")
+	@ApiModelProperty("证书编号")
+	private String certificateNumber;
+	/** 证书名称 */
+	@Excel(name = "*证书名称")
+	@ApiModelProperty("证书名称")
+	private String certificateName;
+	/** 证书类型 1:注册证书 2:技术职称 3:线程管理 4:安管三类 5:职业技能 6:待种作业 7:其他 */
+	@Excel(name = "*证书类型")
+	@ApiModelProperty("证书类型 1:注册证书 2:技术职称 3:线程管理 4:安管三类 5:职业技能 6:待种作业 7:其他")
+	private Integer certificateType;
+	/** 证书专业 */
+	@Excel(name = "专业")
+	@ApiModelProperty("证书专业")
+	private String certificateMajor;
+	/** 发证时间 */
+	@Excel(name = "发证时间")
+	@ApiModelProperty("发证时间")
+	private Long startTime;
+	/** 有效时间 */
+	@Excel(name = "有效时间")
+	@ApiModelProperty("有效时间")
+	private Long endTime;
+	/** 发证机关 */
+	@Excel(name = "发证机关")
+	@ApiModelProperty("发证机关")
+	private String certificateAddress;
+	/** 预警状态 1:正常 2:已过期 */
+	@Excel(name = "预警状态 1:正常 2:已过期")
+	@ApiModelProperty("预警状态 1:正常 2:已过期")
+	private Integer warningStatus;
+	/** 证书预览 */
+	@Excel(name = "证书预览")
+	@ApiModelProperty("证书预览")
+	private String previewImg;
+	/** 员工证书备注 */
+	@Excel(name = "备注")
+	@ApiModelProperty("员工证书备注")
+	private String staffRemarks;
+	/** 所属企业 */
+	@Excel(name = "*所属企业")
+	@ApiModelProperty("所属企业")
+	private String companyName;
+	/** 岗位状态 1:全职 2:离职 3:编外 */
+	@Excel(name = "岗位状态")
+	@ApiModelProperty("岗位状态")
+	private Long positionStatus;
+	/** 员工姓名 */
+	@Excel(name = "*姓名")
+	@ApiModelProperty("员工姓名")
+	private String staffName;
+	/** 身份证号 */
+	@Excel(name = "*身份证号")
+	@ApiModelProperty("身份证号")
+	private String idCard;
+	/** 添加时间 */
+	@Excel(name = "添加时间")
+	@ApiModelProperty("添加时间")
+	private String addTime;
+	/** 过期时间 */
+	private Long expirationTime;
+
+}

+ 183 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/vo/ExcelStaffVo.java

@@ -0,0 +1,183 @@
+package com.zhongzheng.modules.staff.vo;
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 文档企业部门员工视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@ApiModel("企业部门员工视图对象")
+public class ExcelStaffVo {
+	/** 员工姓名 */
+	@Excel(name = "*姓名")
+	@ApiModelProperty("员工姓名")
+	private String staffName;
+	/** 身份证号 */
+	@Excel(name = "*身份证号")
+	@ApiModelProperty("身份证号")
+	private String idCard;
+	/** 手机号 */
+	@Excel(name = "*手机号码")
+	@ApiModelProperty("手机号")
+	private String telephone;
+	/** 邮箱 */
+	@Excel(name = "邮箱")
+	@ApiModelProperty("邮箱")
+	private String email;
+	/** 性别 1:男 2:女 */
+	@Excel(name = "性别")
+	@ApiModelProperty("性别 1:男 2:女")
+	private String sex;
+	/** 出生日期 */
+	@Excel(name = "出生日期")
+	@ApiModelProperty("出生日期")
+	private String birthday;
+	/** 民族 */
+	@Excel(name = "民族")
+	@ApiModelProperty("民族")
+	private String nation;
+	/** 政治面貌 */
+	@Excel(name = "政治面貌")
+	@ApiModelProperty("政治面貌")
+	private String politicsFace;
+	/** 户口所在地 */
+	@Excel(name = "户口所在地")
+	@ApiModelProperty("户口所在地")
+	private String hkLocation;
+	/** 居住地 */
+	@Excel(name = "居住地址")
+	@ApiModelProperty("居住地")
+	private String homeAddress;
+	/** 员工编号 */
+	@Excel(name = "员工编号")
+	@ApiModelProperty("员工编号")
+	private String staffNumber;
+	/** 所属企业 */
+	@Excel(name = "*所属企业")
+	@ApiModelProperty("所属企业")
+	private String companyName;
+	/** 所在部门 */
+	@Excel(name = "所在部门")
+	@ApiModelProperty("所在部门")
+	private String departmentName;
+	/** 所在岗位 */
+	@Excel(name = "岗位名称")
+	@ApiModelProperty("所在岗位")
+	private String position;
+	/** 岗位状态 1:全职 2:离职 3:编外 */
+	@Excel(name = "岗位状态")
+	@ApiModelProperty("岗位状态 1:全职 2:离职 3:编外")
+	private String positionStatus;
+	/** 招聘渠道 */
+	@Excel(name = "招聘渠道")
+	@ApiModelProperty("招聘渠道")
+	private String recruitmentChannel;
+	/** 参与工作时间 */
+	@Excel(name = "参与工作时间")
+	@ApiModelProperty("参与工作时间")
+	private String  workDate;
+	/** 入职时间 */
+	@Excel(name = "入职时间")
+	@ApiModelProperty("入职时间")
+	private String entryDate;
+	/** 离职时间 */
+	@Excel(name = "离职时间")
+	@ApiModelProperty("离职时间")
+	private String leaveDate;
+	/** 身份证签发机关 */
+	@Excel(name = "签发机关")
+	@ApiModelProperty("身份证签发机关")
+	private String issuingOrganization;
+	/** 身份证开始期限 */
+	@Excel(name = "开始期限")
+	@ApiModelProperty("身份证开始期限")
+	private String startDate;
+	/** 身份证结束期限 */
+	@Excel(name = "结束期限")
+	@ApiModelProperty("身份证结束期限")
+	private String endDate;
+
+	/** 创建时间 */
+	@Excel(name = "开始日期")
+	@ApiModelProperty("开始日期")
+	private String startTime;
+	/** 更新时间 */
+	@Excel(name = "结束日期")
+	@ApiModelProperty("结束日期")
+	private String endTime;
+	/** 毕业学校 */
+	@Excel(name = "毕业学校")
+	@ApiModelProperty("毕业学校")
+	private String graduationSchool;
+	/** 标签 */
+	@Excel(name = "专业")
+	@ApiModelProperty("专业")
+	private String major;
+	/** 学习类型 */
+	@Excel(name = "学习类型")
+	@ApiModelProperty("学习类型")
+	private String learnType;
+	/** 学历/学位 */
+	@Excel(name = "学历/学位")
+	@ApiModelProperty("学历/学位")
+	private String degree;
+
+	/** 关系 */
+	@Excel(name = "关系")
+	@ApiModelProperty("关系")
+	private String relation;
+	/** 联系人姓名 */
+	@Excel(name = "联系姓名")
+	@ApiModelProperty("联系姓名")
+	private String contactName;
+	/** 联系电话 */
+	@Excel(name = "联系电话")
+	@ApiModelProperty("联系姓名")
+	private String contactTelephone;
+
+	/** 开户名 */
+	@Excel(name = "开户名")
+	@ApiModelProperty("开户名")
+	private String openName;
+	/** 开户行 */
+	@Excel(name = "开户行")
+	@ApiModelProperty("开户行")
+	private String openBank;
+	/** 卡号 */
+	@Excel(name = "卡号")
+	@ApiModelProperty("卡号")
+	private String bankNumber;
+
+	/** 档案编号 */
+	@Excel(name = "编号")
+	@ApiModelProperty("编号")
+	private String archivesNumber;
+	/** 档案名称 */
+	@Excel(name = "名称")
+	@ApiModelProperty("名称")
+	private String archivesName;
+	/** 档案类型 1:劳动合同 2:编外合同 3:其他合同 */
+	@Excel(name = "类型")
+	@ApiModelProperty("类型")
+	private String archivesType;
+	/** 签署时间 */
+	@Excel(name = "签署时间")
+	@ApiModelProperty("签署时间")
+	private String signingDate;
+	/** 生效时间 */
+	@Excel(name = "生效时间")
+	@ApiModelProperty("生效时间")
+	private String effectiveDate;
+	/** 终止时间 */
+	@Excel(name = "终止时间")
+	@ApiModelProperty("终止时间")
+	private String outDate;
+}

+ 51 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/vo/StaffBankInfoVo.java

@@ -0,0 +1,51 @@
+package com.zhongzheng.modules.staff.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 员工银行信息视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@ApiModel("员工银行信息视图对象")
+public class StaffBankInfoVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long infoId;
+
+	/** 员工id */
+	@Excel(name = "员工id")
+	@ApiModelProperty("员工id")
+	private Long staffId;
+	/** 企业id */
+	@Excel(name = "企业id")
+	@ApiModelProperty("企业id")
+	private Long companyId;
+	/** 开户名 */
+	@Excel(name = "开户名")
+	@ApiModelProperty("开户名")
+	private String openName;
+	/** 开户行 */
+	@Excel(name = "开户行")
+	@ApiModelProperty("开户行")
+	private String openBank;
+	/** 卡号 */
+	@Excel(name = "卡号")
+	@ApiModelProperty("卡号")
+	private String bankNumber;
+	/** 状态 */
+	@Excel(name = "状态")
+	@ApiModelProperty("状态")
+	private Integer status;
+}

+ 39 - 15
zhongzheng-system/src/main/java/com/zhongzheng/modules/certificate/vo/StaffCertificateVo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/vo/StaffCertificateVo.java

@@ -1,12 +1,9 @@
-package com.zhongzheng.modules.certificate.vo;
+package com.zhongzheng.modules.staff.vo;
 
 import com.zhongzheng.common.annotation.Excel;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import java.util.Date;
-
 
 
 /**
@@ -22,22 +19,22 @@ public class StaffCertificateVo {
 
 	/** $pkColumn.columnComment */
 	@ApiModelProperty("$pkColumn.columnComment")
-	private Long certificateId;
+	private Long staffCertificateId;
 	@Excel(name = "机构id")
 	@ApiModelProperty("机构名称")
 	private String tenantId;
-	/** 公司id */
-	@Excel(name = "公司id")
-	@ApiModelProperty("公司id")
-	private String companyId;
-	/** 用户id */
-	@Excel(name = "用户id")
-	@ApiModelProperty("用户id")
-	private String userId;
+	/** 员工id */
+	@Excel(name = "员工id")
+	@ApiModelProperty("员工id")
+	private String staffId;
 	/** 证书编号 */
 	@Excel(name = "证书编号")
 	@ApiModelProperty("证书编号")
 	private String certificateNumber;
+	/** 证书名称 */
+	@Excel(name = "证书名称")
+	@ApiModelProperty("证书名称")
+	private String certificateName;
 	/** 证书类型 1:注册证书 2:技术职称 3:线程管理 4:安管三类 5:职业技能 6:待种作业 7:其他 */
 	@Excel(name = "证书类型 1:注册证书 2:技术职称 3:线程管理 4:安管三类 5:职业技能 6:待种作业 7:其他")
 	@ApiModelProperty("证书类型 1:注册证书 2:技术职称 3:线程管理 4:安管三类 5:职业技能 6:待种作业 7:其他")
@@ -49,11 +46,11 @@ public class StaffCertificateVo {
 	/** 发证时间 */
 	@Excel(name = "发证时间")
 	@ApiModelProperty("发证时间")
-	private String startTime;
+	private Long startTime;
 	/** 有效时间 */
 	@Excel(name = "有效时间")
 	@ApiModelProperty("有效时间")
-	private String endTime;
+	private Long endTime;
 	/** 发证机关 */
 	@Excel(name = "发证机关")
 	@ApiModelProperty("发证机关")
@@ -66,8 +63,35 @@ public class StaffCertificateVo {
 	@Excel(name = "证书预览")
 	@ApiModelProperty("证书预览")
 	private String previewImg;
+	/** 员工证书备注 */
+	@Excel(name = "员工证书备注")
+	@ApiModelProperty("员工证书备注")
+	private String staffRemarks;
 	/** 1有效 0无效 */
 	@Excel(name = "1有效 0无效")
 	@ApiModelProperty("1有效 0无效")
 	private Integer status;
+	/** 所属企业 */
+	@Excel(name = "所属企业")
+	@ApiModelProperty("所属企业")
+	private String companyName;
+	/** 岗位状态 1:全职 2:离职 3:编外 */
+	@Excel(name = "岗位状态")
+	@ApiModelProperty("岗位状态")
+	private Long positionStatus;
+	/** 员工姓名 */
+	@Excel(name = "员工姓名")
+	@ApiModelProperty("员工姓名")
+	private String staffName;
+	/** 身份证号 */
+	@Excel(name = "身份证号")
+	@ApiModelProperty("身份证号")
+	private String idCard;
+	/** 添加时间 */
+	@Excel(name = "添加时间")
+	@ApiModelProperty("添加时间")
+	private String addTime;
+	/** 过期时间 */
+	private Long expirationTime;
+
 }

+ 67 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/vo/StaffContractArchivesVo.java

@@ -0,0 +1,67 @@
+package com.zhongzheng.modules.staff.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 员工合同档案视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@ApiModel("员工合同档案视图对象")
+public class StaffContractArchivesVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long archivesId;
+
+	/** 员工id */
+	@Excel(name = "员工id")
+	@ApiModelProperty("员工id")
+	private Long staffId;
+	/** 企业id */
+	@Excel(name = "企业id")
+	@ApiModelProperty("企业id")
+	private Long companyId;
+	/** 档案编号 */
+	@Excel(name = "档案编号")
+	@ApiModelProperty("档案编号")
+	private String archivesNumber;
+	/** 档案名称 */
+	@Excel(name = "档案名称")
+	@ApiModelProperty("档案名称")
+	private String archivesName;
+	/** 档案类型 1:劳动合同 2:编外合同 3:其他合同 */
+	@Excel(name = "档案类型 1:劳动合同 2:编外合同 3:其他合同")
+	@ApiModelProperty("档案类型 1:劳动合同 2:编外合同 3:其他合同")
+	private Long archivesType;
+	/** 签署时间 */
+	@Excel(name = "签署时间")
+	@ApiModelProperty("签署时间")
+	private Long signingDate;
+	/** 生效时间 */
+	@Excel(name = "生效时间")
+	@ApiModelProperty("生效时间")
+	private Long effectiveDate;
+	/** 终止时间 */
+	@Excel(name = "终止时间")
+	@ApiModelProperty("终止时间")
+	private Long endDate;
+	/** 电子档案 */
+	@Excel(name = "电子档案")
+	@ApiModelProperty("电子档案")
+	private String electronicArchives;
+	/** 状态 */
+	@Excel(name = "状态")
+	@ApiModelProperty("状态")
+	private Integer status;
+}

+ 71 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/vo/StaffEduBgVo.java

@@ -0,0 +1,71 @@
+package com.zhongzheng.modules.staff.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 员工教育背景视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@ApiModel("员工教育背景视图对象")
+public class StaffEduBgVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long eduBgId;
+
+	/** 员工id */
+	@Excel(name = "员工id")
+	@ApiModelProperty("员工id")
+	private Long staffId;
+	/** 企业id */
+	@Excel(name = "企业id")
+	@ApiModelProperty("企业id")
+	private Long companyId;
+	/** 开始日期 */
+	@Excel(name = "开始日期")
+	@ApiModelProperty("开始日期")
+	private Long startDate;
+	/** 结束日期 */
+	@Excel(name = "结束日期")
+	@ApiModelProperty("结束日期")
+	private Long endDate;
+	/** 毕业学校 */
+	@Excel(name = "毕业学校")
+	@ApiModelProperty("毕业学校")
+	private String graduationSchool;
+	/** 专业 */
+	@Excel(name = "专业")
+	@ApiModelProperty("专业")
+	private String major;
+	/** 学习类型 1:全日制 2:非全日制 */
+	@Excel(name = "学习类型 1:全日制 2:非全日制")
+	@ApiModelProperty("学习类型 1:全日制 2:非全日制")
+	private Long learningType;
+	/** 学历/学位 1:小学 2:中学 3:职高 4:高中 5:专科 6:本科 7:硕士研究生 8:博士研究生 */
+	@Excel(name = "学历/学位 1:小学 2:中学 3:职高 4:高中 5:专科 6:本科 7:硕士研究生 8:博士研究生")
+	@ApiModelProperty("学历/学位 1:小学 2:中学 3:职高 4:高中 5:专科 6:本科 7:硕士研究生 8:博士研究生")
+	private Long degree;
+	/** 毕业证书 */
+	@Excel(name = "毕业证书")
+	@ApiModelProperty("毕业证书")
+	private String graduationCertificate;
+	/** 学信网验证 */
+	@Excel(name = "学信网验证")
+	@ApiModelProperty("学信网验证")
+	private String validate;
+	/** 状态 */
+	@Excel(name = "状态")
+	@ApiModelProperty("状态")
+	private Integer status;
+}

+ 51 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/vo/StaffEmergencyContactVo.java

@@ -0,0 +1,51 @@
+package com.zhongzheng.modules.staff.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 员工紧急联系人视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@ApiModel("员工紧急联系人视图对象")
+public class StaffEmergencyContactVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long contactId;
+
+	/** 员工id */
+	@Excel(name = "员工id")
+	@ApiModelProperty("员工id")
+	private Long staffId;
+	/** 企业id */
+	@Excel(name = "企业id")
+	@ApiModelProperty("企业id")
+	private Long companyId;
+	/** 关系 */
+	@Excel(name = "关系")
+	@ApiModelProperty("关系")
+	private String relation;
+	/** 联系人姓名 */
+	@Excel(name = "联系人姓名")
+	@ApiModelProperty("联系人姓名")
+	private String contactName;
+	/** 联系电话 */
+	@Excel(name = "联系电话")
+	@ApiModelProperty("联系电话")
+	private String contactTelephone;
+	/** 状态 */
+	@Excel(name = "状态")
+	@ApiModelProperty("状态")
+	private Integer status;
+}

+ 183 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/vo/StaffVo.java

@@ -0,0 +1,183 @@
+package com.zhongzheng.modules.staff.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zhongzheng.modules.staff.bo.StaffBankInfoAddBo;
+import com.zhongzheng.modules.staff.bo.StaffContractArchivesAddBo;
+import com.zhongzheng.modules.staff.bo.StaffEduBgAddBo;
+import com.zhongzheng.modules.staff.bo.StaffEmergencyContactAddBo;
+import com.zhongzheng.modules.staff.domain.StaffBankInfo;
+import com.zhongzheng.modules.staff.domain.StaffContractArchives;
+import com.zhongzheng.modules.staff.domain.StaffEduBg;
+import com.zhongzheng.modules.staff.domain.StaffEmergencyContact;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 企业部门员工视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@ApiModel("企业部门员工视图对象")
+public class StaffVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long staffId;
+
+	/** 企业id */
+	@Excel(name = "企业id")
+	@ApiModelProperty("企业id")
+	private Long companyId;
+	/** 部门id */
+	@Excel(name = "部门id")
+	@ApiModelProperty("部门id")
+	private Long departmentId;
+	/** 员工姓名 */
+	@Excel(name = "员工姓名")
+	@ApiModelProperty("员工姓名")
+	private String staffName;
+	/** 身份证号 */
+	@Excel(name = "身份证号")
+	@ApiModelProperty("身份证号")
+	private String idCard;
+	/** 手机号 */
+	@Excel(name = "手机号")
+	@ApiModelProperty("手机号")
+	private String telephone;
+	/** 邮箱 */
+	@Excel(name = "邮箱")
+	@ApiModelProperty("邮箱")
+	private String email;
+	/** 性别 1:男 2:女 */
+	@Excel(name = "性别 1:男 2:女")
+	@ApiModelProperty("性别 1:男 2:女")
+	private Long sex;
+	/** 出生日期 */
+	@Excel(name = "出生日期")
+	@ApiModelProperty("出生日期")
+	private Long birthday;
+	/** 民族 */
+	@Excel(name = "民族")
+	@ApiModelProperty("民族")
+	private String nation;
+	/** 政治面貌 */
+	@Excel(name = "政治面貌")
+	@ApiModelProperty("政治面貌")
+	private String politicsFace;
+	/** 户口所在地 */
+	@Excel(name = "户口所在地")
+	@ApiModelProperty("户口所在地")
+	private String hkLocation;
+	@ApiModelProperty("居住地")
+	private String homeAddress;
+	/** 员工编号 */
+	@Excel(name = "员工编号")
+	@ApiModelProperty("员工编号")
+	private String staffNumber;
+	/** 所属企业 */
+	@Excel(name = "所属企业")
+	@ApiModelProperty("所属企业")
+	private String companyName;
+	/** 所在部门 */
+	@Excel(name = "所在部门")
+	@ApiModelProperty("所在部门")
+	private String departmentName;
+	/** 所在岗位 */
+	@Excel(name = "所在岗位")
+	@ApiModelProperty("所在岗位")
+	private String position;
+	/** 岗位状态 1:全职 2:离职 3:编外 */
+	@Excel(name = "岗位状态 1:全职 2:离职 3:编外")
+	@ApiModelProperty("岗位状态 1:全职 2:离职 3:编外")
+	private Long positionStatus;
+	/** 招聘渠道 */
+	@Excel(name = "招聘渠道")
+	@ApiModelProperty("招聘渠道")
+	private String recruitmentChannel;
+	/** 参与工作时间 */
+	@Excel(name = "参与工作时间")
+	@ApiModelProperty("参与工作时间")
+	private Long workDate;
+	/** 入职时间 */
+	@Excel(name = "入职时间")
+	@ApiModelProperty("入职时间")
+	private Long entryDate;
+	/** 离职时间 */
+	@Excel(name = "离职时间")
+	@ApiModelProperty("离职时间")
+	private Long leaveDate;
+	/** 身份证正面 */
+	@Excel(name = "身份证正面")
+	@ApiModelProperty("身份证正面")
+	private String zCard;
+	/** 身份证反面 */
+	@Excel(name = "身份证反面")
+	@ApiModelProperty("身份证反面")
+	private String fCard;
+	/** 身份证签发机关 */
+	@Excel(name = "身份证签发机关")
+	@ApiModelProperty("身份证签发机关")
+	private String issuingOrganization;
+	/** 身份证开始期限 */
+	@Excel(name = "身份证开始期限")
+	@ApiModelProperty("身份证开始期限")
+	private Long startDate;
+	/** 身份证结束期限 */
+	@Excel(name = "身份证结束期限")
+	@ApiModelProperty("身份证结束期限")
+	private Long endDate;
+	/** 标签 */
+	@Excel(name = "标签")
+	@ApiModelProperty("标签")
+	private String label;
+	/** 备注 */
+	@Excel(name = "备注")
+	@ApiModelProperty("备注")
+	private String remarks;
+	/** 状态 */
+	@Excel(name = "状态")
+	@ApiModelProperty("状态")
+	private Integer status;
+	/** 创建时间 */
+	@Excel(name = "创建时间")
+	@ApiModelProperty("创建时间")
+	private Long createTime;
+	/** 更新时间 */
+	@Excel(name = "更新时间")
+	@ApiModelProperty("更新时间")
+	private Long updateTime;
+	/** 标签 */
+	@Excel(name = "学历")
+	@ApiModelProperty("学历")
+	private Long degree;
+	/** 标签 */
+	@Excel(name = "专业")
+	@ApiModelProperty("专业")
+	private String major;
+	/** 员工证书数量 */
+	@Excel(name = "员工证书数量")
+	@ApiModelProperty("员工证书数量")
+	private Integer staffCertificateCount;
+	/** 员工教育背景集合 */
+	@Excel(name = "教育背景")
+	@ApiModelProperty("教育背景")
+	private List<StaffEduBg> staffEduBgList;
+	/** 员工紧急联系人集合 */
+	@Excel(name = "紧急联系人")
+	@ApiModelProperty("紧急联系人")
+	private List<StaffEmergencyContact> staffEmergencyContactList;
+	/** 员工银行信息集合 */
+	private List<StaffBankInfo> staffBankInfoList;
+	/** 员工合同档案集合 */
+	@Excel(name = "合同档案")
+	@ApiModelProperty("合同档案")
+	private List<StaffContractArchives> staffContractArchivesList;
+}

+ 0 - 26
zhongzheng-system/src/main/resources/mapper/modules/certificate/StaffCertificateMapper.xml

@@ -1,26 +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.zhongzheng.modules.certificate.mapper.StaffCertificateMapper">
-
-    <resultMap type="com.zhongzheng.modules.certificate.domain.StaffCertificate" id="StaffCertificateResult">
-        <result property="certificateId" column="certificate_id"/>
-        <result property="tenantId" column="tenant_id"/>
-        <result property="companyId" column="company_id"/>
-        <result property="userId" column="user_id"/>
-        <result property="certificateNumber" column="certificate_number"/>
-        <result property="certificateType" column="certificate_type"/>
-        <result property="certificateMajor" column="certificate_major"/>
-        <result property="startTime" column="start_time"/>
-        <result property="endTime" column="end_time"/>
-        <result property="certificateAddress" column="certificate_address"/>
-        <result property="warningStatus" column="warning_status"/>
-        <result property="previewImg" column="preview_img"/>
-        <result property="status" column="status"/>
-        <result property="createTime" column="create_time"/>
-        <result property="updateTime" column="update_time"/>
-    </resultMap>
-
-
-</mapper>

+ 73 - 0
zhongzheng-system/src/main/resources/mapper/modules/company/CompanyCertificateMapper.xml

@@ -9,13 +9,86 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="tenantId" column="tenant_id"/>
         <result property="companyId" column="company_id"/>
         <result property="certificateNumber" column="certificate_number"/>
+        <result property="certificateName" column="certificate_name"/>
         <result property="certificateType" column="certificate_type"/>
         <result property="warningStatus" column="warning_status"/>
         <result property="previewImg" column="preview_img"/>
         <result property="status" column="status"/>
         <result property="createTime" column="create_time"/>
         <result property="updateTime" column="update_time"/>
+        <result property="documentType" column="document_type"/>
+        <result property="issuingAuthority" column="issuing_authority"/>
+        <result property="text" column="text"/>
+        <result property="companyName" column="company_name"/>
+        <result property="companyType" column="company_type"/>
+        <result property="issuingAuthority" column="issuing_authority"/>
+        <result property="creditCode" column="credit_code"/>
+        <result property="registeredCapital" column="registered_capital"/>
+        <result property="legalRepresentative" column="legal_representative"/>
+        <result property="companyAddress" column="company_address"/>
+        <result property="establishDate" column="establish_date"/>
+        <result property="operateDate" column="operate_date"/>
+        <result property="registrationAuthority" column="registration_authority"/>
+        <result property="experienceScope" column="experience_scope"/>
+        <result property="documentType" column="document_type"/>
+        <result property="companyCertificateRemarks" column="company_certificate_remarks"/>
+    </resultMap>
+    <resultMap type="com.zhongzheng.modules.company.vo.CompanyCertificateVo" id="CompanyCertificateResultVo">
+        <result property="certificateId" column="certificate_id"/>
+        <result property="tenantId" column="tenant_id"/>
+        <result property="companyId" column="company_id"/>
+        <result property="certificateNumber" column="certificate_number"/>
+        <result property="certificateName" column="certificate_name"/>
+        <result property="certificateType" column="certificate_type"/>
+        <result property="warningStatus" column="warning_status"/>
+        <result property="previewImg" column="preview_img"/>
+        <result property="status" column="status"/>
+        <result property="documentType" column="document_type"/>
+        <result property="issuingAuthority" column="issuing_authority"/>
+        <result property="text" column="text"/>
+        <result property="companyName" column="company_name"/>
+        <result property="companyType" column="company_type"/>
+        <result property="issuingAuthority" column="issuing_authority"/>
+        <result property="creditCode" column="credit_code"/>
+        <result property="registeredCapital" column="registered_capital"/>
+        <result property="legalRepresentative" column="legal_representative"/>
+        <result property="companyAddress" column="company_address"/>
+        <result property="establishDate" column="establish_date"/>
+        <result property="operateDate" column="operate_date"/>
+        <result property="registrationAuthority" column="registration_authority"/>
+        <result property="experienceScope" column="experience_scope"/>
+        <result property="documentType" column="document_type"/>
+        <result property="companyCertificateRemarks" column="company_certificate_remarks"/>
     </resultMap>
 
 
+    <select id="selectCompanyCertificate" parameterType="com.zhongzheng.modules.company.vo.CompanyCertificateVo" resultMap="CompanyCertificateResultVo">
+        select *
+        from company_certificate cc where cc.status=1
+        <if test="certificateType != null">
+            AND cc.certificate_type = #{certificateType}
+        </if>
+        <if test="documentType != null">
+            AND cc.document_type = #{documentType}
+        </if>
+        <if test="companyName != null">
+            AND cc.company_name = #{companyName}
+        </if>
+        <if test="creditCode != null">
+            AND cc.credit_code = #{creditCode}
+        </if>
+        <if test="warningStatus != null">
+            AND cc.warning_status = #{warningStatus}
+        </if>
+        <if test="legalRepresentative != null">
+            AND cc.legal_representative = #{legalRepresentative}
+        </if>
+        <if test="certificateName != null">
+            AND cc.certificate_name = #{certificateName}
+        </if>
+        <if test="certificateNumber != null">
+            AND cc.certificate_number = #{certificateNumber}
+        </if>
+        order by cc.create_time desc
+    </select>
 </mapper>

+ 20 - 0
zhongzheng-system/src/main/resources/mapper/modules/staff/StaffBankInfoMapper.xml

@@ -0,0 +1,20 @@
+<?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.zhongzheng.modules.staff.mapper.StaffBankInfoMapper">
+
+    <resultMap type="com.zhongzheng.modules.staff.domain.StaffBankInfo" id="StaffBankInfoResult">
+        <result property="infoId" column="info_id"/>
+        <result property="staffId" column="staff_id"/>
+        <result property="companyId" column="company_id"/>
+        <result property="openName" column="open_name"/>
+        <result property="openBank" column="open_bank"/>
+        <result property="bankNumber" column="bank_number"/>
+        <result property="status" column="status"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+
+</mapper>

+ 71 - 0
zhongzheng-system/src/main/resources/mapper/modules/staff/StaffCertificateMapper.xml

@@ -0,0 +1,71 @@
+<?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.zhongzheng.modules.staff.mapper.StaffCertificateMapper">
+
+    <resultMap type="com.zhongzheng.modules.staff.domain.StaffCertificate" id="StaffCertificateResult">
+        <result property="staffCertificateId" column="staff_certificate_id"/>
+        <result property="tenantId" column="tenant_id"/>
+        <result property="staffId" column="staff_id"/>
+        <result property="certificateNumber" column="certificate_number"/>
+        <result property="certificateName" column="certificate_name"/>
+        <result property="certificateType" column="certificate_type"/>
+        <result property="certificateMajor" column="certificate_major"/>
+        <result property="startTime" column="start_time"/>
+        <result property="endTime" column="end_time"/>
+        <result property="certificateAddress" column="certificate_address"/>
+        <result property="warningStatus" column="warning_status"/>
+        <result property="previewImg" column="preview_img"/>
+        <result property="status" column="status"/>
+        <result property="staffRemarks" column="staff_remarks"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+    <resultMap type="com.zhongzheng.modules.staff.vo.StaffCertificateVo" id="StaffCertificateResultVo">
+        <result property="staffCertificateId" column="staff_certificate_id"/>
+        <result property="tenantId" column="tenant_id"/>
+        <result property="staffId" column="staff_id"/>
+        <result property="certificateNumber" column="certificate_number"/>
+        <result property="certificateName" column="certificate_name"/>
+        <result property="certificateType" column="certificate_type"/>
+        <result property="certificateMajor" column="certificate_major"/>
+        <result property="startTime" column="start_time"/>
+        <result property="endTime" column="end_time"/>
+        <result property="certificateAddress" column="certificate_address"/>
+        <result property="warningStatus" column="warning_status"/>
+        <result property="previewImg" column="preview_img"/>
+        <result property="status" column="status"/>
+        <result property="staffRemarks" column="staff_remarks"/>
+        <result property="addTime" column="create_time"/>
+        <result property="companyName" column="company_name"/>
+        <result property="positionStatus" column="position_status"/>
+        <result property="staffName" column="staff_name"/>
+        <result property="idCard" column="id_card"/>
+    </resultMap>
+    <select id="selectAllByCertificate" parameterType="com.zhongzheng.modules.staff.bo.StaffCertificateQueryBo" resultMap="StaffCertificateResultVo">
+        select *,sc.create_time AS addtime
+        from staff_certificate sc left join staff s
+            on sc.staff_id = s.staff_id where sc.status=1 and s.status=1
+        <if test="certificateType != null and certificateType != ''">
+            AND sc.certificate_type = #{certificateType}
+        </if>
+        <if test="staffName != null and staffName != ''">
+            AND s.staff_name = #{staffName}
+        </if>
+        <if test="companyName != null and companyName != ''">
+            AND s.company_name = #{companyName}
+        </if>
+        <if test="idCard != null and idCard != ''">
+            AND s.id_card = #{idCard}
+        </if>
+        <if test="warningStatus != null and warningStatus != ''">
+            AND sc.warning_status = #{warningStatus}
+        </if>
+        <if test="certificateNumber != null and certificateNumber != ''">
+            AND sc.certificate_number = #{certificateNumber}
+        </if>
+        order by sc.create_time desc
+    </select>
+
+</mapper>

+ 24 - 0
zhongzheng-system/src/main/resources/mapper/modules/staff/StaffContractArchivesMapper.xml

@@ -0,0 +1,24 @@
+<?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.zhongzheng.modules.staff.mapper.StaffContractArchivesMapper">
+
+    <resultMap type="com.zhongzheng.modules.staff.domain.StaffContractArchives" id="StaffContractArchivesResult">
+        <result property="archivesId" column="archives_id"/>
+        <result property="staffId" column="staff_id"/>
+        <result property="companyId" column="company_id"/>
+        <result property="archivesNumber" column="archives_number"/>
+        <result property="archivesName" column="archives_name"/>
+        <result property="archivesType" column="archives_type"/>
+        <result property="signingDate" column="Signing_date"/>
+        <result property="effectiveDate" column="effective_date"/>
+        <result property="endDate" column="end_date"/>
+        <result property="electronicArchives" column="electronic_archives"/>
+        <result property="status" column="status"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+
+</mapper>

+ 25 - 0
zhongzheng-system/src/main/resources/mapper/modules/staff/StaffEduBgMapper.xml

@@ -0,0 +1,25 @@
+<?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.zhongzheng.modules.staff.mapper.StaffEduBgMapper">
+
+    <resultMap type="com.zhongzheng.modules.staff.domain.StaffEduBg" id="StaffEduBgResult">
+        <result property="eduBgId" column="edu_bg_id"/>
+        <result property="staffId" column="staff_id"/>
+        <result property="companyId" column="company_id"/>
+        <result property="startDate" column="start_date"/>
+        <result property="endDate" column="end_date"/>
+        <result property="graduationSchool" column="graduation_school"/>
+        <result property="major" column="major"/>
+        <result property="learningType" column="learning_type"/>
+        <result property="degree" column="degree"/>
+        <result property="graduationCertificate" column="graduation_certificate"/>
+        <result property="validate" column="validate"/>
+        <result property="status" column="status"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+
+</mapper>

Неке датотеке нису приказане због велике количине промена