sr преди 4 години
родител
ревизия
9b694cdf94
променени са 64 файла, в които са добавени 8486 реда и са изтрити 498 реда
  1. 104 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BmCompanyShareholderController.java
  2. 104 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BmProjectConstructionController.java
  3. 108 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BmProjectController.java
  4. 104 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BmProjectInfoController.java
  5. 104 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BmProjectInvestorController.java
  6. 104 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BmProjectOrderinfoController.java
  7. 104 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BmProjectPersionController.java
  8. 104 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BmProjectReferralController.java
  9. 0 2
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java
  10. 10 0
      ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
  11. 59 0
      ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java
  12. 1 0
      ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java
  13. 1 0
      ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java
  14. 1 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java
  15. 50 1
      ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java
  16. 128 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/project/BmCompanyShareholder.java
  17. 200 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/project/BmProject.java
  18. 171 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/project/BmProjectConstruction.java
  19. 368 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/project/BmProjectInfo.java
  20. 127 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/project/BmProjectInvestor.java
  21. 742 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/project/BmProjectOrderinfo.java
  22. 113 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/project/BmProjectPersion.java
  23. 116 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/project/BmProjectReferral.java
  24. 35 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/project/BmProjectStatus.java
  25. 62 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/project/BmCompanyShareholderMapper.java
  26. 63 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/project/BmProjectConstructionMapper.java
  27. 63 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/project/BmProjectInfoMapper.java
  28. 63 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/project/BmProjectInvestorMapper.java
  29. 63 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/project/BmProjectMapper.java
  30. 62 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/project/BmProjectOrderinfoMapper.java
  31. 62 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/project/BmProjectPersionMapper.java
  32. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/project/BmProjectReferralMapper.java
  33. 8 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java
  34. 98 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/project/BmCompanyShareholderServiceImpl.java
  35. 117 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/project/BmProjectConstructionServiceImpl.java
  36. 119 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/project/BmProjectInfoServiceImpl.java
  37. 100 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/project/BmProjectInvestorServiceImpl.java
  38. 99 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/project/BmProjectOrderinfoServiceImpl.java
  39. 99 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/project/BmProjectPersionServiceImpl.java
  40. 100 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/project/BmProjectReferralServiceImpl.java
  41. 158 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/project/BmProjectServiceImpl.java
  42. 62 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/project/IBmCompanyShareholderService.java
  43. 64 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/project/IBmProjectConstructionService.java
  44. 63 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/project/IBmProjectInfoService.java
  45. 63 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/project/IBmProjectInvestorService.java
  46. 62 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/project/IBmProjectOrderinfoService.java
  47. 63 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/project/IBmProjectPersionService.java
  48. 63 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/project/IBmProjectReferralService.java
  49. 72 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/project/IBmProjectService.java
  50. 20 6
      ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml
  51. 102 0
      ruoyi-system/src/main/resources/mapper/system/project/BmCompanyShareholderMapper.xml
  52. 107 0
      ruoyi-system/src/main/resources/mapper/system/project/BmProjectConstructionMapper.xml
  53. 182 0
      ruoyi-system/src/main/resources/mapper/system/project/BmProjectInfoMapper.xml
  54. 101 0
      ruoyi-system/src/main/resources/mapper/system/project/BmProjectInvestorMapper.xml
  55. 166 0
      ruoyi-system/src/main/resources/mapper/system/project/BmProjectMapper.xml
  56. 322 0
      ruoyi-system/src/main/resources/mapper/system/project/BmProjectOrderinfoMapper.xml
  57. 97 0
      ruoyi-system/src/main/resources/mapper/system/project/BmProjectPersionMapper.xml
  58. 102 0
      ruoyi-system/src/main/resources/mapper/system/project/BmProjectReferralMapper.xml
  59. 824 0
      ruoyi-ui/src/views/management/nstruction/index.vue
  60. 606 0
      ruoyi-ui/src/views/management/roduction/index.vue
  61. 0 489
      ruoyi-ui/src/views/management/row/index.vue
  62. 63 0
      ruoyi-ui/src/views/management/row/tab.vue
  63. 67 0
      ruoyi-ui/src/views/tab/index.vue
  64. 860 0
      ruoyi-ui/src/views/under/index.vue

+ 104 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BmCompanyShareholderController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.web.controller.project;
+
+import java.util.List;
+
+import com.ruoyi.system.domain.project.BmCompanyShareholder;
+import com.ruoyi.system.service.project.IBmCompanyShareholderService;
+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.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 注册企业股东构成Controller
+ * 
+ * @author ruoyi
+ * @date 2021-03-05
+ */
+@RestController
+@RequestMapping("/shareholder/shareholder")
+public class BmCompanyShareholderController extends BaseController
+{
+    @Autowired
+    private IBmCompanyShareholderService bmCompanyShareholderService;
+
+    /**
+     * 查询注册企业股东构成列表
+     */
+    @PreAuthorize("@ss.hasPermi('shareholder:shareholder:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BmCompanyShareholder bmCompanyShareholder)
+    {
+        startPage();
+        List<BmCompanyShareholder> list = bmCompanyShareholderService.selectBmCompanyShareholderList(bmCompanyShareholder);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出注册企业股东构成列表
+     */
+    @PreAuthorize("@ss.hasPermi('shareholder:shareholder:export')")
+    @Log(title = "注册企业股东构成", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(BmCompanyShareholder bmCompanyShareholder)
+    {
+        List<BmCompanyShareholder> list = bmCompanyShareholderService.selectBmCompanyShareholderList(bmCompanyShareholder);
+        ExcelUtil<BmCompanyShareholder> util = new ExcelUtil<BmCompanyShareholder>(BmCompanyShareholder.class);
+        return util.exportExcel(list, "shareholder");
+    }
+
+    /**
+     * 获取注册企业股东构成详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('shareholder:shareholder:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(bmCompanyShareholderService.selectBmCompanyShareholderById(id));
+    }
+
+    /**
+     * 新增注册企业股东构成
+     */
+    @PreAuthorize("@ss.hasPermi('shareholder:shareholder:add')")
+    @Log(title = "注册企业股东构成", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmCompanyShareholder bmCompanyShareholder)
+    {
+        return toAjax(bmCompanyShareholderService.insertBmCompanyShareholder(bmCompanyShareholder));
+    }
+
+    /**
+     * 修改注册企业股东构成
+     */
+    @PreAuthorize("@ss.hasPermi('shareholder:shareholder:edit')")
+    @Log(title = "注册企业股东构成", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmCompanyShareholder bmCompanyShareholder)
+    {
+        return toAjax(bmCompanyShareholderService.updateBmCompanyShareholder(bmCompanyShareholder));
+    }
+
+    /**
+     * 删除注册企业股东构成
+     */
+    @PreAuthorize("@ss.hasPermi('shareholder:shareholder:remove')")
+    @Log(title = "注册企业股东构成", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(bmCompanyShareholderService.deleteBmCompanyShareholderByIds(ids));
+    }
+}

+ 104 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BmProjectConstructionController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.web.controller.project;
+
+import java.util.List;
+
+import com.ruoyi.system.domain.project.BmProjectConstruction;
+import com.ruoyi.system.service.project.IBmProjectConstructionService;
+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.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 项目施工Controller
+ * 
+ * @author ruoyi
+ * @date 2021-03-08
+ */
+@RestController
+@RequestMapping("/projectConstruction/construction")
+public class BmProjectConstructionController extends BaseController
+{
+    @Autowired
+    private IBmProjectConstructionService bmProjectConstructionService;
+
+    /**
+     * 查询项目施工列表
+     */
+    //@PreAuthorize("@ss.hasPermi('projectConstruction:construction:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BmProjectConstruction bmProjectConstruction)
+    {
+        startPage();
+        List<BmProjectConstruction> list = bmProjectConstructionService.selectBmProjectConstructionList(bmProjectConstruction);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出项目施工列表
+     */
+    //@PreAuthorize("@ss.hasPermi('projectConstruction:construction:export')")
+    @Log(title = "项目施工", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(BmProjectConstruction bmProjectConstruction)
+    {
+        List<BmProjectConstruction> list = bmProjectConstructionService.selectBmProjectConstructionList(bmProjectConstruction);
+        ExcelUtil<BmProjectConstruction> util = new ExcelUtil<BmProjectConstruction>(BmProjectConstruction.class);
+        return util.exportExcel(list, "construction");
+    }
+
+    /**
+     * 获取项目施工详细信息
+     */
+    //@PreAuthorize("@ss.hasPermi('projectConstruction:construction:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(bmProjectConstructionService.selectBmProjectConstructionById(id));
+    }
+
+    /**
+     * 新增项目施工
+     */
+    //@PreAuthorize("@ss.hasPermi('projectConstruction:construction:add')")
+    @Log(title = "项目施工", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmProjectConstruction bmProjectConstruction)
+    {
+        return bmProjectConstructionService.insertBmProjectConstruction(bmProjectConstruction);
+    }
+
+    /**
+     * 修改项目施工
+     */
+    //@PreAuthorize("@ss.hasPermi('projectConstruction:construction:edit')")
+    @Log(title = "项目施工", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmProjectConstruction bmProjectConstruction)
+    {
+        return toAjax(bmProjectConstructionService.updateBmProjectConstruction(bmProjectConstruction));
+    }
+
+    /**
+     * 删除项目施工
+     */
+    //@PreAuthorize("@ss.hasPermi('projectConstruction:construction:remove')")
+    @Log(title = "项目施工", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(bmProjectConstructionService.deleteBmProjectConstructionByIds(ids));
+    }
+}

+ 108 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BmProjectController.java

@@ -0,0 +1,108 @@
+package com.ruoyi.web.controller.project;
+
+import java.util.List;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.system.domain.project.BmProject;
+import com.ruoyi.system.domain.project.BmProjectStatus;
+import com.ruoyi.system.service.project.IBmProjectService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+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.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 项目(添加线索)Controller
+ *
+ * @author bm
+ * @date 2021-03-03
+ */
+@RestController
+@RequestMapping("/bmProject/project")
+public class BmProjectController extends BaseController {
+    @Autowired
+    private IBmProjectService bmProjectService;
+
+    /**
+     * 查询项目(添加线索)列表
+     */
+    @PreAuthorize("@ss.hasPermi('bmProject:project:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BmProject bmProject) {
+        startPage();
+        //实例化BmProject对象时会自动赋值,需要重置为null
+        bmProject.setIsBackbussiness(null);
+        List<BmProject> list = bmProjectService.selectBmProjectList(bmProject);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出项目(添加线索)列表
+     */
+    @PreAuthorize("@ss.hasPermi('bmProject:project:export')")
+    @Log(title = "项目(添加线索)", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(BmProject bmProject) {
+        List<BmProject> list = bmProjectService.selectBmProjectList(bmProject);
+        ExcelUtil<BmProject> util = new ExcelUtil<BmProject>(BmProject.class);
+        return util.exportExcel(list, "project");
+    }
+
+    /**
+     * 获取项目(添加线索)详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('bmProject:project:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success(bmProjectService.selectBmProjectById(id));
+    }
+
+    /**
+     * 新增项目(添加线索)
+     */
+    @PreAuthorize("@ss.hasPermi('bmProject:project:add')")
+    @Log(title = "项目(添加线索)", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmProject bmProject) {
+        return bmProjectService.insertBmProject(bmProject);
+    }
+
+    /**
+     * 修改项目(修改线索)
+     */
+    @PreAuthorize("@ss.hasPermi('bmProject:project:edit')")
+    @Log(title = "项目(添加线索)", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmProject bmProject) {
+        return toAjax(bmProjectService.updateBmProject(bmProject));
+    }
+
+    /**
+     * 删除项目(添加线索)
+     */
+    @PreAuthorize("@ss.hasPermi('bmProject:project:remove')")
+    @Log(title = "项目(添加线索)", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(bmProjectService.deleteBmProjectByIds(ids));
+    }
+
+    @PreAuthorize("@ss.hasPermi('bmProject:project:examine')")
+    @PostMapping("/examine")
+    public AjaxResult examine(@RequestBody BmProjectStatus bmProjectStatus) {
+        return bmProjectService.examine(bmProjectStatus);
+    }
+
+}

+ 104 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BmProjectInfoController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.web.controller.project;
+
+import java.util.List;
+
+import com.ruoyi.system.domain.project.BmProjectInfo;
+import com.ruoyi.system.service.project.IBmProjectInfoService;
+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.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 项目-线索信息Controller
+ * 
+ * @author ruoyi
+ * @date 2021-03-04
+ */
+@RestController
+@RequestMapping("/projectInfo/info")
+public class BmProjectInfoController extends BaseController
+{
+    @Autowired
+    private IBmProjectInfoService bmProjectInfoService;
+
+    /**
+     * 查询项目-线索信息列表
+     */
+    @PreAuthorize("@ss.hasPermi('projectInfo:info:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BmProjectInfo bmProjectInfo)
+    {
+        startPage();
+        List<BmProjectInfo> list = bmProjectInfoService.selectBmProjectInfoList(bmProjectInfo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出项目-线索信息列表
+     */
+    @PreAuthorize("@ss.hasPermi('projectInfo:info:export')")
+    @Log(title = "项目-线索信息", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(BmProjectInfo bmProjectInfo)
+    {
+        List<BmProjectInfo> list = bmProjectInfoService.selectBmProjectInfoList(bmProjectInfo);
+        ExcelUtil<BmProjectInfo> util = new ExcelUtil<BmProjectInfo>(BmProjectInfo.class);
+        return util.exportExcel(list, "info");
+    }
+
+    /**
+     * 获取项目-线索信息详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('projectInfo:info:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(bmProjectInfoService.selectBmProjectInfoById(id));
+    }
+
+    /**
+     * 新增项目-线索信息
+     */
+    @PreAuthorize("@ss.hasPermi('projectInfo:info:add')")
+    @Log(title = "项目-线索信息", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmProjectInfo bmProjectInfo)
+    {
+        return toAjax(bmProjectInfoService.insertBmProjectInfo(bmProjectInfo));
+    }
+
+    /**
+     * 修改项目-线索信息
+     */
+    @PreAuthorize("@ss.hasPermi('projectInfo:info:edit')")
+    @Log(title = "项目-线索信息", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmProjectInfo bmProjectInfo)
+    {
+        return toAjax(bmProjectInfoService.updateBmProjectInfo(bmProjectInfo));
+    }
+
+    /**
+     * 删除项目-线索信息
+     */
+    @PreAuthorize("@ss.hasPermi('projectInfo:info:remove')")
+    @Log(title = "项目-线索信息", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(bmProjectInfoService.deleteBmProjectInfoByIds(ids));
+    }
+}

+ 104 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BmProjectInvestorController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.web.controller.project;
+
+import java.util.List;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.system.domain.project.BmProjectInvestor;
+import com.ruoyi.system.service.project.IBmProjectInvestorService;
+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.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 项目投资方-企业Controller
+ * 
+ * @author ruoyi
+ * @date 2021-03-04
+ */
+@RestController
+@RequestMapping("/projectInvestor/investor")
+public class BmProjectInvestorController extends BaseController
+{
+    @Autowired
+    private IBmProjectInvestorService bmProjectInvestorService;
+
+    /**
+     * 查询项目投资方-企业列表
+     */
+    @PreAuthorize("@ss.hasPermi('projectInvestor:investor:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BmProjectInvestor bmProjectInvestor)
+    {
+        startPage();
+        List<BmProjectInvestor> list = bmProjectInvestorService.selectBmProjectInvestorList(bmProjectInvestor);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出项目投资方-企业列表
+     */
+    @PreAuthorize("@ss.hasPermi('projectInvestor:investor:export')")
+    @Log(title = "项目投资方-企业", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(BmProjectInvestor bmProjectInvestor)
+    {
+        List<BmProjectInvestor> list = bmProjectInvestorService.selectBmProjectInvestorList(bmProjectInvestor);
+        ExcelUtil<BmProjectInvestor> util = new ExcelUtil<BmProjectInvestor>(BmProjectInvestor.class);
+        return util.exportExcel(list, "investor");
+    }
+
+    /**
+     * 获取项目投资方-企业详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('projectInvestor:investor:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(bmProjectInvestorService.selectBmProjectInvestorById(id));
+    }
+
+    /**
+     * 新增项目投资方-企业
+     */
+    @PreAuthorize("@ss.hasPermi('projectInvestor:investor:add')")
+    @Log(title = "项目投资方-企业", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmProjectInvestor bmProjectInvestor)
+    {
+        return toAjax(bmProjectInvestorService.insertBmProjectInvestor(bmProjectInvestor));
+    }
+
+    /**
+     * 修改项目投资方-企业
+     */
+    @PreAuthorize("@ss.hasPermi('projectInvestor:investor:edit')")
+    @Log(title = "项目投资方-企业", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmProjectInvestor bmProjectInvestor)
+    {
+        return toAjax(bmProjectInvestorService.updateBmProjectInvestor(bmProjectInvestor));
+    }
+
+    /**
+     * 删除项目投资方-企业
+     */
+    @PreAuthorize("@ss.hasPermi('projectInvestor:investor:remove')")
+    @Log(title = "项目投资方-企业", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(bmProjectInvestorService.deleteBmProjectInvestorByIds(ids));
+    }
+}

+ 104 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BmProjectOrderinfoController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.web.controller.project;
+
+import java.util.List;
+
+import com.ruoyi.system.domain.project.BmProjectOrderinfo;
+import com.ruoyi.system.service.project.IBmProjectOrderinfoService;
+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.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 项目签约Controller
+ * 
+ * @author ruoyi
+ * @date 2021-03-05
+ */
+@RestController
+@RequestMapping("/projectOrderInfo/orderinfo")
+public class BmProjectOrderinfoController extends BaseController
+{
+    @Autowired
+    private IBmProjectOrderinfoService bmProjectOrderinfoService;
+
+    /**
+     * 查询项目签约列表
+     */
+    @PreAuthorize("@ss.hasPermi('projectOrderInfo:orderinfo:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BmProjectOrderinfo bmProjectOrderinfo)
+    {
+        startPage();
+        List<BmProjectOrderinfo> list = bmProjectOrderinfoService.selectBmProjectOrderinfoList(bmProjectOrderinfo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出项目签约列表
+     */
+    @PreAuthorize("@ss.hasPermi('projectOrderInfo:orderinfo:export')")
+    @Log(title = "项目签约", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(BmProjectOrderinfo bmProjectOrderinfo)
+    {
+        List<BmProjectOrderinfo> list = bmProjectOrderinfoService.selectBmProjectOrderinfoList(bmProjectOrderinfo);
+        ExcelUtil<BmProjectOrderinfo> util = new ExcelUtil<BmProjectOrderinfo>(BmProjectOrderinfo.class);
+        return util.exportExcel(list, "orderinfo");
+    }
+
+    /**
+     * 获取项目签约详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('projectOrderInfo:orderinfo:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(bmProjectOrderinfoService.selectBmProjectOrderinfoById(id));
+    }
+
+    /**
+     * 新增项目签约
+     */
+    @PreAuthorize("@ss.hasPermi('projectOrderInfo:orderinfo:add')")
+    @Log(title = "项目签约", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmProjectOrderinfo bmProjectOrderinfo)
+    {
+        return toAjax(bmProjectOrderinfoService.insertBmProjectOrderinfo(bmProjectOrderinfo));
+    }
+
+    /**
+     * 修改项目签约
+     */
+    @PreAuthorize("@ss.hasPermi('projectOrderInfo:orderinfo:edit')")
+    @Log(title = "项目签约", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmProjectOrderinfo bmProjectOrderinfo)
+    {
+        return toAjax(bmProjectOrderinfoService.updateBmProjectOrderinfo(bmProjectOrderinfo));
+    }
+
+    /**
+     * 删除项目签约
+     */
+    @PreAuthorize("@ss.hasPermi('projectOrderInfo:orderinfo:remove')")
+    @Log(title = "项目签约", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(bmProjectOrderinfoService.deleteBmProjectOrderinfoByIds(ids));
+    }
+}

+ 104 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BmProjectPersionController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.web.controller.project;
+
+import java.util.List;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.system.domain.project.BmProjectPersion;
+import com.ruoyi.system.service.project.IBmProjectPersionService;
+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.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 项目投资方-自然人Controller
+ * 
+ * @author ruoyi
+ * @date 2021-03-04
+ */
+@RestController
+@RequestMapping("/projectPersion/persion")
+public class BmProjectPersionController extends BaseController
+{
+    @Autowired
+    private IBmProjectPersionService bmProjectPersionService;
+
+    /**
+     * 查询项目投资方-自然人列表
+     */
+    @PreAuthorize("@ss.hasPermi('projectPersion:persion:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BmProjectPersion bmProjectPersion)
+    {
+        startPage();
+        List<BmProjectPersion> list = bmProjectPersionService.selectBmProjectPersionList(bmProjectPersion);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出项目投资方-自然人列表
+     */
+    @PreAuthorize("@ss.hasPermi('projectPersion:persion:export')")
+    @Log(title = "项目投资方-自然人", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(BmProjectPersion bmProjectPersion)
+    {
+        List<BmProjectPersion> list = bmProjectPersionService.selectBmProjectPersionList(bmProjectPersion);
+        ExcelUtil<BmProjectPersion> util = new ExcelUtil<BmProjectPersion>(BmProjectPersion.class);
+        return util.exportExcel(list, "persion");
+    }
+
+    /**
+     * 获取项目投资方-自然人详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('projectPersion:persion:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(bmProjectPersionService.selectBmProjectPersionById(id));
+    }
+
+    /**
+     * 新增项目投资方-自然人
+     */
+    @PreAuthorize("@ss.hasPermi('projectPersion:persion:add')")
+    @Log(title = "项目投资方-自然人", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmProjectPersion bmProjectPersion)
+    {
+        return toAjax(bmProjectPersionService.insertBmProjectPersion(bmProjectPersion));
+    }
+
+    /**
+     * 修改项目投资方-自然人
+     */
+    @PreAuthorize("@ss.hasPermi('projectPersion:persion:edit')")
+    @Log(title = "项目投资方-自然人", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmProjectPersion bmProjectPersion)
+    {
+        return toAjax(bmProjectPersionService.updateBmProjectPersion(bmProjectPersion));
+    }
+
+    /**
+     * 删除项目投资方-自然人
+     */
+    @PreAuthorize("@ss.hasPermi('projectPersion:persion:remove')")
+    @Log(title = "项目投资方-自然人", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(bmProjectPersionService.deleteBmProjectPersionByIds(ids));
+    }
+}

+ 104 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BmProjectReferralController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.web.controller.project;
+
+import java.util.List;
+
+import com.ruoyi.system.domain.project.BmProjectReferral;
+import com.ruoyi.system.service.project.IBmProjectReferralService;
+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.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 项目引荐Controller
+ * 
+ * @author ruoyi
+ * @date 2021-03-04
+ */
+@RestController
+@RequestMapping("/projectReferral/referral")
+public class BmProjectReferralController extends BaseController
+{
+    @Autowired
+    private IBmProjectReferralService bmProjectReferralService;
+
+    /**
+     * 查询项目引荐列表
+     */
+    //@PreAuthorize("@ss.hasPermi('projectReferral:referral:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BmProjectReferral bmProjectReferral)
+    {
+        startPage();
+        List<BmProjectReferral> list = bmProjectReferralService.selectBmProjectReferralList(bmProjectReferral);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出项目引荐列表
+     */
+    //@PreAuthorize("@ss.hasPermi('projectReferral:referral:export')")
+    @Log(title = "项目引荐", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(BmProjectReferral bmProjectReferral)
+    {
+        List<BmProjectReferral> list = bmProjectReferralService.selectBmProjectReferralList(bmProjectReferral);
+        ExcelUtil<BmProjectReferral> util = new ExcelUtil<BmProjectReferral>(BmProjectReferral.class);
+        return util.exportExcel(list, "referral");
+    }
+
+    /**
+     * 获取项目引荐详细信息
+     */
+    //@PreAuthorize("@ss.hasPermi('projectReferral:referral:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(bmProjectReferralService.selectBmProjectReferralById(id));
+    }
+
+    /**
+     * 新增项目引荐
+     */
+    //@PreAuthorize("@ss.hasPermi('projectReferral:referral:add')")
+    @Log(title = "项目引荐", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BmProjectReferral bmProjectReferral)
+    {
+        return toAjax(bmProjectReferralService.insertBmProjectReferral(bmProjectReferral));
+    }
+
+    /**
+     * 修改项目引荐
+     */
+    //@PreAuthorize("@ss.hasPermi('projectReferral:referral:edit')")
+    @Log(title = "项目引荐", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BmProjectReferral bmProjectReferral)
+    {
+        return toAjax(bmProjectReferralService.updateBmProjectReferral(bmProjectReferral));
+    }
+
+    /**
+     * 删除项目引荐
+     */
+    //@PreAuthorize("@ss.hasPermi('projectReferral:referral:remove')")
+    @Log(title = "项目引荐", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(bmProjectReferralService.deleteBmProjectReferralByIds(ids));
+    }
+}

+ 0 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java

@@ -63,7 +63,6 @@ public class SysNoticeController extends BaseController
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SysNotice notice)
     {
-        notice.setCreateBy(SecurityUtils.getUsername());
         return toAjax(noticeService.insertNotice(notice));
     }
 
@@ -75,7 +74,6 @@ public class SysNoticeController extends BaseController
     @PutMapping
     public AjaxResult edit(@Validated @RequestBody SysNotice notice)
     {
-        notice.setUpdateBy(SecurityUtils.getUsername());
         return toAjax(noticeService.updateNotice(notice));
     }
 

+ 10 - 0
ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java

@@ -126,4 +126,14 @@ public class Constants
      * 资源映射路径 前缀
      */
     public static final String RESOURCE_PREFIX = "/profile";
+
+    /**
+     * 审核通过/提交审核
+     */
+    public static final Long EXAMINE_PASS = 1L;
+
+    /**
+     * 审核驳回
+     */
+    public static final Long EXAMINE_BACK = 2L;
 }

+ 59 - 0
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java

@@ -5,6 +5,13 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
+import org.apache.poi.ss.usermodel.DateUtil;
+
+import javax.validation.constraints.NotNull;
 
 /**
  * Entity基类
@@ -31,6 +38,15 @@ public class BaseEntity implements Serializable
     /** 更新时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date updateTime;
+    /**
+     * 是否删除(0未删除、1已删除)
+     */
+    private Long isDel;
+
+    /**
+     * 项目id
+     */
+    private Integer sysDeptId;
 
     /** 备注 */
     private String remark;
@@ -38,6 +54,14 @@ public class BaseEntity implements Serializable
     /** 请求参数 */
     private Map<String, Object> params;
 
+    /** 搜索开始时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date beginTime;
+
+    /** 搜索结束时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date endTime;
+
     public String getSearchValue()
     {
         return searchValue;
@@ -111,4 +135,39 @@ public class BaseEntity implements Serializable
     {
         this.params = params;
     }
+
+    public Long getIsDel() {
+        if (isDel == null){
+            isDel = 0L;
+        }
+        return isDel;
+    }
+
+    public void setIsDel(Long isDel) {
+        this.isDel = isDel;
+    }
+
+    public Integer getSysDeptId() {
+        return sysDeptId;
+    }
+
+    public void setSysDeptId(Integer sysDeptId) {
+        this.sysDeptId = sysDeptId;
+    }
+
+    public Date getBeginTime() {
+        return beginTime;
+    }
+
+    public void setBeginTime(Date beginTime) {
+        this.beginTime = beginTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
 }

+ 1 - 0
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java

@@ -1,5 +1,6 @@
 package com.ruoyi.common.core.domain.entity;
 
+import javax.validation.constraints.Digits;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.Size;
 import org.apache.commons.lang3.builder.ToStringBuilder;

+ 1 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java

@@ -3,6 +3,7 @@ package com.ruoyi.common.utils;
 import java.lang.management.ManagementFactory;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
 import java.util.Date;
 import org.apache.commons.lang3.time.DateFormatUtils;
 

+ 1 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java

@@ -1,5 +1,6 @@
 package com.ruoyi.system.domain;
 
+import javax.validation.constraints.Digits;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.Size;
 import org.apache.commons.lang3.builder.ToStringBuilder;

+ 50 - 1
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java

@@ -21,7 +21,7 @@ public class SysNotice extends BaseEntity
     /** 公告标题 */
     private String noticeTitle;
 
-    /** 公告类型(1通知 2公告) */
+    /** 公告类型(1通知 2公告 3外出招商信息 4一般招商信息) */
     private String noticeType;
 
     /** 公告内容 */
@@ -30,6 +30,55 @@ public class SysNotice extends BaseEntity
     /** 公告状态(0正常 1关闭) */
     private String status;
 
+    /**
+     * 发布单位(部门id)
+     */
+    private Long deptId;
+    /**
+     * 发布单位(部门名称)
+     */
+    private String deptName;
+    /**
+     * 缩略图
+     */
+    private String imgUrl;
+    /**
+     * 是否轮播(N:Y)
+     */
+    private String isBanner;
+
+    public Long getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public String getImgUrl() {
+        return imgUrl;
+    }
+
+    public void setImgUrl(String imgUrl) {
+        this.imgUrl = imgUrl;
+    }
+
+    public String getIsBanner() {
+        return isBanner;
+    }
+
+    public void setIsBanner(String isBanner) {
+        this.isBanner = isBanner;
+    }
+
     public Long getNoticeId()
     {
         return noticeId;

+ 128 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/project/BmCompanyShareholder.java

@@ -0,0 +1,128 @@
+package com.ruoyi.system.domain.project;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 注册企业股东构成对象 bm_company_shareholder
+ * 
+ * @author ruoyi
+ * @date 2021-03-05
+ */
+public class BmCompanyShareholder extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id* */
+    private Long id;
+
+    /** 项目id* */
+    @Excel(name = "项目id*")
+    private Long bmProjectId;
+
+
+    /** 姓名* */
+    @Excel(name = "姓名*")
+    private String name;
+
+    /** 地址* */
+    @Excel(name = "地址*")
+    private String address;
+
+    /** 身份证号* */
+    @Excel(name = "身份证号*")
+    private String idcard;
+
+    /** 身份证正面url* */
+    @Excel(name = "身份证正面url*")
+    private String idcardFront;
+
+    /** 身份证反面url* */
+    @Excel(name = "身份证反面url*")
+    private String idcardBack;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setBmProjectId(Long bmProjectId) 
+    {
+        this.bmProjectId = bmProjectId;
+    }
+
+    public Long getBmProjectId() 
+    {
+        return bmProjectId;
+    }
+
+    public void setName(String name) 
+    {
+        this.name = name;
+    }
+
+    public String getName() 
+    {
+        return name;
+    }
+    public void setAddress(String address) 
+    {
+        this.address = address;
+    }
+
+    public String getAddress() 
+    {
+        return address;
+    }
+    public void setIdcard(String idcard) 
+    {
+        this.idcard = idcard;
+    }
+
+    public String getIdcard() 
+    {
+        return idcard;
+    }
+    public void setIdcardFront(String idcardFront) 
+    {
+        this.idcardFront = idcardFront;
+    }
+
+    public String getIdcardFront() 
+    {
+        return idcardFront;
+    }
+    public void setIdcardBack(String idcardBack) 
+    {
+        this.idcardBack = idcardBack;
+    }
+
+    public String getIdcardBack() 
+    {
+        return idcardBack;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("bmProjectId", getBmProjectId())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("isDel", getIsDel())
+            .append("name", getName())
+            .append("address", getAddress())
+            .append("idcard", getIdcard())
+            .append("idcardFront", getIdcardFront())
+            .append("idcardBack", getIdcardBack())
+            .toString();
+    }
+}

+ 200 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/project/BmProject.java

@@ -0,0 +1,200 @@
+package com.ruoyi.system.domain.project;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 项目(添加线索)对象 bm_project
+ * 
+ * @author bm
+ * @date 2021-03-03
+ */
+public class BmProject extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 项目id* */
+    private Long id;
+
+    /** 项目名称* */
+    @Excel(name = "项目名称*")
+    private String name;
+
+    /** 产业类别(首位产业、战略新兴) */
+    @Excel(name = "产业类别(首位产业、战略新兴)")
+    private String industryCategory;
+
+    /** 所属行业(数据字典)* */
+    @Excel(name = "所属行业(数据字典)*")
+    private String industry;
+
+    /** 是否返乡创业* */
+    @Excel(name = "是否返乡创业*")
+    private String isBackbussiness;
+
+    /** 项目状态(数据字典)* */
+    @Excel(name = "项目状态(数据字典)*")
+    private Long projectStatus;
+
+
+    /** 项目状态(数据字典)中的名称* */
+    private String dictLabel;
+
+    /** 填报单位* */
+    @Excel(name = "填报单位*")
+    private Long deptId;
+
+    /** 总投资金额 */
+    @Excel(name = "总投资金额")
+    private BigDecimal totAmt;
+
+
+    /** 合同约定开工时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "合同约定开工时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date orderBeginTime;
+
+    /** 合同约定竣工时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "合同约定竣工时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date orderEndTime;
+
+
+    /**
+     * 填报单位
+     */
+    @Excel(name = "填报单位")
+    private String deptName;
+
+    public String getDictLabel() {
+        return dictLabel;
+    }
+
+    public void setDictLabel(String dictLabel) {
+        this.dictLabel = dictLabel;
+    }
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setName(String name) 
+    {
+        this.name = name;
+    }
+
+    public String getName() 
+    {
+        return name;
+    }
+    public void setIndustryCategory(String industryCategory) 
+    {
+        this.industryCategory = industryCategory;
+    }
+
+    public String getIndustryCategory() 
+    {
+        return industryCategory;
+    }
+    public void setIndustry(String industry) 
+    {
+        this.industry = industry;
+    }
+
+    public String getIndustry() 
+    {
+        return industry;
+    }
+    public void setIsBackbussiness(String isBackbussiness) 
+    {
+        this.isBackbussiness = isBackbussiness;
+    }
+
+    public String getIsBackbussiness() 
+    {
+        return isBackbussiness;
+    }
+    public void setProjectStatus(Long projectStatus) 
+    {
+        this.projectStatus = projectStatus;
+    }
+
+    public Long getProjectStatus() 
+    {
+        return projectStatus;
+    }
+    public void setDeptId(Long deptId) 
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() 
+    {
+        return deptId;
+    }
+    public void setTotAmt(BigDecimal totAmt) 
+    {
+        this.totAmt = totAmt;
+    }
+
+    public BigDecimal getTotAmt() 
+    {
+        return totAmt;
+    }
+
+    public void setOrderBeginTime(Date orderBeginTime) 
+    {
+        this.orderBeginTime = orderBeginTime;
+    }
+
+    public Date getOrderBeginTime() 
+    {
+        return orderBeginTime;
+    }
+    public void setOrderEndTime(Date orderEndTime) 
+    {
+        this.orderEndTime = orderEndTime;
+    }
+
+    public Date getOrderEndTime() 
+    {
+        return orderEndTime;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+
+    @Override
+    public String toString() {
+        return "BmProject{" +
+                "id=" + id +
+                ", name='" + name + '\'' +
+                ", industryCategory='" + industryCategory + '\'' +
+                ", industry='" + industry + '\'' +
+                ", isBackbussiness='" + isBackbussiness + '\'' +
+                ", projectStatus=" + projectStatus +
+                ", dictLabel='" + dictLabel + '\'' +
+                ", deptId=" + deptId +
+                ", totAmt=" + totAmt +
+                ", orderBeginTime=" + orderBeginTime +
+                ", orderEndTime=" + orderEndTime +
+                ", deptName='" + deptName + '\'' +
+                '}';
+    }
+}

+ 171 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/project/BmProjectConstruction.java

@@ -0,0 +1,171 @@
+package com.ruoyi.system.domain.project;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 项目施工对象 bm_project_construction
+ * 
+ * @author ruoyi
+ * @date 2021-03-08
+ */
+public class BmProjectConstruction extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id* */
+    private Long id;
+
+    /** 项目id* */
+    @Excel(name = "项目id*")
+    private Long bmProjectId;
+
+    /** 施工许可证 */
+    @Excel(name = "施工许可证")
+    private String constructionCode;
+
+    /** 是否开工建设* */
+    @Excel(name = "是否开工建设*")
+    private String isConstruction;
+
+    /** 开工日期* */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "开工日期*", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date constructionStartdate;
+
+    /** 预计完工日期* */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "预计完工日期*", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date constructionEnddate;
+
+    /** 施工合同 */
+    @Excel(name = "施工合同")
+    private String constructionDoc;
+
+    /** 开工照片 */
+    @Excel(name = "开工照片")
+    private String constructionPhoto;
+
+    /**
+     * 合同约定开工时间
+     */
+    private Date orderBeginTime;
+
+    /**
+     * 合同约定竣工时间
+     */
+    private Date orderEndTime;
+
+    public Date getOrderBeginTime() {
+        return orderBeginTime;
+    }
+
+    public void setOrderBeginTime(Date orderBeginTime) {
+        this.orderBeginTime = orderBeginTime;
+    }
+
+    public Date getOrderEndTime() {
+        return orderEndTime;
+    }
+
+    public void setOrderEndTime(Date orderEndTime) {
+        this.orderEndTime = orderEndTime;
+    }
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setBmProjectId(Long bmProjectId) 
+    {
+        this.bmProjectId = bmProjectId;
+    }
+
+    public Long getBmProjectId() 
+    {
+        return bmProjectId;
+    }
+
+    public void setConstructionCode(String constructionCode) 
+    {
+        this.constructionCode = constructionCode;
+    }
+
+    public String getConstructionCode() 
+    {
+        return constructionCode;
+    }
+    public void setIsConstruction(String isConstruction) 
+    {
+        this.isConstruction = isConstruction;
+    }
+
+    public String getIsConstruction() 
+    {
+        return isConstruction;
+    }
+    public void setConstructionStartdate(Date constructionStartdate) 
+    {
+        this.constructionStartdate = constructionStartdate;
+    }
+
+    public Date getConstructionStartdate() 
+    {
+        return constructionStartdate;
+    }
+    public void setConstructionEnddate(Date constructionEnddate) 
+    {
+        this.constructionEnddate = constructionEnddate;
+    }
+
+    public Date getConstructionEnddate() 
+    {
+        return constructionEnddate;
+    }
+    public void setConstructionDoc(String constructionDoc) 
+    {
+        this.constructionDoc = constructionDoc;
+    }
+
+    public String getConstructionDoc() 
+    {
+        return constructionDoc;
+    }
+    public void setConstructionPhoto(String constructionPhoto) 
+    {
+        this.constructionPhoto = constructionPhoto;
+    }
+
+    public String getConstructionPhoto() 
+    {
+        return constructionPhoto;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("bmProjectId", getBmProjectId())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("isDel", getIsDel())
+            .append("constructionCode", getConstructionCode())
+            .append("isConstruction", getIsConstruction())
+            .append("constructionStartdate", getConstructionStartdate())
+            .append("constructionEnddate", getConstructionEnddate())
+            .append("constructionDoc", getConstructionDoc())
+            .append("constructionPhoto", getConstructionPhoto())
+            .toString();
+    }
+}

+ 368 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/project/BmProjectInfo.java

@@ -0,0 +1,368 @@
+package com.ruoyi.system.domain.project;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 项目-线索信息对象 bm_project_info
+ * 
+ * @author ruoyi
+ * @date 2021-03-04
+ */
+public class BmProjectInfo extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id* */
+    private Long id;
+
+    /** 项目id* */
+    @Excel(name = "项目id*")
+    private Long bmProjectId;
+
+    /** 项目名称* */
+    @Excel(name = "项目名称*")
+    private String name;
+
+    /** 投资方联系人* */
+    @Excel(name = "投资方联系人*")
+    private String contactor;
+
+    /** 投资方联系方式* */
+    @Excel(name = "投资方联系方式*")
+    private String phone;
+
+    /** 预计投资额* */
+    @Excel(name = "预计投资额*")
+    private BigDecimal needAmt;
+
+    /** 固定资产投资* */
+    @Excel(name = "固定资产投资*")
+    private BigDecimal fixedAssets;
+
+    /** 产品名称* */
+    @Excel(name = "产品名称*")
+    private String productName;
+
+    /** 设计产能* */
+    @Excel(name = "设计产能*")
+    private String productQty;
+
+    /** 预计产值* */
+    @Excel(name = "预计产值*")
+    private BigDecimal productPrice;
+
+    /** 预计税收* */
+    @Excel(name = "预计税收*")
+    private BigDecimal productTax;
+
+    /** 预计用工* */
+    @Excel(name = "预计用工*")
+    private String productEmp;
+
+    /** 项目计划用地 */
+    @Excel(name = "项目计划用地")
+    private BigDecimal plannedLand;
+
+    /** 独立供地 */
+    @Excel(name = "独立供地")
+    private BigDecimal independentLand;
+
+    /** 流转土地 */
+    @Excel(name = "流转土地")
+    private BigDecimal circulationLan;
+
+    /** 计划租赁用房 */
+    @Excel(name = "计划租赁用房")
+    private BigDecimal needRoom;
+
+    /** 计划租赁厂房 */
+    @Excel(name = "计划租赁厂房")
+    private BigDecimal needFactoryRoom;
+
+    /** 计划租赁办公生活用房 */
+    @Excel(name = "计划租赁办公生活用房")
+    private BigDecimal needBusRoom;
+
+    /** 其他需求 */
+    @Excel(name = "其他需求")
+    private String other;
+
+    /** 拟落户地点* */
+    @Excel(name = "拟落户地点*")
+    private String address;
+
+    /** 是否签订框架协议* Y/N */
+    @Excel(name = "是否签订框架协议* Y/N")
+    private String isFrameorder;
+
+    /** 框架协议附件url(框架协议为是,需要上传) */
+    @Excel(name = "框架协议附件url(框架协议为是,需要上传)")
+    private String attachment;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    private String description;
+
+    /**
+     * 项目引荐列表
+     */
+    private List<BmProjectReferral> referralList;
+
+    public List<BmProjectReferral> getReferralList() {
+        return referralList;
+    }
+
+    public void setReferralList(List<BmProjectReferral> referralList) {
+        this.referralList = referralList;
+    }
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setBmProjectId(Long bmProjectId) 
+    {
+        this.bmProjectId = bmProjectId;
+    }
+
+    public Long getBmProjectId() 
+    {
+        return bmProjectId;
+    }
+    public void setName(String name) 
+    {
+        this.name = name;
+    }
+
+    public String getName() 
+    {
+        return name;
+    }
+
+    public void setContactor(String contactor) 
+    {
+        this.contactor = contactor;
+    }
+
+    public String getContactor() 
+    {
+        return contactor;
+    }
+    public void setPhone(String phone) 
+    {
+        this.phone = phone;
+    }
+
+    public String getPhone() 
+    {
+        return phone;
+    }
+    public void setNeedAmt(BigDecimal needAmt) 
+    {
+        this.needAmt = needAmt;
+    }
+
+    public BigDecimal getNeedAmt() 
+    {
+        return needAmt;
+    }
+    public void setFixedAssets(BigDecimal fixedAssets) 
+    {
+        this.fixedAssets = fixedAssets;
+    }
+
+    public BigDecimal getFixedAssets() 
+    {
+        return fixedAssets;
+    }
+    public void setProductName(String productName) 
+    {
+        this.productName = productName;
+    }
+
+    public String getProductName() 
+    {
+        return productName;
+    }
+    public void setProductQty(String productQty) 
+    {
+        this.productQty = productQty;
+    }
+
+    public String getProductQty() 
+    {
+        return productQty;
+    }
+    public void setProductPrice(BigDecimal productPrice) 
+    {
+        this.productPrice = productPrice;
+    }
+
+    public BigDecimal getProductPrice() 
+    {
+        return productPrice;
+    }
+    public void setProductTax(BigDecimal productTax) 
+    {
+        this.productTax = productTax;
+    }
+
+    public BigDecimal getProductTax() 
+    {
+        return productTax;
+    }
+    public void setProductEmp(String productEmp) 
+    {
+        this.productEmp = productEmp;
+    }
+
+    public String getProductEmp() 
+    {
+        return productEmp;
+    }
+    public void setPlannedLand(BigDecimal plannedLand) 
+    {
+        this.plannedLand = plannedLand;
+    }
+
+    public BigDecimal getPlannedLand() 
+    {
+        return plannedLand;
+    }
+    public void setIndependentLand(BigDecimal independentLand) 
+    {
+        this.independentLand = independentLand;
+    }
+
+    public BigDecimal getIndependentLand() 
+    {
+        return independentLand;
+    }
+    public void setCirculationLan(BigDecimal circulationLan) 
+    {
+        this.circulationLan = circulationLan;
+    }
+
+    public BigDecimal getCirculationLan() 
+    {
+        return circulationLan;
+    }
+    public void setNeedRoom(BigDecimal needRoom) 
+    {
+        this.needRoom = needRoom;
+    }
+
+    public BigDecimal getNeedRoom() 
+    {
+        return needRoom;
+    }
+    public void setNeedFactoryRoom(BigDecimal needFactoryRoom) 
+    {
+        this.needFactoryRoom = needFactoryRoom;
+    }
+
+    public BigDecimal getNeedFactoryRoom() 
+    {
+        return needFactoryRoom;
+    }
+    public void setNeedBusRoom(BigDecimal needBusRoom) 
+    {
+        this.needBusRoom = needBusRoom;
+    }
+
+    public BigDecimal getNeedBusRoom() 
+    {
+        return needBusRoom;
+    }
+    public void setOther(String other) 
+    {
+        this.other = other;
+    }
+
+    public String getOther() 
+    {
+        return other;
+    }
+    public void setAddress(String address) 
+    {
+        this.address = address;
+    }
+
+    public String getAddress() 
+    {
+        return address;
+    }
+    public void setIsFrameorder(String isFrameorder) 
+    {
+        this.isFrameorder = isFrameorder;
+    }
+
+    public String getIsFrameorder() 
+    {
+        return isFrameorder;
+    }
+    public void setAttachment(String attachment) 
+    {
+        this.attachment = attachment;
+    }
+
+    public String getAttachment() 
+    {
+        return attachment;
+    }
+    public void setDescription(String description) 
+    {
+        this.description = description;
+    }
+
+    public String getDescription() 
+    {
+        return description;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("bmProjectId", getBmProjectId())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("name", getName())
+            .append("isDel", getIsDel())
+            .append("contactor", getContactor())
+            .append("phone", getPhone())
+            .append("needAmt", getNeedAmt())
+            .append("fixedAssets", getFixedAssets())
+            .append("productName", getProductName())
+            .append("productQty", getProductQty())
+            .append("productPrice", getProductPrice())
+            .append("productTax", getProductTax())
+            .append("productEmp", getProductEmp())
+            .append("plannedLand", getPlannedLand())
+            .append("independentLand", getIndependentLand())
+            .append("circulationLan", getCirculationLan())
+            .append("needRoom", getNeedRoom())
+            .append("needFactoryRoom", getNeedFactoryRoom())
+            .append("needBusRoom", getNeedBusRoom())
+            .append("other", getOther())
+            .append("address", getAddress())
+            .append("isFrameorder", getIsFrameorder())
+            .append("attachment", getAttachment())
+            .append("description", getDescription())
+            .toString();
+    }
+}

+ 127 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/project/BmProjectInvestor.java

@@ -0,0 +1,127 @@
+package com.ruoyi.system.domain.project;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 项目投资方-企业对象 bm_project_investor
+ * 
+ * @author ruoyi
+ * @date 2021-03-04
+ */
+public class BmProjectInvestor extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 项目投资方id* */
+    private Long id;
+
+    /** 项目id* */
+    private Long bmProjectId;
+
+
+    /** 企业名称* */
+    @Excel(name = "企业名称*")
+    private String companyName;
+
+    /** 企业所在地* */
+    @Excel(name = "企业所在地*")
+    private String companyAddress;
+
+    /** 企业法人* */
+    @Excel(name = "企业法人*")
+    private String companyLegal;
+
+    /** 统一社会信用代码* */
+    @Excel(name = "统一社会信用代码*")
+    private String companyCode;
+
+    /** 联系方式* */
+    @Excel(name = "联系方式*")
+    private String phone;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setBmProjectId(Long bmProjectId) 
+    {
+        this.bmProjectId = bmProjectId;
+    }
+
+    public Long getBmProjectId() 
+    {
+        return bmProjectId;
+    }
+
+    public void setCompanyName(String companyName) 
+    {
+        this.companyName = companyName;
+    }
+
+    public String getCompanyName() 
+    {
+        return companyName;
+    }
+    public void setCompanyAddress(String companyAddress) 
+    {
+        this.companyAddress = companyAddress;
+    }
+
+    public String getCompanyAddress() 
+    {
+        return companyAddress;
+    }
+    public void setCompanyLegal(String companyLegal) 
+    {
+        this.companyLegal = companyLegal;
+    }
+
+    public String getCompanyLegal() 
+    {
+        return companyLegal;
+    }
+    public void setCompanyCode(String companyCode) 
+    {
+        this.companyCode = companyCode;
+    }
+
+    public String getCompanyCode() 
+    {
+        return companyCode;
+    }
+    public void setPhone(String phone) 
+    {
+        this.phone = phone;
+    }
+
+    public String getPhone() 
+    {
+        return phone;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("bmProjectId", getBmProjectId())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("isDel", getIsDel())
+            .append("companyName", getCompanyName())
+            .append("companyAddress", getCompanyAddress())
+            .append("companyLegal", getCompanyLegal())
+            .append("companyCode", getCompanyCode())
+            .append("phone", getPhone())
+            .toString();
+    }
+}

+ 742 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/project/BmProjectOrderinfo.java

@@ -0,0 +1,742 @@
+package com.ruoyi.system.domain.project;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 项目签约对象 bm_project_orderinfo
+ * 
+ * @author ruoyi
+ * @date 2021-03-05
+ */
+public class BmProjectOrderinfo extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id* */
+    private Long id;
+
+    /** 项目id* */
+    @Excel(name = "项目id*")
+    private Long bmProjectId;
+
+
+    /** 签约日期* */
+    @Excel(name = "签约日期*")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date orderDate;
+
+    /** 投资方式* */
+    @Excel(name = "投资方式*")
+    private String investmentType;
+
+    /** 是否外资* */
+    @Excel(name = "是否外资*")
+    private String isOutInvestment;
+
+    /** 总投资额度* */
+    @Excel(name = "总投资额度*")
+    private BigDecimal totInvestment;
+
+    /** 固定资产投资额度* */
+    @Excel(name = "固定资产投资额度*")
+    private BigDecimal fixedAssets;
+
+    /** 境外投资 */
+    @Excel(name = "境外投资")
+    private BigDecimal overseasInvestment;
+
+    /** 境内省外投资 */
+    @Excel(name = "境内省外投资")
+    private BigDecimal jnswInvestm;
+
+    /** 省内市外投资 */
+    @Excel(name = "省内市外投资")
+    private BigDecimal snswInvestm;
+
+    /** 市内县外投资 */
+    @Excel(name = "市内县外投资")
+    private BigDecimal snxwInvestm;
+
+    /** 县内投资 */
+    @Excel(name = "县内投资")
+    private BigDecimal xnInvestm;
+
+    /** 是否独立供地* */
+    @Excel(name = "是否独立供地*")
+    private String isIndependentLan;
+
+    /** 供地面积 */
+    @Excel(name = "供地面积")
+    private BigDecimal landArea;
+
+    /** 供地位置 */
+    @Excel(name = "供地位置")
+    private String landAddress;
+
+    /** 土地证url */
+    @Excel(name = "土地证url")
+    private String landPhoto;
+
+    /** 流转土地面积 */
+    @Excel(name = "流转土地面积")
+    private BigDecimal circulationLand;
+
+    /** 流转土地位置 */
+    @Excel(name = "流转土地位置")
+    private String circulationAddres;
+
+    /** 土地流转合同 */
+    @Excel(name = "土地流转合同")
+    private String circulationDoc;
+
+    /** 产权证 */
+    @Excel(name = "产权证")
+    private String circulationPhoto;
+
+    /** 租赁厂房面积 */
+    @Excel(name = "租赁厂房面积")
+    private BigDecimal leasePlantArea;
+
+    /** 租赁厂房位置 */
+    @Excel(name = "租赁厂房位置")
+    private String leasePlantAddress;
+
+    /** 租赁合同 */
+    @Excel(name = "租赁合同")
+    private String leasePlantDoc;
+
+    /** 租赁产权证 */
+    @Excel(name = "租赁产权证")
+    private String leasePlantPhoto;
+
+    /** 合同约定产值* */
+    @Excel(name = "合同约定产值*")
+    private BigDecimal agreementTot;
+
+    /** 合同约定税收* */
+    @Excel(name = "合同约定税收*")
+    private BigDecimal agreementTax;
+
+    /** 合同约定开工时间* */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "合同约定开工时间*", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date agreementStartdate;
+
+    /** 合同约定竣工时间* */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "合同约定竣工时间*", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date agreementEnddate;
+
+    /** 合同签约对方* */
+    @Excel(name = "合同签约对方*")
+    private String agreementPartner;
+
+    /** 对方合同签约人* */
+    @Excel(name = "对方合同签约人*")
+    private String partner;
+
+    /** 合同签约我方* */
+    @Excel(name = "合同签约我方*")
+    private String agreementUs;
+
+    /** 我方合同签约人* */
+    @Excel(name = "我方合同签约人*")
+    private String signUs;
+
+    /** 第三方 */
+    @Excel(name = "第三方")
+    private String agreementThird;
+
+    /** 第三方签约人 */
+    @Excel(name = "第三方签约人")
+    private String third;
+
+    /** 合同url* */
+    @Excel(name = "合同url*")
+    private String agreementUrl;
+
+    /** 在潜注册公司名称* */
+    @Excel(name = "在潜注册公司名称*")
+    private String name;
+
+    /** 法定代表人* */
+    @Excel(name = "法定代表人*")
+    private String legalRep;
+
+    /** 注册资本金* */
+    @Excel(name = "注册资本金*")
+    private BigDecimal totMoney;
+
+    /** 注册地址* */
+    @Excel(name = "注册地址*")
+    private String address;
+
+    /** 统一社会信用代码* */
+    @Excel(name = "统一社会信用代码*")
+    private String code;
+
+    /** 营业执照图片url* */
+    @Excel(name = "营业执照图片url*")
+    private String bussinessUrl;
+
+    /** 备案单位* */
+    @Excel(name = "备案单位*")
+    private String recordName;
+
+    /** 备案文号* */
+    @Excel(name = "备案文号*")
+    private String recordCode;
+
+    /** 备案总投资额* */
+    @Excel(name = "备案总投资额*")
+    private BigDecimal recordTot;
+
+    /** 备案建设周期* */
+    @Excel(name = "备案建设周期*")
+    private String recordTime;
+
+    /** 备案表url* */
+    @Excel(name = "备案表url*")
+    private String recordUrl;
+
+    /** 企业包服务-联系领导* */
+    @Excel(name = "企业包服务-联系领导*")
+    private String contactLeader;
+
+    /** 联系方式* */
+    @Excel(name = "联系方式*")
+    private String contactPhone;
+
+    /** 责任单位* */
+    @Excel(name = "责任单位*")
+    private String contactCompany;
+
+    /** 责任人* */
+    @Excel(name = "责任人*")
+    private String contactPerson;
+
+    /** 联系方式* */
+    @Excel(name = "联系方式*")
+    private String contactPersonPhone;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setBmProjectId(Long bmProjectId) 
+    {
+        this.bmProjectId = bmProjectId;
+    }
+
+    public Long getBmProjectId() 
+    {
+        return bmProjectId;
+    }
+
+    public Date getOrderDate() {
+        return orderDate;
+    }
+
+    public void setOrderDate(Date orderDate) {
+        this.orderDate = orderDate;
+    }
+
+    public void setInvestmentType(String investmentType)
+    {
+        this.investmentType = investmentType;
+    }
+
+    public String getInvestmentType() 
+    {
+        return investmentType;
+    }
+    public void setIsOutInvestment(String isOutInvestment) 
+    {
+        this.isOutInvestment = isOutInvestment;
+    }
+
+    public String getIsOutInvestment() 
+    {
+        return isOutInvestment;
+    }
+    public void setTotInvestment(BigDecimal totInvestment) 
+    {
+        this.totInvestment = totInvestment;
+    }
+
+    public BigDecimal getTotInvestment() 
+    {
+        return totInvestment;
+    }
+    public void setFixedAssets(BigDecimal fixedAssets) 
+    {
+        this.fixedAssets = fixedAssets;
+    }
+
+    public BigDecimal getFixedAssets() 
+    {
+        return fixedAssets;
+    }
+    public void setOverseasInvestment(BigDecimal overseasInvestment) 
+    {
+        this.overseasInvestment = overseasInvestment;
+    }
+
+    public BigDecimal getOverseasInvestment() 
+    {
+        return overseasInvestment;
+    }
+    public void setJnswInvestm(BigDecimal jnswInvestm) 
+    {
+        this.jnswInvestm = jnswInvestm;
+    }
+
+    public BigDecimal getJnswInvestm() 
+    {
+        return jnswInvestm;
+    }
+    public void setSnswInvestm(BigDecimal snswInvestm) 
+    {
+        this.snswInvestm = snswInvestm;
+    }
+
+    public BigDecimal getSnswInvestm() 
+    {
+        return snswInvestm;
+    }
+    public void setSnxwInvestm(BigDecimal snxwInvestm) 
+    {
+        this.snxwInvestm = snxwInvestm;
+    }
+
+    public BigDecimal getSnxwInvestm() 
+    {
+        return snxwInvestm;
+    }
+    public void setXnInvestm(BigDecimal xnInvestm) 
+    {
+        this.xnInvestm = xnInvestm;
+    }
+
+    public BigDecimal getXnInvestm() 
+    {
+        return xnInvestm;
+    }
+    public void setIsIndependentLan(String isIndependentLan) 
+    {
+        this.isIndependentLan = isIndependentLan;
+    }
+
+    public String getIsIndependentLan() 
+    {
+        return isIndependentLan;
+    }
+    public void setLandArea(BigDecimal landArea) 
+    {
+        this.landArea = landArea;
+    }
+
+    public BigDecimal getLandArea() 
+    {
+        return landArea;
+    }
+    public void setLandAddress(String landAddress) 
+    {
+        this.landAddress = landAddress;
+    }
+
+    public String getLandAddress() 
+    {
+        return landAddress;
+    }
+    public void setLandPhoto(String landPhoto) 
+    {
+        this.landPhoto = landPhoto;
+    }
+
+    public String getLandPhoto() 
+    {
+        return landPhoto;
+    }
+    public void setCirculationLand(BigDecimal circulationLand) 
+    {
+        this.circulationLand = circulationLand;
+    }
+
+    public BigDecimal getCirculationLand() 
+    {
+        return circulationLand;
+    }
+    public void setCirculationAddres(String circulationAddres) 
+    {
+        this.circulationAddres = circulationAddres;
+    }
+
+    public String getCirculationAddres() 
+    {
+        return circulationAddres;
+    }
+    public void setCirculationDoc(String circulationDoc) 
+    {
+        this.circulationDoc = circulationDoc;
+    }
+
+    public String getCirculationDoc() 
+    {
+        return circulationDoc;
+    }
+    public void setCirculationPhoto(String circulationPhoto) 
+    {
+        this.circulationPhoto = circulationPhoto;
+    }
+
+    public String getCirculationPhoto() 
+    {
+        return circulationPhoto;
+    }
+    public void setLeasePlantArea(BigDecimal leasePlantArea) 
+    {
+        this.leasePlantArea = leasePlantArea;
+    }
+
+    public BigDecimal getLeasePlantArea() 
+    {
+        return leasePlantArea;
+    }
+    public void setLeasePlantAddress(String leasePlantAddress) 
+    {
+        this.leasePlantAddress = leasePlantAddress;
+    }
+
+    public String getLeasePlantAddress() 
+    {
+        return leasePlantAddress;
+    }
+    public void setLeasePlantDoc(String leasePlantDoc) 
+    {
+        this.leasePlantDoc = leasePlantDoc;
+    }
+
+    public String getLeasePlantDoc() 
+    {
+        return leasePlantDoc;
+    }
+    public void setLeasePlantPhoto(String leasePlantPhoto) 
+    {
+        this.leasePlantPhoto = leasePlantPhoto;
+    }
+
+    public String getLeasePlantPhoto() 
+    {
+        return leasePlantPhoto;
+    }
+    public void setAgreementTot(BigDecimal agreementTot) 
+    {
+        this.agreementTot = agreementTot;
+    }
+
+    public BigDecimal getAgreementTot() 
+    {
+        return agreementTot;
+    }
+    public void setAgreementTax(BigDecimal agreementTax) 
+    {
+        this.agreementTax = agreementTax;
+    }
+
+    public BigDecimal getAgreementTax() 
+    {
+        return agreementTax;
+    }
+    public void setAgreementStartdate(Date agreementStartdate) 
+    {
+        this.agreementStartdate = agreementStartdate;
+    }
+
+    public Date getAgreementStartdate() 
+    {
+        return agreementStartdate;
+    }
+    public void setAgreementEnddate(Date agreementEnddate) 
+    {
+        this.agreementEnddate = agreementEnddate;
+    }
+
+    public Date getAgreementEnddate() 
+    {
+        return agreementEnddate;
+    }
+    public void setAgreementPartner(String agreementPartner) 
+    {
+        this.agreementPartner = agreementPartner;
+    }
+
+    public String getAgreementPartner() 
+    {
+        return agreementPartner;
+    }
+    public void setPartner(String partner) 
+    {
+        this.partner = partner;
+    }
+
+    public String getPartner() 
+    {
+        return partner;
+    }
+    public void setAgreementUs(String agreementUs) 
+    {
+        this.agreementUs = agreementUs;
+    }
+
+    public String getAgreementUs() 
+    {
+        return agreementUs;
+    }
+    public void setSignUs(String signUs) 
+    {
+        this.signUs = signUs;
+    }
+
+    public String getSignUs() 
+    {
+        return signUs;
+    }
+    public void setAgreementThird(String agreementThird) 
+    {
+        this.agreementThird = agreementThird;
+    }
+
+    public String getAgreementThird() 
+    {
+        return agreementThird;
+    }
+    public void setThird(String third) 
+    {
+        this.third = third;
+    }
+
+    public String getThird() 
+    {
+        return third;
+    }
+    public void setAgreementUrl(String agreementUrl) 
+    {
+        this.agreementUrl = agreementUrl;
+    }
+
+    public String getAgreementUrl() 
+    {
+        return agreementUrl;
+    }
+    public void setName(String name) 
+    {
+        this.name = name;
+    }
+
+    public String getName() 
+    {
+        return name;
+    }
+    public void setLegalRep(String legalRep) 
+    {
+        this.legalRep = legalRep;
+    }
+
+    public String getLegalRep() 
+    {
+        return legalRep;
+    }
+    public void setTotMoney(BigDecimal totMoney) 
+    {
+        this.totMoney = totMoney;
+    }
+
+    public BigDecimal getTotMoney() 
+    {
+        return totMoney;
+    }
+    public void setAddress(String address) 
+    {
+        this.address = address;
+    }
+
+    public String getAddress() 
+    {
+        return address;
+    }
+    public void setCode(String code) 
+    {
+        this.code = code;
+    }
+
+    public String getCode() 
+    {
+        return code;
+    }
+    public void setBussinessUrl(String bussinessUrl) 
+    {
+        this.bussinessUrl = bussinessUrl;
+    }
+
+    public String getBussinessUrl() 
+    {
+        return bussinessUrl;
+    }
+    public void setRecordName(String recordName) 
+    {
+        this.recordName = recordName;
+    }
+
+    public String getRecordName() 
+    {
+        return recordName;
+    }
+    public void setRecordCode(String recordCode) 
+    {
+        this.recordCode = recordCode;
+    }
+
+    public String getRecordCode() 
+    {
+        return recordCode;
+    }
+    public void setRecordTot(BigDecimal recordTot) 
+    {
+        this.recordTot = recordTot;
+    }
+
+    public BigDecimal getRecordTot() 
+    {
+        return recordTot;
+    }
+    public void setRecordTime(String recordTime) 
+    {
+        this.recordTime = recordTime;
+    }
+
+    public String getRecordTime() 
+    {
+        return recordTime;
+    }
+    public void setRecordUrl(String recordUrl) 
+    {
+        this.recordUrl = recordUrl;
+    }
+
+    public String getRecordUrl() 
+    {
+        return recordUrl;
+    }
+    public void setContactLeader(String contactLeader) 
+    {
+        this.contactLeader = contactLeader;
+    }
+
+    public String getContactLeader() 
+    {
+        return contactLeader;
+    }
+    public void setContactPhone(String contactPhone) 
+    {
+        this.contactPhone = contactPhone;
+    }
+
+    public String getContactPhone() 
+    {
+        return contactPhone;
+    }
+    public void setContactCompany(String contactCompany) 
+    {
+        this.contactCompany = contactCompany;
+    }
+
+    public String getContactCompany() 
+    {
+        return contactCompany;
+    }
+
+    public String getContactPerson() {
+        return contactPerson;
+    }
+
+    public void setContactPerson(String contactPerson) {
+        this.contactPerson = contactPerson;
+    }
+
+    public String getContactPersonPhone() {
+        return contactPersonPhone;
+    }
+
+    public void setContactPersonPhone(String contactPersonPhone) {
+        this.contactPersonPhone = contactPersonPhone;
+    }
+
+    @Override
+    public String toString() {
+        return "BmProjectOrderinfo{" +
+                "id=" + id +
+                ", bmProjectId=" + bmProjectId +
+                ", orderDate=" + orderDate +
+                ", investmentType='" + investmentType + '\'' +
+                ", isOutInvestment='" + isOutInvestment + '\'' +
+                ", totInvestment=" + totInvestment +
+                ", fixedAssets=" + fixedAssets +
+                ", overseasInvestment=" + overseasInvestment +
+                ", jnswInvestm=" + jnswInvestm +
+                ", snswInvestm=" + snswInvestm +
+                ", snxwInvestm=" + snxwInvestm +
+                ", xnInvestm=" + xnInvestm +
+                ", isIndependentLan='" + isIndependentLan + '\'' +
+                ", landArea=" + landArea +
+                ", landAddress='" + landAddress + '\'' +
+                ", landPhoto='" + landPhoto + '\'' +
+                ", circulationLand=" + circulationLand +
+                ", circulationAddres='" + circulationAddres + '\'' +
+                ", circulationDoc='" + circulationDoc + '\'' +
+                ", circulationPhoto='" + circulationPhoto + '\'' +
+                ", leasePlantArea=" + leasePlantArea +
+                ", leasePlantAddress='" + leasePlantAddress + '\'' +
+                ", leasePlantDoc='" + leasePlantDoc + '\'' +
+                ", leasePlantPhoto='" + leasePlantPhoto + '\'' +
+                ", agreementTot=" + agreementTot +
+                ", agreementTax=" + agreementTax +
+                ", agreementStartdate=" + agreementStartdate +
+                ", agreementEnddate=" + agreementEnddate +
+                ", agreementPartner='" + agreementPartner + '\'' +
+                ", partner='" + partner + '\'' +
+                ", agreementUs='" + agreementUs + '\'' +
+                ", signUs='" + signUs + '\'' +
+                ", agreementThird='" + agreementThird + '\'' +
+                ", third='" + third + '\'' +
+                ", agreementUrl='" + agreementUrl + '\'' +
+                ", name='" + name + '\'' +
+                ", legalRep='" + legalRep + '\'' +
+                ", totMoney=" + totMoney +
+                ", address='" + address + '\'' +
+                ", code='" + code + '\'' +
+                ", bussinessUrl='" + bussinessUrl + '\'' +
+                ", recordName='" + recordName + '\'' +
+                ", recordCode='" + recordCode + '\'' +
+                ", recordTot=" + recordTot +
+                ", recordTime='" + recordTime + '\'' +
+                ", recordUrl='" + recordUrl + '\'' +
+                ", contactLeader='" + contactLeader + '\'' +
+                ", contactPhone='" + contactPhone + '\'' +
+                ", contactCompany='" + contactCompany + '\'' +
+                ", contactPerson='" + contactPerson + '\'' +
+                ", contactPersonPhone='" + contactPersonPhone + '\'' +
+                '}';
+    }
+}

+ 113 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/project/BmProjectPersion.java

@@ -0,0 +1,113 @@
+package com.ruoyi.system.domain.project;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 项目投资方-自然人对象 bm_project_persion
+ * 
+ * @author ruoyi
+ * @date 2021-03-04
+ */
+public class BmProjectPersion extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 项目投资方id* */
+    private Long id;
+
+    /** 项目id* */
+    @Excel(name = "项目id*")
+    private Long bmProjectId;
+
+    /** 姓名* */
+    @Excel(name = "姓名*")
+    private String name;
+
+    /** 所在地* */
+    @Excel(name = "所在地*")
+    private String address;
+
+    /** 身份证号码* */
+    @Excel(name = "身份证号码*")
+    private String idCode;
+
+    /** 联系方式* */
+    @Excel(name = "联系方式*")
+    private String phone;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setBmProjectId(Long bmProjectId) 
+    {
+        this.bmProjectId = bmProjectId;
+    }
+
+    public Long getBmProjectId() 
+    {
+        return bmProjectId;
+    }
+
+    public void setName(String name) 
+    {
+        this.name = name;
+    }
+
+    public String getName() 
+    {
+        return name;
+    }
+    public void setAddress(String address) 
+    {
+        this.address = address;
+    }
+
+    public String getAddress() 
+    {
+        return address;
+    }
+
+    public String getIdCode() {
+        return idCode;
+    }
+
+    public void setIdCode(String idCode) {
+        this.idCode = idCode;
+    }
+
+    public void setPhone(String phone)
+    {
+        this.phone = phone;
+    }
+
+    public String getPhone() 
+    {
+        return phone;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("bmProjectId", getBmProjectId())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("isDel", getIsDel())
+            .append("name", getName())
+            .append("address", getAddress())
+            .append("idcode", getIdCode())
+            .append("phone", getPhone())
+            .toString();
+    }
+}

+ 116 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/project/BmProjectReferral.java

@@ -0,0 +1,116 @@
+package com.ruoyi.system.domain.project;
+
+import java.math.BigDecimal;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 项目引荐对象 bm_project_referral
+ * 
+ * @author ruoyi
+ * @date 2021-03-04
+ */
+public class BmProjectReferral extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 项目投资方id* */
+    private Long id;
+
+    /** 项目id* */
+    @Excel(name = "项目id*")
+    private Long bmProjectId;
+
+    /** 联系方式* */
+    @Excel(name = "联系方式*")
+    private String phone;
+
+    /** 投资分配额* */
+    @Excel(name = "投资分配额*")
+    private BigDecimal investmentAllcocation;
+
+    /** 引荐方联系人* */
+    @Excel(name = "引荐方联系人*")
+    private String referral;
+
+    /** 引荐方联系方式* */
+    @Excel(name = "引荐方联系方式*")
+    private String referralPhone;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setBmProjectId(Long bmProjectId) 
+    {
+        this.bmProjectId = bmProjectId;
+    }
+
+    public Long getBmProjectId() 
+    {
+        return bmProjectId;
+    }
+
+    public void setPhone(String phone) 
+    {
+        this.phone = phone;
+    }
+
+    public String getPhone() 
+    {
+        return phone;
+    }
+
+    public void setInvestmentAllcocation(BigDecimal investmentAllcocation) 
+    {
+        this.investmentAllcocation = investmentAllcocation;
+    }
+
+    public BigDecimal getInvestmentAllcocation() 
+    {
+        return investmentAllcocation;
+    }
+    public void setReferral(String referral) 
+    {
+        this.referral = referral;
+    }
+
+    public String getReferral() 
+    {
+        return referral;
+    }
+    public void setReferralPhone(String referralPhone) 
+    {
+        this.referralPhone = referralPhone;
+    }
+
+    public String getReferralPhone() 
+    {
+        return referralPhone;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("bmProjectId", getBmProjectId())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("isDel", getIsDel())
+            .append("phone", getPhone())
+            .append("sysDeptId", getSysDeptId())
+            .append("investmentAllcocation", getInvestmentAllcocation())
+            .append("referral", getReferral())
+            .append("referralPhone", getReferralPhone())
+            .toString();
+    }
+}

+ 35 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/project/BmProjectStatus.java

@@ -0,0 +1,35 @@
+package com.ruoyi.system.domain.project;
+
+import javax.validation.constraints.*;
+
+/**
+ * 审核请求对象
+ * @author bm
+ */
+public class BmProjectStatus {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 1:提交审核/审核通过 2:审核驳回
+     */
+    private Long code;
+
+    /** 项目id* */
+    private Long projectId;
+
+    public Long getCode() {
+        return code;
+    }
+
+    public void setCode(Long code) {
+        this.code = code;
+    }
+
+    public Long getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(Long projectId) {
+        this.projectId = projectId;
+    }
+}

+ 62 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/project/BmCompanyShareholderMapper.java

@@ -0,0 +1,62 @@
+package com.ruoyi.system.mapper.project;
+
+import com.ruoyi.system.domain.project.BmCompanyShareholder;
+
+import java.util.List;
+
+/**
+ * 注册企业股东构成Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2021-03-05
+ */
+public interface BmCompanyShareholderMapper 
+{
+    /**
+     * 查询注册企业股东构成
+     * 
+     * @param id 注册企业股东构成ID
+     * @return 注册企业股东构成
+     */
+    public BmCompanyShareholder selectBmCompanyShareholderById(Long id);
+
+    /**
+     * 查询注册企业股东构成列表
+     * 
+     * @param bmCompanyShareholder 注册企业股东构成
+     * @return 注册企业股东构成集合
+     */
+    public List<BmCompanyShareholder> selectBmCompanyShareholderList(BmCompanyShareholder bmCompanyShareholder);
+
+    /**
+     * 新增注册企业股东构成
+     * 
+     * @param bmCompanyShareholder 注册企业股东构成
+     * @return 结果
+     */
+    public int insertBmCompanyShareholder(BmCompanyShareholder bmCompanyShareholder);
+
+    /**
+     * 修改注册企业股东构成
+     * 
+     * @param bmCompanyShareholder 注册企业股东构成
+     * @return 结果
+     */
+    public int updateBmCompanyShareholder(BmCompanyShareholder bmCompanyShareholder);
+
+    /**
+     * 删除注册企业股东构成
+     * 
+     * @param id 注册企业股东构成ID
+     * @return 结果
+     */
+    public int deleteBmCompanyShareholderById(Long id);
+
+    /**
+     * 批量删除注册企业股东构成
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteBmCompanyShareholderByIds(Long[] ids);
+}

+ 63 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/project/BmProjectConstructionMapper.java

@@ -0,0 +1,63 @@
+package com.ruoyi.system.mapper.project;
+
+import com.ruoyi.system.domain.project.BmProjectConstruction;
+
+import java.util.List;
+
+
+/**
+ * 项目施工Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2021-03-08
+ */
+public interface BmProjectConstructionMapper 
+{
+    /**
+     * 查询项目施工
+     * 
+     * @param id 项目施工ID
+     * @return 项目施工
+     */
+    public BmProjectConstruction selectBmProjectConstructionById(Long id);
+
+    /**
+     * 查询项目施工列表
+     * 
+     * @param bmProjectConstruction 项目施工
+     * @return 项目施工集合
+     */
+    public List<BmProjectConstruction> selectBmProjectConstructionList(BmProjectConstruction bmProjectConstruction);
+
+    /**
+     * 新增项目施工
+     * 
+     * @param bmProjectConstruction 项目施工
+     * @return 结果
+     */
+    public int insertBmProjectConstruction(BmProjectConstruction bmProjectConstruction);
+
+    /**
+     * 修改项目施工
+     * 
+     * @param bmProjectConstruction 项目施工
+     * @return 结果
+     */
+    public int updateBmProjectConstruction(BmProjectConstruction bmProjectConstruction);
+
+    /**
+     * 删除项目施工
+     * 
+     * @param id 项目施工ID
+     * @return 结果
+     */
+    public int deleteBmProjectConstructionById(Long id);
+
+    /**
+     * 批量删除项目施工
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteBmProjectConstructionByIds(Long[] ids);
+}

+ 63 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/project/BmProjectInfoMapper.java

@@ -0,0 +1,63 @@
+package com.ruoyi.system.mapper.project;
+
+import com.ruoyi.system.domain.project.BmProjectInfo;
+
+import java.util.List;
+
+
+/**
+ * 项目-线索信息Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2021-03-04
+ */
+public interface BmProjectInfoMapper 
+{
+    /**
+     * 查询项目-线索信息
+     * 
+     * @param id 项目-线索信息ID
+     * @return 项目-线索信息
+     */
+    public BmProjectInfo selectBmProjectInfoById(Long id);
+
+    /**
+     * 查询项目-线索信息列表
+     * 
+     * @param bmProjectInfo 项目-线索信息
+     * @return 项目-线索信息集合
+     */
+    public List<BmProjectInfo> selectBmProjectInfoList(BmProjectInfo bmProjectInfo);
+
+    /**
+     * 新增项目-线索信息
+     * 
+     * @param bmProjectInfo 项目-线索信息
+     * @return 结果
+     */
+    public int insertBmProjectInfo(BmProjectInfo bmProjectInfo);
+
+    /**
+     * 修改项目-线索信息
+     * 
+     * @param bmProjectInfo 项目-线索信息
+     * @return 结果
+     */
+    public int updateBmProjectInfo(BmProjectInfo bmProjectInfo);
+
+    /**
+     * 删除项目-线索信息
+     * 
+     * @param id 项目-线索信息ID
+     * @return 结果
+     */
+    public int deleteBmProjectInfoById(Long id);
+
+    /**
+     * 批量删除项目-线索信息
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteBmProjectInfoByIds(Long[] ids);
+}

+ 63 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/project/BmProjectInvestorMapper.java

@@ -0,0 +1,63 @@
+package com.ruoyi.system.mapper.project;
+
+import com.ruoyi.system.domain.project.BmProjectInvestor;
+
+import java.util.List;
+
+
+/**
+ * 项目投资方-企业Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2021-03-04
+ */
+public interface BmProjectInvestorMapper 
+{
+    /**
+     * 查询项目投资方-企业
+     * 
+     * @param bmProjectId 项目投资方-企业ID
+     * @return 项目投资方-企业
+     */
+    public BmProjectInvestor selectBmProjectInvestorById(Long bmProjectId);
+
+    /**
+     * 查询项目投资方-企业列表
+     * 
+     * @param bmProjectInvestor 项目投资方-企业
+     * @return 项目投资方-企业集合
+     */
+    public List<BmProjectInvestor> selectBmProjectInvestorList(BmProjectInvestor bmProjectInvestor);
+
+    /**
+     * 新增项目投资方-企业
+     * 
+     * @param bmProjectInvestor 项目投资方-企业
+     * @return 结果
+     */
+    public int insertBmProjectInvestor(BmProjectInvestor bmProjectInvestor);
+
+    /**
+     * 修改项目投资方-企业
+     * 
+     * @param bmProjectInvestor 项目投资方-企业
+     * @return 结果
+     */
+    public int updateBmProjectInvestor(BmProjectInvestor bmProjectInvestor);
+
+    /**
+     * 删除项目投资方-企业
+     * 
+     * @param id 项目投资方-企业ID
+     * @return 结果
+     */
+    public int deleteBmProjectInvestorById(Long id);
+
+    /**
+     * 批量删除项目投资方-企业
+     * 
+     * @param id 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteBmProjectInvestorByIds(Long[] id);
+}

+ 63 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/project/BmProjectMapper.java

@@ -0,0 +1,63 @@
+package com.ruoyi.system.mapper.project;
+
+import com.ruoyi.system.domain.project.BmProject;
+
+import java.util.List;
+
+
+/**
+ * 项目(添加线索)Mapper接口
+ * 
+ * @author bm
+ * @date 2021-03-03
+ */
+public interface BmProjectMapper 
+{
+    /**
+     * 查询项目(添加线索)
+     * 
+     * @param id 项目(添加线索)ID
+     * @return 项目(添加线索)
+     */
+    public BmProject selectBmProjectById(Long id);
+
+    /**
+     * 查询项目(添加线索)列表
+     * 
+     * @param bmProject 项目(添加线索)
+     * @return 项目(添加线索)集合
+     */
+    public List<BmProject> selectBmProjectList(BmProject bmProject);
+
+    /**
+     * 新增项目(添加线索)
+     * 
+     * @param bmProject 项目(添加线索)
+     * @return 结果
+     */
+    public int insertBmProject(BmProject bmProject);
+
+    /**
+     * 修改项目(添加线索)
+     * 
+     * @param bmProject 项目(添加线索)
+     * @return 结果
+     */
+    public int updateBmProject(BmProject bmProject);
+
+    /**
+     * 删除项目(添加线索)
+     * 
+     * @param id 项目(添加线索)ID
+     * @return 结果
+     */
+    public int deleteBmProjectById(Long id);
+
+    /**
+     * 批量删除项目(添加线索)
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteBmProjectByIds(Long[] ids);
+}

+ 62 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/project/BmProjectOrderinfoMapper.java

@@ -0,0 +1,62 @@
+package com.ruoyi.system.mapper.project;
+
+import com.ruoyi.system.domain.project.BmProjectOrderinfo;
+
+import java.util.List;
+
+/**
+ * 项目签约Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2021-03-05
+ */
+public interface BmProjectOrderinfoMapper 
+{
+    /**
+     * 查询项目签约
+     * 
+     * @param id 项目签约ID
+     * @return 项目签约
+     */
+    public BmProjectOrderinfo selectBmProjectOrderinfoById(Long id);
+
+    /**
+     * 查询项目签约列表
+     * 
+     * @param bmProjectOrderinfo 项目签约
+     * @return 项目签约集合
+     */
+    public List<BmProjectOrderinfo> selectBmProjectOrderinfoList(BmProjectOrderinfo bmProjectOrderinfo);
+
+    /**
+     * 新增项目签约
+     * 
+     * @param bmProjectOrderinfo 项目签约
+     * @return 结果
+     */
+    public int insertBmProjectOrderinfo(BmProjectOrderinfo bmProjectOrderinfo);
+
+    /**
+     * 修改项目签约
+     * 
+     * @param bmProjectOrderinfo 项目签约
+     * @return 结果
+     */
+    public int updateBmProjectOrderinfo(BmProjectOrderinfo bmProjectOrderinfo);
+
+    /**
+     * 删除项目签约
+     * 
+     * @param id 项目签约ID
+     * @return 结果
+     */
+    public int deleteBmProjectOrderinfoById(Long id);
+
+    /**
+     * 批量删除项目签约
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteBmProjectOrderinfoByIds(Long[] ids);
+}

+ 62 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/project/BmProjectPersionMapper.java

@@ -0,0 +1,62 @@
+package com.ruoyi.system.mapper.project;
+
+import com.ruoyi.system.domain.project.BmProjectPersion;
+import java.util.List;
+
+
+/**
+ * 项目投资方-自然人Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2021-03-04
+ */
+public interface BmProjectPersionMapper 
+{
+    /**
+     * 查询项目投资方-自然人
+     * 
+     * @param id 项目投资方-自然人ID
+     * @return 项目投资方-自然人
+     */
+    public BmProjectPersion selectBmProjectPersionById(Long id);
+
+    /**
+     * 查询项目投资方-自然人列表
+     * 
+     * @param bmProjectPersion 项目投资方-自然人
+     * @return 项目投资方-自然人集合
+     */
+    public List<BmProjectPersion> selectBmProjectPersionList(BmProjectPersion bmProjectPersion);
+
+    /**
+     * 新增项目投资方-自然人
+     * 
+     * @param bmProjectPersion 项目投资方-自然人
+     * @return 结果
+     */
+    public int insertBmProjectPersion(BmProjectPersion bmProjectPersion);
+
+    /**
+     * 修改项目投资方-自然人
+     * 
+     * @param bmProjectPersion 项目投资方-自然人
+     * @return 结果
+     */
+    public int updateBmProjectPersion(BmProjectPersion bmProjectPersion);
+
+    /**
+     * 删除项目投资方-自然人
+     * 
+     * @param id 项目投资方-自然人ID
+     * @return 结果
+     */
+    public int deleteBmProjectPersionById(Long id);
+
+    /**
+     * 批量删除项目投资方-自然人
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteBmProjectPersionByIds(Long[] ids);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/project/BmProjectReferralMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.mapper.project;
+
+import com.ruoyi.system.domain.project.BmProjectReferral;
+
+import java.util.List;
+/**
+ * 项目引荐Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2021-03-04
+ */
+public interface BmProjectReferralMapper 
+{
+    /**
+     * 查询项目引荐
+     * 
+     * @param id 项目引荐ID
+     * @return 项目引荐
+     */
+    public BmProjectReferral selectBmProjectReferralById(Long id);
+
+    /**
+     * 查询项目引荐列表
+     * 
+     * @param bmProjectReferral 项目引荐
+     * @return 项目引荐集合
+     */
+    public List<BmProjectReferral> selectBmProjectReferralList(BmProjectReferral bmProjectReferral);
+
+    /**
+     * 新增项目引荐
+     * 
+     * @param bmProjectReferral 项目引荐
+     * @return 结果
+     */
+    public int insertBmProjectReferral(BmProjectReferral bmProjectReferral);
+
+    /**
+     * 修改项目引荐
+     * 
+     * @param bmProjectReferral 项目引荐
+     * @return 结果
+     */
+    public int updateBmProjectReferral(BmProjectReferral bmProjectReferral);
+
+    /**
+     * 删除项目引荐
+     * 
+     * @param id 项目引荐ID
+     * @return 结果
+     */
+    public int deleteBmProjectReferralById(Long id);
+
+    /**
+     * 批量删除项目引荐
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteBmProjectReferralByIds(Long[] ids);
+}

+ 8 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java

@@ -1,6 +1,12 @@
 package com.ruoyi.system.service.impl;
 
 import java.util.List;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.system.domain.SysNotice;
@@ -51,6 +57,7 @@ public class SysNoticeServiceImpl implements ISysNoticeService
     @Override
     public int insertNotice(SysNotice notice)
     {
+        notice.setCreateBy(SecurityUtils.getUsername());
         return noticeMapper.insertNotice(notice);
     }
 
@@ -63,6 +70,7 @@ public class SysNoticeServiceImpl implements ISysNoticeService
     @Override
     public int updateNotice(SysNotice notice)
     {
+        notice.setUpdateBy(SecurityUtils.getUsername());
         return noticeMapper.updateNotice(notice);
     }
 

+ 98 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/project/BmCompanyShareholderServiceImpl.java

@@ -0,0 +1,98 @@
+package com.ruoyi.system.service.impl.project;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.domain.project.BmCompanyShareholder;
+import com.ruoyi.system.mapper.project.BmCompanyShareholderMapper;
+import com.ruoyi.system.service.project.IBmCompanyShareholderService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+/**
+ * 注册企业股东构成Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2021-03-05
+ */
+@Service
+public class BmCompanyShareholderServiceImpl implements IBmCompanyShareholderService
+{
+    @Autowired
+    private BmCompanyShareholderMapper bmCompanyShareholderMapper;
+
+    /**
+     * 查询注册企业股东构成
+     * 
+     * @param id 注册企业股东构成ID
+     * @return 注册企业股东构成
+     */
+    @Override
+    public BmCompanyShareholder selectBmCompanyShareholderById(Long id)
+    {
+        return bmCompanyShareholderMapper.selectBmCompanyShareholderById(id);
+    }
+
+    /**
+     * 查询注册企业股东构成列表
+     * 
+     * @param bmCompanyShareholder 注册企业股东构成
+     * @return 注册企业股东构成
+     */
+    @Override
+    public List<BmCompanyShareholder> selectBmCompanyShareholderList(BmCompanyShareholder bmCompanyShareholder)
+    {
+        return bmCompanyShareholderMapper.selectBmCompanyShareholderList(bmCompanyShareholder);
+    }
+
+    /**
+     * 新增注册企业股东构成
+     * 
+     * @param bmCompanyShareholder 注册企业股东构成
+     * @return 结果
+     */
+    @Override
+    public int insertBmCompanyShareholder(BmCompanyShareholder bmCompanyShareholder)
+    {
+        bmCompanyShareholder.setCreateTime(DateUtils.getNowDate());
+        //bmCompanyShareholder.setCreateBy(SecurityUtils.getUsername());
+        return bmCompanyShareholderMapper.insertBmCompanyShareholder(bmCompanyShareholder);
+    }
+
+    /**
+     * 修改注册企业股东构成
+     * 
+     * @param bmCompanyShareholder 注册企业股东构成
+     * @return 结果
+     */
+    @Override
+    public int updateBmCompanyShareholder(BmCompanyShareholder bmCompanyShareholder)
+    {
+        bmCompanyShareholder.setUpdateTime(DateUtils.getNowDate());
+        //bmCompanyShareholder.setUpdateBy(SecurityUtils.getUsername());
+        return bmCompanyShareholderMapper.updateBmCompanyShareholder(bmCompanyShareholder);
+    }
+
+    /**
+     * 批量删除注册企业股东构成
+     * 
+     * @param ids 需要删除的注册企业股东构成ID
+     * @return 结果
+     */
+    @Override
+    public int deleteBmCompanyShareholderByIds(Long[] ids)
+    {
+        return bmCompanyShareholderMapper.deleteBmCompanyShareholderByIds(ids);
+    }
+
+    /**
+     * 删除注册企业股东构成信息
+     * 
+     * @param id 注册企业股东构成ID
+     * @return 结果
+     */
+    @Override
+    public int deleteBmCompanyShareholderById(Long id)
+    {
+        return bmCompanyShareholderMapper.deleteBmCompanyShareholderById(id);
+    }
+}

+ 117 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/project/BmProjectConstructionServiceImpl.java

@@ -0,0 +1,117 @@
+package com.ruoyi.system.service.impl.project;
+
+import java.util.List;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.domain.project.BmProjectConstruction;
+import com.ruoyi.system.mapper.project.BmProjectConstructionMapper;
+import com.ruoyi.system.mapper.project.BmProjectMapper;
+import com.ruoyi.system.service.project.IBmProjectConstructionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * 项目施工Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2021-03-08
+ */
+@Service
+public class BmProjectConstructionServiceImpl implements IBmProjectConstructionService
+{
+    @Autowired
+    private BmProjectConstructionMapper bmProjectConstructionMapper;
+
+    @Autowired
+    private BmProjectMapper bmProjectMapper;
+
+    /**
+     * 查询项目施工
+     * 
+     * @param id 项目施工ID
+     * @return 项目施工
+     */
+    @Override
+    public BmProjectConstruction selectBmProjectConstructionById(Long id)
+    {
+        return bmProjectConstructionMapper.selectBmProjectConstructionById(id);
+    }
+
+    /**
+     * 查询项目施工列表
+     * 
+     * @param bmProjectConstruction 项目施工
+     * @return 项目施工
+     */
+    @Override
+    public List<BmProjectConstruction> selectBmProjectConstructionList(BmProjectConstruction bmProjectConstruction)
+    {
+        return bmProjectConstructionMapper.selectBmProjectConstructionList(bmProjectConstruction);
+    }
+
+    /**
+     * 新增项目施工
+     * 
+     * @param bmProjectConstruction 项目施工
+     * @return 结果
+     */
+    @Override
+    public AjaxResult insertBmProjectConstruction(BmProjectConstruction bmProjectConstruction)
+    {
+        bmProjectConstruction.setCreateTime(DateUtils.getNowDate());
+        //bmProjectConstruction.setCreateBy(SecurityUtils.getUsername());
+        //提取出合同约定开工时间/竣工时间
+        Long bmProjectId = bmProjectConstruction.getBmProjectId();
+        if (bmProjectId == null){
+            AjaxResult.error("缺少项目id");
+        }
+
+
+        int i = bmProjectConstructionMapper.insertBmProjectConstruction(bmProjectConstruction);
+        if (i != 1){
+            AjaxResult.error("添加失败");
+        }
+        return AjaxResult.success();
+    }
+
+    /**
+     * 修改项目施工
+     * 
+     * @param bmProjectConstruction 项目施工
+     * @return 结果
+     */
+    @Override
+    public int updateBmProjectConstruction(BmProjectConstruction bmProjectConstruction)
+    {
+        bmProjectConstruction.setUpdateTime(DateUtils.getNowDate());
+        //bmProjectConstruction.setUpdateBy(SecurityUtils.getUsername());
+        return bmProjectConstructionMapper.updateBmProjectConstruction(bmProjectConstruction);
+    }
+
+    /**
+     * 批量删除项目施工
+     * 
+     * @param ids 需要删除的项目施工ID
+     * @return 结果
+     */
+    @Override
+    public int deleteBmProjectConstructionByIds(Long[] ids)
+    {
+        return bmProjectConstructionMapper.deleteBmProjectConstructionByIds(ids);
+    }
+
+    /**
+     * 删除项目施工信息
+     * 
+     * @param id 项目施工ID
+     * @return 结果
+     */
+    @Override
+    public int deleteBmProjectConstructionById(Long id)
+    {
+        return bmProjectConstructionMapper.deleteBmProjectConstructionById(id);
+    }
+}

+ 119 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/project/BmProjectInfoServiceImpl.java

@@ -0,0 +1,119 @@
+package com.ruoyi.system.service.impl.project;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.domain.project.BmProjectInfo;
+import com.ruoyi.system.domain.project.BmProjectReferral;
+import com.ruoyi.system.mapper.project.BmProjectInfoMapper;
+import com.ruoyi.system.mapper.project.BmProjectReferralMapper;
+import com.ruoyi.system.service.project.IBmProjectInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * 项目-线索信息Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2021-03-04
+ */
+@Service
+public class BmProjectInfoServiceImpl implements IBmProjectInfoService
+{
+    @Autowired
+    private BmProjectInfoMapper bmProjectInfoMapper;
+
+    @Autowired
+    private BmProjectReferralMapper bmProjectReferralMapper;
+
+    /**
+     * 查询项目-线索信息
+     * 
+     * @param id 项目-线索信息ID
+     * @return 项目-线索信息
+     */
+    @Override
+    public BmProjectInfo selectBmProjectInfoById(Long id)
+    {
+        return bmProjectInfoMapper.selectBmProjectInfoById(id);
+    }
+
+    /**
+     * 查询项目-线索信息列表
+     * 
+     * @param bmProjectInfo 项目-线索信息
+     * @return 项目-线索信息
+     */
+    @Override
+    public List<BmProjectInfo> selectBmProjectInfoList(BmProjectInfo bmProjectInfo)
+    {
+        return bmProjectInfoMapper.selectBmProjectInfoList(bmProjectInfo);
+    }
+
+    /**
+     * 新增项目-线索信息
+     * 
+     * @param bmProjectInfo 项目-线索信息
+     * @return 结果
+     */
+    @Override
+    public int insertBmProjectInfo(BmProjectInfo bmProjectInfo)
+    {
+        bmProjectInfo.setCreateTime(DateUtils.getNowDate());
+        bmProjectInfo.setCreateBy(SecurityUtils.getUsername());
+        List<BmProjectReferral> referralList = bmProjectInfo.getReferralList();
+        if (referralList != null && referralList.size()> 0){
+            for (BmProjectReferral bmProjectReferral : referralList) {
+                bmProjectReferralMapper.insertBmProjectReferral(bmProjectReferral);
+            }
+        }
+        return bmProjectInfoMapper.insertBmProjectInfo(bmProjectInfo);
+    }
+
+    /**
+     * 修改项目-线索信息
+     * 
+     * @param bmProjectInfo 项目-线索信息
+     * @return 结果
+     */
+    @Override
+    public int updateBmProjectInfo(BmProjectInfo bmProjectInfo)
+    {
+        bmProjectInfo.setUpdateTime(DateUtils.getNowDate());
+        bmProjectInfo.setUpdateBy(SecurityUtils.getUsername());
+        List<BmProjectReferral> referralList = bmProjectInfo.getReferralList();
+        if (referralList != null && referralList.size()> 0){
+            for (BmProjectReferral bmProjectReferral : referralList) {
+                if (bmProjectReferral.getId() != null){
+                    bmProjectReferralMapper.updateBmProjectReferral(bmProjectReferral);
+                }
+            }
+        }
+        return bmProjectInfoMapper.updateBmProjectInfo(bmProjectInfo);
+    }
+
+    /**
+     * 批量删除项目-线索信息
+     * 
+     * @param ids 需要删除的项目-线索信息ID
+     * @return 结果
+     */
+    @Override
+    public int deleteBmProjectInfoByIds(Long[] ids)
+    {
+        return bmProjectInfoMapper.deleteBmProjectInfoByIds(ids);
+    }
+
+    /**
+     * 删除项目-线索信息信息
+     * 
+     * @param id 项目-线索信息ID
+     * @return 结果
+     */
+    @Override
+    public int deleteBmProjectInfoById(Long id)
+    {
+        return bmProjectInfoMapper.deleteBmProjectInfoById(id);
+    }
+}

+ 100 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/project/BmProjectInvestorServiceImpl.java

@@ -0,0 +1,100 @@
+package com.ruoyi.system.service.impl.project;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.domain.project.BmProjectInvestor;
+import com.ruoyi.system.mapper.project.BmProjectInvestorMapper;
+import com.ruoyi.system.service.project.IBmProjectInvestorService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * 项目投资方-企业Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2021-03-04
+ */
+@Service
+public class BmProjectInvestorServiceImpl implements IBmProjectInvestorService
+{
+    @Autowired
+    private BmProjectInvestorMapper bmProjectInvestorMapper;
+
+    /**
+     * 查询项目投资方-企业
+     *
+     * @param id 项目投资方-企业ID
+     * @return 项目投资方-企业
+     */
+    @Override
+    public BmProjectInvestor selectBmProjectInvestorById(Long id)
+    {
+        return bmProjectInvestorMapper.selectBmProjectInvestorById(id);
+    }
+
+    /**
+     * 查询项目投资方-企业列表
+     *
+     * @param bmProjectInvestor 项目投资方-企业
+     * @return 项目投资方-企业
+     */
+    @Override
+    public List<BmProjectInvestor> selectBmProjectInvestorList(BmProjectInvestor bmProjectInvestor)
+    {
+        return bmProjectInvestorMapper.selectBmProjectInvestorList(bmProjectInvestor);
+    }
+
+    /**
+     * 新增项目投资方-企业
+     *
+     * @param bmProjectInvestor 项目投资方-企业
+     * @return 结果
+     */
+    @Override
+    public int insertBmProjectInvestor(BmProjectInvestor bmProjectInvestor)
+    {
+        bmProjectInvestor.setCreateTime(DateUtils.getNowDate());
+        bmProjectInvestor.setCreateBy(SecurityUtils.getUsername());
+        return bmProjectInvestorMapper.insertBmProjectInvestor(bmProjectInvestor);
+    }
+
+    /**
+     * 修改项目投资方-企业
+     *
+     * @param bmProjectInvestor 项目投资方-企业
+     * @return 结果
+     */
+    @Override
+    public int updateBmProjectInvestor(BmProjectInvestor bmProjectInvestor)
+    {
+        bmProjectInvestor.setUpdateTime(DateUtils.getNowDate());
+        bmProjectInvestor.setUpdateBy(SecurityUtils.getUsername());
+        return bmProjectInvestorMapper.updateBmProjectInvestor(bmProjectInvestor);
+    }
+
+    /**
+     * 批量删除项目投资方-企业
+     *
+     * @param ids 需要删除的项目投资方-企业ID
+     * @return 结果
+     */
+    @Override
+    public int deleteBmProjectInvestorByIds(Long[] ids)
+    {
+        return bmProjectInvestorMapper.deleteBmProjectInvestorByIds(ids);
+    }
+
+    /**
+     * 删除项目投资方-企业信息
+     *
+     * @param id 项目投资方-企业ID
+     * @return 结果
+     */
+    @Override
+    public int deleteBmProjectInvestorById(Long id)
+    {
+        return bmProjectInvestorMapper.deleteBmProjectInvestorById(id);
+    }
+}

+ 99 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/project/BmProjectOrderinfoServiceImpl.java

@@ -0,0 +1,99 @@
+package com.ruoyi.system.service.impl.project;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.domain.project.BmProjectOrderinfo;
+import com.ruoyi.system.mapper.project.BmProjectOrderinfoMapper;
+import com.ruoyi.system.service.project.IBmProjectOrderinfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 项目签约Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2021-03-05
+ */
+@Service
+public class BmProjectOrderinfoServiceImpl implements IBmProjectOrderinfoService
+{
+    @Autowired
+    private BmProjectOrderinfoMapper bmProjectOrderinfoMapper;
+
+    /**
+     * 查询项目签约
+     * 
+     * @param id 项目签约ID
+     * @return 项目签约
+     */
+    @Override
+    public BmProjectOrderinfo selectBmProjectOrderinfoById(Long id)
+    {
+        return bmProjectOrderinfoMapper.selectBmProjectOrderinfoById(id);
+    }
+
+    /**
+     * 查询项目签约列表
+     * 
+     * @param bmProjectOrderinfo 项目签约
+     * @return 项目签约
+     */
+    @Override
+    public List<BmProjectOrderinfo> selectBmProjectOrderinfoList(BmProjectOrderinfo bmProjectOrderinfo)
+    {
+        return bmProjectOrderinfoMapper.selectBmProjectOrderinfoList(bmProjectOrderinfo);
+    }
+
+    /**
+     * 新增项目签约
+     * 
+     * @param bmProjectOrderinfo 项目签约
+     * @return 结果
+     */
+    @Override
+    public int insertBmProjectOrderinfo(BmProjectOrderinfo bmProjectOrderinfo)
+    {
+        bmProjectOrderinfo.setCreateTime(DateUtils.getNowDate());
+        //bmProjectOrderinfo.setCreateBy(SecurityUtils.getUsername());
+        return bmProjectOrderinfoMapper.insertBmProjectOrderinfo(bmProjectOrderinfo);
+    }
+
+    /**
+     * 修改项目签约
+     * 
+     * @param bmProjectOrderinfo 项目签约
+     * @return 结果
+     */
+    @Override
+    public int updateBmProjectOrderinfo(BmProjectOrderinfo bmProjectOrderinfo)
+    {
+        bmProjectOrderinfo.setUpdateTime(DateUtils.getNowDate());
+        //bmProjectOrderinfo.setUpdateBy(SecurityUtils.getUsername());
+        return bmProjectOrderinfoMapper.updateBmProjectOrderinfo(bmProjectOrderinfo);
+    }
+
+    /**
+     * 批量删除项目签约
+     * 
+     * @param ids 需要删除的项目签约ID
+     * @return 结果
+     */
+    @Override
+    public int deleteBmProjectOrderinfoByIds(Long[] ids)
+    {
+        return bmProjectOrderinfoMapper.deleteBmProjectOrderinfoByIds(ids);
+    }
+
+    /**
+     * 删除项目签约信息
+     * 
+     * @param id 项目签约ID
+     * @return 结果
+     */
+    @Override
+    public int deleteBmProjectOrderinfoById(Long id)
+    {
+        return bmProjectOrderinfoMapper.deleteBmProjectOrderinfoById(id);
+    }
+}

+ 99 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/project/BmProjectPersionServiceImpl.java

@@ -0,0 +1,99 @@
+package com.ruoyi.system.service.impl.project;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.domain.project.BmProjectPersion;
+import com.ruoyi.system.mapper.project.BmProjectPersionMapper;
+import com.ruoyi.system.service.project.IBmProjectPersionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 项目投资方-自然人Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2021-03-04
+ */
+@Service
+public class BmProjectPersionServiceImpl implements IBmProjectPersionService
+{
+    @Autowired
+    private BmProjectPersionMapper bmProjectPersionMapper;
+
+    /**
+     * 查询项目投资方-自然人
+     * 
+     * @param id 项目投资方-自然人ID
+     * @return 项目投资方-自然人
+     */
+    @Override
+    public BmProjectPersion selectBmProjectPersionById(Long id)
+    {
+        return bmProjectPersionMapper.selectBmProjectPersionById(id);
+    }
+
+    /**
+     * 查询项目投资方-自然人列表
+     * 
+     * @param bmProjectPersion 项目投资方-自然人
+     * @return 项目投资方-自然人
+     */
+    @Override
+    public List<BmProjectPersion> selectBmProjectPersionList(BmProjectPersion bmProjectPersion)
+    {
+        return bmProjectPersionMapper.selectBmProjectPersionList(bmProjectPersion);
+    }
+
+    /**
+     * 新增项目投资方-自然人
+     * 
+     * @param bmProjectPersion 项目投资方-自然人
+     * @return 结果
+     */
+    @Override
+    public int insertBmProjectPersion(BmProjectPersion bmProjectPersion)
+    {
+        bmProjectPersion.setCreateTime(DateUtils.getNowDate());
+        bmProjectPersion.setCreateBy(SecurityUtils.getUsername());
+        return bmProjectPersionMapper.insertBmProjectPersion(bmProjectPersion);
+    }
+
+    /**
+     * 修改项目投资方-自然人
+     * 
+     * @param bmProjectPersion 项目投资方-自然人
+     * @return 结果
+     */
+    @Override
+    public int updateBmProjectPersion(BmProjectPersion bmProjectPersion)
+    {
+        bmProjectPersion.setUpdateTime(DateUtils.getNowDate());
+        bmProjectPersion.setUpdateBy(SecurityUtils.getUsername());
+        return bmProjectPersionMapper.updateBmProjectPersion(bmProjectPersion);
+    }
+
+    /**
+     * 批量删除项目投资方-自然人
+     * 
+     * @param ids 需要删除的项目投资方-自然人ID
+     * @return 结果
+     */
+    @Override
+    public int deleteBmProjectPersionByIds(Long[] ids)
+    {
+        return bmProjectPersionMapper.deleteBmProjectPersionByIds(ids);
+    }
+
+    /**
+     * 删除项目投资方-自然人信息
+     * 
+     * @param id 项目投资方-自然人ID
+     * @return 结果
+     */
+    @Override
+    public int deleteBmProjectPersionById(Long id)
+    {
+        return bmProjectPersionMapper.deleteBmProjectPersionById(id);
+    }
+}

+ 100 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/project/BmProjectReferralServiceImpl.java

@@ -0,0 +1,100 @@
+package com.ruoyi.system.service.impl.project;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.domain.project.BmProjectReferral;
+import com.ruoyi.system.mapper.project.BmProjectReferralMapper;
+import com.ruoyi.system.service.project.IBmProjectReferralService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * 项目引荐Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2021-03-04
+ */
+@Service
+public class BmProjectReferralServiceImpl implements IBmProjectReferralService
+{
+    @Autowired
+    private BmProjectReferralMapper bmProjectReferralMapper;
+
+    /**
+     * 查询项目引荐
+     * 
+     * @param id 项目引荐ID
+     * @return 项目引荐
+     */
+    @Override
+    public BmProjectReferral selectBmProjectReferralById(Long id)
+    {
+        return bmProjectReferralMapper.selectBmProjectReferralById(id);
+    }
+
+    /**
+     * 查询项目引荐列表
+     * 
+     * @param bmProjectReferral 项目引荐
+     * @return 项目引荐
+     */
+    @Override
+    public List<BmProjectReferral> selectBmProjectReferralList(BmProjectReferral bmProjectReferral)
+    {
+        return bmProjectReferralMapper.selectBmProjectReferralList(bmProjectReferral);
+    }
+
+    /**
+     * 新增项目引荐
+     * 
+     * @param bmProjectReferral 项目引荐
+     * @return 结果
+     */
+    @Override
+    public int insertBmProjectReferral(BmProjectReferral bmProjectReferral)
+    {
+        bmProjectReferral.setCreateTime(DateUtils.getNowDate());
+        //bmProjectReferral.setCreateBy(SecurityUtils.getUsername());
+        return bmProjectReferralMapper.insertBmProjectReferral(bmProjectReferral);
+    }
+
+    /**
+     * 修改项目引荐
+     * 
+     * @param bmProjectReferral 项目引荐
+     * @return 结果
+     */
+    @Override
+    public int updateBmProjectReferral(BmProjectReferral bmProjectReferral)
+    {
+        bmProjectReferral.setUpdateTime(DateUtils.getNowDate());
+        //bmProjectReferral.setUpdateBy(SecurityUtils.getUsername());
+        return bmProjectReferralMapper.updateBmProjectReferral(bmProjectReferral);
+    }
+
+    /**
+     * 批量删除项目引荐
+     * 
+     * @param ids 需要删除的项目引荐ID
+     * @return 结果
+     */
+    @Override
+    public int deleteBmProjectReferralByIds(Long[] ids)
+    {
+        return bmProjectReferralMapper.deleteBmProjectReferralByIds(ids);
+    }
+
+    /**
+     * 删除项目引荐信息
+     * 
+     * @param id 项目引荐ID
+     * @return 结果
+     */
+    @Override
+    public int deleteBmProjectReferralById(Long id)
+    {
+        return bmProjectReferralMapper.deleteBmProjectReferralById(id);
+    }
+}

+ 158 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/project/BmProjectServiceImpl.java

@@ -0,0 +1,158 @@
+package com.ruoyi.system.service.impl.project;
+
+import java.util.List;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.domain.project.BmProject;
+import com.ruoyi.system.domain.project.BmProjectStatus;
+import com.ruoyi.system.mapper.SysDictDataMapper;
+import com.ruoyi.system.mapper.project.BmProjectMapper;
+import com.ruoyi.system.service.project.IBmProjectService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import static com.ruoyi.common.constant.Constants.EXAMINE_BACK;
+import static com.ruoyi.common.constant.Constants.EXAMINE_PASS;
+
+
+/**
+ * 项目(添加线索)Service业务层处理
+ *
+ * @author bm
+ * @date 2021-03-03
+ */
+@Service
+public class BmProjectServiceImpl implements IBmProjectService {
+    @Autowired
+    private BmProjectMapper bmProjectMapper;
+
+    @Autowired
+    private SysDictDataMapper dictDataMapper;
+
+    /**
+     * 查询项目(添加线索)
+     *
+     * @param id 项目(添加线索)ID
+     * @return 项目(添加线索)
+     */
+    @Override
+    public BmProject selectBmProjectById(Long id) {
+        return bmProjectMapper.selectBmProjectById(id);
+    }
+
+    /**
+     * 查询项目(添加线索)列表
+     *
+     * @param bmProject 项目(添加线索)
+     * @return 项目(添加线索)
+     */
+    @Override
+    public List<BmProject> selectBmProjectList(BmProject bmProject) {
+        return bmProjectMapper.selectBmProjectList(bmProject);
+    }
+
+    /**
+     * 新增项目(添加线索)
+     *
+     * @param bmProject 项目(添加线索)
+     * @return 结果
+     */
+    @Override
+    public AjaxResult insertBmProject(BmProject bmProject) {
+        bmProject.setCreateTime(DateUtils.getNowDate());
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        SysUser user = loginUser.getUser();
+        Long deptId = user.getDeptId();
+        bmProject.setDeptId(deptId);
+        bmProject.setCreateBy(user.getUserName());
+        //新增线索,默认值1
+        bmProject.setProjectStatus(1L);
+        bmProjectMapper.insertBmProject(bmProject);
+        String isBackbussiness = bmProject.getIsBackbussiness();
+        if (StringUtils.isBlank(isBackbussiness)) {
+            bmProject.setIsBackbussiness("N");
+        }
+        return AjaxResult.success(bmProject);
+    }
+
+    /**
+     * 修改项目(添加线索)
+     *
+     * @param bmProject 项目(添加线索)
+     * @return 结果
+     */
+    @Override
+    public int updateBmProject(BmProject bmProject) {
+        bmProject.setUpdateTime(DateUtils.getNowDate());
+        bmProject.setUpdateBy(SecurityUtils.getUsername());
+        return bmProjectMapper.updateBmProject(bmProject);
+    }
+
+    /**
+     * 批量删除项目(添加线索)
+     *
+     * @param ids 需要删除的项目(添加线索)ID
+     * @return 结果
+     */
+    @Override
+    public int deleteBmProjectByIds(Long[] ids) {
+        return bmProjectMapper.deleteBmProjectByIds(ids);
+    }
+
+    /**
+     * 删除项目(添加线索)信息
+     *
+     * @param id 项目(添加线索)ID
+     * @return 结果
+     */
+    @Override
+    public int deleteBmProjectById(Long id) {
+        return bmProjectMapper.deleteBmProjectById(id);
+    }
+
+    /**
+     * 审核项目状态
+     *
+     * @param bmProjectStatus 审核请求对象
+     * @return
+     */
+    @Override
+    public AjaxResult examine(BmProjectStatus bmProjectStatus) {
+        Long projectId = bmProjectStatus.getProjectId();
+        if (projectId == null) {
+            return AjaxResult.error("项目id为NULL");
+        }
+        Long code = bmProjectStatus.getCode();
+        //查询项目状态最多有多少个
+        int count = dictDataMapper.countDictDataByType("project_status");
+        synchronized (this) {
+            BmProject bmProject = bmProjectMapper.selectBmProjectById(projectId);
+            //获取当前状态
+            Long projectStatus = bmProject.getProjectStatus();
+            //如果当前进度是1:新增线索,不能继续驳回
+            if (projectStatus.equals(EXAMINE_PASS) && code.equals(EXAMINE_BACK)) {
+                return AjaxResult.error("无法继续驳回");
+            }
+            if (projectStatus == count) {
+                return AjaxResult.error("当前项目已结束,无法继续操作");
+            }
+            //提交审核/审核通过
+            projectStatus = code.equals(EXAMINE_PASS) ? projectStatus + EXAMINE_PASS : projectStatus - EXAMINE_PASS;
+            if (projectStatus < EXAMINE_PASS) {
+                projectStatus = EXAMINE_PASS;
+            }
+            BmProject bmProjectNew = new BmProject();
+            bmProjectNew.setId(projectId);
+            bmProjectNew.setProjectStatus(projectStatus);
+            bmProjectMapper.updateBmProject(bmProjectNew);
+        }
+        return AjaxResult.success();
+
+    }
+}

+ 62 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/project/IBmCompanyShareholderService.java

@@ -0,0 +1,62 @@
+package com.ruoyi.system.service.project;
+
+import com.ruoyi.system.domain.project.BmCompanyShareholder;
+
+import java.util.List;
+
+/**
+ * 注册企业股东构成Service接口
+ * 
+ * @author ruoyi
+ * @date 2021-03-05
+ */
+public interface IBmCompanyShareholderService 
+{
+    /**
+     * 查询注册企业股东构成
+     * 
+     * @param id 注册企业股东构成ID
+     * @return 注册企业股东构成
+     */
+    public BmCompanyShareholder selectBmCompanyShareholderById(Long id);
+
+    /**
+     * 查询注册企业股东构成列表
+     * 
+     * @param bmCompanyShareholder 注册企业股东构成
+     * @return 注册企业股东构成集合
+     */
+    public List<BmCompanyShareholder> selectBmCompanyShareholderList(BmCompanyShareholder bmCompanyShareholder);
+
+    /**
+     * 新增注册企业股东构成
+     * 
+     * @param bmCompanyShareholder 注册企业股东构成
+     * @return 结果
+     */
+    public int insertBmCompanyShareholder(BmCompanyShareholder bmCompanyShareholder);
+
+    /**
+     * 修改注册企业股东构成
+     * 
+     * @param bmCompanyShareholder 注册企业股东构成
+     * @return 结果
+     */
+    public int updateBmCompanyShareholder(BmCompanyShareholder bmCompanyShareholder);
+
+    /**
+     * 批量删除注册企业股东构成
+     * 
+     * @param ids 需要删除的注册企业股东构成ID
+     * @return 结果
+     */
+    public int deleteBmCompanyShareholderByIds(Long[] ids);
+
+    /**
+     * 删除注册企业股东构成信息
+     * 
+     * @param id 注册企业股东构成ID
+     * @return 结果
+     */
+    public int deleteBmCompanyShareholderById(Long id);
+}

+ 64 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/project/IBmProjectConstructionService.java

@@ -0,0 +1,64 @@
+package com.ruoyi.system.service.project;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.system.domain.project.BmProjectConstruction;
+
+import java.util.List;
+
+
+/**
+ * 项目施工Service接口
+ * 
+ * @author ruoyi
+ * @date 2021-03-08
+ */
+public interface IBmProjectConstructionService 
+{
+    /**
+     * 查询项目施工
+     * 
+     * @param id 项目施工ID
+     * @return 项目施工
+     */
+    public BmProjectConstruction selectBmProjectConstructionById(Long id);
+
+    /**
+     * 查询项目施工列表
+     * 
+     * @param bmProjectConstruction 项目施工
+     * @return 项目施工集合
+     */
+    public List<BmProjectConstruction> selectBmProjectConstructionList(BmProjectConstruction bmProjectConstruction);
+
+    /**
+     * 新增项目施工
+     * 
+     * @param bmProjectConstruction 项目施工
+     * @return 结果
+     */
+    public AjaxResult insertBmProjectConstruction(BmProjectConstruction bmProjectConstruction);
+
+    /**
+     * 修改项目施工
+     * 
+     * @param bmProjectConstruction 项目施工
+     * @return 结果
+     */
+    public int updateBmProjectConstruction(BmProjectConstruction bmProjectConstruction);
+
+    /**
+     * 批量删除项目施工
+     * 
+     * @param ids 需要删除的项目施工ID
+     * @return 结果
+     */
+    public int deleteBmProjectConstructionByIds(Long[] ids);
+
+    /**
+     * 删除项目施工信息
+     * 
+     * @param id 项目施工ID
+     * @return 结果
+     */
+    public int deleteBmProjectConstructionById(Long id);
+}

+ 63 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/project/IBmProjectInfoService.java

@@ -0,0 +1,63 @@
+package com.ruoyi.system.service.project;
+
+import com.ruoyi.system.domain.project.BmProjectInfo;
+
+import java.util.List;
+
+
+/**
+ * 项目-线索信息Service接口
+ * 
+ * @author ruoyi
+ * @date 2021-03-04
+ */
+public interface IBmProjectInfoService 
+{
+    /**
+     * 查询项目-线索信息
+     * 
+     * @param id 项目-线索信息ID
+     * @return 项目-线索信息
+     */
+    public BmProjectInfo selectBmProjectInfoById(Long id);
+
+    /**
+     * 查询项目-线索信息列表
+     * 
+     * @param bmProjectInfo 项目-线索信息
+     * @return 项目-线索信息集合
+     */
+    public List<BmProjectInfo> selectBmProjectInfoList(BmProjectInfo bmProjectInfo);
+
+    /**
+     * 新增项目-线索信息
+     * 
+     * @param bmProjectInfo 项目-线索信息
+     * @return 结果
+     */
+    public int insertBmProjectInfo(BmProjectInfo bmProjectInfo);
+
+    /**
+     * 修改项目-线索信息
+     * 
+     * @param bmProjectInfo 项目-线索信息
+     * @return 结果
+     */
+    public int updateBmProjectInfo(BmProjectInfo bmProjectInfo);
+
+    /**
+     * 批量删除项目-线索信息
+     * 
+     * @param ids 需要删除的项目-线索信息ID
+     * @return 结果
+     */
+    public int deleteBmProjectInfoByIds(Long[] ids);
+
+    /**
+     * 删除项目-线索信息信息
+     * 
+     * @param id 项目-线索信息ID
+     * @return 结果
+     */
+    public int deleteBmProjectInfoById(Long id);
+}

+ 63 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/project/IBmProjectInvestorService.java

@@ -0,0 +1,63 @@
+package com.ruoyi.system.service.project;
+
+import com.ruoyi.system.domain.project.BmProjectInvestor;
+
+import java.util.List;
+
+
+/**
+ * 项目投资方-企业Service接口
+ * 
+ * @author ruoyi
+ * @date 2021-03-04
+ */
+public interface IBmProjectInvestorService 
+{
+    /**
+     * 查询项目投资方-企业
+     * 
+     * @param id 项目投资方-企业ID
+     * @return 项目投资方-企业
+     */
+    public BmProjectInvestor selectBmProjectInvestorById(Long id);
+
+    /**
+     * 查询项目投资方-企业列表
+     * 
+     * @param bmProjectInvestor 项目投资方-企业
+     * @return 项目投资方-企业集合
+     */
+    public List<BmProjectInvestor> selectBmProjectInvestorList(BmProjectInvestor bmProjectInvestor);
+
+    /**
+     * 新增项目投资方-企业
+     * 
+     * @param bmProjectInvestor 项目投资方-企业
+     * @return 结果
+     */
+    public int insertBmProjectInvestor(BmProjectInvestor bmProjectInvestor);
+
+    /**
+     * 修改项目投资方-企业
+     * 
+     * @param bmProjectInvestor 项目投资方-企业
+     * @return 结果
+     */
+    public int updateBmProjectInvestor(BmProjectInvestor bmProjectInvestor);
+
+    /**
+     * 批量删除项目投资方-企业
+     * 
+     * @param ids 需要删除的项目投资方-企业ID
+     * @return 结果
+     */
+    public int deleteBmProjectInvestorByIds(Long[] ids);
+
+    /**
+     * 删除项目投资方-企业信息
+     * 
+     * @param id 项目投资方-企业ID
+     * @return 结果
+     */
+    public int deleteBmProjectInvestorById(Long id);
+}

+ 62 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/project/IBmProjectOrderinfoService.java

@@ -0,0 +1,62 @@
+package com.ruoyi.system.service.project;
+
+import com.ruoyi.system.domain.project.BmProjectOrderinfo;
+
+import java.util.List;
+
+/**
+ * 项目签约Service接口
+ * 
+ * @author ruoyi
+ * @date 2021-03-05
+ */
+public interface IBmProjectOrderinfoService 
+{
+    /**
+     * 查询项目签约
+     * 
+     * @param id 项目签约ID
+     * @return 项目签约
+     */
+    public BmProjectOrderinfo selectBmProjectOrderinfoById(Long id);
+
+    /**
+     * 查询项目签约列表
+     * 
+     * @param bmProjectOrderinfo 项目签约
+     * @return 项目签约集合
+     */
+    public List<BmProjectOrderinfo> selectBmProjectOrderinfoList(BmProjectOrderinfo bmProjectOrderinfo);
+
+    /**
+     * 新增项目签约
+     * 
+     * @param bmProjectOrderinfo 项目签约
+     * @return 结果
+     */
+    public int insertBmProjectOrderinfo(BmProjectOrderinfo bmProjectOrderinfo);
+
+    /**
+     * 修改项目签约
+     * 
+     * @param bmProjectOrderinfo 项目签约
+     * @return 结果
+     */
+    public int updateBmProjectOrderinfo(BmProjectOrderinfo bmProjectOrderinfo);
+
+    /**
+     * 批量删除项目签约
+     * 
+     * @param ids 需要删除的项目签约ID
+     * @return 结果
+     */
+    public int deleteBmProjectOrderinfoByIds(Long[] ids);
+
+    /**
+     * 删除项目签约信息
+     * 
+     * @param id 项目签约ID
+     * @return 结果
+     */
+    public int deleteBmProjectOrderinfoById(Long id);
+}

+ 63 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/project/IBmProjectPersionService.java

@@ -0,0 +1,63 @@
+package com.ruoyi.system.service.project;
+
+import com.ruoyi.system.domain.project.BmProjectPersion;
+
+import java.util.List;
+
+
+/**
+ * 项目投资方-自然人Service接口
+ * 
+ * @author ruoyi
+ * @date 2021-03-04
+ */
+public interface IBmProjectPersionService 
+{
+    /**
+     * 查询项目投资方-自然人
+     * 
+     * @param id 项目投资方-自然人ID
+     * @return 项目投资方-自然人
+     */
+    public BmProjectPersion selectBmProjectPersionById(Long id);
+
+    /**
+     * 查询项目投资方-自然人列表
+     * 
+     * @param bmProjectPersion 项目投资方-自然人
+     * @return 项目投资方-自然人集合
+     */
+    public List<BmProjectPersion> selectBmProjectPersionList(BmProjectPersion bmProjectPersion);
+
+    /**
+     * 新增项目投资方-自然人
+     * 
+     * @param bmProjectPersion 项目投资方-自然人
+     * @return 结果
+     */
+    public int insertBmProjectPersion(BmProjectPersion bmProjectPersion);
+
+    /**
+     * 修改项目投资方-自然人
+     * 
+     * @param bmProjectPersion 项目投资方-自然人
+     * @return 结果
+     */
+    public int updateBmProjectPersion(BmProjectPersion bmProjectPersion);
+
+    /**
+     * 批量删除项目投资方-自然人
+     * 
+     * @param ids 需要删除的项目投资方-自然人ID
+     * @return 结果
+     */
+    public int deleteBmProjectPersionByIds(Long[] ids);
+
+    /**
+     * 删除项目投资方-自然人信息
+     * 
+     * @param id 项目投资方-自然人ID
+     * @return 结果
+     */
+    public int deleteBmProjectPersionById(Long id);
+}

+ 63 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/project/IBmProjectReferralService.java

@@ -0,0 +1,63 @@
+package com.ruoyi.system.service.project;
+
+import com.ruoyi.system.domain.project.BmProjectReferral;
+
+import java.util.List;
+
+
+/**
+ * 项目引荐Service接口
+ * 
+ * @author ruoyi
+ * @date 2021-03-04
+ */
+public interface IBmProjectReferralService 
+{
+    /**
+     * 查询项目引荐
+     * 
+     * @param id 项目引荐ID
+     * @return 项目引荐
+     */
+    public BmProjectReferral selectBmProjectReferralById(Long id);
+
+    /**
+     * 查询项目引荐列表
+     * 
+     * @param bmProjectReferral 项目引荐
+     * @return 项目引荐集合
+     */
+    public List<BmProjectReferral> selectBmProjectReferralList(BmProjectReferral bmProjectReferral);
+
+    /**
+     * 新增项目引荐
+     * 
+     * @param bmProjectReferral 项目引荐
+     * @return 结果
+     */
+    public int insertBmProjectReferral(BmProjectReferral bmProjectReferral);
+
+    /**
+     * 修改项目引荐
+     * 
+     * @param bmProjectReferral 项目引荐
+     * @return 结果
+     */
+    public int updateBmProjectReferral(BmProjectReferral bmProjectReferral);
+
+    /**
+     * 批量删除项目引荐
+     * 
+     * @param ids 需要删除的项目引荐ID
+     * @return 结果
+     */
+    public int deleteBmProjectReferralByIds(Long[] ids);
+
+    /**
+     * 删除项目引荐信息
+     * 
+     * @param id 项目引荐ID
+     * @return 结果
+     */
+    public int deleteBmProjectReferralById(Long id);
+}

+ 72 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/project/IBmProjectService.java

@@ -0,0 +1,72 @@
+package com.ruoyi.system.service.project;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.system.domain.project.BmProject;
+import com.ruoyi.system.domain.project.BmProjectStatus;
+
+import java.util.List;
+
+
+/**
+ * 项目(添加线索)Service接口
+ * 
+ * @author bm
+ * @date 2021-03-03
+ */
+public interface IBmProjectService 
+{
+    /**
+     * 查询项目(添加线索)
+     * 
+     * @param id 项目(添加线索)ID
+     * @return 项目(添加线索)
+     */
+    public BmProject selectBmProjectById(Long id);
+
+    /**
+     * 查询项目(添加线索)列表
+     * 
+     * @param bmProject 项目(添加线索)
+     * @return 项目(添加线索)集合
+     */
+    public List<BmProject> selectBmProjectList(BmProject bmProject);
+
+    /**
+     * 新增项目(添加线索)
+     * 
+     * @param bmProject 项目(添加线索)
+     * @return 结果
+     */
+    public AjaxResult insertBmProject(BmProject bmProject);
+
+    /**
+     * 修改项目(添加线索)
+     * 
+     * @param bmProject 项目(添加线索)
+     * @return 结果
+     */
+    public int updateBmProject(BmProject bmProject);
+
+    /**
+     * 批量删除项目(添加线索)
+     * 
+     * @param ids 需要删除的项目(添加线索)ID
+     * @return 结果
+     */
+    public int deleteBmProjectByIds(Long[] ids);
+
+    /**
+     * 删除项目(添加线索)信息
+     * 
+     * @param id 项目(添加线索)ID
+     * @return 结果
+     */
+    public int deleteBmProjectById(Long id);
+
+    /**
+     * 审核项目状态
+     * @param bmProjectStatus 审核请求对象
+     * @return
+     */
+   public AjaxResult examine(BmProjectStatus bmProjectStatus);
+}

+ 20 - 6
ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml

@@ -15,29 +15,34 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateBy"       column="update_by"       />
         <result property="updateTime"     column="update_time"     />
         <result property="remark"         column="remark"          />
+        <result property="deptId"         column="dept_id"          />
+        <result property="deptName"         column="dept_name"          />
+        <result property="imgUrl"         column="img_url"          />
+        <result property="isBanner"         column="is_banner"          />
     </resultMap>
     
     <sql id="selectNoticeVo">
-        select notice_id, notice_title, notice_type, cast(notice_content as char) as notice_content, status, create_by, create_time, update_by, update_time, remark 
-		from sys_notice
+        select n.notice_id, n.notice_title, n.notice_type, cast(n.notice_content as char) as notice_content, n.status, n.create_by, n.create_time, n.update_by, n.update_time, n.remark, n.dept_id, n.img_url, n.is_banner, d.dept_name
+		from sys_notice n
+		LEFT JOIN sys_dept d on d.dept_id = n.dept_id
     </sql>
     
     <select id="selectNoticeById" parameterType="Long" resultMap="SysNoticeResult">
         <include refid="selectNoticeVo"/>
-        where notice_id = #{noticeId}
+        where n.notice_id = #{noticeId}
     </select>
     
     <select id="selectNoticeList" parameterType="SysNotice" resultMap="SysNoticeResult">
         <include refid="selectNoticeVo"/>
         <where>
 			<if test="noticeTitle != null and noticeTitle != ''">
-				AND notice_title like concat('%', #{noticeTitle}, '%')
+				AND n.notice_title like concat('%', #{noticeTitle}, '%')
 			</if>
 			<if test="noticeType != null and noticeType != ''">
-				AND notice_type = #{noticeType}
+				AND n.notice_type = #{noticeType}
 			</if>
 			<if test="createBy != null and createBy != ''">
-				AND create_by like concat('%', #{createBy}, '%')
+				AND n.create_by like concat('%', #{createBy}, '%')
 			</if>
 		</where>
     </select>
@@ -50,6 +55,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 			<if test="status != null and status != '' ">status, </if>
 			<if test="remark != null and remark != ''">remark,</if>
  			<if test="createBy != null and createBy != ''">create_by,</if>
+ 			<if test="deptId != null ">dept_id,</if>
+ 			<if test="imgUrl != null and imgUrl != ''">img_url,</if>
+ 			<if test="isBanner != null and isBanner != ''">is_banner,</if>
  			create_time
  		)values(
 			<if test="noticeTitle != null and noticeTitle != ''">#{noticeTitle}, </if>
@@ -58,6 +66,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 			<if test="status != null and status != ''">#{status}, </if>
 			<if test="remark != null and remark != ''">#{remark},</if>
  			<if test="createBy != null and createBy != ''">#{createBy},</if>
+ 			<if test="deptId != null">#{deptId},</if>
+ 			<if test="imgUrl != null and imgUrl != ''">#{imgUrl},</if>
+ 			<if test="isBanner != null and isBanner != ''">#{isBanner},</if>
  			sysdate()
 		)
     </insert>
@@ -70,6 +81,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="noticeContent != null">notice_content = #{noticeContent}, </if>
             <if test="status != null and status != ''">status = #{status}, </if>
             <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="imgUrl != null and imgUrl != ''">img_url = #{imgUrl},</if>
+            <if test="isBanner != null and isBanner != ''">is_banner = #{isBanner},</if>
  			update_time = sysdate()
         </set>
         where notice_id = #{noticeId}

+ 102 - 0
ruoyi-system/src/main/resources/mapper/system/project/BmCompanyShareholderMapper.xml

@@ -0,0 +1,102 @@
+<?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.ruoyi.system.mapper.project.BmCompanyShareholderMapper">
+    
+    <resultMap type="BmCompanyShareholder" id="BmCompanyShareholderResult">
+        <result property="id"    column="id"    />
+        <result property="bmProjectId"    column="bm_project_id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="isDel"    column="is_del"    />
+        <result property="name"    column="name"    />
+        <result property="address"    column="address"    />
+        <result property="idcard"    column="idcard"    />
+        <result property="idcardFront"    column="idcard_front"    />
+        <result property="idcardBack"    column="idcard_back"    />
+    </resultMap>
+
+    <sql id="selectBmCompanyShareholderVo">
+        select id, bm_project_id, create_by, create_time, update_by, update_time, is_del, name, address, idcard, idcard_front, idcard_back from bm_company_shareholder
+    </sql>
+
+    <select id="selectBmCompanyShareholderList" parameterType="BmCompanyShareholder" resultMap="BmCompanyShareholderResult">
+        <include refid="selectBmCompanyShareholderVo"/>
+        <where>  
+            <if test="bmProjectId != null "> and bm_project_id = #{bmProjectId}</if>
+            <if test="isDel != null "> and is_del = #{isDel}</if>
+            <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
+            <if test="address != null  and address != ''"> and address = #{address}</if>
+            <if test="idcard != null  and idcard != ''"> and idcard = #{idcard}</if>
+            <if test="idcardFront != null  and idcardFront != ''"> and idcard_front = #{idcardFront}</if>
+            <if test="idcardBack != null  and idcardBack != ''"> and idcard_back = #{idcardBack}</if>
+        </where>
+    </select>
+    
+    <select id="selectBmCompanyShareholderById" parameterType="Long" resultMap="BmCompanyShareholderResult">
+        <include refid="selectBmCompanyShareholderVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertBmCompanyShareholder" parameterType="BmCompanyShareholder">
+        insert into bm_company_shareholder
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="bmProjectId != null">bm_project_id,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="isDel != null">is_del,</if>
+            <if test="name != null">name,</if>
+            <if test="address != null">address,</if>
+            <if test="idcard != null">idcard,</if>
+            <if test="idcardFront != null">idcard_front,</if>
+            <if test="idcardBack != null">idcard_back,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="bmProjectId != null">#{bmProjectId},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="isDel != null">#{isDel},</if>
+            <if test="name != null">#{name},</if>
+            <if test="address != null">#{address},</if>
+            <if test="idcard != null">#{idcard},</if>
+            <if test="idcardFront != null">#{idcardFront},</if>
+            <if test="idcardBack != null">#{idcardBack},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBmCompanyShareholder" parameterType="BmCompanyShareholder">
+        update bm_company_shareholder
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="bmProjectId != null">bm_project_id = #{bmProjectId},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="isDel != null">is_del = #{isDel},</if>
+            <if test="name != null">name = #{name},</if>
+            <if test="address != null">address = #{address},</if>
+            <if test="idcard != null">idcard = #{idcard},</if>
+            <if test="idcardFront != null">idcard_front = #{idcardFront},</if>
+            <if test="idcardBack != null">idcard_back = #{idcardBack},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmCompanyShareholderById" parameterType="Long">
+        delete from bm_company_shareholder where id = #{id}
+    </delete>
+
+    <delete id="deleteBmCompanyShareholderByIds" parameterType="String">
+        delete from bm_company_shareholder where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 107 - 0
ruoyi-system/src/main/resources/mapper/system/project/BmProjectConstructionMapper.xml

@@ -0,0 +1,107 @@
+<?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.ruoyi.system.mapper.project.BmProjectConstructionMapper">
+    
+    <resultMap type="BmProjectConstruction" id="BmProjectConstructionResult">
+        <result property="id"    column="id"    />
+        <result property="bmProjectId"    column="bm_project_id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="isDel"    column="is_del"    />
+        <result property="constructionCode"    column="construction_code"    />
+        <result property="isConstruction"    column="is_construction"    />
+        <result property="constructionStartdate"    column="construction_startdate"    />
+        <result property="constructionEnddate"    column="construction_enddate"    />
+        <result property="constructionDoc"    column="construction_doc"    />
+        <result property="constructionPhoto"    column="construction_photo"    />
+    </resultMap>
+
+    <sql id="selectBmProjectConstructionVo">
+        select id, bm_project_id, create_by, create_time, update_by, update_time, is_del, construction_code, is_construction, construction_startdate, construction_enddate, construction_doc, construction_photo from bm_project_construction
+    </sql>
+
+    <select id="selectBmProjectConstructionList" parameterType="BmProjectConstruction" resultMap="BmProjectConstructionResult">
+        <include refid="selectBmProjectConstructionVo"/>
+        <where>  
+            <if test="bmProjectId != null "> and bm_project_id = #{bmProjectId}</if>
+            <if test="isDel != null "> and is_del = #{isDel}</if>
+            <if test="constructionCode != null  and constructionCode != ''"> and construction_code = #{constructionCode}</if>
+            <if test="isConstruction != null  and isConstruction != ''"> and is_construction = #{isConstruction}</if>
+            <if test="constructionStartdate != null "> and construction_startdate like concat('%', #{constructionStartdate}, '%')</if>
+            <if test="constructionEnddate != null "> and construction_enddate like concat('%', #{constructionEnddate}, '%')</if>
+            <if test="constructionDoc != null  and constructionDoc != ''"> and construction_doc = #{constructionDoc}</if>
+            <if test="constructionPhoto != null  and constructionPhoto != ''"> and construction_photo = #{constructionPhoto}</if>
+        </where>
+    </select>
+    
+    <select id="selectBmProjectConstructionById" parameterType="Long" resultMap="BmProjectConstructionResult">
+        <include refid="selectBmProjectConstructionVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertBmProjectConstruction" parameterType="BmProjectConstruction" useGeneratedKeys="true" keyProperty="id">
+        insert into bm_project_construction
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="bmProjectId != null">bm_project_id,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="isDel != null">is_del,</if>
+            <if test="constructionCode != null">construction_code,</if>
+            <if test="isConstruction != null">is_construction,</if>
+            <if test="constructionStartdate != null">construction_startdate,</if>
+            <if test="constructionEnddate != null">construction_enddate,</if>
+            <if test="constructionDoc != null">construction_doc,</if>
+            <if test="constructionPhoto != null">construction_photo,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="bmProjectId != null">#{bmProjectId},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="isDel != null">#{isDel},</if>
+            <if test="constructionCode != null">#{constructionCode},</if>
+            <if test="isConstruction != null">#{isConstruction},</if>
+            <if test="constructionStartdate != null">#{constructionStartdate},</if>
+            <if test="constructionEnddate != null">#{constructionEnddate},</if>
+            <if test="constructionDoc != null">#{constructionDoc},</if>
+            <if test="constructionPhoto != null">#{constructionPhoto},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBmProjectConstruction" parameterType="BmProjectConstruction">
+        update bm_project_construction
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="bmProjectId != null">bm_project_id = #{bmProjectId},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="isDel != null">is_del = #{isDel},</if>
+            <if test="constructionCode != null">construction_code = #{constructionCode},</if>
+            <if test="isConstruction != null">is_construction = #{isConstruction},</if>
+            <if test="constructionStartdate != null">construction_startdate = #{constructionStartdate},</if>
+            <if test="constructionEnddate != null">construction_enddate = #{constructionEnddate},</if>
+            <if test="constructionDoc != null">construction_doc = #{constructionDoc},</if>
+            <if test="constructionPhoto != null">construction_photo = #{constructionPhoto},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmProjectConstructionById" parameterType="Long">
+        delete from bm_project_construction where id = #{id}
+    </delete>
+
+    <delete id="deleteBmProjectConstructionByIds" parameterType="String">
+        delete from bm_project_construction where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 182 - 0
ruoyi-system/src/main/resources/mapper/system/project/BmProjectInfoMapper.xml

@@ -0,0 +1,182 @@
+<?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.ruoyi.system.mapper.project.BmProjectInfoMapper">
+    
+    <resultMap type="BmProjectInfo" id="BmProjectInfoResult">
+        <result property="id"    column="id"    />
+        <result property="bmProjectId"    column="bm_project_id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="name"    column="name"    />
+        <result property="isDel"    column="is_del"    />
+        <result property="contactor"    column="contactor"    />
+        <result property="phone"    column="phone"    />
+        <result property="needAmt"    column="need_amt"    />
+        <result property="fixedAssets"    column="fixed_assets"    />
+        <result property="productName"    column="product_name"    />
+        <result property="productQty"    column="product_qty"    />
+        <result property="productPrice"    column="product_price"    />
+        <result property="productTax"    column="product_tax"    />
+        <result property="productEmp"    column="product_emp"    />
+        <result property="plannedLand"    column="planned_land"    />
+        <result property="independentLand"    column="independent_land"    />
+        <result property="circulationLan"    column="circulation_lan"    />
+        <result property="needRoom"    column="need_room"    />
+        <result property="needFactoryRoom"    column="need_factory_room"    />
+        <result property="needBusRoom"    column="need_bus_room"    />
+        <result property="other"    column="other"    />
+        <result property="address"    column="address"    />
+        <result property="isFrameorder"    column="is_frameorder"    />
+        <result property="attachment"    column="attachment"    />
+        <result property="description"    column="description"    />
+    </resultMap>
+
+    <sql id="selectBmProjectInfoVo">
+        select id, bm_project_id, create_by, create_time, update_by, update_time, name, is_del, contactor, phone, need_amt, fixed_assets, product_name, product_qty, product_price, product_tax, product_emp, planned_land, independent_land, circulation_lan, need_room, need_factory_room, need_bus_room, other, address, is_frameorder, attachment, description from bm_project_info
+    </sql>
+
+    <select id="selectBmProjectInfoList" parameterType="BmProjectInfo" resultMap="BmProjectInfoResult">
+        <include refid="selectBmProjectInfoVo"/>
+        <where>  
+            <if test="bmProjectId != null "> and bm_project_id = #{bmProjectId}</if>
+            <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
+            <if test="isDel != null "> and is_del = #{isDel}</if>
+            <if test="contactor != null  and contactor != ''"> and contactor like concat('%', #{contactor}, '%')</if>
+            <if test="phone != null  and phone != ''"> and phone like concat('%', #{phone}, '%')</if>
+            <if test="needAmt != null "> and need_amt = #{needAmt}</if>
+            <if test="fixedAssets != null "> and fixed_assets = #{fixedAssets}</if>
+            <if test="productName != null  and productName != ''"> and product_name like concat('%', #{productName}, '%')</if>
+            <if test="productQty != null  and productQty != ''"> and product_qty = #{productQty}</if>
+            <if test="productPrice != null "> and product_price = #{productPrice}</if>
+            <if test="productTax != null "> and product_tax = #{productTax}</if>
+            <if test="productEmp != null  and productEmp != ''"> and product_emp = #{productEmp}</if>
+            <if test="plannedLand != null "> and planned_land = #{plannedLand}</if>
+            <if test="independentLand != null "> and independent_land = #{independentLand}</if>
+            <if test="circulationLan != null "> and circulation_lan = #{circulationLan}</if>
+            <if test="needRoom != null "> and need_room = #{needRoom}</if>
+            <if test="needFactoryRoom != null "> and need_factory_room = #{needFactoryRoom}</if>
+            <if test="needBusRoom != null "> and need_bus_room = #{needBusRoom}</if>
+            <if test="other != null  and other != ''"> and other like concat('%', #{other}, '%')</if>
+            <if test="address != null  and address != ''"> and address like concat('%', #{address}, '%')</if>
+            <if test="isFrameorder != null  and isFrameorder != ''"> and is_frameorder = #{isFrameorder}</if>
+            <if test="attachment != null  and attachment != ''"> and attachment = #{attachment}</if>
+            <if test="description != null  and description != ''"> and description like concat('%', #{description}, '%')</if>
+        </where>
+    </select>
+    
+    <select id="selectBmProjectInfoById" parameterType="Long" resultMap="BmProjectInfoResult">
+        <include refid="selectBmProjectInfoVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertBmProjectInfo" parameterType="BmProjectInfo">
+        insert into bm_project_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="bmProjectId != null">bm_project_id,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="name != null">name,</if>
+            <if test="isDel != null">is_del,</if>
+            <if test="contactor != null">contactor,</if>
+            <if test="phone != null">phone,</if>
+            <if test="needAmt != null">need_amt,</if>
+            <if test="fixedAssets != null">fixed_assets,</if>
+            <if test="productName != null">product_name,</if>
+            <if test="productQty != null">product_qty,</if>
+            <if test="productPrice != null">product_price,</if>
+            <if test="productTax != null">product_tax,</if>
+            <if test="productEmp != null">product_emp,</if>
+            <if test="plannedLand != null">planned_land,</if>
+            <if test="independentLand != null">independent_land,</if>
+            <if test="circulationLan != null">circulation_lan,</if>
+            <if test="needRoom != null">need_room,</if>
+            <if test="needFactoryRoom != null">need_factory_room,</if>
+            <if test="needBusRoom != null">need_bus_room,</if>
+            <if test="other != null">other,</if>
+            <if test="address != null">address,</if>
+            <if test="isFrameorder != null">is_frameorder,</if>
+            <if test="attachment != null">attachment,</if>
+            <if test="description != null">description,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="bmProjectId != null">#{bmProjectId},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="name != null">#{name},</if>
+            <if test="isDel != null">#{isDel},</if>
+            <if test="contactor != null">#{contactor},</if>
+            <if test="phone != null">#{phone},</if>
+            <if test="needAmt != null">#{needAmt},</if>
+            <if test="fixedAssets != null">#{fixedAssets},</if>
+            <if test="productName != null">#{productName},</if>
+            <if test="productQty != null">#{productQty},</if>
+            <if test="productPrice != null">#{productPrice},</if>
+            <if test="productTax != null">#{productTax},</if>
+            <if test="productEmp != null">#{productEmp},</if>
+            <if test="plannedLand != null">#{plannedLand},</if>
+            <if test="independentLand != null">#{independentLand},</if>
+            <if test="circulationLan != null">#{circulationLan},</if>
+            <if test="needRoom != null">#{needRoom},</if>
+            <if test="needFactoryRoom != null">#{needFactoryRoom},</if>
+            <if test="needBusRoom != null">#{needBusRoom},</if>
+            <if test="other != null">#{other},</if>
+            <if test="address != null">#{address},</if>
+            <if test="isFrameorder != null">#{isFrameorder},</if>
+            <if test="attachment != null">#{attachment},</if>
+            <if test="description != null">#{description},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBmProjectInfo" parameterType="BmProjectInfo">
+        update bm_project_info
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="bmProjectId != null">bm_project_id = #{bmProjectId},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="name != null">name = #{name},</if>
+            <if test="isDel != null">is_del = #{isDel},</if>
+            <if test="contactor != null">contactor = #{contactor},</if>
+            <if test="phone != null">phone = #{phone},</if>
+            <if test="needAmt != null">need_amt = #{needAmt},</if>
+            <if test="fixedAssets != null">fixed_assets = #{fixedAssets},</if>
+            <if test="productName != null">product_name = #{productName},</if>
+            <if test="productQty != null">product_qty = #{productQty},</if>
+            <if test="productPrice != null">product_price = #{productPrice},</if>
+            <if test="productTax != null">product_tax = #{productTax},</if>
+            <if test="productEmp != null">product_emp = #{productEmp},</if>
+            <if test="plannedLand != null">planned_land = #{plannedLand},</if>
+            <if test="independentLand != null">independent_land = #{independentLand},</if>
+            <if test="circulationLan != null">circulation_lan = #{circulationLan},</if>
+            <if test="needRoom != null">need_room = #{needRoom},</if>
+            <if test="needFactoryRoom != null">need_factory_room = #{needFactoryRoom},</if>
+            <if test="needBusRoom != null">need_bus_room = #{needBusRoom},</if>
+            <if test="other != null">other = #{other},</if>
+            <if test="address != null">address = #{address},</if>
+            <if test="isFrameorder != null">is_frameorder = #{isFrameorder},</if>
+            <if test="attachment != null">attachment = #{attachment},</if>
+            <if test="description != null">description = #{description},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmProjectInfoById" parameterType="Long">
+        delete from bm_project_info where id = #{id}
+    </delete>
+
+    <delete id="deleteBmProjectInfoByIds" parameterType="String">
+        delete from bm_project_info where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 101 - 0
ruoyi-system/src/main/resources/mapper/system/project/BmProjectInvestorMapper.xml

@@ -0,0 +1,101 @@
+<?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.ruoyi.system.mapper.project.BmProjectInvestorMapper">
+    
+    <resultMap type="BmProjectInvestor" id="BmProjectInvestorResult">
+        <result property="id"    column="id"    />
+        <result property="bmProjectId"    column="bm_project_id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="isDel"    column="is_del"    />
+        <result property="companyName"    column="company_name"    />
+        <result property="companyAddress"    column="company_address"    />
+        <result property="companyLegal"    column="company_legal"    />
+        <result property="companyCode"    column="company_code"    />
+        <result property="phone"    column="phone"    />
+    </resultMap>
+
+    <sql id="selectBmProjectInvestorVo">
+        select id, bm_project_id, create_by, create_time, update_by, update_time, is_del, company_name, company_address, company_legal, company_code, phone from bm_project_investor
+    </sql>
+
+    <select id="selectBmProjectInvestorList" parameterType="BmProjectInvestor" resultMap="BmProjectInvestorResult">
+        <include refid="selectBmProjectInvestorVo"/>
+        <where>  
+            <if test="isDel != null "> and is_del = #{isDel}</if>
+            <if test="companyName != null  and companyName != ''"> and company_name like concat('%', #{companyName}, '%')</if>
+            <if test="companyAddress != null  and companyAddress != ''"> and company_address = #{companyAddress}</if>
+            <if test="companyLegal != null  and companyLegal != ''"> and company_legal = #{companyLegal}</if>
+            <if test="companyCode != null  and companyCode != ''"> and company_code = #{companyCode}</if>
+            <if test="phone != null  and phone != ''"> and phone = #{phone}</if>
+        </where>
+    </select>
+    
+    <select id="selectBmProjectInvestorById" parameterType="Long" resultMap="BmProjectInvestorResult">
+        <include refid="selectBmProjectInvestorVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertBmProjectInvestor" parameterType="BmProjectInvestor" useGeneratedKeys="true" keyProperty="bmProjectId">
+        insert into bm_project_investor
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="bmProjectId != null">bm_project_id,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="isDel != null">is_del,</if>
+            <if test="companyName != null">company_name,</if>
+            <if test="companyAddress != null">company_address,</if>
+            <if test="companyLegal != null">company_legal,</if>
+            <if test="companyCode != null">company_code,</if>
+            <if test="phone != null">phone,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="bmProjectId != null">#{bmProjectId},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="isDel != null">#{isDel},</if>
+            <if test="companyName != null">#{companyName},</if>
+            <if test="companyAddress != null">#{companyAddress},</if>
+            <if test="companyLegal != null">#{companyLegal},</if>
+            <if test="companyCode != null">#{companyCode},</if>
+            <if test="phone != null">#{phone},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBmProjectInvestor" parameterType="BmProjectInvestor">
+        update bm_project_investor
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="bmProjectId != null">bm_project_id = #{bmProjectId},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="isDel != null">is_del = #{isDel},</if>
+            <if test="companyName != null">company_name = #{companyName},</if>
+            <if test="companyAddress != null">company_address = #{companyAddress},</if>
+            <if test="companyLegal != null">company_legal = #{companyLegal},</if>
+            <if test="companyCode != null">company_code = #{companyCode},</if>
+            <if test="phone != null">phone = #{phone},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmProjectInvestorById" parameterType="Long">
+        delete from bm_project_investor where id = #{id}
+    </delete>
+
+    <delete id="deleteBmProjectInvestorByIds" parameterType="String">
+        delete from bm_project_investor where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 166 - 0
ruoyi-system/src/main/resources/mapper/system/project/BmProjectMapper.xml

@@ -0,0 +1,166 @@
+<?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.ruoyi.system.mapper.project.BmProjectMapper">
+    
+    <resultMap type="BmProject" id="BmProjectResult">
+        <result property="id"    column="id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="name"    column="name"    />
+        <result property="industryCategory"    column="industry_category"    />
+        <result property="industry"    column="industry"    />
+        <result property="isBackbussiness"    column="is_backbussiness"    />
+        <result property="projectStatus"    column="project_status"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="totAmt"    column="tot_amt"    />
+        <result property="isDel"    column="is_del"    />
+        <result property="orderBeginTime"    column="order_begin_time"    />
+        <result property="orderEndTime"    column="order_end_time"    />
+        <result property="remark"    column="remark"    />
+        <result property="deptName"    column="dept_name"    />
+        <result property="dictLabel"    column="dict_label"    />
+    </resultMap>
+
+    <sql id="selectBmProjectVo">
+        select id, create_by, create_time, update_by, update_time, name, industry_category, industry, is_backbussiness, project_status, dept_id, tot_amt, is_del, order_begin_time, order_end_time, remark from bm_project
+    </sql>
+
+    <select id="selectBmProjectList" parameterType="BmProject" resultMap="BmProjectResult">
+        SELECT
+        p.id,
+        p.create_by,
+        p.create_time,
+        p.update_by,
+        p.update_time,
+        p.NAME,
+        p.industry_category,
+        p.industry,
+        p.is_backbussiness,
+        p.project_status,
+        p.dept_id,
+        p.tot_amt,
+        p.is_del,
+        p.order_begin_time,
+        p.order_end_time,
+        p.remark ,
+        d.dept_name,
+        sdd.dict_label
+        FROM
+        bm_project p
+        left join sys_dept d on p.dept_id = d.dept_id
+        left join sys_dict_data sdd on p.project_status = sdd.dict_value and sdd.dict_type = 'project_status'
+        <where>  
+            <if test="name != null  and name != ''"> and p.name like concat('%', #{name}, '%')</if>
+            <if test="industryCategory != null  and industryCategory != ''"> and p.industry_category = #{industryCategory}</if>
+            <if test="industry != null  and industry != ''"> and p.industry = #{industry}</if>
+            <if test="projectStatus != null "> and p.project_status = #{projectStatus}</if>
+            <if test="deptName != null and deptName != ''"> and d.dept_name = #{deptName}</if>
+            <if test="totAmt != null "> and p.tot_amt = #{totAmt}</if>
+            <if test="isDel != null "> and p.is_del = #{isDel}</if>
+            <if test="beginTime != null "> and p.create_time &gt;= #{beginTime}</if>
+            <if test="endTime != null "> and p.create_time &lt;= #{endTime}</if>
+        </where>
+    </select>
+    
+    <select id="selectBmProjectById" parameterType="Long" resultMap="BmProjectResult">
+               SELECT
+        p.id,
+        p.create_by,
+        p.create_time,
+        p.update_by,
+        p.update_time,
+        p.NAME,
+        p.industry_category,
+        p.industry,
+        p.is_backbussiness,
+        p.project_status,
+        p.dept_id,
+        p.tot_amt,
+        p.is_del,
+        p.order_begin_time,
+        p.order_end_time,
+        p.remark ,
+        d.dept_name,
+        sdd.dict_label
+        FROM
+        bm_project p
+        left join sys_dept d on p.dept_id = d.dept_id
+        left join sys_dict_data sdd on p.project_status = sdd.dict_value and sdd.dict_type = 'project_status'
+        where p.id = #{id}
+    </select>
+        
+    <insert id="insertBmProject" parameterType="BmProject" useGeneratedKeys="true" keyProperty="id">
+        insert into bm_project
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="name != null">name,</if>
+            <if test="industryCategory != null">industry_category,</if>
+            <if test="industry != null">industry,</if>
+            <if test="isBackbussiness != null">is_backbussiness,</if>
+            <if test="projectStatus != null">project_status,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="totAmt != null">tot_amt,</if>
+            <if test="isDel != null">is_del,</if>
+            <if test="orderBeginTime != null">order_begin_time,</if>
+            <if test="orderEndTime != null">order_end_time,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="name != null">#{name},</if>
+            <if test="industryCategory != null">#{industryCategory},</if>
+            <if test="industry != null">#{industry},</if>
+            <if test="isBackbussiness != null">#{isBackbussiness},</if>
+            <if test="projectStatus != null">#{projectStatus},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="totAmt != null">#{totAmt},</if>
+            <if test="isDel != null">#{isDel},</if>
+            <if test="orderBeginTime != null">#{orderBeginTime},</if>
+            <if test="orderEndTime != null">#{orderEndTime},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBmProject" parameterType="BmProject">
+        update bm_project
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="name != null">name = #{name},</if>
+            <if test="industryCategory != null">industry_category = #{industryCategory},</if>
+            <if test="industry != null">industry = #{industry},</if>
+            <if test="isBackbussiness != null">is_backbussiness = #{isBackbussiness},</if>
+            <if test="projectStatus != null">project_status = #{projectStatus},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="totAmt != null">tot_amt = #{totAmt},</if>
+            <if test="isDel != null">is_del = #{isDel},</if>
+            <if test="orderBeginTime != null">order_begin_time = #{orderBeginTime},</if>
+            <if test="orderEndTime != null">order_end_time = #{orderEndTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmProjectById" parameterType="Long">
+        delete from bm_project where id = #{id}
+    </delete>
+
+    <delete id="deleteBmProjectByIds" parameterType="String">
+        delete from bm_project where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 322 - 0
ruoyi-system/src/main/resources/mapper/system/project/BmProjectOrderinfoMapper.xml

@@ -0,0 +1,322 @@
+<?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.ruoyi.system.mapper.project.BmProjectOrderinfoMapper">
+    
+    <resultMap type="BmProjectOrderinfo" id="BmProjectOrderinfoResult">
+        <result property="id"    column="id"    />
+        <result property="bmProjectId"    column="bm_project_id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="isDel"    column="is_del"    />
+        <result property="orderDate"    column="order_date"    />
+        <result property="investmentType"    column="investment_type"    />
+        <result property="isOutInvestment"    column="is_out_investment"    />
+        <result property="totInvestment"    column="tot_investment"    />
+        <result property="fixedAssets"    column="fixed_assets"    />
+        <result property="overseasInvestment"    column="overseas_investment"    />
+        <result property="jnswInvestm"    column="jnsw_investm"    />
+        <result property="snswInvestm"    column="snsw_investm"    />
+        <result property="snxwInvestm"    column="snxw_investm"    />
+        <result property="xnInvestm"    column="xn_investm"    />
+        <result property="isIndependentLan"    column="is_independent_lan"    />
+        <result property="landArea"    column="land_area"    />
+        <result property="landAddress"    column="land_address"    />
+        <result property="landPhoto"    column="land_photo"    />
+        <result property="circulationLand"    column="circulation_land"    />
+        <result property="circulationAddres"    column="circulation_addres"    />
+        <result property="circulationDoc"    column="circulation_doc"    />
+        <result property="circulationPhoto"    column="circulation_photo"    />
+        <result property="leasePlantArea"    column="lease_plant_area"    />
+        <result property="leasePlantAddress"    column="lease_plant_address"    />
+        <result property="leasePlantDoc"    column="lease_plant_doc"    />
+        <result property="leasePlantPhoto"    column="lease_plant_photo"    />
+        <result property="agreementTot"    column="agreement_tot"    />
+        <result property="agreementTax"    column="agreement_tax"    />
+        <result property="agreementStartdate"    column="agreement_startdate"    />
+        <result property="agreementEnddate"    column="agreement_enddate"    />
+        <result property="agreementPartner"    column="agreement_partner"    />
+        <result property="partner"    column="partner"    />
+        <result property="agreementUs"    column="agreement_us"    />
+        <result property="signUs"    column="sign_us"    />
+        <result property="agreementThird"    column="agreement_third"    />
+        <result property="third"    column="third"    />
+        <result property="agreementUrl"    column="agreement_url"    />
+        <result property="name"    column="name"    />
+        <result property="legalRep"    column="legal_rep"    />
+        <result property="totMoney"    column="tot_money"    />
+        <result property="address"    column="address"    />
+        <result property="code"    column="code"    />
+        <result property="bussinessUrl"    column="bussiness_url"    />
+        <result property="recordName"    column="record_name"    />
+        <result property="recordCode"    column="record_code"    />
+        <result property="recordTot"    column="record_tot"    />
+        <result property="recordTime"    column="record_time"    />
+        <result property="recordUrl"    column="record_url"    />
+        <result property="contactLeader"    column="contact_leader"    />
+        <result property="contactPhone"    column="contact_phone"    />
+        <result property="contactCompany"    column="contact_company"    />
+        <result property="contactPerson"    column="contact_person"    />
+        <result property="contactPersonPhone"    column="contact_person_phone"    />
+    </resultMap>
+
+    <sql id="selectBmProjectOrderinfoVo">
+        select id, bm_project_id, create_by, create_time, update_by, update_time, is_del, order_date, investment_type, is_out_investment, tot_investment, fixed_assets, overseas_investment, jnsw_investm, snsw_investm, snxw_investm, xn_investm, is_independent_lan, land_area, land_address, land_photo, circulation_land, circulation_addres, circulation_doc, circulation_photo, lease_plant_area, lease_plant_address, lease_plant_doc, lease_plant_photo, agreement_tot, agreement_tax, agreement_startdate, agreement_enddate, agreement_partner, partner, agreement_us, sign_us, agreement_third, third, agreement_url, name, legal_rep, tot_money, address, code, bussiness_url, record_name, record_code, record_tot, record_time, record_url, contact_leader, contact_phone, contact_company, contact_person, contact_person_phone from bm_project_orderinfo
+    </sql>
+
+    <select id="selectBmProjectOrderinfoList" parameterType="BmProjectOrderinfo" resultMap="BmProjectOrderinfoResult">
+        <include refid="selectBmProjectOrderinfoVo"/>
+        <where>  
+            <if test="bmProjectId != null "> and bm_project_id = #{bmProjectId}</if>
+            <if test="isDel != null "> and is_del = #{isDel}</if>
+            <if test="orderDate != null "> and order_date = #{orderDate}</if>
+            <if test="investmentType != null  and investmentType != ''"> and investment_type = #{investmentType}</if>
+            <if test="isOutInvestment != null  and isOutInvestment != ''"> and is_out_investment = #{isOutInvestment}</if>
+            <if test="totInvestment != null "> and tot_investment = #{totInvestment}</if>
+            <if test="fixedAssets != null "> and fixed_assets = #{fixedAssets}</if>
+            <if test="overseasInvestment != null "> and overseas_investment = #{overseasInvestment}</if>
+            <if test="jnswInvestm != null "> and jnsw_investm = #{jnswInvestm}</if>
+            <if test="snswInvestm != null "> and snsw_investm = #{snswInvestm}</if>
+            <if test="snxwInvestm != null "> and snxw_investm = #{snxwInvestm}</if>
+            <if test="xnInvestm != null "> and xn_investm = #{xnInvestm}</if>
+            <if test="isIndependentLan != null  and isIndependentLan != ''"> and is_independent_lan = #{isIndependentLan}</if>
+            <if test="landArea != null "> and land_area = #{landArea}</if>
+            <if test="landAddress != null  and landAddress != ''"> and land_address = #{landAddress}</if>
+            <if test="landPhoto != null  and landPhoto != ''"> and land_photo = #{landPhoto}</if>
+            <if test="circulationLand != null "> and circulation_land = #{circulationLand}</if>
+            <if test="circulationAddres != null  and circulationAddres != ''"> and circulation_addres = #{circulationAddres}</if>
+            <if test="circulationDoc != null  and circulationDoc != ''"> and circulation_doc = #{circulationDoc}</if>
+            <if test="circulationPhoto != null  and circulationPhoto != ''"> and circulation_photo = #{circulationPhoto}</if>
+            <if test="leasePlantArea != null "> and lease_plant_area = #{leasePlantArea}</if>
+            <if test="leasePlantAddress != null  and leasePlantAddress != ''"> and lease_plant_address = #{leasePlantAddress}</if>
+            <if test="leasePlantDoc != null  and leasePlantDoc != ''"> and lease_plant_doc = #{leasePlantDoc}</if>
+            <if test="leasePlantPhoto != null  and leasePlantPhoto != ''"> and lease_plant_photo = #{leasePlantPhoto}</if>
+            <if test="agreementTot != null "> and agreement_tot = #{agreementTot}</if>
+            <if test="agreementTax != null "> and agreement_tax = #{agreementTax}</if>
+            <if test="agreementStartdate != null "> and agreement_startdate = #{agreementStartdate}</if>
+            <if test="agreementEnddate != null "> and agreement_enddate = #{agreementEnddate}</if>
+            <if test="agreementPartner != null  and agreementPartner != ''"> and agreement_partner = #{agreementPartner}</if>
+            <if test="partner != null  and partner != ''"> and partner = #{partner}</if>
+            <if test="agreementUs != null  and agreementUs != ''"> and agreement_us = #{agreementUs}</if>
+            <if test="signUs != null  and signUs != ''"> and sign_us = #{signUs}</if>
+            <if test="agreementThird != null  and agreementThird != ''"> and agreement_third = #{agreementThird}</if>
+            <if test="third != null  and third != ''"> and third = #{third}</if>
+            <if test="agreementUrl != null  and agreementUrl != ''"> and agreement_url = #{agreementUrl}</if>
+            <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
+            <if test="legalRep != null  and legalRep != ''"> and legal_rep = #{legalRep}</if>
+            <if test="totMoney != null "> and tot_money = #{totMoney}</if>
+            <if test="address != null  and address != ''"> and address = #{address}</if>
+            <if test="code != null  and code != ''"> and code = #{code}</if>
+            <if test="bussinessUrl != null  and bussinessUrl != ''"> and bussiness_url = #{bussinessUrl}</if>
+            <if test="recordName != null  and recordName != ''"> and record_name like concat('%', #{recordName}, '%')</if>
+            <if test="recordCode != null  and recordCode != ''"> and record_code = #{recordCode}</if>
+            <if test="recordTot != null "> and record_tot = #{recordTot}</if>
+            <if test="recordTime != null  and recordTime != ''"> and record_time = #{recordTime}</if>
+            <if test="recordUrl != null  and recordUrl != ''"> and record_url = #{recordUrl}</if>
+            <if test="contactLeader != null  and contactLeader != ''"> and contact_leader = #{contactLeader}</if>
+            <if test="contactPhone != null  and contactPhone != ''"> and contact_phone = #{contactPhone}</if>
+            <if test="contactCompany != null  and contactCompany != ''"> and contact_company = #{contactCompany}</if>
+            <if test="contactPerson != null  and contactPerson != ''"> and contact_person = #{contactPerson}</if>
+            <if test="contactPersonPhone != null  and contactPersonPhone != ''"> and contact_person_phone = #{contactPersonPhone}</if>
+        </where>
+    </select>
+    
+    <select id="selectBmProjectOrderinfoById" parameterType="Long" resultMap="BmProjectOrderinfoResult">
+        <include refid="selectBmProjectOrderinfoVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertBmProjectOrderinfo" parameterType="BmProjectOrderinfo" useGeneratedKeys="true" keyProperty="id">
+        insert into bm_project_orderinfo
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="bmProjectId != null">bm_project_id,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="isDel != null">is_del,</if>
+            <if test="orderDate != null">order_date,</if>
+            <if test="investmentType != null">investment_type,</if>
+            <if test="isOutInvestment != null">is_out_investment,</if>
+            <if test="totInvestment != null">tot_investment,</if>
+            <if test="fixedAssets != null">fixed_assets,</if>
+            <if test="overseasInvestment != null">overseas_investment,</if>
+            <if test="jnswInvestm != null">jnsw_investm,</if>
+            <if test="snswInvestm != null">snsw_investm,</if>
+            <if test="snxwInvestm != null">snxw_investm,</if>
+            <if test="xnInvestm != null">xn_investm,</if>
+            <if test="isIndependentLan != null">is_independent_lan,</if>
+            <if test="landArea != null">land_area,</if>
+            <if test="landAddress != null">land_address,</if>
+            <if test="landPhoto != null">land_photo,</if>
+            <if test="circulationLand != null">circulation_land,</if>
+            <if test="circulationAddres != null">circulation_addres,</if>
+            <if test="circulationDoc != null">circulation_doc,</if>
+            <if test="circulationPhoto != null">circulation_photo,</if>
+            <if test="leasePlantArea != null">lease_plant_area,</if>
+            <if test="leasePlantAddress != null">lease_plant_address,</if>
+            <if test="leasePlantDoc != null">lease_plant_doc,</if>
+            <if test="leasePlantPhoto != null">lease_plant_photo,</if>
+            <if test="agreementTot != null">agreement_tot,</if>
+            <if test="agreementTax != null">agreement_tax,</if>
+            <if test="agreementStartdate != null">agreement_startdate,</if>
+            <if test="agreementEnddate != null">agreement_enddate,</if>
+            <if test="agreementPartner != null">agreement_partner,</if>
+            <if test="partner != null">partner,</if>
+            <if test="agreementUs != null">agreement_us,</if>
+            <if test="signUs != null">sign_us,</if>
+            <if test="agreementThird != null">agreement_third,</if>
+            <if test="third != null">third,</if>
+            <if test="agreementUrl != null">agreement_url,</if>
+            <if test="name != null">name,</if>
+            <if test="legalRep != null">legal_rep,</if>
+            <if test="totMoney != null">tot_money,</if>
+            <if test="address != null">address,</if>
+            <if test="code != null">code,</if>
+            <if test="bussinessUrl != null">bussiness_url,</if>
+            <if test="recordName != null">record_name,</if>
+            <if test="recordCode != null">record_code,</if>
+            <if test="recordTot != null">record_tot,</if>
+            <if test="recordTime != null">record_time,</if>
+            <if test="recordUrl != null">record_url,</if>
+            <if test="contactLeader != null">contact_leader,</if>
+            <if test="contactPhone != null">contact_phone,</if>
+            <if test="contactCompany != null">contact_company,</if>
+            <if test="contactPerson != null">contact_person,</if>
+            <if test="contactPersonPhone != null">contact_person_phone,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="bmProjectId != null">#{bmProjectId},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="isDel != null">#{isDel},</if>
+            <if test="orderDate != null">#{orderDate},</if>
+            <if test="investmentType != null">#{investmentType},</if>
+            <if test="isOutInvestment != null">#{isOutInvestment},</if>
+            <if test="totInvestment != null">#{totInvestment},</if>
+            <if test="fixedAssets != null">#{fixedAssets},</if>
+            <if test="overseasInvestment != null">#{overseasInvestment},</if>
+            <if test="jnswInvestm != null">#{jnswInvestm},</if>
+            <if test="snswInvestm != null">#{snswInvestm},</if>
+            <if test="snxwInvestm != null">#{snxwInvestm},</if>
+            <if test="xnInvestm != null">#{xnInvestm},</if>
+            <if test="isIndependentLan != null">#{isIndependentLan},</if>
+            <if test="landArea != null">#{landArea},</if>
+            <if test="landAddress != null">#{landAddress},</if>
+            <if test="landPhoto != null">#{landPhoto},</if>
+            <if test="circulationLand != null">#{circulationLand},</if>
+            <if test="circulationAddres != null">#{circulationAddres},</if>
+            <if test="circulationDoc != null">#{circulationDoc},</if>
+            <if test="circulationPhoto != null">#{circulationPhoto},</if>
+            <if test="leasePlantArea != null">#{leasePlantArea},</if>
+            <if test="leasePlantAddress != null">#{leasePlantAddress},</if>
+            <if test="leasePlantDoc != null">#{leasePlantDoc},</if>
+            <if test="leasePlantPhoto != null">#{leasePlantPhoto},</if>
+            <if test="agreementTot != null">#{agreementTot},</if>
+            <if test="agreementTax != null">#{agreementTax},</if>
+            <if test="agreementStartdate != null">#{agreementStartdate},</if>
+            <if test="agreementEnddate != null">#{agreementEnddate},</if>
+            <if test="agreementPartner != null">#{agreementPartner},</if>
+            <if test="partner != null">#{partner},</if>
+            <if test="agreementUs != null">#{agreementUs},</if>
+            <if test="signUs != null">#{signUs},</if>
+            <if test="agreementThird != null">#{agreementThird},</if>
+            <if test="third != null">#{third},</if>
+            <if test="agreementUrl != null">#{agreementUrl},</if>
+            <if test="name != null">#{name},</if>
+            <if test="legalRep != null">#{legalRep},</if>
+            <if test="totMoney != null">#{totMoney},</if>
+            <if test="address != null">#{address},</if>
+            <if test="code != null">#{code},</if>
+            <if test="bussinessUrl != null">#{bussinessUrl},</if>
+            <if test="recordName != null">#{recordName},</if>
+            <if test="recordCode != null">#{recordCode},</if>
+            <if test="recordTot != null">#{recordTot},</if>
+            <if test="recordTime != null">#{recordTime},</if>
+            <if test="recordUrl != null">#{recordUrl},</if>
+            <if test="contactLeader != null">#{contactLeader},</if>
+            <if test="contactPhone != null">#{contactPhone},</if>
+            <if test="contactCompany != null">#{contactCompany},</if>
+            <if test="contactPerson != null">#{contactPerson},</if>
+            <if test="contactPersonPhone != null">#{contactPersonPhone},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBmProjectOrderinfo" parameterType="BmProjectOrderinfo">
+        update bm_project_orderinfo
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="bmProjectId != null">bm_project_id = #{bmProjectId},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="isDel != null">is_del = #{isDel},</if>
+            <if test="orderDate != null">order_date = #{orderDate},</if>
+            <if test="investmentType != null">investment_type = #{investmentType},</if>
+            <if test="isOutInvestment != null">is_out_investment = #{isOutInvestment},</if>
+            <if test="totInvestment != null">tot_investment = #{totInvestment},</if>
+            <if test="fixedAssets != null">fixed_assets = #{fixedAssets},</if>
+            <if test="overseasInvestment != null">overseas_investment = #{overseasInvestment},</if>
+            <if test="jnswInvestm != null">jnsw_investm = #{jnswInvestm},</if>
+            <if test="snswInvestm != null">snsw_investm = #{snswInvestm},</if>
+            <if test="snxwInvestm != null">snxw_investm = #{snxwInvestm},</if>
+            <if test="xnInvestm != null">xn_investm = #{xnInvestm},</if>
+            <if test="isIndependentLan != null">is_independent_lan = #{isIndependentLan},</if>
+            <if test="landArea != null">land_area = #{landArea},</if>
+            <if test="landAddress != null">land_address = #{landAddress},</if>
+            <if test="landPhoto != null">land_photo = #{landPhoto},</if>
+            <if test="circulationLand != null">circulation_land = #{circulationLand},</if>
+            <if test="circulationAddres != null">circulation_addres = #{circulationAddres},</if>
+            <if test="circulationDoc != null">circulation_doc = #{circulationDoc},</if>
+            <if test="circulationPhoto != null">circulation_photo = #{circulationPhoto},</if>
+            <if test="leasePlantArea != null">lease_plant_area = #{leasePlantArea},</if>
+            <if test="leasePlantAddress != null">lease_plant_address = #{leasePlantAddress},</if>
+            <if test="leasePlantDoc != null">lease_plant_doc = #{leasePlantDoc},</if>
+            <if test="leasePlantPhoto != null">lease_plant_photo = #{leasePlantPhoto},</if>
+            <if test="agreementTot != null">agreement_tot = #{agreementTot},</if>
+            <if test="agreementTax != null">agreement_tax = #{agreementTax},</if>
+            <if test="agreementStartdate != null">agreement_startdate = #{agreementStartdate},</if>
+            <if test="agreementEnddate != null">agreement_enddate = #{agreementEnddate},</if>
+            <if test="agreementPartner != null">agreement_partner = #{agreementPartner},</if>
+            <if test="partner != null">partner = #{partner},</if>
+            <if test="agreementUs != null">agreement_us = #{agreementUs},</if>
+            <if test="signUs != null">sign_us = #{signUs},</if>
+            <if test="agreementThird != null">agreement_third = #{agreementThird},</if>
+            <if test="third != null">third = #{third},</if>
+            <if test="agreementUrl != null">agreement_url = #{agreementUrl},</if>
+            <if test="name != null">name = #{name},</if>
+            <if test="legalRep != null">legal_rep = #{legalRep},</if>
+            <if test="totMoney != null">tot_money = #{totMoney},</if>
+            <if test="address != null">address = #{address},</if>
+            <if test="code != null">code = #{code},</if>
+            <if test="bussinessUrl != null">bussiness_url = #{bussinessUrl},</if>
+            <if test="recordName != null">record_name = #{recordName},</if>
+            <if test="recordCode != null">record_code = #{recordCode},</if>
+            <if test="recordTot != null">record_tot = #{recordTot},</if>
+            <if test="recordTime != null">record_time = #{recordTime},</if>
+            <if test="recordUrl != null">record_url = #{recordUrl},</if>
+            <if test="contactLeader != null">contact_leader = #{contactLeader},</if>
+            <if test="contactPhone != null">contact_phone = #{contactPhone},</if>
+            <if test="contactCompany != null">contact_company = #{contactCompany},</if>
+            <if test="contactPerson != null">contact_person = #{contactPerson},</if>
+            <if test="contactPersonPhone != null">contact_person_phone = #{contactPersonPhone},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmProjectOrderinfoById" parameterType="Long">
+        delete from bm_project_orderinfo where id = #{id}
+    </delete>
+
+    <delete id="deleteBmProjectOrderinfoByIds" parameterType="String">
+        delete from bm_project_orderinfo where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 97 - 0
ruoyi-system/src/main/resources/mapper/system/project/BmProjectPersionMapper.xml

@@ -0,0 +1,97 @@
+<?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.ruoyi.system.mapper.project.BmProjectPersionMapper">
+    
+    <resultMap type="BmProjectPersion" id="BmProjectPersionResult">
+        <result property="id"    column="id"    />
+        <result property="bmProjectId"    column="bm_project_id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="isDel"    column="is_del"    />
+        <result property="name"    column="name"    />
+        <result property="address"    column="address"    />
+        <result property="idCode"    column="idcode"    />
+        <result property="phone"    column="phone"    />
+    </resultMap>
+
+    <sql id="selectBmProjectPersionVo">
+        select id, bm_project_id, create_by, create_time, update_by, update_time, is_del, name, address, idcode, phone from bm_project_persion
+    </sql>
+
+    <select id="selectBmProjectPersionList" parameterType="BmProjectPersion" resultMap="BmProjectPersionResult">
+        <include refid="selectBmProjectPersionVo"/>
+        <where>  
+            <if test="bmProjectId != null "> and bm_project_id = #{bmProjectId}</if>
+            <if test="isDel != null "> and is_del = #{isDel}</if>
+            <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
+            <if test="address != null  and address != ''"> and address = #{address}</if>
+            <if test="idCode != null  and idCode != ''"> and idcode = #{idCode}</if>
+            <if test="phone != null  and phone != ''"> and phone = #{phone}</if>
+        </where>
+    </select>
+    
+    <select id="selectBmProjectPersionById" parameterType="Long" resultMap="BmProjectPersionResult">
+        <include refid="selectBmProjectPersionVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertBmProjectPersion" parameterType="BmProjectPersion">
+        insert into bm_project_persion
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="bmProjectId != null">bm_project_id,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="isDel != null">is_del,</if>
+            <if test="name != null">name,</if>
+            <if test="address != null">address,</if>
+            <if test="idCode != null">idcode,</if>
+            <if test="phone != null">phone,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="bmProjectId != null">#{bmProjectId},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="isDel != null">#{isDel},</if>
+            <if test="name != null">#{name},</if>
+            <if test="address != null">#{address},</if>
+            <if test="idCode != null">#{idCode},</if>
+            <if test="phone != null">#{phone},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBmProjectPersion" parameterType="BmProjectPersion">
+        update bm_project_persion
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="bmProjectId != null">bm_project_id = #{bmProjectId},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="isDel != null">is_del = #{isDel},</if>
+            <if test="name != null">name = #{name},</if>
+            <if test="address != null">address = #{address},</if>
+            <if test="idCode != null">idcode = #{idCode},</if>
+            <if test="phone != null">phone = #{phone},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmProjectPersionById" parameterType="Long">
+        delete from bm_project_persion where id = #{id}
+    </delete>
+
+    <delete id="deleteBmProjectPersionByIds" parameterType="String">
+        delete from bm_project_persion where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 102 - 0
ruoyi-system/src/main/resources/mapper/system/project/BmProjectReferralMapper.xml

@@ -0,0 +1,102 @@
+<?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.ruoyi.system.mapper.project.BmProjectReferralMapper">
+    
+    <resultMap type="BmProjectReferral" id="BmProjectReferralResult">
+        <result property="id"    column="id"    />
+        <result property="bmProjectId"    column="bm_project_id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="isDel"    column="is_del"    />
+        <result property="phone"    column="phone"    />
+        <result property="sysDeptId"    column="sys_dept_id"    />
+        <result property="investmentAllcocation"    column="investment_allcocation"    />
+        <result property="referral"    column="referral"    />
+        <result property="referralPhone"    column="referral_phone"    />
+    </resultMap>
+
+    <sql id="selectBmProjectReferralVo">
+        select id, bm_project_id, create_by, create_time, update_by, update_time, is_del, phone, sys_dept_id, investment_allcocation, referral, referral_phone from bm_project_referral
+    </sql>
+
+    <select id="selectBmProjectReferralList" parameterType="BmProjectReferral" resultMap="BmProjectReferralResult">
+        <include refid="selectBmProjectReferralVo"/>
+        <where>  
+            <if test="bmProjectId != null "> and bm_project_id = #{bmProjectId}</if>
+            <if test="isDel != null "> and is_del = #{isDel}</if>
+            <if test="phone != null  and phone != ''"> and phone = #{phone}</if>
+            <if test="sysDeptId != null "> and sys_dept_id = #{sysDeptId}</if>
+            <if test="investmentAllcocation != null "> and investment_allcocation = #{investmentAllcocation}</if>
+            <if test="referral != null  and referral != ''"> and referral = #{referral}</if>
+            <if test="referralPhone != null  and referralPhone != ''"> and referral_phone = #{referralPhone}</if>
+        </where>
+    </select>
+    
+    <select id="selectBmProjectReferralById" parameterType="Long" resultMap="BmProjectReferralResult">
+        <include refid="selectBmProjectReferralVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertBmProjectReferral" parameterType="BmProjectReferral">
+        insert into bm_project_referral
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="bmProjectId != null">bm_project_id,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="isDel != null">is_del,</if>
+            <if test="phone != null">phone,</if>
+            <if test="sysDeptId != null">sys_dept_id,</if>
+            <if test="investmentAllcocation != null">investment_allcocation,</if>
+            <if test="referral != null">referral,</if>
+            <if test="referralPhone != null">referral_phone,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="bmProjectId != null">#{bmProjectId},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="isDel != null">#{isDel},</if>
+            <if test="phone != null">#{phone},</if>
+            <if test="sysDeptId != null">#{sysDeptId},</if>
+            <if test="investmentAllcocation != null">#{investmentAllcocation},</if>
+            <if test="referral != null">#{referral},</if>
+            <if test="referralPhone != null">#{referralPhone},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBmProjectReferral" parameterType="BmProjectReferral">
+        update bm_project_referral
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="bmProjectId != null">bm_project_id = #{bmProjectId},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="isDel != null">is_del = #{isDel},</if>
+            <if test="phone != null">phone = #{phone},</if>
+            <if test="sysDeptId != null">sys_dept_id = #{sysDeptId},</if>
+            <if test="investmentAllcocation != null">investment_allcocation = #{investmentAllcocation},</if>
+            <if test="referral != null">referral = #{referral},</if>
+            <if test="referralPhone != null">referral_phone = #{referralPhone},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBmProjectReferralById" parameterType="Long">
+        delete from bm_project_referral where id = #{id}
+    </delete>
+
+    <delete id="deleteBmProjectReferralByIds" parameterType="String">
+        delete from bm_project_referral where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 824 - 0
ruoyi-ui/src/views/management/nstruction/index.vue

@@ -0,0 +1,824 @@
+<template>
+
+  <div class="app-conta">
+
+
+  <div class="nauer">
+
+
+
+     <!-- 在建项目 -->
+     <div>
+       <div class="nstruction">
+          <div class="nstruction_nav">
+            <p>
+              <span>*</span>
+              <span>合同约定开工时间:</span>
+            </p>
+            <p>23</p>
+          </div>
+          <div class="nstruction_navne">
+            <p>
+              <span>*</span>
+              <span>合同约定开工时间:</span>
+            </p>
+            <p></p>
+          </div>
+
+       </div>
+       <div class="naue_tab">
+        <p @click="tabClid(index)" v-for="(item,index) in tabNume"  :key="index" :class="[tab == index? 'p' : '']">{{item}}</p>
+       </div>
+       <!-- 内容 -->
+       <div class="namjeu" >
+         <el-form :model="queryParamstwr" ref="queryForm" :inline="true" v-show="showSearch" label-width="135px" label-position="center" class="manager_form">
+          <el-form-item label="施工许可证:" prop="configType" class="maget_ty">
+              <div class="forieu" style="width: 618px;">
+               <div class="bure burert">
+                 <el-upload
+                   action="#"
+                    list-type="picture-card"
+                    :auto-upload="false">
+                      <!-- <i slot="default" class="el-icon-plus"></i> -->
+                      <div slot="file" slot-scope="{file}" style="height: 78px;">
+                        <img
+                          class="el-upload-list__item-thumbnail"
+                          :src="file.url" alt=""
+                        >
+                        <span class="el-upload-list__item-actions">
+                          <span
+                            class="el-upload-list__item-preview"
+                            @click="handlePictureCardPreview(file)"
+                          >
+                            <i class="el-icon-zoom-in"></i>
+                          </span>
+                         <!-- <span
+                            v-if="!disabled"
+                            class="el-upload-list__item-delete"
+                            @click="handleDownload(file)"
+                          >
+                            <i class="el-icon-download"></i>
+                          </span> -->
+                          <span
+                            v-if="!disabled"
+                            class="el-upload-list__item-delete"
+                            @click="handleRemove(file)"
+                          >
+                            <i class="el-icon-delete"></i>
+                          </span>
+                        </span>
+
+                      </div>
+                   <div class="ijeut">
+                     <el-button plain slot="trigger" size="small" type="primary" >选择图片</el-button>
+                      <!-- margin-top: 15%; transform: translateY(-50%); -->
+                     <el-button style="margin-left: 10px;" size="small" type="primary" @click="submitUpload">开始上传</el-button>
+                   </div>
+                   <!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> -->
+                 </el-upload>
+               </div>
+              </div>
+            </el-form-item>
+            <el-form-item label="是否开工建设:" prop="configType">
+              <el-select v-model="queryParams.configType" placeholder="系统内置" clearable size="small" style="width: 458px">
+                <el-option
+                  v-for="dict in typeOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                />
+              </el-select>
+            </el-form-item>
+             <el-form-item label=" 开工日期:">
+                  <el-date-picker type="date" placeholder="选择日期" v-model="form.date1" style="width: 335px"></el-date-picker>
+              </el-form-item>
+              <el-form-item label="预计完工日期:">
+                   <el-date-picker type="date" placeholder="选择日期" v-model="form.date1" style="width: 335px"></el-date-picker>
+               </el-form-item>
+               <el-form-item label="施工合同:" prop="configType" class="maget_ty">
+                   <div class="forieu" style="width: 618px;">
+                    <div class="bure burert">
+                      <el-upload
+                        action="#"
+                         list-type="picture-card"
+                         :auto-upload="false">
+                           <!-- <i slot="default" class="el-icon-plus"></i> -->
+                           <div slot="file" slot-scope="{file}" style="height: 78px;">
+                             <img
+                               class="el-upload-list__item-thumbnail"
+                               :src="file.url" alt=""
+                             >
+                             <span class="el-upload-list__item-actions">
+                               <span
+                                 class="el-upload-list__item-preview"
+                                 @click="handlePictureCardPreview(file)"
+                               >
+                                 <i class="el-icon-zoom-in"></i>
+                               </span>
+                              <!-- <span
+                                 v-if="!disabled"
+                                 class="el-upload-list__item-delete"
+                                 @click="handleDownload(file)"
+                               >
+                                 <i class="el-icon-download"></i>
+                               </span> -->
+                               <span
+                                 v-if="!disabled"
+                                 class="el-upload-list__item-delete"
+                                 @click="handleRemove(file)"
+                               >
+                                 <i class="el-icon-delete"></i>
+                               </span>
+                             </span>
+                    
+                           </div>
+                        <div class="ijeut">
+                          <el-button plain slot="trigger" size="small" type="primary" >选择图片</el-button>
+                           <!-- margin-top: 15%; transform: translateY(-50%); -->
+                          <el-button style="margin-left: 10px;" size="small" type="primary" @click="submitUpload">开始上传</el-button>
+                        </div>
+                        <!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> -->
+                      </el-upload>
+                    </div>
+                   </div>
+                 </el-form-item>
+          </el-form>
+          <p class="kaieu">开工照片:</p>
+          <p class="kaieu_tw"><i class="el-icon-circle-plus-outline"></i> 添加企业</p>
+          <el-table v-loading="loading" :data="configList" >
+            <!-- <el-table-column type="selection" width="55" align="center" /> -->
+            <el-table-column label="时间" align="center" prop="configId" />
+            <el-table-column label="进度" align="center" prop="configName" :show-overflow-tooltip="true" />
+            <el-table-column label="照片" align="center" >
+              <!-- class-name="small-padding fixed-width" -->
+              <template slot-scope="scope">
+                <el-button
+                  size="mini"
+                  type="warning"
+                  @click="handleUpdate(scope.row)"
+                  v-hasPermi="['system:config:edit']"
+                >上传</el-button>
+              </template>
+            </el-table-column>
+            <el-table-column label="操作" align="center" >
+              <!-- class-name="small-padding fixed-width" -->
+              <template slot-scope="scope">
+                <el-button
+                  size="mini"
+                  type="danger"
+                  @click="handleDelete(scope.row)"
+                  v-hasPermi="['system:config:remove']"
+                >删除</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+
+       </div>
+
+       <div class="equipment" v-if="false">
+            <p class="kaieu_tw"><i class="el-icon-circle-plus-outline"></i> 添加设备安装信息</p>
+          <el-table v-loading="loading" :data="configList" >
+            <!-- <el-table-column type="selection" width="55" align="center" /> -->
+            <el-table-column label="时间" align="center" prop="configId" />
+            <el-table-column label="进度" align="center" prop="configName" :show-overflow-tooltip="true" />
+            <el-table-column label="照片" align="center" >
+              <!-- class-name="small-padding fixed-width" -->
+              <template slot-scope="scope">
+                <el-button
+                  size="mini"
+                  type="warning"
+                  @click="handleUpdate(scope.row)"
+                  v-hasPermi="['system:config:edit']"
+                >上传</el-button>
+              </template>
+            </el-table-column>
+            <el-table-column label="操作" align="center" >
+              <!-- class-name="small-padding fixed-width" -->
+              <template slot-scope="scope">
+                <el-button
+                  size="mini"
+                  type="danger"
+                  @click="handleDelete(scope.row)"
+                  v-hasPermi="['system:config:remove']"
+                >删除</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+
+       </div>
+
+     <div class="funding" v-if="false">
+        <p class="kaieu">到资金额合计:  万元</p>
+          <p class="kaieu_tw"><i class="el-icon-circle-plus-outline"></i> 添加设备安装信息</p>
+        <el-table v-loading="loading" :data="configList" >
+          <!-- <el-table-column type="selection" width="55" align="center" /> -->
+          <el-table-column label="时间" align="center" prop="configId" />
+          <el-table-column label="进度" align="center" prop="configName" :show-overflow-tooltip="true" />
+          <el-table-column label="照片" align="center" >
+            <!-- class-name="small-padding fixed-width" -->
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                type="warning"
+                @click="handleUpdate(scope.row)"
+                v-hasPermi="['system:config:edit']"
+              >上传</el-button>
+            </template>
+          </el-table-column>
+          <el-table-column label="操作" align="center" >
+            <!-- class-name="small-padding fixed-width" -->
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                type="danger"
+                @click="handleDelete(scope.row)"
+                v-hasPermi="['system:config:remove']"
+              >删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+
+     </div>
+     </div>
+     <div class="namjeu" v-if="false">
+       <el-form :model="queryParamstwr" ref="queryForm" :inline="true" v-show="showSearch" label-width="135px" label-position="center" class="manager_form">
+           <el-form-item label=" 入统时间:">
+                <el-date-picker type="date" placeholder="选择日期" v-model="form.date1" style="width: 335px"></el-date-picker>
+            </el-form-item>
+             <el-form-item label="施工许可证:" prop="configType" class="maget_ty maget_tyty">
+                 <div class="forieu" style="width: 618px;">
+                  <div class="bure burert">
+                   <el-upload
+                     action="#"
+                      list-type="picture-card"
+                      :auto-upload="false">
+                        <!-- <i slot="default" class="el-icon-plus"></i> -->
+                        <div slot="file" slot-scope="{file}" style="height: 78px;">
+                          <img
+                            class="el-upload-list__item-thumbnail"
+                            :src="file.url" alt=""
+                          >
+                          <span class="el-upload-list__item-actions">
+                            <span
+                              class="el-upload-list__item-preview"
+                              @click="handlePictureCardPreview(file)"
+                            >
+                              <i class="el-icon-zoom-in"></i>
+                            </span>
+                           <!-- <span
+                              v-if="!disabled"
+                              class="el-upload-list__item-delete"
+                              @click="handleDownload(file)"
+                            >
+                              <i class="el-icon-download"></i>
+                            </span> -->
+                            <span
+                              v-if="!disabled"
+                              class="el-upload-list__item-delete"
+                              @click="handleRemove(file)"
+                            >
+                              <i class="el-icon-delete"></i>
+                            </span>
+                          </span>
+
+                        </div>
+                     <div class="ijeut">
+                       <el-button plain slot="trigger" size="small" type="primary" >选择图片</el-button>
+                        <!-- margin-top: 15%; transform: translateY(-50%); -->
+                       <el-button style="margin-left: 10px;" size="small" type="primary" @click="submitUpload">开始上传</el-button>
+                     </div>
+                     <!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> -->
+                   </el-upload>
+
+                  </div>
+                 </div>
+               </el-form-item>
+        </el-form>
+
+
+     </div>
+
+
+  </div>
+
+
+<el-dialog :visible.sync="dialogVisible">
+                     <img width="100%" :src="dialogImageUrl" alt="">
+                   </el-dialog>
+    <!-- 添加或修改参数配置对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="150px">
+        <el-form-item label="企业名称" prop="configName">
+          <el-input v-model="form.configName" placeholder="请输入企业名称" />
+        </el-form-item>
+        <el-form-item label="企业所在地" prop="configKey">
+          <el-input v-model="form.configKey" placeholder="请输入参数键名" />
+        </el-form-item>
+        <el-form-item label="法人代表姓名" prop="configValue">
+          <el-input v-model="form.configValue" placeholder="请输入参数键值" />
+        </el-form-item>
+        <el-form-item label="系统内置" prop="configType">
+          <el-radio-group v-model="form.configType">
+            <el-radio
+              v-for="dict in typeOptions"
+              :key="dict.dictValue"
+              :label="dict.dictValue"
+            >{{dict.dictLabel}}</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="统一社会信用代码" prop="remark">
+          <el-input v-model="form.remark"  placeholder="请输入统一社会信用代码" />
+        </el-form-item>
+        <el-form-item label="联系方式" prop="remark">
+          <el-input v-model="form.remark"  placeholder="请输入联系方式" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listConfig, getConfig, delConfig, addConfig, updateConfig, exportConfig, clearCache } from "@/api/system/config";
+export default {
+  name: "Config",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      //步骤条
+      naueactive:2,
+      tab:1,
+      tabNume:['线索信息','签约信息','在建信息','投产信息'],
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 参数表格数据
+      configList: [],
+      // 弹出层标题
+      title: "",
+      dialogImageUrl: '',
+      dialogVisible: false,
+      disabled: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        configName: undefined,
+        configKey: undefined,
+        configType: undefined
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        configName: [
+          { required: true, message: "参数名称不能为空", trigger: "blur" }
+        ],
+        configKey: [
+          { required: true, message: "参数键名不能为空", trigger: "blur" }
+        ],
+        configValue: [
+          { required: true, message: "参数键值不能为空", trigger: "blur" }
+        ]
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getDicts("sys_yes_no").then(response => {
+      this.typeOptions = response.data;
+    });
+  },
+  methods: {
+    submitUpload() {
+      this.$refs.upload.submit();
+    },
+    handleRemove(file) {
+           console.log(file);
+         },
+         handlePictureCardPreview(file) {
+           this.dialogImageUrl = file.url;
+           this.dialogVisible = true;
+         },
+         handleDownload(file) {
+           console.log(file);
+         },
+    /** 查询参数列表 */
+    getList() {
+      this.loading = true;
+      listConfig(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
+          this.configList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        }
+      );
+    },
+    // 参数系统内置字典翻译
+    typeFormat(row, column) {
+      return this.selectDictLabel(this.typeOptions, row.configType);
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        configId: undefined,
+        configName: undefined,
+        configKey: undefined,
+        configValue: undefined,
+        configType: "Y",
+        remark: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRange = [];
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加参数";
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.configId)
+      this.single = selection.length!=1
+      this.multiple = !selection.length
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const configId = row.configId || this.ids
+      getConfig(configId).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改参数";
+      });
+    },
+    /** 提交按钮 */
+    submitForm: function() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.configId != undefined) {
+            updateConfig(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addConfig(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const configIds = row.configId || this.ids;
+      this.$confirm('是否确认删除参数编号为"' + configIds + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delConfig(configIds);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有参数数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportConfig(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        })
+    },
+    /** 清理缓存按钮操作 */
+    handleClearCache() {
+      clearCache().then(response => {
+        this.msgSuccess("清理成功");
+      });
+    },
+    //tab
+    tabClid(index){
+    this.tab = index
+    // this.$router.push('/tab');
+    }
+  }
+};
+</script>
+<style rel="stylesheet/scss" lang="scss">
+  .buiy{
+    // width: 75px !important;
+    // height: 30px !important;
+    // line-height: 30px !important;
+  }
+  .ijeut{
+    display: flex;
+    height: 78px;
+    align-items: center;
+  }
+
+  .burert{
+    .el-upload--picture-card{
+      height: 78px;
+      line-height: 78px;
+      width: 80px;
+      vertical-align:center;
+      border: 0 !important;
+      background-color: #fff;
+    }
+    .el-upload-list--picture-card .el-upload-list__item{
+      height: 78px !important;
+      width: 78px !important;
+    }
+  }
+
+  .manager_form{
+    .manager_lab{
+      .el-form-item__label{
+        width: 145px !important;
+      }
+    }
+    .maneg_lar{
+      position: relative;
+      .el-form-item__label{
+        width: 134px !important;
+      }
+      span{
+        position: absolute;
+        left: -95%;
+      }
+    }
+    .manager_labtwo{
+      .el-form-item__label{
+        width: 244px !important;
+      }
+    }
+    .manager_labthre{
+      // .el-form-item{
+        .el-form-item__label{
+          width: 130px !important;
+        }
+        margin-right: 40px !important;
+      // }
+    }
+    .ieuyr{
+      .el-textarea__inner{
+        height: 80px !important;
+      }
+    }
+    .mage_ter{
+      .el-form-item__label{
+        width: 513px !important;
+      }
+    }
+    .maget_ty{
+      .el-form-item__label{
+        width: 135px !important;
+      }
+    }
+    .forieu{
+     border: 1px solid #DCDFE6;
+     border-radius: 4px;
+     width: 480px;
+     height: 100px !important;
+     position: relative;
+
+     .bure{
+       display: flex;
+       // position: absolute;
+       // height: 100%;
+       // right: 20px;
+       // top: 50%;
+       // transform: translateY(-50%);
+       padding: 10px 0;
+     }
+     .burert{
+       display: flex;
+       position: absolute;
+       height: 100%;
+       left: 20px;
+       top: 50%;
+       transform: translateY(-50%);
+     }
+    }
+  }
+  .lage_div{
+    padding-left: 15px;
+    display: flex;
+    align-items: center;
+    margin-bottom: 22px;
+    .el-form-item{
+      margin-bottom: 0 !important;
+    }
+  }
+.app-conta{
+  .header{
+    padding-left: 22px;
+    height: 45px;
+    line-height: 40px;
+    background-color: #F1F1F1;
+    font-size: 18px;
+    color: #343434;
+    margin-bottom: 40px;
+  }
+  .nauer{
+    .nuae_wtu{
+      display: flex;
+      justify-content: center;
+      align-content: center;
+     .naue_one{
+       width: 30%;
+       p{
+         font-size: 12px;
+         font-family: PingFang SC;
+         font-weight: 400;
+         color: #343434;
+       }
+       .naue_name{
+         font-size: 14px;
+         font-family: PingFang SC;
+         font-weight: bold;
+         color: #0669B2;
+         margin-bottom: 30px;
+       }
+     }
+     .naue_two{
+       flex: 1;
+       padding-top: 20px;
+       // display: flex;
+       // align-items: center;
+       // justify-content: center;
+     }
+    }
+    //tab
+    .naue_tab{
+      border-bottom: 1px solid #CDCDCD;
+      display: flex;
+      margin-top: 30px;
+      padding: 0 10px;
+      margin-bottom: 30px;
+      p{
+        font-size: 12px;
+        font-family: PingFang SC;
+        font-weight: 400;
+        color: #343434;
+        padding: 11px 15px;
+        margin: 0;
+      }
+      .p{
+        border-bottom: 2px solid #1C84C6;
+        margin-bottom: -1px;
+      }
+    }
+    .mation{
+
+      .enterprise{
+        font-size: 14px;
+        font-family: PingFang SC;
+        font-weight: bold;
+        color: #1C84C6;
+        margin-top: 25px;
+        margin-bottom: 20px;
+      }
+      .enterprise_tw{
+        i{
+          margin-right: 5px;
+        }
+        font-size: 14px;
+        font-family: PingFang SC;
+        font-weight: 600;
+        color: #666666;
+      }
+    }
+
+  }
+  .nvestor{
+    margin-bottom: 10px;
+    p{
+      margin:0;
+      font-size: 14px;
+      font-family: PingFang SC;
+      font-weight: bold;
+      color: #343434;
+      height: 24px;
+      line-height: 24px;
+      border-left: 3px solid #1C84C6;
+      padding-left: 13px;
+      i{
+        color: red;
+      }
+    }
+  }
+  .souu{
+    font-size: 14px;
+    font-family: PingFang SC;
+    font-weight: 400;
+    color: #343434;
+    margin-left: 5px;
+  }
+}
+//在建项目
+.nstruction{
+  display: flex;
+  align-items: center;
+ .nstruction_nav{
+   display: flex;
+   align-items: center;
+   p:nth-child(1){
+     margin-right: 10px;
+     span{
+       font-size: 14px;
+       font-family: PingFang SC;
+       font-weight: bold;
+       color: #343434;
+     }
+     span:nth-child(1){
+       color: #DF0024;
+     }
+   }
+   p:nth-child(2){
+     width: 233px;
+     height: 30px;
+     line-height: 30px;
+     border: 1px solid #CDCDCD;
+     border-radius: 3px;
+     padding-left: 14px;
+   }
+
+ }
+ .nstruction_navne{
+   margin-left: 50px;
+   display: flex;
+   align-items: center;
+   p:nth-child(1){
+      margin-right: 10px;
+     span{
+       font-size: 14px;
+       font-family: PingFang SC;
+       font-weight: bold;
+       color: #343434;
+     }
+     span:nth-child(1){
+       color: #DF0024;
+     }
+   }
+   p:nth-child(2){
+     width: 233px;
+     height: 30px;
+     line-height: 30px;
+     border: 1px solid #CDCDCD;
+     border-radius: 3px;
+     padding-left: 14px;
+   }
+
+ }
+}
+.kaieu{
+  padding-left: 60px;
+  font-size: 14px;
+  font-family: PingFang SC;
+  font-weight: 800;
+  color: #343434;
+}
+.kaieu_tw{
+  padding-left: 60px;
+  font-size: 14px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #666666;
+}
+</style>

+ 606 - 0
ruoyi-ui/src/views/management/roduction/index.vue

@@ -0,0 +1,606 @@
+<template>
+
+  <div class="app-conta">
+
+
+  <div class="nauer">
+
+
+
+     <!-- 在建项目 -->
+     <div>
+       <div class="nstruction">
+
+       <!-- 内容 -->
+       <div class="namjeu" >
+         <el-form :model="queryParamstwr" ref="queryForm" :inline="true" v-show="showSearch" label-width="135px" label-position="center" class="manager_form">
+         <el-form-item label=" 已完成投资额:">
+              <el-input
+                v-model="queryParams.configName"
+                placeholder="请输入已完成投资额"
+                clearable
+                size="small"
+                style="width: 335px"
+                @keyup.enter.native="handleQuery"
+              />
+          </el-form-item>
+          <el-form-item label="设备投资额度:">
+               <el-input
+                 v-model="queryParams.configName"
+                 placeholder="请输入设备投资额度"
+                 clearable
+                 size="small"
+                 style="width: 335px"
+                 @keyup.enter.native="handleQuery"
+               />
+           </el-form-item>
+           <el-form-item label="投产时间:">
+                <el-date-picker type="date" placeholder="选择日期" v-model="form.date1" style="width: 335px"></el-date-picker>
+            </el-form-item>
+          <el-form-item label="施工许可证:" prop="configType" class="maget_ty">
+              <div class="forieu" style="width: 618px;">
+               <div class="bure burert">
+                 <el-upload
+                   action="#"
+                    list-type="picture-card"
+                    :auto-upload="false">
+                      <!-- <i slot="default" class="el-icon-plus"></i> -->
+                      <div slot="file" slot-scope="{file}" style="height: 78px;">
+                        <img
+                          class="el-upload-list__item-thumbnail"
+                          :src="file.url" alt=""
+                        >
+                        <span class="el-upload-list__item-actions">
+                          <span
+                            class="el-upload-list__item-preview"
+                            @click="handlePictureCardPreview(file)"
+                          >
+                            <i class="el-icon-zoom-in"></i>
+                          </span>
+                         <!-- <span
+                            v-if="!disabled"
+                            class="el-upload-list__item-delete"
+                            @click="handleDownload(file)"
+                          >
+                            <i class="el-icon-download"></i>
+                          </span> -->
+                          <span
+                            v-if="!disabled"
+                            class="el-upload-list__item-delete"
+                            @click="handleRemove(file)"
+                          >
+                            <i class="el-icon-delete"></i>
+                          </span>
+                        </span>
+
+                      </div>
+                   <div class="ijeut">
+                     <el-button plain slot="trigger" size="small" type="primary" >选择图片</el-button>
+                      <!-- margin-top: 15%; transform: translateY(-50%); -->
+                     <el-button style="margin-left: 10px;" size="small" type="primary" @click="submitUpload">开始上传</el-button>
+                   </div>
+                   <!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> -->
+                 </el-upload>
+               </div>
+              </div>
+            </el-form-item>
+            <el-form-item label="是否开工建设:" prop="configType">
+              <el-select v-model="queryParams.configType" placeholder="系统内置" clearable size="small" style="width: 458px">
+                <el-option
+                  v-for="dict in typeOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                />
+              </el-select>
+            </el-form-item>
+             <el-form-item label=" 项目入规(限):">
+                  <el-select v-model="queryParams.configType" placeholder="系统内置" clearable size="small" style="width: 335px">
+                    <el-option
+                      v-for="dict in typeOptions"
+                      :key="dict.dictValue"
+                      :label="dict.dictLabel"
+                      :value="dict.dictValue"
+                    />
+                  </el-select>
+              </el-form-item>
+              <el-form-item label="项目入规时间:">
+                   <el-date-picker type="date" placeholder="选择日期" v-model="form.date1" style="width: 335px"></el-date-picker>
+               </el-form-item>
+          </el-form>
+
+
+       </div>
+
+</div>
+</div>
+  </div>
+
+
+<el-dialog :visible.sync="dialogVisible">
+                     <img width="100%" :src="dialogImageUrl" alt="">
+                   </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listConfig, getConfig, delConfig, addConfig, updateConfig, exportConfig, clearCache } from "@/api/system/config";
+export default {
+  name: "Config",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      //步骤条
+      naueactive:2,
+      tab:1,
+      tabNume:['线索信息','签约信息','在建信息','投产信息'],
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 参数表格数据
+      configList: [],
+      // 弹出层标题
+      title: "",
+      dialogImageUrl: '',
+      dialogVisible: false,
+      disabled: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        configName: undefined,
+        configKey: undefined,
+        configType: undefined
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        configName: [
+          { required: true, message: "参数名称不能为空", trigger: "blur" }
+        ],
+        configKey: [
+          { required: true, message: "参数键名不能为空", trigger: "blur" }
+        ],
+        configValue: [
+          { required: true, message: "参数键值不能为空", trigger: "blur" }
+        ]
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getDicts("sys_yes_no").then(response => {
+      this.typeOptions = response.data;
+    });
+  },
+  methods: {
+    submitUpload() {
+      this.$refs.upload.submit();
+    },
+    handleRemove(file) {
+           console.log(file);
+         },
+         handlePictureCardPreview(file) {
+           this.dialogImageUrl = file.url;
+           this.dialogVisible = true;
+         },
+         handleDownload(file) {
+           console.log(file);
+         },
+    /** 查询参数列表 */
+    getList() {
+      this.loading = true;
+      listConfig(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
+          this.configList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        }
+      );
+    },
+    // 参数系统内置字典翻译
+    typeFormat(row, column) {
+      return this.selectDictLabel(this.typeOptions, row.configType);
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        configId: undefined,
+        configName: undefined,
+        configKey: undefined,
+        configValue: undefined,
+        configType: "Y",
+        remark: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRange = [];
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加参数";
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.configId)
+      this.single = selection.length!=1
+      this.multiple = !selection.length
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const configId = row.configId || this.ids
+      getConfig(configId).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改参数";
+      });
+    },
+    /** 提交按钮 */
+    submitForm: function() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.configId != undefined) {
+            updateConfig(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addConfig(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const configIds = row.configId || this.ids;
+      this.$confirm('是否确认删除参数编号为"' + configIds + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delConfig(configIds);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有参数数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportConfig(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        })
+    },
+    /** 清理缓存按钮操作 */
+    handleClearCache() {
+      clearCache().then(response => {
+        this.msgSuccess("清理成功");
+      });
+    },
+    //tab
+    tabClid(index){
+    this.tab = index
+    // this.$router.push('/tab');
+    }
+  }
+};
+</script>
+<style rel="stylesheet/scss" lang="scss">
+  .buiy{
+    // width: 75px !important;
+    // height: 30px !important;
+    // line-height: 30px !important;
+  }
+  .ijeut{
+    display: flex;
+    height: 78px;
+    align-items: center;
+  }
+
+  .burert{
+    .el-upload--picture-card{
+      height: 78px;
+      line-height: 78px;
+      width: 80px;
+      vertical-align:center;
+      border: 0 !important;
+      background-color: #fff;
+    }
+    .el-upload-list--picture-card .el-upload-list__item{
+      height: 78px !important;
+      width: 78px !important;
+    }
+  }
+
+  .manager_form{
+    .manager_lab{
+      .el-form-item__label{
+        width: 145px !important;
+      }
+    }
+    .maneg_lar{
+      position: relative;
+      .el-form-item__label{
+        width: 134px !important;
+      }
+      span{
+        position: absolute;
+        left: -95%;
+      }
+    }
+    .manager_labtwo{
+      .el-form-item__label{
+        width: 244px !important;
+      }
+    }
+    .manager_labthre{
+      // .el-form-item{
+        .el-form-item__label{
+          width: 130px !important;
+        }
+        margin-right: 40px !important;
+      // }
+    }
+    .ieuyr{
+      .el-textarea__inner{
+        height: 80px !important;
+      }
+    }
+    .mage_ter{
+      .el-form-item__label{
+        width: 513px !important;
+      }
+    }
+    .maget_ty{
+      .el-form-item__label{
+        width: 135px !important;
+      }
+    }
+    .forieu{
+     border: 1px solid #DCDFE6;
+     border-radius: 4px;
+     width: 480px;
+     height: 100px !important;
+     position: relative;
+
+     .bure{
+       display: flex;
+       // position: absolute;
+       // height: 100%;
+       // right: 20px;
+       // top: 50%;
+       // transform: translateY(-50%);
+       padding: 10px 0;
+     }
+     .burert{
+       display: flex;
+       position: absolute;
+       height: 100%;
+       left: 20px;
+       top: 50%;
+       transform: translateY(-50%);
+     }
+    }
+  }
+  .lage_div{
+    padding-left: 15px;
+    display: flex;
+    align-items: center;
+    margin-bottom: 22px;
+    .el-form-item{
+      margin-bottom: 0 !important;
+    }
+  }
+.app-conta{
+  .header{
+    padding-left: 22px;
+    height: 45px;
+    line-height: 40px;
+    background-color: #F1F1F1;
+    font-size: 18px;
+    color: #343434;
+    margin-bottom: 40px;
+  }
+  .nauer{
+    .nuae_wtu{
+      display: flex;
+      justify-content: center;
+      align-content: center;
+     .naue_one{
+       width: 30%;
+       p{
+         font-size: 12px;
+         font-family: PingFang SC;
+         font-weight: 400;
+         color: #343434;
+       }
+       .naue_name{
+         font-size: 14px;
+         font-family: PingFang SC;
+         font-weight: bold;
+         color: #0669B2;
+         margin-bottom: 30px;
+       }
+     }
+     .naue_two{
+       flex: 1;
+       padding-top: 20px;
+       // display: flex;
+       // align-items: center;
+       // justify-content: center;
+     }
+    }
+    //tab
+    .naue_tab{
+      border-bottom: 1px solid #CDCDCD;
+      display: flex;
+      margin-top: 30px;
+      padding: 0 10px;
+      margin-bottom: 30px;
+      p{
+        font-size: 12px;
+        font-family: PingFang SC;
+        font-weight: 400;
+        color: #343434;
+        padding: 11px 15px;
+        margin: 0;
+      }
+      .p{
+        border-bottom: 2px solid #1C84C6;
+        margin-bottom: -1px;
+      }
+    }
+    .mation{
+
+      .enterprise{
+        font-size: 14px;
+        font-family: PingFang SC;
+        font-weight: bold;
+        color: #1C84C6;
+        margin-top: 25px;
+        margin-bottom: 20px;
+      }
+      .enterprise_tw{
+        i{
+          margin-right: 5px;
+        }
+        font-size: 14px;
+        font-family: PingFang SC;
+        font-weight: 600;
+        color: #666666;
+      }
+    }
+
+  }
+  .nvestor{
+    margin-bottom: 10px;
+    p{
+      margin:0;
+      font-size: 14px;
+      font-family: PingFang SC;
+      font-weight: bold;
+      color: #343434;
+      height: 24px;
+      line-height: 24px;
+      border-left: 3px solid #1C84C6;
+      padding-left: 13px;
+      i{
+        color: red;
+      }
+    }
+  }
+  .souu{
+    font-size: 14px;
+    font-family: PingFang SC;
+    font-weight: 400;
+    color: #343434;
+    margin-left: 5px;
+  }
+}
+//在建项目
+.nstruction{
+  display: flex;
+  align-items: center;
+ .nstruction_nav{
+   display: flex;
+   align-items: center;
+   p:nth-child(1){
+     margin-right: 10px;
+     span{
+       font-size: 14px;
+       font-family: PingFang SC;
+       font-weight: bold;
+       color: #343434;
+     }
+     span:nth-child(1){
+       color: #DF0024;
+     }
+   }
+   p:nth-child(2){
+     width: 233px;
+     height: 30px;
+     line-height: 30px;
+     border: 1px solid #CDCDCD;
+     border-radius: 3px;
+     padding-left: 14px;
+   }
+
+ }
+ .nstruction_navne{
+   margin-left: 50px;
+   display: flex;
+   align-items: center;
+   p:nth-child(1){
+      margin-right: 10px;
+     span{
+       font-size: 14px;
+       font-family: PingFang SC;
+       font-weight: bold;
+       color: #343434;
+     }
+     span:nth-child(1){
+       color: #DF0024;
+     }
+   }
+   p:nth-child(2){
+     width: 233px;
+     height: 30px;
+     line-height: 30px;
+     border: 1px solid #CDCDCD;
+     border-radius: 3px;
+     padding-left: 14px;
+   }
+
+ }
+}
+.kaieu{
+  padding-left: 60px;
+  font-size: 14px;
+  font-family: PingFang SC;
+  font-weight: 800;
+  color: #343434;
+}
+.kaieu_tw{
+  padding-left: 60px;
+  font-size: 14px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #666666;
+}
+</style>

+ 0 - 489
ruoyi-ui/src/views/management/row/index.vue

@@ -1,489 +0,0 @@
-<template>
-
-  <div class="app-container">
-    <div class="header">
-      项目详情 >
-    </div>
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          @click="handleAdd"
-          v-hasPermi="['system:config:add']"
-        >提交</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          @click="handleUpdate"
-          v-hasPermi="['system:config:edit']"
-        >暂存</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-  <div class="naue">
-    <!-- //步骤条 -->
-    <div class="nuae_wtu">
-      <div class="naue_one">
-       <p class="naue_name">项目名称:电子类企业</p>
-       <p>返乡创业:是</p>
-       <p>所属产业:电子产业</p>
-      </div>
-      <div class="naue_two">
-        <el-steps :active="naueactive" align-center finish-status="success">
-          <el-step title="线索审核中"></el-step>
-          <el-step title="线索审核成功"></el-step>
-          <el-step title="签约审核成功"></el-step>
-          <el-step title="在建审核成功"></el-step>
-          <el-step title="结束"></el-step>
-        </el-steps>
-      </div>
-    </div>
-    <!-- //tab栏 -->
-    <div class="naue_tab">
-     <p @click="tabClid(index)" v-for="(item,index) in tabNume"  :key="index" :class="[tab == index? 'p' : '']">{{item}}</p>
-    </div>
-    <!-- 内容的显示隐藏 -->
-     <div class="mation" v-if="true">
-       <div class="nvestor">
-         <p>投资方 <i>*</i></p>
-       </div>
-       <p class="enterprise">企业</p>
-       <p class="enterprise_tw"><i class="el-icon-circle-plus-outline"></i>添加企业</p>
-       <el-table v-loading="loading" :data="configList" >
-         <!-- <el-table-column type="selection" width="55" align="center" /> -->
-         <el-table-column label="企业名称" align="center" prop="configId" />
-         <el-table-column label="企业所在地" align="center" prop="configName" :show-overflow-tooltip="true" />
-         <el-table-column label="法人代表姓名" align="center" prop="configKey" :show-overflow-tooltip="true" />
-         <el-table-column label="统一社会信用代码" align="center" prop="configValue" />
-         <el-table-column label="联系方式" align="center" prop="configType" :formatter="typeFormat" />
-        <!-- <el-table-column label="操作" align="center" prop="remark" :show-overflow-tooltip="true" /> -->
-         <el-table-column label="操作" align="center" >
-           <!-- class-name="small-padding fixed-width" -->
-           <template slot-scope="scope">
-             <el-button
-               size="mini"
-               type="warning"
-               @click="handleUpdate(scope.row)"
-               v-hasPermi="['system:config:edit']"
-             >修改</el-button>
-             <el-button
-               size="mini"
-               type="danger"
-               @click="handleDelete(scope.row)"
-               v-hasPermi="['system:config:remove']"
-             >删除</el-button>
-           </template>
-         </el-table-column>
-       </el-table>
- <p class="enterprise">自然人</p>
- <p class="enterprise_tw"><i class="el-icon-circle-plus-outline"></i>添加自然人</p>
- <el-table v-loading="loading" :data="configList" >
-   <!-- <el-table-column type="selection" width="55" align="center" /> -->
-   <el-table-column label="姓名" align="center" prop="configId" />
-   <el-table-column label="自然人所在地" align="center" prop="configName" :show-overflow-tooltip="true" />
-   <el-table-column label="身份证号码" align="center" prop="configKey" :show-overflow-tooltip="true" />
-   <el-table-column label="联系方式" align="center" prop="configValue" />
-   <!-- <el-table-column label="联系方式" align="center" prop="configType" :formatter="typeFormat" /> -->
-  <!-- <el-table-column label="操作" align="center" prop="remark" :show-overflow-tooltip="true" /> -->
-   <el-table-column label="操作" align="center" >
-     <!-- class-name="small-padding fixed-width" -->
-     <template slot-scope="scope">
-       <el-button
-         size="mini"
-         type="warning"
-         @click="handleUpdate(scope.row)"
-         v-hasPermi="['system:config:edit']"
-       >修改</el-button>
-       <el-button
-         size="mini"
-         type="danger"
-         @click="handleDelete(scope.row)"
-         v-hasPermi="['system:config:remove']"
-       >删除</el-button>
-     </template>
-   </el-table-column>
- </el-table>
-       <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
-         <el-form-item label="参数名称" prop="configName">
-           <el-input
-             v-model="queryParams.configName"
-             placeholder="请输入参数名称"
-             clearable
-             size="small"
-             style="width: 240px"
-             @keyup.enter.native="handleQuery"
-           />
-         </el-form-item>
-         <el-form-item label="参数键名" prop="configKey">
-           <el-input
-             v-model="queryParams.configKey"
-             placeholder="请输入参数键名"
-             clearable
-             size="small"
-             style="width: 240px"
-             @keyup.enter.native="handleQuery"
-           />
-         </el-form-item>
-         <el-form-item label="系统内置" prop="configType">
-           <el-select v-model="queryParams.configType" placeholder="系统内置" clearable size="small">
-             <el-option
-               v-for="dict in typeOptions"
-               :key="dict.dictValue"
-               :label="dict.dictLabel"
-               :value="dict.dictValue"
-             />
-           </el-select>
-         </el-form-item>
-         <el-form-item label="创建时间">
-           <el-date-picker
-             v-model="dateRange"
-             size="small"
-             style="width: 240px"
-             value-format="yyyy-MM-dd"
-             type="daterange"
-             range-separator="-"
-             start-placeholder="开始日期"
-             end-placeholder="结束日期"
-           ></el-date-picker>
-         </el-form-item>
-         <el-form-item>
-           <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-           <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-         </el-form-item>
-       </el-form>
-     </div>
-  </div>
-
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 添加或修改参数配置对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="参数名称" prop="configName">
-          <el-input v-model="form.configName" placeholder="请输入参数名称" />
-        </el-form-item>
-        <el-form-item label="参数键名" prop="configKey">
-          <el-input v-model="form.configKey" placeholder="请输入参数键名" />
-        </el-form-item>
-        <el-form-item label="参数键值" prop="configValue">
-          <el-input v-model="form.configValue" placeholder="请输入参数键值" />
-        </el-form-item>
-        <el-form-item label="系统内置" prop="configType">
-          <el-radio-group v-model="form.configType">
-            <el-radio
-              v-for="dict in typeOptions"
-              :key="dict.dictValue"
-              :label="dict.dictValue"
-            >{{dict.dictLabel}}</el-radio>
-          </el-radio-group>
-        </el-form-item>
-        <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listConfig, getConfig, delConfig, addConfig, updateConfig, exportConfig, clearCache } from "@/api/system/config";
-
-export default {
-  name: "Config",
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      //步骤条
-      naueactive:2,
-      tab:1,
-      tabNume:['线索信息','签约信息','在建信息','投产信息'],
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 参数表格数据
-      configList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 类型数据字典
-      typeOptions: [],
-      // 日期范围
-      dateRange: [],
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        configName: undefined,
-        configKey: undefined,
-        configType: undefined
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-        configName: [
-          { required: true, message: "参数名称不能为空", trigger: "blur" }
-        ],
-        configKey: [
-          { required: true, message: "参数键名不能为空", trigger: "blur" }
-        ],
-        configValue: [
-          { required: true, message: "参数键值不能为空", trigger: "blur" }
-        ]
-      }
-    };
-  },
-  created() {
-    this.getList();
-    this.getDicts("sys_yes_no").then(response => {
-      this.typeOptions = response.data;
-    });
-  },
-  methods: {
-    /** 查询参数列表 */
-    getList() {
-      this.loading = true;
-      listConfig(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
-          this.configList = response.rows;
-          this.total = response.total;
-          this.loading = false;
-        }
-      );
-    },
-    // 参数系统内置字典翻译
-    typeFormat(row, column) {
-      return this.selectDictLabel(this.typeOptions, row.configType);
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        configId: undefined,
-        configName: undefined,
-        configKey: undefined,
-        configValue: undefined,
-        configType: "Y",
-        remark: undefined
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.dateRange = [];
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加参数";
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.configId)
-      this.single = selection.length!=1
-      this.multiple = !selection.length
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const configId = row.configId || this.ids
-      getConfig(configId).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改参数";
-      });
-    },
-    /** 提交按钮 */
-    submitForm: function() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.configId != undefined) {
-            updateConfig(this.form).then(response => {
-              this.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addConfig(this.form).then(response => {
-              this.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const configIds = row.configId || this.ids;
-      this.$confirm('是否确认删除参数编号为"' + configIds + '"的数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return delConfig(configIds);
-        }).then(() => {
-          this.getList();
-          this.msgSuccess("删除成功");
-        })
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm('是否确认导出所有参数数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return exportConfig(queryParams);
-        }).then(response => {
-          this.download(response.msg);
-        })
-    },
-    /** 清理缓存按钮操作 */
-    handleClearCache() {
-      clearCache().then(response => {
-        this.msgSuccess("清理成功");
-      });
-    },
-    //tab
-    tabClid(index){
-    this.tab = index
-    }
-  }
-};
-</script>
-<style rel="stylesheet/scss" lang="scss">
-.app-container{
-  .header{
-    padding-left: 22px;
-    height: 45px;
-    line-height: 40px;
-    background-color: #F1F1F1;
-    font-size: 18px;
-    color: #343434;
-    margin-bottom: 40px;
-  }
-  .naue{
-    border: 1px solid #DADADA;
-    padding:  20px;
-    margin-top: 40px;
-    .nuae_wtu{
-      display: flex;
-      justify-content: center;
-      align-content: center;
-     .naue_one{
-       width: 30%;
-       p{
-         font-size: 12px;
-         font-family: PingFang SC;
-         font-weight: 400;
-         color: #343434;
-       }
-       .naue_name{
-         font-size: 14px;
-         font-family: PingFang SC;
-         font-weight: bold;
-         color: #0669B2;
-         margin-bottom: 30px;
-       }
-     }
-     .naue_two{
-       flex: 1;
-       padding-top: 20px;
-       // display: flex;
-       // align-items: center;
-       // justify-content: center;
-     }
-    }
-    //tab
-    .naue_tab{
-      border-bottom: 1px solid #CDCDCD;
-      display: flex;
-      margin-top: 30px;
-      padding: 0 10px;
-      margin-bottom: 30px;
-      p{
-        font-size: 12px;
-        font-family: PingFang SC;
-        font-weight: 400;
-        color: #343434;
-        padding: 11px 15px;
-        margin: 0;
-      }
-      .p{
-        border-bottom: 2px solid #1C84C6;
-        margin-bottom: -1px;
-      }
-    }
-    .mation{
-      .nvestor{
-        p{
-          margin:0;
-          font-size: 14px;
-          font-family: PingFang SC;
-          font-weight: bold;
-          color: #343434;
-          height: 30px;
-          line-height: 30px;
-          border-left: 3px solid #1C84C6;
-          padding-left: 13px;
-          i{
-            color: red;
-          }
-        }
-      }
-      .enterprise{
-        font-size: 14px;
-        font-family: PingFang SC;
-        font-weight: bold;
-        color: #1C84C6;
-        margin-top: 25px;
-        margin-bottom: 20px;
-      }
-      .enterprise_tw{
-        i{
-          margin-right: 5px;
-        }
-        font-size: 14px;
-        font-family: PingFang SC;
-        font-weight: 600;
-        color: #666666;
-      }
-    }
-
-  }
-}
-</style>

+ 63 - 0
ruoyi-ui/src/views/management/row/tab.vue

@@ -0,0 +1,63 @@
+<template>
+  <div>
+    <!-- //tab栏 -->
+    <div class="naue_tab">
+     <p @click="tabClid(index)" v-for="(item,index) in tabNume"  :key="index" :class="[tab == index? 'p' : '']">{{item}}</p>
+    </div>
+    <div>
+         <slot></slot>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "Config",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      //步骤条
+      naueactive:2,
+      tab:1,
+      tabNume:['线索信息','签约信息','在建信息','投产信息'],
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+    };
+  },
+  created() {
+  },
+  methods: {
+    //tab
+    tabClid(index){
+    this.tab = index
+    }
+  }
+};
+</script>
+
+<style rel="stylesheet/scss" lang="scss">
+  //tab
+  .naue_tab{
+    border-bottom: 1px solid #CDCDCD;
+    display: flex;
+    margin-top: 30px;
+    padding: 0 10px;
+    margin-bottom: 30px;
+    p{
+      font-size: 12px;
+      font-family: PingFang SC;
+      font-weight: 400;
+      color: #343434;
+      padding: 11px 15px;
+      margin: 0;
+    }
+    .p{
+      border-bottom: 2px solid #1C84C6;
+      margin-bottom: -1px;
+    }
+  }
+</style>

+ 67 - 0
ruoyi-ui/src/views/tab/index.vue

@@ -0,0 +1,67 @@
+<template>
+  <div>
+    <!-- //tab栏 -->
+    <div class="naue_tab">
+     <p @click="changeTab(tab)" v-for="tab in tabList"  :key="tab.index" :class="[tabIndex == tab.index? 'p' : '']">{{tab.name}}</p>
+    </div>
+    <div>
+         <slot></slot>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "'Mytabs'",
+  props:{
+    tabList: Array,
+    tabIndex: Number
+  },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      //步骤条
+      naueactive:2,
+      tabNume:['线索信息','签约信息','在建信息','投产信息'],
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+    };
+  },
+  created() {
+  },
+  methods: {
+    //tab
+    changeTab(index){
+      this.$emit('changeTab', index)
+    // this.tab = index
+    }
+  }
+};
+</script>
+
+<style rel="stylesheet/scss" lang="scss">
+  //tab
+  .naue_tab{
+    border-bottom: 1px solid #CDCDCD;
+    display: flex;
+    margin-top: 30px;
+    padding: 0 10px;
+    margin-bottom: 30px;
+    p{
+      font-size: 12px;
+      font-family: PingFang SC;
+      font-weight: 400;
+      color: #343434;
+      padding: 11px 15px;
+      margin: 0;
+    }
+    .p{
+      border-bottom: 2px solid #1C84C6;
+      margin-bottom: -1px;
+    }
+  }
+</style>

+ 860 - 0
ruoyi-ui/src/views/under/index.vue

@@ -0,0 +1,860 @@
+<template>
+
+  <div class="app-cont">
+  <!-- <div class="naue"> -->
+    <!-- 内容的显示隐藏 -->
+<div class="mation" >
+       <div class="nvestor">
+         <p>投资方 <i>*</i></p>
+       </div>
+       <p class="enterprise">企业</p>
+       <p class="enterprise_tw"><i class="el-icon-circle-plus-outline"></i>添加企业</p>
+       <el-table v-loading="loading" :data="configList" >
+         <!-- <el-table-column type="selection" width="55" align="center" /> -->
+         <el-table-column label="企业名称" align="center" prop="configId" />
+         <el-table-column label="企业所在地" align="center" prop="configName" :show-overflow-tooltip="true" />
+         <el-table-column label="法人代表姓名" align="center" prop="configKey" :show-overflow-tooltip="true" />
+         <el-table-column label="统一社会信用代码" align="center" prop="configValue" />
+         <el-table-column label="联系方式" align="center" prop="configType" :formatter="typeFormat" />
+        <!-- <el-table-column label="操作" align="center" prop="remark" :show-overflow-tooltip="true" /> -->
+         <el-table-column label="操作" align="center" >
+           <!-- class-name="small-padding fixed-width" -->
+           <template slot-scope="scope">
+             <el-button
+               size="mini"
+               type="warning"
+               @click="handleUpdate(scope.row)"
+               v-hasPermi="['system:config:edit']"
+             >修改</el-button>
+             <el-button
+               size="mini"
+               type="danger"
+               @click="handleDelete(scope.row)"
+               v-hasPermi="['system:config:remove']"
+             >删除</el-button>
+           </template>
+         </el-table-column>
+       </el-table>
+       <p class="enterprise">自然人</p>
+       <p class="enterprise_tw"><i class="el-icon-circle-plus-outline"></i>添加自然人</p>
+  <el-table v-loading="loading" :data="configList" >
+   <!-- <el-table-column type="selection" width="55" align="center" /> -->
+   <el-table-column label="姓名" align="center" prop="configId" />
+   <el-table-column label="自然人所在地" align="center" prop="configName" :show-overflow-tooltip="true" />
+   <el-table-column label="身份证号码" align="center" prop="configKey" :show-overflow-tooltip="true" />
+   <el-table-column label="联系方式" align="center" prop="configValue" />
+   <!-- <el-table-column label="联系方式" align="center" prop="configType" :formatter="typeFormat" /> -->
+  <!-- <el-table-column label="操作" align="center" prop="remark" :show-overflow-tooltip="true" /> -->
+   <el-table-column label="操作" align="center" >
+     <!-- class-name="small-padding fixed-width" -->
+     <template slot-scope="scope">
+       <el-button
+         size="mini"
+         type="warning"
+         @click="handleUpdate(scope.row)"
+         v-hasPermi="['system:config:edit']"
+       >修改</el-button>
+       <el-button
+         size="mini"
+         type="danger"
+         @click="handleDelete(scope.row)"
+         v-hasPermi="['system:config:remove']"
+       >删除</el-button>
+     </template>
+   </el-table-column>
+ </el-table>
+       <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="115px" label-position="center" class="manager_form">
+         <el-form-item label="投资方联系人" prop="configName">
+           <el-input
+             v-model="queryParams.configName"
+             placeholder="请输入投资方联系人"
+             clearable
+             size="small"
+             style="width: 223px"
+             @keyup.enter.native="handleQuery"
+           />
+         </el-form-item>
+         <el-form-item label="投资方联系方式:" prop="configKey">
+           <el-input
+             v-model="queryParams.configKey"
+             placeholder="请输入联系方式"
+             clearable
+             size="small"
+             style="width: 223px"
+             @keyup.enter.native="handleQuery"
+           />
+         </el-form-item>
+         <div class="nvestor">
+           <p>投资方 <i>*</i></p>
+         </div>
+         <el-form-item label="引荐单位:" prop="configType">
+           <el-select v-model="queryParams.configType" placeholder="系统内置" clearable size="small" style="width: 188px">
+             <el-option
+               v-for="dict in typeOptions"
+               :key="dict.dictValue"
+               :label="dict.dictLabel"
+               :value="dict.dictValue"
+             />
+           </el-select>
+         </el-form-item>
+         <el-form-item label="投资分配额:" prop="configName">
+           <el-input
+             v-model="queryParams.configName"
+             placeholder="输入数字"
+             clearable
+             size="small"
+             style="width: 98px"
+             @keyup.enter.native="handleQuery"
+           />
+           <span class="souu">%</span>
+         </el-form-item>
+         <el-form-item label="引荐方联系人:" prop="configName">
+           <el-input
+             v-model="queryParams.configName"
+             placeholder="请输入"
+             clearable
+             size="small"
+             style="width: 98px"
+             @keyup.enter.native="handleQuery"
+           />
+         </el-form-item>
+
+         <el-form-item label="引荐方联系方式:" prop="configName">
+           <el-input
+             v-model="queryParams.configName"
+             placeholder="请输入联系方式"
+             clearable
+             size="small"
+             style="width: 153px"
+             @keyup.enter.native="handleQuery"
+           />
+         </el-form-item>
+         <el-form-item label="引荐单位:" prop="configType">
+           <el-select v-model="queryParams.configType" placeholder="系统内置" clearable size="small" style="width: 188px">
+             <el-option
+               v-for="dict in typeOptions"
+               :key="dict.dictValue"
+               :label="dict.dictLabel"
+               :value="dict.dictValue"
+             />
+           </el-select>
+         </el-form-item>
+         <el-form-item label="投资分配额:" prop="configName">
+           <el-input
+             v-model="queryParams.configName"
+             placeholder="输入数字"
+             clearable
+             size="small"
+             style="width: 98px"
+             @keyup.enter.native="handleQuery"
+           />
+           <span class="souu">%</span>
+         </el-form-item>
+         <el-form-item label="引荐方联系人:" prop="configName">
+           <el-input
+             v-model="queryParams.configName"
+             placeholder="请输入"
+             clearable
+             size="small"
+             style="width: 98px"
+             @keyup.enter.native="handleQuery"
+           />
+         </el-form-item>
+
+         <el-form-item label="引荐方联系方式:" prop="configName">
+           <el-input
+             v-model="queryParams.configName"
+             placeholder="请输入联系方式"
+             clearable
+             size="small"
+             style="width: 153px"
+             @keyup.enter.native="handleQuery"
+           />
+         </el-form-item>
+         <div class="nvestor">
+           <p>项目基本信息 <i>*</i></p>
+         </div>
+         <el-form-item label="预计投资额" prop="configName">
+           <el-input
+             v-model="queryParams.configName"
+             placeholder="请输入预计投资额"
+             clearable
+             size="small"
+             style="width: 223px"
+             @keyup.enter.native="handleQuery"
+           />
+         </el-form-item>
+         <el-form-item label="其中 固定资产投资:" prop="configKey" class="manager_lab" >
+           <el-input
+             v-model="queryParams.configKey"
+             placeholder="请输入"
+             clearable
+             size="small"
+             style="width: 223px"
+             @keyup.enter.native="handleQuery"
+           />
+         </el-form-item>
+         <div class="lage_div">
+           <span>项目主营产品</span>
+           <el-form-item label="产品名称:" prop="configKey"  class="maneg_lar">
+
+             <el-input
+               v-model="queryParams.configKey"
+               placeholder="请输入产品名称"
+               clearable
+               size="small"
+               style="width: 470px"
+               @keyup.enter.native="handleQuery"
+             />
+
+           </el-form-item>
+         </div>
+         <el-form-item label="设计产能:" prop="configKey" class="manager_labtwo" >
+           <el-input
+             v-model="queryParams.configKey"
+             placeholder="请输入设计产能"
+             clearable
+             size="small"
+             style="width: 470px"
+             @keyup.enter.native="handleQuery"
+           />
+
+         </el-form-item>
+         <div class="lage_div">
+           <span>项目预计收益</span>
+           <el-form-item label="预计产值:" prop="configKey"  class="maneg_lar">
+
+             <el-input
+               v-model="queryParams.configKey"
+               placeholder="请输入预计产值"
+               clearable
+               size="small"
+               style="width: 470px"
+               @keyup.enter.native="handleQuery"
+             />
+
+           </el-form-item>
+         </div>
+         <el-form-item label="预计税收:" prop="configKey" class="manager_labtwo" >
+           <el-input
+             v-model="queryParams.configKey"
+             placeholder="请输入预计税收"
+             clearable
+             size="small"
+             style="width: 470px"
+             @keyup.enter.native="handleQuery"
+           />
+
+         </el-form-item>
+         <el-form-item label="预计用工:" prop="configKey" class="manager_labtwo" >
+           <el-input
+             v-model="queryParams.configKey"
+             placeholder="请输入预计用工"
+             clearable
+             size="small"
+             style="width: 470px"
+             @keyup.enter.native="handleQuery"
+           />
+         </el-form-item>
+         <div class="nvestor">
+           <p>项目基本需求 </p>
+         </div>
+         <el-form-item label="项目计划用地:" prop="configName" class="manager_labthre">
+           <el-input
+             v-model="queryParams.configName"
+             placeholder="请输入"
+             clearable
+             size="small"
+             style="width: 207px"
+             @keyup.enter.native="handleQuery"
+           />
+           <span class="souu">亩</span>
+         </el-form-item>
+         <el-form-item label="其中 独立供地:" prop="configName">
+           <el-input
+             v-model="queryParams.configName"
+             placeholder="请输入"
+             clearable
+             size="small"
+             style="width: 207px"
+             @keyup.enter.native="handleQuery"
+           />
+           <span class="souu">亩</span>
+         </el-form-item>
+        <el-form-item label="流转土地:" prop="configName" class="mage_ter">
+          <el-input
+            v-model="queryParams.configName"
+            placeholder="请输入"
+            clearable
+            size="small"
+            style="width: 207px"
+            @keyup.enter.native="handleQuery"
+          />
+          <span class="souu">亩</span>
+        </el-form-item>
+        <el-form-item label="项目计划租赁用房:" prop="configName" class="manager_labthre">
+           <el-input
+             v-model="queryParams.configName"
+             placeholder="请输入"
+             clearable
+             size="small"
+             style="width: 207px"
+             @keyup.enter.native="handleQuery"
+           />
+           <span class="souu">亩</span>
+         </el-form-item>
+         <el-form-item label="其中 厂房:" prop="configName">
+           <el-input
+             v-model="queryParams.configName"
+             placeholder="请输入"
+             clearable
+             size="small"
+             style="width: 207px"
+             @keyup.enter.native="handleQuery"
+           />
+           <span class="souu">亩</span>
+         </el-form-item>
+        <el-form-item label="办公生活用房:" prop="configName" class="mage_ter">
+          <el-input
+            v-model="queryParams.configName"
+            placeholder="请输入"
+            clearable
+            size="small"
+            style="width: 207px"
+            @keyup.enter.native="handleQuery"
+          />
+          <span class="souu">亩</span>
+        </el-form-item>
+        <el-form-item label="其他需求:" prop="configName" class="maget_ty">
+          <el-input
+            v-model="queryParams.configName"
+            placeholder="请输入项目概况"
+            clearable
+            type="textarea"
+            size="small"
+            style="width: 480px;height: 78px;"
+            class="ieuyr"
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+       <el-form-item label="拟落户地点:" prop="configType">
+           <el-select v-model="queryParams.configType" placeholder="系统内置" clearable size="small" style="width: 188px">
+             <el-option
+               v-for="dict in typeOptions"
+               :key="dict.dictValue"
+               :label="dict.dictLabel"
+               :value="dict.dictValue"
+             />
+           </el-select>
+         </el-form-item>
+         <el-form-item label="是否签订框架协议:" prop="configType" class="maget_ty">
+             <el-select v-model="queryParams.configType" placeholder="系统内置" clearable size="small" style="width: 298px">
+               <el-option
+                 v-for="dict in typeOptions"
+                 :key="dict.dictValue"
+                 :label="dict.dictLabel"
+                 :value="dict.dictValue"
+               />
+             </el-select>
+           </el-form-item>
+          <el-form-item label="添加附件:" prop="configType" class="maget_ty">
+              <div class="forieu">
+               <div class="bure">
+                 <el-button  type="primary" size="small" plain>选择图片</el-button>
+                 <el-button  type="primary" size="small">开始上传</el-button>
+               </div>
+              </div>
+            </el-form-item>
+         <el-form-item label="备注:" prop="configName" class="maget_ty">
+           <el-input
+             v-model="queryParams.configName"
+             placeholder="请输入备注"
+             clearable
+             type="textarea"
+             size="small"
+             style="width: 480px;height: 78px;"
+             class="ieuyr"
+             @keyup.enter.native="handleQuery"
+           />
+         </el-form-item>
+       </el-form>
+     </div>
+
+
+
+  <!-- </div> -->
+
+
+
+    <!-- 添加或修改参数配置对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="150px">
+        <el-form-item label="企业名称" prop="configName">
+          <el-input v-model="form.configName" placeholder="请输入企业名称" />
+        </el-form-item>
+        <el-form-item label="企业所在地" prop="configKey">
+          <el-input v-model="form.configKey" placeholder="请输入参数键名" />
+        </el-form-item>
+        <el-form-item label="法人代表姓名" prop="configValue">
+          <el-input v-model="form.configValue" placeholder="请输入参数键值" />
+        </el-form-item>
+        <el-form-item label="系统内置" prop="configType">
+          <el-radio-group v-model="form.configType">
+            <el-radio
+              v-for="dict in typeOptions"
+              :key="dict.dictValue"
+              :label="dict.dictValue"
+            >{{dict.dictLabel}}</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="统一社会信用代码" prop="remark">
+          <el-input v-model="form.remark"  placeholder="请输入统一社会信用代码" />
+        </el-form-item>
+        <el-form-item label="联系方式" prop="remark">
+          <el-input v-model="form.remark"  placeholder="请输入联系方式" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listConfig, getConfig, delConfig, addConfig, updateConfig, exportConfig, clearCache } from "@/api/system/config";
+export default {
+  name: "Config",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      //步骤条
+      naueactive:2,
+      tab:1,
+      tabNume:['线索信息','签约信息','在建信息','投产信息'],
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 参数表格数据
+      configList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 类型数据字典
+      typeOptions: [],
+      // 日期范围
+      dateRange: [],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        configName: undefined,
+        configKey: undefined,
+        configType: undefined
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        configName: [
+          { required: true, message: "参数名称不能为空", trigger: "blur" }
+        ],
+        configKey: [
+          { required: true, message: "参数键名不能为空", trigger: "blur" }
+        ],
+        configValue: [
+          { required: true, message: "参数键值不能为空", trigger: "blur" }
+        ]
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getDicts("sys_yes_no").then(response => {
+      this.typeOptions = response.data;
+    });
+  },
+  methods: {
+    /** 查询参数列表 */
+    getList() {
+      this.loading = true;
+      listConfig(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
+          this.configList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        }
+      );
+    },
+    // 参数系统内置字典翻译
+    typeFormat(row, column) {
+      return this.selectDictLabel(this.typeOptions, row.configType);
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        configId: undefined,
+        configName: undefined,
+        configKey: undefined,
+        configValue: undefined,
+        configType: "Y",
+        remark: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRange = [];
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加参数";
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.configId)
+      this.single = selection.length!=1
+      this.multiple = !selection.length
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const configId = row.configId || this.ids
+      getConfig(configId).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改参数";
+      });
+    },
+    /** 提交按钮 */
+    submitForm: function() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.configId != undefined) {
+            updateConfig(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addConfig(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const configIds = row.configId || this.ids;
+      this.$confirm('是否确认删除参数编号为"' + configIds + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delConfig(configIds);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有参数数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportConfig(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        })
+    },
+    /** 清理缓存按钮操作 */
+    handleClearCache() {
+      clearCache().then(response => {
+        this.msgSuccess("清理成功");
+      });
+    },
+    //tab
+    tabClid(index){
+    this.tab = index
+    // this.$router.push('/tab');
+    }
+  }
+};
+</script>
+<style rel="stylesheet/scss" lang="scss">
+  .manager_form{
+    .manager_lab{
+      .el-form-item__label{
+        width: 145px !important;
+      }
+    }
+    .maneg_lar{
+      position: relative;
+      .el-form-item__label{
+        width: 134px !important;
+      }
+      span{
+        position: absolute;
+        left: -95%;
+      }
+    }
+    .manager_labtwo{
+      .el-form-item__label{
+        width: 244px !important;
+      }
+    }
+    .manager_labthre{
+      // .el-form-item{
+        .el-form-item__label{
+          width: 130px !important;
+        }
+        margin-right: 40px !important;
+      // }
+    }
+    .ieuyr{
+      .el-textarea__inner{
+        height: 80px !important;
+      }
+    }
+    .mage_ter{
+      .el-form-item__label{
+        width: 513px !important;
+      }
+    }
+    .maget_ty{
+      .el-form-item__label{
+        width: 135px !important;
+      }
+    }
+    .forieu{
+     border: 1px solid #DCDFE6;
+     border-radius: 4px;
+     width: 480px;
+     height: 90px;
+     position: relative;
+     .bure{
+       position: absolute;
+       right: 20px;
+       top: 50%;
+       transform: translateY(-50%);
+     }
+    }
+  }
+  .lage_div{
+    padding-left: 15px;
+    display: flex;
+    align-items: center;
+    margin-bottom: 22px;
+    .el-form-item{
+      margin-bottom: 0 !important;
+    }
+  }
+.app-cont{
+  .header{
+    padding-left: 22px;
+    height: 45px;
+    line-height: 40px;
+    background-color: #F1F1F1;
+    font-size: 18px;
+    color: #343434;
+    margin-bottom: 40px;
+  }
+  // .naue{
+    // border: 1px solid #DADADA;
+    // padding:  20px;
+    // margin-top: 40px;
+    .nuae_wtu{
+      display: flex;
+      justify-content: center;
+      align-content: center;
+     .naue_one{
+       width: 30%;
+       p{
+         font-size: 12px;
+         font-family: PingFang SC;
+         font-weight: 400;
+         color: #343434;
+       }
+       .naue_name{
+         font-size: 14px;
+         font-family: PingFang SC;
+         font-weight: bold;
+         color: #0669B2;
+         margin-bottom: 30px;
+       }
+     }
+     .naue_two{
+       flex: 1;
+       padding-top: 20px;
+       // display: flex;
+       // align-items: center;
+       // justify-content: center;
+     }
+    }
+    //tab
+    .naue_tab{
+      border-bottom: 1px solid #CDCDCD;
+      display: flex;
+      margin-top: 30px;
+      padding: 0 10px;
+      margin-bottom: 30px;
+      p{
+        font-size: 12px;
+        font-family: PingFang SC;
+        font-weight: 400;
+        color: #343434;
+        padding: 11px 15px;
+        margin: 0;
+      }
+      .p{
+        border-bottom: 2px solid #1C84C6;
+        margin-bottom: -1px;
+      }
+    }
+    .mation{
+
+      .enterprise{
+        font-size: 14px;
+        font-family: PingFang SC;
+        font-weight: bold;
+        color: #1C84C6;
+        margin-top: 25px;
+        margin-bottom: 20px;
+      }
+      .enterprise_tw{
+        i{
+          margin-right: 5px;
+        }
+        font-size: 14px;
+        font-family: PingFang SC;
+        font-weight: 600;
+        color: #666666;
+      }
+    }
+
+  // }
+  .nvestor{
+    margin-bottom: 10px;
+    p{
+      margin:0;
+      font-size: 14px;
+      font-family: PingFang SC;
+      font-weight: bold;
+      color: #343434;
+      height: 24px;
+      line-height: 24px;
+      border-left: 3px solid #1C84C6;
+      padding-left: 13px;
+      i{
+        color: red;
+      }
+    }
+  }
+  .souu{
+    font-size: 14px;
+    font-family: PingFang SC;
+    font-weight: 400;
+    color: #343434;
+    margin-left: 5px;
+  }
+}
+//在建项目
+.nstruction{
+  display: flex;
+  align-items: center;
+ .nstruction_nav{
+   display: flex;
+   align-items: center;
+   p:nth-child(1){
+     margin-right: 10px;
+     span{
+       font-size: 14px;
+       font-family: PingFang SC;
+       font-weight: bold;
+       color: #343434;
+     }
+     span:nth-child(1){
+       color: #DF0024;
+     }
+   }
+   p:nth-child(2){
+     width: 233px;
+     height: 30px;
+     line-height: 30px;
+     border: 1px solid #CDCDCD;
+     border-radius: 3px;
+     padding-left: 14px;
+   }
+
+ }
+ .nstruction_navne{
+   margin-left: 50px;
+   display: flex;
+   align-items: center;
+   p:nth-child(1){
+      margin-right: 10px;
+     span{
+       font-size: 14px;
+       font-family: PingFang SC;
+       font-weight: bold;
+       color: #343434;
+     }
+     span:nth-child(1){
+       color: #DF0024;
+     }
+   }
+   p:nth-child(2){
+     width: 233px;
+     height: 30px;
+     line-height: 30px;
+     border: 1px solid #CDCDCD;
+     border-radius: 3px;
+     padding-left: 14px;
+   }
+
+ }
+}
+.kaieu{
+  padding-left: 60px;
+  font-size: 14px;
+  font-family: PingFang SC;
+  font-weight: 800;
+  color: #343434;
+}
+.kaieu_tw{
+  padding-left: 60px;
+  font-size: 14px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #666666;
+}
+</style>