Browse Source

Merge remote-tracking branch 'origin/master'

buzhanyi 2 years atrás
parent
commit
147e632e43
68 changed files with 2279 additions and 236 deletions
  1. 1 1
      pom.xml
  2. 120 0
      purchase-admin/src/main/java/com/ozs/web/controller/base/BaseAgencyController.java
  3. 74 0
      purchase-admin/src/main/java/com/ozs/web/controller/base/BaseFileTemplateController.java
  4. 133 0
      purchase-admin/src/main/java/com/ozs/web/controller/base/BaseNoticeController.java
  5. 91 0
      purchase-admin/src/main/java/com/ozs/web/controller/base/BaseNoticeTypeController.java
  6. 134 0
      purchase-admin/src/main/java/com/ozs/web/controller/base/BasePolicyController.java
  7. 70 0
      purchase-admin/src/main/java/com/ozs/web/controller/base/BaseProfessionalController.java
  8. 0 4
      purchase-admin/src/main/java/com/ozs/web/controller/base/BaseSupplierController.java
  9. 28 39
      purchase-admin/src/main/java/com/ozs/web/controller/common/CommonController.java
  10. 1 1
      purchase-admin/src/main/java/com/ozs/web/controller/system/SysDeptController.java
  11. 118 34
      purchase-admin/src/main/java/com/ozs/web/controller/system/SysRoleController.java
  12. 73 22
      purchase-admin/src/main/java/com/ozs/web/controller/system/SysUserController.java
  13. 3 2
      purchase-admin/src/main/resources/application-dev.yml
  14. 2 1
      purchase-admin/src/main/resources/application-test.yml
  15. 1 0
      purchase-admin/src/main/resources/logback.xml
  16. 1 1
      purchase-admin/src/main/resources/mybatis/mybatis-config.xml
  17. 14 0
      purchase-common/src/main/java/com/ozs/common/constant/ModularConstans.java
  18. 2 2
      purchase-common/src/main/java/com/ozs/common/core/domain/entity/SysDept.java
  19. 21 10
      purchase-common/src/main/java/com/ozs/common/core/domain/entity/SysRole.java
  20. 1 1
      purchase-common/src/main/java/com/ozs/common/core/domain/entity/SysUser.java
  21. 5 0
      purchase-common/src/main/java/com/ozs/common/enums/BusinessType.java
  22. 43 27
      purchase-common/src/main/java/com/ozs/common/utils/bean/BeanUtils.java
  23. 32 0
      purchase-common/src/main/java/com/ozs/common/vo/BaseDto.java
  24. 21 0
      purchase-common/src/main/java/com/ozs/common/vo/PageVo.java
  25. 26 0
      purchase-framework/src/main/java/com/ozs/framework/config/MybatisPlusConfig.java
  26. 66 0
      purchase-system/src/main/java/com/ozs/base/domain/BaseAgency.java
  27. 66 0
      purchase-system/src/main/java/com/ozs/base/domain/BaseFileTemplate.java
  28. 75 0
      purchase-system/src/main/java/com/ozs/base/domain/BaseNotice.java
  29. 47 0
      purchase-system/src/main/java/com/ozs/base/domain/BaseNoticeType.java
  30. 84 0
      purchase-system/src/main/java/com/ozs/base/domain/BasePolicy.java
  31. 56 0
      purchase-system/src/main/java/com/ozs/base/domain/BaseProfessional.java
  32. 19 0
      purchase-system/src/main/java/com/ozs/base/domain/vo/BaseProfessionalVo.java
  33. 19 0
      purchase-system/src/main/java/com/ozs/base/mapper/BaseAgencyMapper.java
  34. 17 0
      purchase-system/src/main/java/com/ozs/base/mapper/BaseFileTemplateMapper.java
  35. 18 0
      purchase-system/src/main/java/com/ozs/base/mapper/BaseNoticeMapper.java
  36. 18 0
      purchase-system/src/main/java/com/ozs/base/mapper/BaseNoticeTypeMapper.java
  37. 18 0
      purchase-system/src/main/java/com/ozs/base/mapper/BasePolicyMapper.java
  38. 26 0
      purchase-system/src/main/java/com/ozs/base/mapper/BaseProfessionalMapper.java
  39. 26 0
      purchase-system/src/main/java/com/ozs/base/service/BaseAgencyService.java
  40. 10 0
      purchase-system/src/main/java/com/ozs/base/service/BaseFileTemplateService.java
  41. 10 0
      purchase-system/src/main/java/com/ozs/base/service/BaseNoticeService.java
  42. 10 0
      purchase-system/src/main/java/com/ozs/base/service/BaseNoticeTypeService.java
  43. 10 0
      purchase-system/src/main/java/com/ozs/base/service/BasePolicyService.java
  44. 13 0
      purchase-system/src/main/java/com/ozs/base/service/BaseProfessionalService.java
  45. 62 0
      purchase-system/src/main/java/com/ozs/base/service/impl/BaseAgencyServiceImpl.java
  46. 14 0
      purchase-system/src/main/java/com/ozs/base/service/impl/BaseFileTemplateServiceImpl.java
  47. 16 0
      purchase-system/src/main/java/com/ozs/base/service/impl/BaseNoticeServiceImpl.java
  48. 13 0
      purchase-system/src/main/java/com/ozs/base/service/impl/BaseNoticeTypeServiceImpl.java
  49. 14 0
      purchase-system/src/main/java/com/ozs/base/service/impl/BasePolicyServiceImpl.java
  50. 83 0
      purchase-system/src/main/java/com/ozs/base/service/impl/BaseProfessionalServiceImpl.java
  51. 27 0
      purchase-system/src/main/java/com/ozs/base/vo/BaseAgentPageReqVo.java
  52. 24 0
      purchase-system/src/main/java/com/ozs/base/vo/BaseFileTemplatePageReqVo.java
  53. 33 0
      purchase-system/src/main/java/com/ozs/base/vo/BaseNoticePageReqVo.java
  54. 20 0
      purchase-system/src/main/java/com/ozs/base/vo/BaseNoticeTypePageReqVo.java
  55. 32 0
      purchase-system/src/main/java/com/ozs/base/vo/BaseNoticeVo.java
  56. 33 0
      purchase-system/src/main/java/com/ozs/base/vo/BasePolicyPageReqVo.java
  57. 18 0
      purchase-system/src/main/java/com/ozs/system/domain/vo/requestVo/SysMenuIdsRequestVo.java
  58. 13 0
      purchase-system/src/main/java/com/ozs/system/domain/vo/requestVo/SysRoleRequestVo.java
  59. 13 0
      purchase-system/src/main/java/com/ozs/system/domain/vo/requestVo/SysStatusRequestVo.java
  60. 17 0
      purchase-system/src/main/java/com/ozs/system/domain/vo/requestVo/SysUserRequestVo.java
  61. 0 7
      purchase-system/src/main/java/com/ozs/system/domain/vo/responseVo/UnitManagementResponseVo.java
  62. 40 0
      purchase-system/src/main/java/com/ozs/system/service/ISysRoleService.java
  63. 14 0
      purchase-system/src/main/java/com/ozs/system/service/ISysUserService.java
  64. 104 82
      purchase-system/src/main/java/com/ozs/system/service/impl/SysRoleServiceImpl.java
  65. 19 0
      purchase-system/src/main/java/com/ozs/system/service/impl/SysUserServiceImpl.java
  66. 43 0
      purchase-system/src/main/resources/mapper/base/BaseProfessionalMapper.xml
  67. 2 2
      purchase-system/src/main/resources/mapper/system/SysDeptMapper.xml
  68. 2 0
      purchase-system/src/main/resources/mapper/system/SysRoleMapper.xml

+ 1 - 1
pom.xml

@@ -30,7 +30,7 @@
         <poi.version>4.1.2</poi.version>
         <velocity.version>2.3</velocity.version>
         <jwt.version>0.9.1</jwt.version>
-        <mybatis-plus.version>3.4.3.4</mybatis-plus.version>
+        <mybatis-plus.version>3.5.1</mybatis-plus.version>
     </properties>
 
     <!-- 依赖声明 -->

+ 120 - 0
purchase-admin/src/main/java/com/ozs/web/controller/base/BaseAgencyController.java

@@ -0,0 +1,120 @@
+package com.ozs.web.controller.base;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ozs.base.domain.BaseAgency;
+import com.ozs.base.service.BaseAgencyService;
+import com.ozs.base.vo.BaseAgentPageReqVo;
+import com.ozs.common.annotation.Log;
+import com.ozs.common.constant.ModularConstans;
+import com.ozs.common.core.controller.BaseController;
+import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.common.enums.BusinessType;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.Date;
+
+
+@Api(tags = ModularConstans.agency)
+@RestController
+@RequestMapping("/base/agency")
+public class BaseAgencyController extends BaseController {
+
+    @Autowired
+    private BaseAgencyService baseAgencyService;
+
+    @ApiOperation(value = "新增招标代理机构")
+    @PostMapping("/insertBaseAgency")
+    @PreAuthorize("@ss.hasPermi('base:agency:add')")
+    @Log(title = ModularConstans.agency, businessType = BusinessType.INSERT)
+    public AjaxResult insertBaseAgency(@NotEmpty(message = "数据为空")
+                                           @RequestBody BaseAgency baseAgency) {
+//        if (ObjectUtils.isEmpty(baseAgency)) {
+//            return error("数据为空");
+//        }
+        baseAgency.setStatus(0);
+        baseAgency.setCreated(getUserId().toString());
+        baseAgency.setCreateTime(new Date());
+        baseAgency.setUpdated(baseAgency.getCreated());
+        baseAgency.setUpdateTime(baseAgency.getCreateTime());
+        return toAjax(baseAgencyService.insert(baseAgency));
+    }
+
+
+    @ApiOperation(value = "查看招标代理机构")
+    @PostMapping("/getInfo")
+    @PreAuthorize("@ss.hasPermi('base:agency:query')")
+    @Log(title = ModularConstans.agency, businessType = BusinessType.QUERY)
+    public AjaxResult getInfo(@NotEmpty(message = "主键id不能为空")
+                              @RequestParam(value = "id", required = true)
+                                      Long id) {
+        return success(baseAgencyService.getInfo(id));
+    }
+
+
+    @ApiOperation(value = "修改招标代理机构信息")
+    @PostMapping("/updateInfo")
+    @PreAuthorize("@ss.hasPermi('base:agency:edit')")
+    @Log(title = ModularConstans.agency, businessType = BusinessType.UPDATE)
+    public AjaxResult updateInfo(@NotEmpty(message = "数据为空")
+                                             @RequestBody BaseAgency baseAgency) {
+        baseAgency.setUpdateTime(new Date());
+        baseAgency.setUpdated(getUserId().toString());
+        return toAjax(baseAgencyService.updateInfo(baseAgency));
+    }
+
+    @ApiOperation(value = "操作招标代理机构黑白名单")
+    @PostMapping("/operationBlacklist")
+    @PreAuthorize("@ss.hasPermi('base:agency:edit')")
+    @Log(title = ModularConstans.agency, businessType = BusinessType.UPDATE)
+    public AjaxResult operationBlacklist(@NotEmpty(message = "主键id不能为空")
+                                         @RequestParam(value = "id", required = true)
+                                                 Long id,
+                                         @NotEmpty(message = "状态不能为空")
+                                         @RequestParam(value = "status", required = true)
+                                                 Integer status) {
+
+        BaseAgency build = BaseAgency.builder().id(id).status(status).build();
+        build.setUpdated(getUserId().toString());
+        build.setUpdateTime(new Date());
+        return toAjax(baseAgencyService.operationBlacklist(build));
+    }
+
+    @ApiOperation(value = "删除招标代理机构信息")
+    @PostMapping("/remove")
+    @PreAuthorize("@ss.hasPermi('base:agency:remove')")
+    @Log(title = ModularConstans.agency, businessType = BusinessType.DELETE)
+    public AjaxResult remove(@NotEmpty(message = "主键id不能为空")
+                             @RequestParam(value = "id", required = true)
+                                     Long id) {
+        return toAjax(baseAgencyService.remove(id));
+    }
+
+    @ApiOperation(value = "分页查询招标代理机构信息")
+    @PostMapping("/page")
+    @PreAuthorize("@ss.hasPermi('base:agency:list')")
+    @Log(title = ModularConstans.agency, businessType = BusinessType.QUERY)
+    public AjaxResult page(@NotEmpty(message = "数据为空") @RequestBody BaseAgentPageReqVo vo) {
+        LambdaQueryWrapper<BaseAgency> lw = new LambdaQueryWrapper<BaseAgency>();
+        if(!StringUtils.isBlank(vo.getCompanyName())){
+            lw.like(BaseAgency::getCompanyName,vo.getCompanyName());
+        }
+        if(!StringUtils.isBlank(vo.getCompanyNature())){
+            lw.eq(BaseAgency::getCompanyNature,vo.getCompanyNature());
+        }
+        if(!ObjectUtils.isEmpty(vo.getStatus())){
+            lw.eq(BaseAgency::getStatus,vo.getStatus());
+        }
+        IPage<BaseAgency> page = baseAgencyService.page(new Page<BaseAgency>(vo.getPageNum(), vo.getPageSize()), lw);
+        return success(page);
+    }
+}

+ 74 - 0
purchase-admin/src/main/java/com/ozs/web/controller/base/BaseFileTemplateController.java

@@ -0,0 +1,74 @@
+package com.ozs.web.controller.base;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ozs.base.domain.BaseFileTemplate;
+import com.ozs.base.service.BaseFileTemplateService;
+import com.ozs.base.vo.BaseFileTemplatePageReqVo;
+import com.ozs.common.annotation.Log;
+import com.ozs.common.constant.ModularConstans;
+import com.ozs.common.core.controller.BaseController;
+import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.common.enums.BusinessType;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.Date;
+import java.util.List;
+
+@Api(tags = ModularConstans.fileTemplate)
+@RestController
+@RequestMapping("/base/file")
+public class BaseFileTemplateController extends BaseController {
+
+    @Autowired
+    private BaseFileTemplateService baseFileTemplateService;
+
+
+    @ApiOperation(value = "分页查询文件模板信息")
+    @PostMapping("/page")
+    @PreAuthorize("@ss.hasPermi('base:file:list')")
+    @Log(title = ModularConstans.fileTemplate, businessType = BusinessType.QUERY)
+    public AjaxResult page(@NotEmpty(message = "数据为空") @RequestBody BaseFileTemplatePageReqVo vo) {
+        LambdaQueryWrapper<BaseFileTemplate> lw = new LambdaQueryWrapper<BaseFileTemplate>();
+        if(!StringUtils.isBlank(vo.getFileName())){
+            lw.like(BaseFileTemplate::getFileName,vo.getFileName());
+        }
+        if(!StringUtils.isBlank(vo.getFileType())){
+            lw.eq(BaseFileTemplate::getFileType,vo.getFileType());
+        }
+        IPage<BaseFileTemplate> page = baseFileTemplateService.page(new Page<BaseFileTemplate>(vo.getPageNum(), vo.getPageSize()), lw);
+        return success(page);
+    }
+
+    @ApiOperation(value = "新增文件模板信息")
+    @PostMapping("/insert")
+    @PreAuthorize("@ss.hasPermi('base:file:add')")
+    @Log(title = ModularConstans.fileTemplate, businessType = BusinessType.INSERT)
+    public AjaxResult insert(@NotEmpty(message = "数据为空")
+                                 @RequestBody BaseFileTemplate baseFileTemplate) {
+        baseFileTemplate.setCreated(getUserId().toString());
+        baseFileTemplate.setCreateTime(new Date());
+        baseFileTemplate.setUpdated(baseFileTemplate.getCreated());
+        baseFileTemplate.setUpdateTime(baseFileTemplate.getCreateTime());
+        return toAjax(baseFileTemplateService.save(baseFileTemplate));
+    }
+
+    @ApiOperation(value = "删除文件模板信息")
+    @PostMapping("/remove")
+    @PreAuthorize("@ss.hasPermi('base:file:remove')")
+    @Log(title = ModularConstans.fileTemplate, businessType = BusinessType.DELETE)
+    public AjaxResult remove(@NotEmpty(message = "主键id不能为空")
+                             @RequestBody  List<Long> ids) {
+        return toAjax(baseFileTemplateService.removeBatchByIds(ids));
+    }
+
+
+}

+ 133 - 0
purchase-admin/src/main/java/com/ozs/web/controller/base/BaseNoticeController.java

@@ -0,0 +1,133 @@
+package com.ozs.web.controller.base;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ozs.base.domain.BaseNotice;
+import com.ozs.base.domain.BaseNoticeType;
+import com.ozs.base.service.BaseNoticeService;
+import com.ozs.base.service.BaseNoticeTypeService;
+import com.ozs.base.vo.BaseNoticePageReqVo;
+import com.ozs.base.vo.BaseNoticeTypePageReqVo;
+import com.ozs.base.vo.BaseNoticeVo;
+import com.ozs.common.annotation.Log;
+import com.ozs.common.constant.ModularConstans;
+import com.ozs.common.core.controller.BaseController;
+import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.common.enums.BusinessType;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Api(tags = ModularConstans.notice)
+@RestController
+@RequestMapping("/base/notice")
+public class BaseNoticeController extends BaseController {
+
+
+    @Autowired
+    private BaseNoticeService baseNoticeService;
+    @Autowired
+    private BaseNoticeTypeService baseNoticeTypeService;
+
+    @ApiOperation(value = "分页查询公告信息")
+    @PostMapping("/page")
+    @PreAuthorize("@ss.hasPermi('base:notice:list')")
+    @Log(title = ModularConstans.notice, businessType = BusinessType.QUERY)
+    public AjaxResult page(@NotEmpty(message = "数据为空")
+                               @RequestBody BaseNoticePageReqVo vo) {
+        LambdaQueryWrapper<BaseNotice> lw = new LambdaQueryWrapper<>();
+        if(!StringUtils.isBlank(vo.getTitle())){
+            lw.like(BaseNotice::getTitle,vo.getTitle());
+        }
+        if(!ObjectUtils.isEmpty(vo.getStartTime())){
+            lw.ge(BaseNotice::getReleaseTime,vo.getStartTime());
+        }
+        if(!ObjectUtils.isEmpty(vo.getStartTime())){
+            lw.le(BaseNotice::getReleaseTime,vo.getEntTime());
+        }
+        IPage<BaseNotice> page = baseNoticeService.page(new Page<>(vo.getPageNum(), vo.getPageSize()), lw);
+        IPage<BaseNoticeVo> pagev = new Page<>();
+        pagev.setTotal(page.getTotal());
+        pagev.setCurrent(page.getCurrent());
+        pagev.setPages(page.getPages());
+
+        if(!ObjectUtils.isEmpty(page) && page.getRecords().size()>0){
+            List<BaseNoticeType> list = baseNoticeTypeService.list();
+            List<Long> ids = list.stream().map(BaseNoticeType::getId).collect(Collectors.toList());
+            List<BaseNoticeVo> collect = page.getRecords().stream().map(o -> {
+                BaseNoticeVo baseNoticeVo = new BaseNoticeVo();
+                BeanUtils.copyProperties(o, baseNoticeVo);
+                if (ids.contains(o.getType())) {
+                    List<BaseNoticeType> collect1 = list.stream().filter(tdto -> tdto.getId().equals(o.getType())).collect(Collectors.toList());
+                    if(!ObjectUtils.isEmpty(collect1)){
+                        baseNoticeVo.setTypeName(collect1.get(0).getName());
+                    }
+
+                }
+                return baseNoticeVo;
+            }).collect(Collectors.toList());
+            pagev.setRecords(collect);
+        }else {
+            pagev.setRecords(null);
+        }
+        return success(pagev);
+
+    }
+
+
+
+    @ApiOperation(value = "新增公告信息")
+    @PostMapping("/insert")
+    @PreAuthorize("@ss.hasPermi('base:notice:add')")
+    @Log(title = ModularConstans.notice, businessType = BusinessType.INSERT)
+    public AjaxResult insert(@NotEmpty(message = "数据为空")
+                                 @RequestBody BaseNotice vo) {
+        vo.setCreated(getUserId().toString());
+        vo.setCreateTime(new Date());
+        vo.setUpdated(vo.getCreated());
+        vo.setUpdateTime(vo.getCreateTime());
+        return toAjax(baseNoticeService.save(vo));
+    }
+
+    @ApiOperation(value = "删除公告信息")
+    @PostMapping("/remove")
+    @PreAuthorize("@ss.hasPermi('base:notice:remove')")
+    @Log(title = ModularConstans.notice, businessType = BusinessType.DELETE)
+    public AjaxResult remove(@NotEmpty(message = "主键id不能为空")
+                             @RequestBody List<Long> ids) {
+        return toAjax(baseNoticeService.removeBatchByIds(ids));
+    }
+
+    @ApiOperation(value = "查看公告信息")
+    @PostMapping("/getInfo")
+    @PreAuthorize("@ss.hasPermi('base:notice:query')")
+    @Log(title = ModularConstans.notice, businessType = BusinessType.QUERY)
+    public AjaxResult getInfo(@NotEmpty(message = "主键id不能为空")
+                              @RequestParam(value = "id", required = true)
+                                      Long id) {
+        BaseNotice vo = baseNoticeService.getById(id);
+
+        BaseNoticeVo baseNoticeVo = new BaseNoticeVo();
+        if(!ObjectUtils.isEmpty(vo)){
+            BeanUtils.copyProperties(vo, baseNoticeVo);
+            List<BaseNoticeType> list = baseNoticeTypeService.list();
+            List<BaseNoticeType> collect1 = list.stream().filter(tdto -> tdto.getId().equals(vo.getType())).collect(Collectors.toList());
+            if(!ObjectUtils.isEmpty(collect1)){
+                baseNoticeVo.setTypeName(collect1.get(0).getName());
+            }
+        }
+
+        return success(baseNoticeVo);
+    }
+}

+ 91 - 0
purchase-admin/src/main/java/com/ozs/web/controller/base/BaseNoticeTypeController.java

@@ -0,0 +1,91 @@
+package com.ozs.web.controller.base;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ozs.base.domain.BaseNoticeType;
+import com.ozs.base.service.BaseNoticeTypeService;
+import com.ozs.base.vo.BaseNoticeTypePageReqVo;
+import com.ozs.common.annotation.Log;
+import com.ozs.common.constant.ModularConstans;
+import com.ozs.common.core.controller.BaseController;
+import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.common.enums.BusinessType;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.Date;
+import java.util.List;
+
+@Api(tags = ModularConstans.noticeType)
+@RestController
+@RequestMapping("/base/notice/type")
+public class BaseNoticeTypeController extends BaseController {
+
+
+    @Autowired
+    private BaseNoticeTypeService baseNoticeTypeService;
+
+    @ApiOperation(value = "分页查询公告类型信息")
+    @PostMapping("/page")
+    @PreAuthorize("@ss.hasPermi('base:noticeType:list')")
+    @Log(title = ModularConstans.noticeType, businessType = BusinessType.QUERY)
+    public AjaxResult page(@NotEmpty(message = "数据为空")
+                               @RequestBody BaseNoticeTypePageReqVo vo) {
+        LambdaQueryWrapper<BaseNoticeType> lw = new LambdaQueryWrapper<>();
+        if(!StringUtils.isBlank(vo.getName())){
+            lw.like(BaseNoticeType::getName,vo.getName());
+        }
+        IPage<BaseNoticeType> page = baseNoticeTypeService.page(new Page<>(vo.getPageNum(), vo.getPageSize()), lw);
+        return success(page);
+    }
+
+    @ApiOperation(value = "修改公告类型信息")
+    @PostMapping("/updateInfo")
+    @PreAuthorize("@ss.hasPermi('base:noticeType:edit')")
+    @Log(title = ModularConstans.noticeType, businessType = BusinessType.UPDATE)
+    public AjaxResult updateInfo(@NotEmpty(message = "数据为空")
+                                 @RequestBody BaseNoticeType vo) {
+        vo.setUpdateTime(new Date());
+        vo.setUpdated(getUserId().toString());
+        return toAjax(baseNoticeTypeService.updateById(vo));
+    }
+
+    @ApiOperation(value = "新增公告类型信息")
+    @PostMapping("/insert")
+    @PreAuthorize("@ss.hasPermi('base:noticeType:add')")
+    @Log(title = ModularConstans.noticeType, businessType = BusinessType.INSERT)
+    public AjaxResult insert(@NotEmpty(message = "数据为空")
+                                 @RequestBody BaseNoticeType vo) {
+        vo.setCreated(getUserId().toString());
+        vo.setCreateTime(new Date());
+        vo.setUpdated(vo.getCreated());
+        vo.setUpdateTime(vo.getCreateTime());
+        return toAjax(baseNoticeTypeService.save(vo));
+    }
+
+    @ApiOperation(value = "删除公告类型信息")
+    @PostMapping("/remove")
+    @PreAuthorize("@ss.hasPermi('base:noticeType:remove')")
+    @Log(title = ModularConstans.noticeType, businessType = BusinessType.DELETE)
+    public AjaxResult remove(@NotEmpty(message = "主键id不能为空")
+                             @RequestBody List<Long> ids) {
+        return toAjax(baseNoticeTypeService.removeBatchByIds(ids));
+    }
+
+
+    @ApiOperation(value = "查询公告类型信息-下拉")
+    @PostMapping("/list")
+    @Log(title = ModularConstans.noticeType, businessType = BusinessType.QUERY)
+    public AjaxResult list() {
+        return success(baseNoticeTypeService.list());
+    }
+}

+ 134 - 0
purchase-admin/src/main/java/com/ozs/web/controller/base/BasePolicyController.java

@@ -0,0 +1,134 @@
+package com.ozs.web.controller.base;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ozs.base.domain.BaseNotice;
+import com.ozs.base.domain.BaseNoticeType;
+import com.ozs.base.domain.BasePolicy;
+import com.ozs.base.service.BaseNoticeService;
+import com.ozs.base.service.BaseNoticeTypeService;
+import com.ozs.base.service.BasePolicyService;
+import com.ozs.base.vo.BaseNoticePageReqVo;
+import com.ozs.base.vo.BaseNoticeVo;
+import com.ozs.base.vo.BasePolicyPageReqVo;
+import com.ozs.common.annotation.Log;
+import com.ozs.common.constant.ModularConstans;
+import com.ozs.common.core.controller.BaseController;
+import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.common.enums.BusinessType;
+import com.ozs.common.utils.file.FileUploadUtils;
+import com.ozs.common.utils.file.FileUtils;
+import com.ozs.common.utils.uuid.UUID;
+import com.ozs.common.vo.EsMessage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.constraints.NotEmpty;
+import java.io.IOException;
+import java.net.UnknownHostException;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Api(tags = ModularConstans.policy)
+@RestController
+@RequestMapping("/base/policy")
+public class BasePolicyController extends BaseController {
+
+
+    @Autowired
+    private BasePolicyService basePolicyService;
+
+    @ApiOperation(value = "分页查询政策法规")
+    @PostMapping("/page")
+    @PreAuthorize("@ss.hasPermi('base:policy:list')")
+    @Log(title = ModularConstans.policy, businessType = BusinessType.QUERY)
+    public AjaxResult page(@NotEmpty(message = "数据为空")
+                               @RequestBody BasePolicyPageReqVo vo) {
+        LambdaQueryWrapper<BasePolicy> lw = new LambdaQueryWrapper<>();
+        if(!StringUtils.isBlank(vo.getName())){
+            List<EsMessage> maps = null;
+            try {
+                maps = FileUtils.eSearch(vo.getName());
+            } catch (UnknownHostException e) {
+                e.printStackTrace();
+            }
+            List<String> ids = maps.stream().map(EsMessage::getId).collect(Collectors.toList());
+//            lw.like(BasePolicy::getName,vo.getName());
+            lw.in(BasePolicy::getEsId,ids);
+        }
+        if(!ObjectUtils.isEmpty(vo.getStartTime())){
+            lw.ge(BasePolicy::getReleaseTime,vo.getStartTime());
+        }
+        if(!ObjectUtils.isEmpty(vo.getStartTime())){
+            lw.le(BasePolicy::getReleaseTime,vo.getEntTime());
+        }
+        IPage<BasePolicy> page = basePolicyService.page(new Page<>(vo.getPageNum(), vo.getPageSize()), lw);
+        return success(page);
+
+    }
+
+
+    @ApiOperation("PDF上传")
+    @ApiImplicitParam(name = "file", value = "文件", required = true, dataTypeClass = MultipartFile.class)
+    @PostMapping("/pdfUpload")
+    public AjaxResult pdfUpload(MultipartFile file) {
+        try {
+            // 上传到服务器,返回一个服务器硬盘地址
+            String esId = UUID.randomUUID().toString();
+            String upload = FileUploadUtils.uploadPdfToEs(file,esId );
+            AjaxResult ajax = AjaxResult.success();
+            ajax.put("url", upload);
+            ajax.put("fileName", file.getName());
+            ajax.put("esId", esId);
+            ajax.put("originalFilename", file.getOriginalFilename());
+            return ajax;
+        } catch (IOException e) {
+            e.printStackTrace();
+            return AjaxResult.error(e.getMessage());
+        }
+
+    }
+
+    @ApiOperation(value = "新增政策法规")
+    @PostMapping("/insert")
+    @PreAuthorize("@ss.hasPermi('base:policy:add')")
+    @Log(title = ModularConstans.policy, businessType = BusinessType.INSERT)
+    public AjaxResult insert(@NotEmpty(message = "数据为空")
+                                 @RequestBody BasePolicy vo) {
+        vo.setCreated(getUserId().toString());
+        vo.setCreateTime(new Date());
+        vo.setUpdated(vo.getCreated());
+        vo.setUpdateTime(vo.getCreateTime());
+        return toAjax(basePolicyService.save(vo));
+    }
+
+    @ApiOperation(value = "删除政策法规")
+    @PostMapping("/remove")
+    @PreAuthorize("@ss.hasPermi('base:policy:remove')")
+    @Log(title = ModularConstans.policy, businessType = BusinessType.DELETE)
+    public AjaxResult remove(@NotEmpty(message = "主键id不能为空")
+                             @RequestBody List<Long> ids) {
+        return toAjax(basePolicyService.removeBatchByIds(ids));
+    }
+
+    @ApiOperation(value = "查看政策法规")
+    @PostMapping("/getInfo")
+    @PreAuthorize("@ss.hasPermi('base:policy:query')")
+    @Log(title = ModularConstans.policy, businessType = BusinessType.QUERY)
+    public AjaxResult getInfo(@NotEmpty(message = "主键id不能为空")
+                              @RequestParam(value = "id", required = true)
+                                      Long id) {
+        return success(basePolicyService.getById(id));
+    }
+
+}

+ 70 - 0
purchase-admin/src/main/java/com/ozs/web/controller/base/BaseProfessionalController.java

@@ -0,0 +1,70 @@
+package com.ozs.web.controller.base;
+
+import com.ozs.base.domain.BaseProfessional;
+import com.ozs.base.domain.vo.BaseProfessionalVo;
+import com.ozs.base.service.BaseProfessionalService;
+import com.ozs.common.core.controller.BaseController;
+import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.common.utils.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 专业库管理
+ *
+ * @author sunhh
+ */
+@Api(tags = "专业库管理")
+@RestController
+@RequestMapping("/base/professional")
+public class BaseProfessionalController extends BaseController {
+
+    @Autowired
+    private BaseProfessionalService baseProfessionalService;
+
+    @ApiOperation(value = "新增专业库", notes = "必传 专业库名称、一级分类、编码、父级编码;没有父级编码传0")
+    @PostMapping("/insertProfessional")
+    public AjaxResult insertProfessional(BaseProfessional baseProfessional) {
+        if (StringUtils.isNull(baseProfessional) || StringUtils.isNull(baseProfessional.getProfessionalName())
+                || StringUtils.isNull(baseProfessional.getProfessionalCode()) || StringUtils.isNull(baseProfessional.getProfessionalGrade())) {
+            return error("专业库名称、编码、一级分类不能为空");
+        }
+        return toAjax(baseProfessionalService.save(baseProfessional));
+    }
+
+    @ApiOperation(value = "删除专业库", notes = "必传 id")
+    @PostMapping("/deleteProfessional")
+    public AjaxResult deleteProfessional(BaseProfessional baseProfessional) {
+        if (StringUtils.isNull(baseProfessional) || StringUtils.isNull(baseProfessional.getId())) {
+            return error("专业库id不能为空");
+        }
+        return toAjax(baseProfessionalService.removeById(baseProfessional.getId()));
+    }
+
+    @ApiOperation(value = "批量删除专业库", notes = "必传 idList")
+    @PostMapping("/deleteIds")
+    public AjaxResult deleteByIdLIst(@RequestBody BaseProfessionalVo baseProfessionalVo) {
+        baseProfessionalService.deleteIds(baseProfessionalVo.getDeleteIds());
+        return success();
+    }
+
+    @ApiOperation(value = "修改专业库", notes = "必传 id 及修改数据")
+    @PostMapping("/updateProfessional")
+    public AjaxResult updateProfessional(BaseProfessional baseProfessional) {
+        if (StringUtils.isNull(baseProfessional) || StringUtils.isNull(baseProfessional.getId())) {
+            return error("专业库id和修改数据不能为空");
+        }
+        return toAjax(baseProfessionalService.updateById(baseProfessional));
+    }
+
+    @ApiOperation(value = "查询专业库树结构", notes = "非必传 查询条件:品目名称")
+    @PostMapping("/selectBaseProfessional")
+    public AjaxResult selectBaseProfessional(BaseProfessionalVo baseProfessionalVo) {
+        List<BaseProfessionalVo> baseSupplierList = baseProfessionalService.selectBaseProfessional(baseProfessionalVo);
+        return success(baseSupplierList);
+    }
+}

+ 0 - 4
purchase-admin/src/main/java/com/ozs/web/controller/base/BaseSupplierController.java

@@ -6,11 +6,7 @@ import com.ozs.common.core.page.TableDataInfo;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.base.domain.BaseSupplier;
 import com.ozs.base.service.BaseSupplierService;
-import com.ozs.common.utils.poi.ExcelUtil;
-import com.ozs.system.domain.SysConfig;
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;

+ 28 - 39
purchase-admin/src/main/java/com/ozs/web/controller/common/CommonController.java

@@ -1,9 +1,16 @@
 package com.ozs.web.controller.common;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
+import com.ozs.common.core.domain.R;
+import com.ozs.common.utils.uuid.UUID;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,10 +33,10 @@ import com.ozs.framework.config.ServerConfig;
  *
  * @author ruoyi
  */
+@Api(tags = "统用功能")
 @RestController
 @RequestMapping("/common")
-public class CommonController
-{
+public class CommonController {
     private static final Logger log = LoggerFactory.getLogger(CommonController.class);
 
     @Autowired
@@ -41,15 +48,12 @@ public class CommonController
      * 通用下载请求
      *
      * @param fileName 文件名称
-     * @param delete 是否删除
+     * @param delete   是否删除
      */
     @GetMapping("/download")
-    public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request)
-    {
-        try
-        {
-            if (!FileUtils.checkAllowDownload(fileName))
-            {
+    public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request) {
+        try {
+            if (!FileUtils.checkAllowDownload(fileName)) {
                 throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName));
             }
             String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
@@ -58,13 +62,10 @@ public class CommonController
             response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
             FileUtils.setAttachmentResponseHeader(response, realFileName);
             FileUtils.writeBytes(filePath, response.getOutputStream());
-            if (delete)
-            {
+            if (delete) {
                 FileUtils.deleteFile(filePath);
             }
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             log.error("下载文件失败", e);
         }
     }
@@ -73,10 +74,8 @@ public class CommonController
      * 通用上传请求(单个)
      */
     @PostMapping("/upload")
-    public AjaxResult uploadFile(MultipartFile file) throws Exception
-    {
-        try
-        {
+    public AjaxResult uploadFile(MultipartFile file) throws Exception {
+        try {
             // 上传文件路径
             String filePath = PurchaseConfig.getUploadPath();
             // 上传并返回新文件名称
@@ -88,29 +87,26 @@ public class CommonController
             ajax.put("newFileName", FileUtils.getName(fileName));
             ajax.put("originalFilename", file.getOriginalFilename());
             return ajax;
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             return AjaxResult.error(e.getMessage());
         }
     }
 
+
+
     /**
      * 通用上传请求(多个)
      */
     @PostMapping("/uploads")
-    public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception
-    {
-        try
-        {
+    public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception {
+        try {
             // 上传文件路径
             String filePath = PurchaseConfig.getUploadPath();
             List<String> urls = new ArrayList<String>();
             List<String> fileNames = new ArrayList<String>();
             List<String> newFileNames = new ArrayList<String>();
             List<String> originalFilenames = new ArrayList<String>();
-            for (MultipartFile file : files)
-            {
+            for (MultipartFile file : files) {
                 // 上传并返回新文件名称
                 String fileName = FileUploadUtils.upload(filePath, file);
                 String url = serverConfig.getUrl() + fileName;
@@ -125,9 +121,7 @@ public class CommonController
             ajax.put("newFileNames", StringUtils.join(newFileNames, FILE_DELIMETER));
             ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER));
             return ajax;
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             return AjaxResult.error(e.getMessage());
         }
     }
@@ -137,12 +131,9 @@ public class CommonController
      */
     @GetMapping("/download/resource")
     public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response)
-            throws Exception
-    {
-        try
-        {
-            if (!FileUtils.checkAllowDownload(resource))
-            {
+            throws Exception {
+        try {
+            if (!FileUtils.checkAllowDownload(resource)) {
                 throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource));
             }
             // 本地资源路径
@@ -154,9 +145,7 @@ public class CommonController
             response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
             FileUtils.setAttachmentResponseHeader(response, downloadName);
             FileUtils.writeBytes(downloadPath, response.getOutputStream());
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             log.error("下载文件失败", e);
         }
     }

+ 1 - 1
purchase-admin/src/main/java/com/ozs/web/controller/system/SysDeptController.java

@@ -43,7 +43,7 @@ public class SysDeptController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('system:dept:list')")
     @GetMapping("/list")
-    @ApiOperation("获取参数配置列表")
+    @ApiOperation("获取部门列表")
     public AjaxResult list(SysDept dept)
     {
         List<SysDept> depts = deptService.selectDeptList(dept);

+ 118 - 34
purchase-admin/src/main/java/com/ozs/web/controller/system/SysRoleController.java

@@ -3,8 +3,15 @@ package com.ozs.web.controller.system;
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ozs.common.core.domain.R;
+import com.ozs.system.domain.vo.requestVo.SysMenuIdsRequestVo;
+import com.ozs.system.domain.vo.requestVo.SysRoleRequestVo;
+import com.ozs.system.domain.vo.requestVo.SysStatusRequestVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.lucene.search.similarities.Distribution;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
@@ -96,59 +103,105 @@ public class SysRoleController extends BaseController
     /**
      * 新增角色
      */
+//    @PreAuthorize("@ss.hasPermi('system:role:add')")
+//    @Log(title = "角色管理", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    @ApiOperation("新增角色")
+//    public AjaxResult add(@Validated @RequestBody SysRole role)
+//    {
+//        if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role)))
+//        {
+//            return error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在");
+//        }
+//        else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role)))
+//        {
+//            return error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在");
+//        }
+//        role.setCreateBy(getUsername());
+//        return toAjax(roleService.insertRole(role));
+//
+//    }
+
     @PreAuthorize("@ss.hasPermi('system:role:add')")
     @Log(title = "角色管理", businessType = BusinessType.INSERT)
     @PostMapping
     @ApiOperation("新增角色")
-    public AjaxResult add(@Validated @RequestBody SysRole role)
+    public AjaxResult add(@Validated @RequestBody SysRoleRequestVo sysRoleRequestVo)
     {
-        if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role)))
+        SysRole sysRole = new SysRole();
+        BeanUtils.copyProperties(sysRoleRequestVo,sysRole);
+        if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(sysRole)))
         {
-            return error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在");
+            return error("新增角色'" + sysRole.getRoleName() + "'失败,角色名称已存在");
         }
-        else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role)))
-        {
-            return error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在");
-        }
-        role.setCreateBy(getUsername());
-        return toAjax(roleService.insertRole(role));
+        sysRole.setCreateBy(getUsername());
+        return toAjax(roleService.addRole(sysRole));
+    }
 
+    @PostMapping("/saveDistributionModule")
+    @ApiOperation("新增分配模块")
+    public AjaxResult saveDistributionModule(@RequestBody SysMenuIdsRequestVo sysMenuIdsRequestVo)
+    {
+        return toAjax(roleService.distributionModule(sysMenuIdsRequestVo));
     }
 
+//    /**
+//     * 修改保存角色
+//     */
+//    @PreAuthorize("@ss.hasPermi('system:role:edit')")
+//    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    @ApiOperation("修改保存角色")
+//    public AjaxResult edit(@Validated @RequestBody SysRole role)
+//    {
+//        roleService.checkRoleAllowed(role);
+//        roleService.checkRoleDataScope(role.getRoleId());
+//        if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role)))
+//        {
+//            return error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在");
+//        }
+//        else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role)))
+//        {
+//            return error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在");
+//        }
+//        role.setUpdateBy(getUsername());
+//
+//        if (roleService.updateRole(role) > 0)
+//        {
+//            // 更新缓存用户权限
+//            LoginUser loginUser = getLoginUser();
+//            if (StringUtils.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin())
+//            {
+//                loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser()));
+//                loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName()));
+//                tokenService.setLoginUser(loginUser);
+//            }
+//            return success();
+//        }
+//        return error("修改角色'" + role.getRoleName() + "'失败,请联系管理员");
+//    }
+
     /**
      * 修改保存角色
      */
     @PreAuthorize("@ss.hasPermi('system:role:edit')")
     @Log(title = "角色管理", businessType = BusinessType.UPDATE)
-    @PutMapping
+    @PutMapping("/edit")
     @ApiOperation("修改保存角色")
-    public AjaxResult edit(@Validated @RequestBody SysRole role)
+    public AjaxResult edit(@Validated @RequestBody SysRoleRequestVo sysRoleRequestVo)
     {
+        SysRole role = new SysRole();
+        BeanUtils.copyProperties(sysRoleRequestVo,role);
         roleService.checkRoleAllowed(role);
         roleService.checkRoleDataScope(role.getRoleId());
         if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role)))
         {
             return error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在");
         }
-        else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role)))
-        {
-            return error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在");
-        }
         role.setUpdateBy(getUsername());
 
-        if (roleService.updateRole(role) > 0)
-        {
-            // 更新缓存用户权限
-            LoginUser loginUser = getLoginUser();
-            if (StringUtils.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin())
-            {
-                loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser()));
-                loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName()));
-                tokenService.setLoginUser(loginUser);
-            }
-            return success();
-        }
-        return error("修改角色'" + role.getRoleName() + "'失败,请联系管理员");
+        return toAjax(roleService.updateRoles(role));
+        
     }
 
     /**
@@ -165,19 +218,50 @@ public class SysRoleController extends BaseController
         return toAjax(roleService.authDataScope(role));
     }
 
+    @PostMapping("/updateDistributionModule")
+    @ApiOperation("修改分配模块")
+    public AjaxResult updateDistributionModule(@RequestBody SysMenuIdsRequestVo sysMenuIdsRequestVo)
+    {
+        if (roleService.updateDistributionModule(sysMenuIdsRequestVo) > 0)
+        {
+            // 更新缓存用户权限
+            LoginUser loginUser = getLoginUser();
+            if (StringUtils.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin())
+            {
+                loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser()));
+                loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName()));
+                tokenService.setLoginUser(loginUser);
+            }
+            return success();
+        }
+        return error("修改失败,请联系管理员");
+    }
+
+//    /**
+//     * 状态修改
+//     */
+//    @PreAuthorize("@ss.hasPermi('system:role:edit')")
+//    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
+//    @PutMapping("/changeStatus")
+//    @ApiOperation("状态修改")
+//    public AjaxResult changeStatus(@RequestBody SysRole role)
+//    {
+//        roleService.checkRoleAllowed(role);
+//        roleService.checkRoleDataScope(role.getRoleId());
+//        role.setUpdateBy(getUsername());
+//        return toAjax(roleService.updateRoleStatus(role));
+//    }
+
     /**
      * 状态修改
      */
     @PreAuthorize("@ss.hasPermi('system:role:edit')")
     @Log(title = "角色管理", businessType = BusinessType.UPDATE)
     @PutMapping("/changeStatus")
-    @ApiOperation("状态修改")
-    public AjaxResult changeStatus(@RequestBody SysRole role)
+    @ApiOperation("批量状态修改")
+    public AjaxResult changeStatus(@RequestBody List<SysStatusRequestVo> sysStatusRequestVoList)
     {
-        roleService.checkRoleAllowed(role);
-        roleService.checkRoleDataScope(role.getRoleId());
-        role.setUpdateBy(getUsername());
-        return toAjax(roleService.updateRoleStatus(role));
+      return   toAjax(roleService.changeStatus(sysStatusRequestVoList));
     }
 
     /**

+ 73 - 22
purchase-admin/src/main/java/com/ozs/web/controller/system/SysUserController.java

@@ -4,9 +4,11 @@ import java.util.List;
 import java.util.stream.Collectors;
 import javax.servlet.http.HttpServletResponse;
 
+import com.ozs.system.domain.vo.requestVo.SysUserRequestVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.ArrayUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
@@ -126,6 +128,36 @@ public class SysUserController extends BaseController
         return ajax;
     }
 
+//    /**
+//     * 新增用户
+//     */
+//    @PreAuthorize("@ss.hasPermi('system:user:add')")
+//    @Log(title = "用户管理", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    @ApiOperation("新增用户")
+//    public AjaxResult add(@Validated @RequestBody SysUser user)
+//    {
+//        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user)))
+//        {
+//            return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
+//        }
+//        else if (StringUtils.isNotEmpty(user.getPhonenumber())
+//                && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
+//        {
+//            return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
+//        }
+//        else if (StringUtils.isNotEmpty(user.getEmail())
+//                && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
+//        {
+//            return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
+//        }
+//        user.setCreateBy(getUsername());
+//        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+//        return toAjax(userService.insertUser(user));
+//    }
+    
+    
+
     /**
      * 新增用户
      */
@@ -133,8 +165,10 @@ public class SysUserController extends BaseController
     @Log(title = "用户管理", businessType = BusinessType.INSERT)
     @PostMapping
     @ApiOperation("新增用户")
-    public AjaxResult add(@Validated @RequestBody SysUser user)
+    public AjaxResult add(@Validated @RequestBody SysUserRequestVo sysUserRequestVo)
     {
+        SysUser user = new SysUser();
+        BeanUtils.copyProperties(sysUserRequestVo,user);
         if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user)))
         {
             return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
@@ -144,16 +178,40 @@ public class SysUserController extends BaseController
         {
             return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
         }
-        else if (StringUtils.isNotEmpty(user.getEmail())
-                && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
-        {
-            return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
-        }
         user.setCreateBy(getUsername());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
-        return toAjax(userService.insertUser(user));
+        return toAjax(userService.saveUser(user));
     }
 
+//    /**
+//     * 修改用户
+//     */
+//    @PreAuthorize("@ss.hasPermi('system:user:edit')")
+//    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    @ApiOperation("修改用户")
+//    public AjaxResult edit(@Validated @RequestBody SysUser user)
+//    {
+//        userService.checkUserAllowed(user);
+//        userService.checkUserDataScope(user.getUserId());
+//        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user)))
+//        {
+//            return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在");
+//        }
+//        else if (StringUtils.isNotEmpty(user.getPhonenumber())
+//                && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
+//        {
+//            return error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
+//        }
+//        else if (StringUtils.isNotEmpty(user.getEmail())
+//                && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
+//        {
+//            return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
+//        }
+//        user.setUpdateBy(getUsername());
+//        return toAjax(userService.updateUser(user));
+//    }
+
     /**
      * 修改用户
      */
@@ -161,28 +219,21 @@ public class SysUserController extends BaseController
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @PutMapping
     @ApiOperation("修改用户")
-    public AjaxResult edit(@Validated @RequestBody SysUser user)
-    {
+    public AjaxResult edit(@Validated @RequestBody SysUserRequestVo sysUserRequestVo) {
+        SysUser user = new SysUser();
+        BeanUtils.copyProperties(sysUserRequestVo,user);
         userService.checkUserAllowed(user);
         userService.checkUserDataScope(user.getUserId());
-        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user)))
-        {
+        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user))) {
             return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在");
-        }
-        else if (StringUtils.isNotEmpty(user.getPhonenumber())
-                && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
-        {
+        } else if (StringUtils.isNotEmpty(user.getPhonenumber())
+                && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) {
             return error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
         }
-        else if (StringUtils.isNotEmpty(user.getEmail())
-                && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
-        {
-            return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
-        }
         user.setUpdateBy(getUsername());
-        return toAjax(userService.updateUser(user));
+        return toAjax(userService.updateUsers(user));
     }
-
+    
     /**
      * 删除用户
      */

+ 3 - 2
purchase-admin/src/main/resources/application-dev.yml

@@ -72,7 +72,8 @@ spring:
     database: 0
     # 密码
     password: 106@qwe123
-    # 连接超时时间    timeout: 100s
+    # 连接超时时间
+    timeout: 100s
     lettuce:
       pool:
         # 连接池中的最小空闲连接
@@ -91,7 +92,7 @@ token:
     # 令牌密钥
     secret: abcdefghijklmnopqrstuvwxyz
     # 令牌有效期(默认30分钟)
-    expireTime: 30
+    expireTime: 3000
 
 # MyBatis配置
 mybatis:

+ 2 - 1
purchase-admin/src/main/resources/application-test.yml

@@ -70,7 +70,8 @@ spring:
     database: 0
     # 密码
     password: 106@qwe123
-    # 连接超时时间    timeout: 100s
+    # 连接超时时间
+    timeout: 100s
     lettuce:
       pool:
         # 连接池中的最小空闲连接

+ 1 - 0
purchase-admin/src/main/resources/logback.xml

@@ -2,6 +2,7 @@
 <configuration>
     <!-- 日志存放路径 -->
     <property name="log.path" value="/home/purchase/logs" />
+
     <!-- 日志输出格式 -->
 	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
 

+ 1 - 1
purchase-admin/src/main/resources/mybatis/mybatis-config.xml

@@ -15,7 +15,7 @@ PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 		<!-- 指定 MyBatis 所用日志的具体实现 -->
         <setting name="logImpl"                  value="SLF4J"  />
         <!-- 使用驼峰命名法转换字段 -->
-		<!-- <setting name="mapUnderscoreToCamelCase" value="true"/> -->
+		 <setting name="mapUnderscoreToCamelCase" value="true"/>
 	</settings>
 
     <plugins>

+ 14 - 0
purchase-common/src/main/java/com/ozs/common/constant/ModularConstans.java

@@ -0,0 +1,14 @@
+package com.ozs.common.constant;
+
+public class ModularConstans {
+
+    public static final String policy = "政策法规";
+
+    public static final String  notice = "公告管理";
+
+    public static final String  noticeType = "公告类型管理";
+
+    public static final String agency = "招标代理机构管理";
+
+    public static final String fileTemplate = "文件模板管理";
+}

+ 2 - 2
purchase-common/src/main/java/com/ozs/common/core/domain/entity/SysDept.java

@@ -109,7 +109,7 @@ public class SysDept extends BaseEntity
         this.ancestors = ancestors;
     }
 
-    @NotBlank(message = "部门名称不能为空")
+//    @NotBlank(message = "部门名称不能为空")
     @Size(min = 0, max = 30, message = "部门名称长度不能超过30个字符")
     public String getDeptName()
     {
@@ -121,7 +121,7 @@ public class SysDept extends BaseEntity
         this.deptName = deptName;
     }
 
-    @NotNull(message = "显示顺序不能为空")
+//    @NotNull(message = "显示顺序不能为空")
     public Integer getOrderNum()
     {
         return orderNum;

+ 21 - 10
purchase-common/src/main/java/com/ozs/common/core/domain/entity/SysRole.java

@@ -20,23 +20,25 @@ public class SysRole extends BaseEntity
     private static final long serialVersionUID = 1L;
 
     /** 角色ID */
-    @Excel(name = "角色序号", cellType = ColumnType.NUMERIC)
+//    @Excel(name = "角色序号", cellType = ColumnType.NUMERIC)
     private Long roleId;
 
     /** 角色名称 */
-    @Excel(name = "角色名称")
+//    @Excel(name = "角色名称")
     private String roleName;
 
     /** 角色权限 */
-    @Excel(name = "角色权限")
-    private String roleKey;
+//    @Excel(name = "角色权限")
+    private String  roleKey;
 
     /** 角色排序 */
-    @Excel(name = "角色排序")
+//    @Excel(name = "角色排序")
     private Integer roleSort;
+    
+    private String roleRemarks;
 
     /** 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) */
-    @Excel(name = "数据范围", readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限")
+//    @Excel(name = "数据范围", readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限")
     private String dataScope;
 
     /** 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示) */
@@ -46,7 +48,7 @@ public class SysRole extends BaseEntity
     private boolean deptCheckStrictly;
 
     /** 角色状态(0正常 1停用) */
-    @Excel(name = "角色状态", readConverterExp = "0=正常,1=停用")
+//    @Excel(name = "角色状态", readConverterExp = "0=正常,1=停用")
     private String status;
 
     /** 删除标志(0代表存在 2代表删除) */
@@ -74,6 +76,14 @@ public class SysRole extends BaseEntity
         this.roleId = roleId;
     }
 
+    public String getRoleRemarks() {
+        return roleRemarks;
+    }
+
+    public void setRoleRemarks(String roleRemarks) {
+        this.roleRemarks = roleRemarks;
+    }
+
     public Long getRoleId()
     {
         return roleId;
@@ -94,7 +104,7 @@ public class SysRole extends BaseEntity
         return roleId != null && 1L == roleId;
     }
 
-    @NotBlank(message = "角色名称不能为空")
+//    @NotBlank(message = "角色名称不能为空")
     @Size(min = 0, max = 30, message = "角色名称长度不能超过30个字符")
     public String getRoleName()
     {
@@ -106,7 +116,7 @@ public class SysRole extends BaseEntity
         this.roleName = roleName;
     }
 
-    @NotBlank(message = "权限字符不能为空")
+//    @NotBlank(message = "权限字符不能为空")
     @Size(min = 0, max = 100, message = "权限字符长度不能超过100个字符")
     public String getRoleKey()
     {
@@ -118,7 +128,7 @@ public class SysRole extends BaseEntity
         this.roleKey = roleKey;
     }
 
-    @NotNull(message = "显示顺序不能为空")
+//    @NotNull(message = "显示顺序不能为空")
     public Integer getRoleSort()
     {
         return roleSort;
@@ -236,6 +246,7 @@ public class SysRole extends BaseEntity
             .append("updateBy", getUpdateBy())
             .append("updateTime", getUpdateTime())
             .append("remark", getRemark())
+            .append("roleRemarks",getRoleRemarks())
             .toString();
     }
 }

+ 1 - 1
purchase-common/src/main/java/com/ozs/common/core/domain/entity/SysUser.java

@@ -142,7 +142,7 @@ public class SysUser extends BaseEntity
     }
 
     @Xss(message = "用户账号不能包含脚本字符")
-    @NotBlank(message = "用户账号不能为空")
+//    @NotBlank(message = "用户账号不能为空")
     @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符")
     public String getUserName()
     {

+ 5 - 0
purchase-common/src/main/java/com/ozs/common/enums/BusinessType.java

@@ -56,4 +56,9 @@ public enum BusinessType
      * 清空数据
      */
     CLEAN,
+
+    /**
+     * 查看数据
+     */
+    QUERY,
 }

+ 43 - 27
purchase-common/src/main/java/com/ozs/common/utils/bean/BeanUtils.java

@@ -11,31 +11,32 @@ import java.util.regex.Pattern;
  *
  * @author ruoyi
  */
-public class BeanUtils extends org.springframework.beans.BeanUtils
-{
-    /** Bean方法名中属性名开始的下标 */
+public class BeanUtils extends org.springframework.beans.BeanUtils {
+    /**
+     * Bean方法名中属性名开始的下标
+     */
     private static final int BEAN_METHOD_PROP_INDEX = 3;
 
-    /** * 匹配getter方法的正则表达式 */
+    /**
+     * 匹配getter方法的正则表达式
+     */
     private static final Pattern GET_PATTERN = Pattern.compile("get(\\p{javaUpperCase}\\w*)");
 
-    /** * 匹配setter方法的正则表达式 */
+    /**
+     * 匹配setter方法的正则表达式
+     */
     private static final Pattern SET_PATTERN = Pattern.compile("set(\\p{javaUpperCase}\\w*)");
 
     /**
      * Bean属性复制工具方法。
      *
      * @param dest 目标对象
-     * @param src 源对象
+     * @param src  源对象
      */
-    public static void copyBeanProp(Object dest, Object src)
-    {
-        try
-        {
+    public static void copyBeanProp(Object dest, Object src) {
+        try {
             copyProperties(src, dest);
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             e.printStackTrace();
         }
     }
@@ -46,8 +47,7 @@ public class BeanUtils extends org.springframework.beans.BeanUtils
      * @param obj 对象
      * @return 对象的setter方法列表
      */
-    public static List<Method> getSetterMethods(Object obj)
-    {
+    public static List<Method> getSetterMethods(Object obj) {
         // setter方法列表
         List<Method> setterMethods = new ArrayList<Method>();
 
@@ -56,11 +56,9 @@ public class BeanUtils extends org.springframework.beans.BeanUtils
 
         // 查找setter方法
 
-        for (Method method : methods)
-        {
+        for (Method method : methods) {
             Matcher m = SET_PATTERN.matcher(method.getName());
-            if (m.matches() && (method.getParameterTypes().length == 1))
-            {
+            if (m.matches() && (method.getParameterTypes().length == 1)) {
                 setterMethods.add(method);
             }
         }
@@ -75,18 +73,15 @@ public class BeanUtils extends org.springframework.beans.BeanUtils
      * @return 对象的getter方法列表
      */
 
-    public static List<Method> getGetterMethods(Object obj)
-    {
+    public static List<Method> getGetterMethods(Object obj) {
         // getter方法列表
         List<Method> getterMethods = new ArrayList<Method>();
         // 获取所有方法
         Method[] methods = obj.getClass().getMethods();
         // 查找getter方法
-        for (Method method : methods)
-        {
+        for (Method method : methods) {
             Matcher m = GET_PATTERN.matcher(method.getName());
-            if (m.matches() && (method.getParameterTypes().length == 0))
-            {
+            if (m.matches() && (method.getParameterTypes().length == 0)) {
                 getterMethods.add(method);
             }
         }
@@ -103,8 +98,29 @@ public class BeanUtils extends org.springframework.beans.BeanUtils
      * @return 属性名一样返回true,否则返回false
      */
 
-    public static boolean isMethodPropEquals(String m1, String m2)
-    {
+    public static boolean isMethodPropEquals(String m1, String m2) {
         return m1.substring(BEAN_METHOD_PROP_INDEX).equals(m2.substring(BEAN_METHOD_PROP_INDEX));
     }
+
+    /**
+     * 将实体类转换为Vo类
+     * @param list
+     * @param clazz
+     * @param <T>
+     * @return
+     */
+    public static <T> List<T> entityListToVOList(List<?> list, Class<T> clazz) {
+        List<T> result = new ArrayList<>(list.size());
+        for (Object source : list) {
+            T target;
+            try {
+                target = clazz.getDeclaredConstructor().newInstance();
+            } catch (Exception e) {
+                throw new RuntimeException();
+            }
+            BeanUtils.copyProperties(source, target);
+            result.add(target);
+        }
+        return result;
+    }
 }

+ 32 - 0
purchase-common/src/main/java/com/ozs/common/vo/BaseDto.java

@@ -0,0 +1,32 @@
+package com.ozs.common.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("入库基础参数实体")
+public class BaseDto {
+    private static final long serialVersionUID = 1L;
+    // 创建时间
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+    // 创建人
+    @ApiModelProperty("创建人")
+    private String created;
+    // 修改时间
+    @ApiModelProperty("修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+    // 修改人
+    @ApiModelProperty("修改人")
+    private String updated;
+}

+ 21 - 0
purchase-common/src/main/java/com/ozs/common/vo/PageVo.java

@@ -0,0 +1,21 @@
+package com.ozs.common.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("分页实体")
+public class PageVo {
+    /** 当前记录起始索引 */
+    @ApiModelProperty("页数")
+    private Long pageNum;
+    /** 每页显示记录数 */
+    @ApiModelProperty("页大小")
+    private Long pageSize;
+}

+ 26 - 0
purchase-framework/src/main/java/com/ozs/framework/config/MybatisPlusConfig.java

@@ -0,0 +1,26 @@
+//package com.ozs.framework.config;
+//
+//import com.baomidou.mybatisplus.annotation.DbType;
+//import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+//import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
+//import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//
+//@Configuration
+//public class MybatisPlusConfig{
+//
+//    @Bean
+//    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+//        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+//        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
+//        paginationInnerInterceptor.setOptimizeJoin(true);
+//        paginationInnerInterceptor.setDbType(DbType.MYSQL);
+//        paginationInnerInterceptor.setOverflow(true);
+//        interceptor.addInnerInterceptor(paginationInnerInterceptor);
+//        OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor = new OptimisticLockerInnerInterceptor();
+//        interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor);
+//        return interceptor;
+//    }
+//
+//}

+ 66 - 0
purchase-system/src/main/java/com/ozs/base/domain/BaseAgency.java

@@ -0,0 +1,66 @@
+package com.ozs.base.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ozs.common.vo.BaseDto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import java.util.Date;
+
+/**
+ * 代理机构管理
+ *
+ * @author sunhh
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("代理机构参数实体")
+public class BaseAgency extends BaseDto {
+
+    @ApiModelProperty("主键ID")
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    // 代理机构名称
+    @ApiModelProperty("代理机构名称")
+    @NotBlank(message = "代理机构名称不能为空")
+    private String companyName;
+    // 类型
+    @ApiModelProperty("类型")
+    @NotEmpty(message = "类型不能为空")
+    private Integer companyType;
+    // 注册时间
+    @ApiModelProperty("注册时间")
+    @NotEmpty(message = "注册时间不能为空")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date registTime;
+    // 公司性质
+    @ApiModelProperty("公司性质")
+    @NotBlank(message = "公司性质不能为空")
+    private String companyNature;
+    // 公司办公地址
+    @ApiModelProperty("公司办公地址")
+    @NotBlank(message = "公司办公地址不能为空")
+    private String companyAddr;
+    // 公司业务联系人
+    @ApiModelProperty("公司业务联系人")
+    private String companyContacts;
+    // 公司业务联系电话
+    @ApiModelProperty("公司业务联系电话")
+    private String contactsPhone;
+    // 经营范围
+    @ApiModelProperty("经营范围")
+    private String businessScope;
+    // 状态0白,1黑
+    @ApiModelProperty("状态0白,1黑")
+    private Integer status;
+}

+ 66 - 0
purchase-system/src/main/java/com/ozs/base/domain/BaseFileTemplate.java

@@ -0,0 +1,66 @@
+package com.ozs.base.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ozs.common.annotation.Excel;
+import com.ozs.common.vo.BaseDto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 文件模板管理对象 base_file_template
+ *
+ * @author ruoyi
+ * @date 2023-01-14
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("文件模板管理实体")
+public class BaseFileTemplate extends BaseDto {
+
+
+    /** 主键id */
+    @ApiModelProperty("主键ID")
+    @TableId(type = IdType.AUTO)
+    private Long fileId;
+
+    /** 文件名称 */
+    @Excel(name = "文件名称")
+    @ApiModelProperty("文件名称")
+    @NotBlank(message = "文件名称不能为空")
+    private String fileName;
+
+    /** 文件新名称 */
+    @Excel(name = "文件新名称")
+    @ApiModelProperty("文件新名称")
+    @NotBlank(message = "文件新名称不能为空")
+    private String fileNewName;
+
+    /** 文件映射路径 */
+    @Excel(name = "文件映射路径")
+    @ApiModelProperty("文件映射路径")
+    @NotBlank(message = "文件映射路径不能为空")
+    private String fileMappingPath;
+
+    /** 文件下载url */
+    @Excel(name = "文件下载url")
+    @ApiModelProperty("文件下载url")
+    @NotBlank(message = "文件下载url不能为空")
+    private String fileUrl;
+
+    /** 文件类型 */
+    @Excel(name = "文件类型")
+    @ApiModelProperty("文件类型")
+    @NotBlank(message = "文件类型不能为空")
+    private String fileType;
+
+
+}

+ 75 - 0
purchase-system/src/main/java/com/ozs/base/domain/BaseNotice.java

@@ -0,0 +1,75 @@
+package com.ozs.base.domain;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ozs.common.annotation.Excel;
+import com.ozs.common.vo.BaseDto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+
+/**
+ * 公告管理对象 base_notice
+ *
+ * @author ruoyi
+ * @date 2023-01-14
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("公告管理对象")
+public class BaseNotice extends BaseDto {
+
+    /** 主键id */
+    @ApiModelProperty("主键ID")
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 项目名称 */
+    @Excel(name = "项目名称")
+    @ApiModelProperty("项目名称")
+    @NotBlank(message = "项目名称不能为空")
+    private String name;
+
+    /** 公告标题 */
+    @Excel(name = "公告标题")
+    @ApiModelProperty("公告标题")
+    @NotBlank(message = "公告标题不能为空")
+    private String title;
+
+    /** 公告类型 */
+    @Excel(name = "公告类型")
+    @ApiModelProperty("公告类型")
+    @NotEmpty(message = "公告类型不能为空")
+    private Long type;
+
+    /** 发布时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty("发布时间")
+    @NotEmpty(message = "发布时间不能为空")
+    private Date releaseTime;
+
+    /** 附件名称 */
+    @Excel(name = "附件名称")
+    @ApiModelProperty("附件名称")
+    @NotBlank(message = "附件名称不能为空")
+    private String fileName;
+
+    /** 附件下载地址 */
+    @Excel(name = "附件下载地址")
+    @ApiModelProperty("附件下载地址")
+    @NotBlank(message = "附件下载地址不能为空")
+    private String fileUrl;
+
+}

+ 47 - 0
purchase-system/src/main/java/com/ozs/base/domain/BaseNoticeType.java

@@ -0,0 +1,47 @@
+package com.ozs.base.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ozs.common.annotation.Excel;
+import com.ozs.common.vo.BaseDto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 公告类型管理对象 base_announcement_type
+ *
+ * @author ruoyi
+ * @date 2023-01-14
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("公告类型管理对象")
+public class BaseNoticeType extends BaseDto
+{
+
+    /** 主键id */
+    @ApiModelProperty("主键ID")
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 名称 */
+    @Excel(name = "公告类型名称")
+    @ApiModelProperty("公告类型名称")
+    @NotBlank(message = "公告类型名称不能为空")
+    private String name;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    @ApiModelProperty("公告类型名称")
+    private String remark;
+
+
+}

+ 84 - 0
purchase-system/src/main/java/com/ozs/base/domain/BasePolicy.java

@@ -0,0 +1,84 @@
+package com.ozs.base.domain;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ozs.common.annotation.Excel;
+import com.ozs.common.vo.BaseDto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 政策法规对象 base_policy
+ *
+ * @author ruoyi
+ * @date 2023-01-14
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("政策法规对象")
+public class BasePolicy extends BaseDto
+{
+
+    /** 主键id */
+    @ApiModelProperty("主键ID")
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 法律条文名称 */
+    @Excel(name = "法律条文名称")
+    @ApiModelProperty("法律条文名称")
+    @NotBlank(message = "法律条文名称不能为空")
+    private String name;
+
+    /** 发文字号 */
+    @Excel(name = "发文字号")
+    @ApiModelProperty("发文字号")
+    private String issuedNumber;
+
+    /** 发布机关 */
+    @Excel(name = "发布机关")
+    @ApiModelProperty("发布机关")
+    private String issuingAuthority;
+
+    /** 发布时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty("发布时间")
+    private Date releaseTime;
+
+    /** 收录时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "收录时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty("收录时间")
+    private Date includedTime;
+
+    /** 附件名称 */
+    @Excel(name = "附件名称")
+    @ApiModelProperty("附件名称")
+    @NotBlank(message = "附件名称不能为空")
+    private String fileName;
+
+    /** 附件下载地址 */
+    @Excel(name = "附件下载地址")
+    @ApiModelProperty("附件下载地址")
+    @NotBlank(message = "附件下载地址不能为空")
+    private String fileUrl;
+
+    /** es */
+    @Excel(name = "es存储id")
+    @ApiModelProperty("es存储id")
+    @NotBlank(message = "es存储id")
+    private String esId;
+
+}

+ 56 - 0
purchase-system/src/main/java/com/ozs/base/domain/BaseProfessional.java

@@ -0,0 +1,56 @@
+package com.ozs.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@TableName("base_professional")
+public class BaseProfessional implements Serializable {
+
+    /**
+     * 主键ID
+     */
+    @ApiModelProperty(value = "id")
+    @TableField("id")
+    private Integer id;
+
+    /**
+     * 品目名称
+     */
+    @ApiModelProperty(value = "品目名称")
+    @TableField("professional_name")
+    private String professionalName;
+
+    /**
+     * 编码
+     */
+    @ApiModelProperty(value = "编码")
+    @TableField("professional_code")
+    private String professionalCode;
+
+    /**
+     * 说明
+     */
+    @ApiModelProperty(value = "说明")
+    @TableField("purchase_state")
+    private String purchaseState;
+
+    /**
+     * 一级分类
+     */
+    @ApiModelProperty(value = "一级分类")
+    @TableField("professional_grade")
+    private String professionalGrade;
+
+    /**
+     * 父级编码
+     */
+    @ApiModelProperty(value = "父级编码")
+    @TableField("parent_code")
+    private String parentCode;
+}

+ 19 - 0
purchase-system/src/main/java/com/ozs/base/domain/vo/BaseProfessionalVo.java

@@ -0,0 +1,19 @@
+package com.ozs.base.domain.vo;
+
+import com.ozs.base.domain.BaseProfessional;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class BaseProfessionalVo extends BaseProfessional {
+//    private Integer id;
+//    private String professionalName;
+//    private String professionalCode;
+//    private String purchaseState;
+//    private String professionalGrade;
+//    private String parentCode;
+    private List<BaseProfessionalVo> baseProfessionalVoList;
+    private List<Integer> deleteIds;
+}

+ 19 - 0
purchase-system/src/main/java/com/ozs/base/mapper/BaseAgencyMapper.java

@@ -0,0 +1,19 @@
+package com.ozs.base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.base.domain.BaseAgency;
+import com.ozs.base.domain.BaseSupplier;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 招标代理机构
+ *
+ * @author sunhh
+ */
+@Mapper
+public interface BaseAgencyMapper extends BaseMapper<BaseAgency> {
+
+
+}

+ 17 - 0
purchase-system/src/main/java/com/ozs/base/mapper/BaseFileTemplateMapper.java

@@ -0,0 +1,17 @@
+package com.ozs.base.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.base.domain.BaseFileTemplate;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 文件模板管理Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-01-14
+ */
+@Mapper
+public interface BaseFileTemplateMapper extends BaseMapper<BaseFileTemplate> {
+
+}

+ 18 - 0
purchase-system/src/main/java/com/ozs/base/mapper/BaseNoticeMapper.java

@@ -0,0 +1,18 @@
+package com.ozs.base.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.base.domain.BaseNotice;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 公告管理Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-01-14
+ */
+@Mapper
+public interface BaseNoticeMapper extends BaseMapper<BaseNotice>
+{
+
+}

+ 18 - 0
purchase-system/src/main/java/com/ozs/base/mapper/BaseNoticeTypeMapper.java

@@ -0,0 +1,18 @@
+package com.ozs.base.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.base.domain.BaseNoticeType;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 公告类型管理Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-01-14
+ */
+@Mapper
+public interface BaseNoticeTypeMapper extends BaseMapper<BaseNoticeType>
+{
+
+}

+ 18 - 0
purchase-system/src/main/java/com/ozs/base/mapper/BasePolicyMapper.java

@@ -0,0 +1,18 @@
+package com.ozs.base.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.base.domain.BasePolicy;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 政策法规Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-01-14
+ */
+@Mapper
+public interface BasePolicyMapper extends BaseMapper<BasePolicy>
+{
+
+}

+ 26 - 0
purchase-system/src/main/java/com/ozs/base/mapper/BaseProfessionalMapper.java

@@ -0,0 +1,26 @@
+package com.ozs.base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.base.domain.BaseProfessional;
+import com.ozs.base.domain.vo.BaseProfessionalVo;
+import com.ozs.common.core.domain.entity.SysProcurementStandard;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Resource
+@Mapper
+public interface BaseProfessionalMapper extends BaseMapper<BaseProfessional> {
+
+    List<BaseProfessional> selectListByGradeCode(BaseProfessional baseProfessional);
+
+    List<BaseProfessional> selectoneGradeList(String professionalCode);
+
+    List<BaseProfessional> selectBaseProfessional(BaseProfessionalVo baseProfessionalVo);
+
+    int countByParentCode(@Param("professionalCode") String professionalCode);
+
+    List<BaseProfessional> selectByParentCode(String professionalCode);
+}

+ 26 - 0
purchase-system/src/main/java/com/ozs/base/service/BaseAgencyService.java

@@ -0,0 +1,26 @@
+package com.ozs.base.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ozs.base.domain.BaseAgency;
+import com.ozs.base.vo.BaseAgentPageReqVo;
+import com.ozs.common.core.domain.entity.SysProcurementStandard;
+
+/**
+ * 代理机构
+ */
+public interface BaseAgencyService  extends IService<BaseAgency> {
+
+    int insert(BaseAgency baseAgency);
+
+    BaseAgency getInfo(Long id);
+
+    int updateInfo(BaseAgency baseAgency);
+
+    int operationBlacklist(BaseAgency baseAgency);
+
+//    IPage<BaseAgency> page(Page<BaseAgency> baseAgencyPage, BaseAgentPageReqVo vo);
+
+    int remove(Long id);
+}

+ 10 - 0
purchase-system/src/main/java/com/ozs/base/service/BaseFileTemplateService.java

@@ -0,0 +1,10 @@
+package com.ozs.base.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ozs.base.domain.BaseFileTemplate;
+
+
+public interface BaseFileTemplateService extends IService<BaseFileTemplate> {
+
+
+}

+ 10 - 0
purchase-system/src/main/java/com/ozs/base/service/BaseNoticeService.java

@@ -0,0 +1,10 @@
+package com.ozs.base.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ozs.base.domain.BaseNotice;
+
+
+public interface BaseNoticeService extends IService<BaseNotice> {
+
+
+}

+ 10 - 0
purchase-system/src/main/java/com/ozs/base/service/BaseNoticeTypeService.java

@@ -0,0 +1,10 @@
+package com.ozs.base.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ozs.base.domain.BaseNoticeType;
+
+
+public interface BaseNoticeTypeService extends IService<BaseNoticeType> {
+
+
+}

+ 10 - 0
purchase-system/src/main/java/com/ozs/base/service/BasePolicyService.java

@@ -0,0 +1,10 @@
+package com.ozs.base.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ozs.base.domain.BasePolicy;
+
+
+public interface BasePolicyService extends IService<BasePolicy> {
+
+
+}

+ 13 - 0
purchase-system/src/main/java/com/ozs/base/service/BaseProfessionalService.java

@@ -0,0 +1,13 @@
+package com.ozs.base.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ozs.base.domain.BaseProfessional;
+import com.ozs.base.domain.vo.BaseProfessionalVo;
+
+import java.util.List;
+
+public interface BaseProfessionalService extends IService<BaseProfessional> {
+    List<BaseProfessionalVo> selectBaseProfessional(BaseProfessionalVo baseProfessional);
+
+    void deleteIds(List<Integer> deleteIds);
+}

+ 62 - 0
purchase-system/src/main/java/com/ozs/base/service/impl/BaseAgencyServiceImpl.java

@@ -0,0 +1,62 @@
+package com.ozs.base.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ozs.base.domain.BaseAgency;
+import com.ozs.base.mapper.BaseAgencyMapper;
+import com.ozs.base.service.BaseAgencyService;
+import com.ozs.common.constant.HttpStatus;
+import com.ozs.common.exception.base.BaseException;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import java.util.Arrays;
+
+@Service
+@Slf4j
+public class BaseAgencyServiceImpl extends ServiceImpl<BaseAgencyMapper, BaseAgency> implements BaseAgencyService {
+
+    @Autowired
+    private BaseAgencyMapper baseAgencyMapper;
+
+
+    @Override
+    public int insert(BaseAgency baseAgency) {
+        return baseAgencyMapper.insert(baseAgency);
+    }
+
+    @Override
+    public BaseAgency getInfo(Long id) {
+        return baseAgencyMapper.selectById(id);
+    }
+
+    @Override
+    public int updateInfo(BaseAgency baseAgency) {
+        return baseAgencyMapper.updateById(baseAgency);
+    }
+
+
+    @Override
+    public int operationBlacklist(BaseAgency baseAgency) {
+        LambdaUpdateWrapper<BaseAgency> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+        //eq是指你查询的条件,set是指你修改的值
+        lambdaUpdateWrapper
+                .eq(BaseAgency::getId, baseAgency.getId())
+                .set(BaseAgency::getStatus, baseAgency.getStatus())
+                .set(BaseAgency::getUpdated, baseAgency.getUpdated()).
+                set(BaseAgency::getUpdateTime, baseAgency.getUpdateTime());
+        return baseAgencyMapper.update(null, lambdaUpdateWrapper);
+    }
+
+
+    @Override
+    public int remove(Long id) {
+        BaseAgency baseAgency = baseAgencyMapper.selectById(id);
+        if(ObjectUtils.isEmpty(baseAgency)){
+            throw  new BaseException("BaseAgency", HttpStatus.NO_CONTENT+"", Arrays.asList(id).toArray(),"数据不存在");
+        }
+        return baseAgencyMapper.deleteById(id);
+    }
+}

+ 14 - 0
purchase-system/src/main/java/com/ozs/base/service/impl/BaseFileTemplateServiceImpl.java

@@ -0,0 +1,14 @@
+package com.ozs.base.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ozs.base.domain.BaseFileTemplate;
+import com.ozs.base.mapper.BaseFileTemplateMapper;
+import com.ozs.base.service.BaseFileTemplateService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service
+public class BaseFileTemplateServiceImpl extends ServiceImpl<BaseFileTemplateMapper, BaseFileTemplate> implements BaseFileTemplateService {
+
+}

+ 16 - 0
purchase-system/src/main/java/com/ozs/base/service/impl/BaseNoticeServiceImpl.java

@@ -0,0 +1,16 @@
+package com.ozs.base.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ozs.base.domain.BaseNotice;
+import com.ozs.base.domain.BaseNoticeType;
+import com.ozs.base.mapper.BaseNoticeMapper;
+import com.ozs.base.mapper.BaseNoticeTypeMapper;
+import com.ozs.base.service.BaseNoticeService;
+import com.ozs.base.service.BaseNoticeTypeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Service
+@Slf4j
+public class BaseNoticeServiceImpl extends ServiceImpl<BaseNoticeMapper, BaseNotice> implements BaseNoticeService {
+}

+ 13 - 0
purchase-system/src/main/java/com/ozs/base/service/impl/BaseNoticeTypeServiceImpl.java

@@ -0,0 +1,13 @@
+package com.ozs.base.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ozs.base.domain.BaseNoticeType;
+import com.ozs.base.mapper.BaseNoticeTypeMapper;
+import com.ozs.base.service.BaseNoticeTypeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Service
+@Slf4j
+public class BaseNoticeTypeServiceImpl extends ServiceImpl<BaseNoticeTypeMapper, BaseNoticeType> implements BaseNoticeTypeService {
+}

+ 14 - 0
purchase-system/src/main/java/com/ozs/base/service/impl/BasePolicyServiceImpl.java

@@ -0,0 +1,14 @@
+package com.ozs.base.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ozs.base.domain.BasePolicy;
+import com.ozs.base.mapper.BasePolicyMapper;
+import com.ozs.base.service.BasePolicyService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Service
+@Slf4j
+public class BasePolicyServiceImpl extends ServiceImpl<BasePolicyMapper, BasePolicy> implements BasePolicyService {
+
+}

+ 83 - 0
purchase-system/src/main/java/com/ozs/base/service/impl/BaseProfessionalServiceImpl.java

@@ -0,0 +1,83 @@
+package com.ozs.base.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ozs.base.domain.BaseProfessional;
+import com.ozs.base.domain.vo.BaseProfessionalVo;
+import com.ozs.base.mapper.BaseProfessionalMapper;
+import com.ozs.base.service.BaseProfessionalService;
+import com.ozs.common.core.domain.entity.SysDictType;
+import com.ozs.common.exception.ServiceException;
+import com.ozs.common.utils.DictUtils;
+import com.ozs.common.utils.bean.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class BaseProfessionalServiceImpl extends ServiceImpl<BaseProfessionalMapper, BaseProfessional> implements BaseProfessionalService {
+
+    @Autowired
+    private BaseProfessionalMapper baseProfessionalMapper;
+
+    @Override
+    public void deleteIds(List<Integer> deleteIds) {
+        for (Integer  deleteId : deleteIds) {
+            BaseProfessional baseProfessional = baseProfessionalMapper.selectById(deleteId);
+            List<BaseProfessional> baseProfessionalList = baseProfessionalMapper.selectByParentCode(baseProfessional.getProfessionalCode());
+//            int ii = baseProfessionalMapper.countByParentCode(baseProfessional.getProfessionalCode());
+            if (baseProfessionalList.size() > 0) {
+                throw new ServiceException(String.format("%1$s已有子级,不能删除", baseProfessional.getProfessionalName()));
+            }
+            baseProfessionalMapper.deleteById(deleteId);
+        }
+    }
+
+    @Override
+    public List<BaseProfessionalVo> selectBaseProfessional(BaseProfessionalVo baseProfessionalVo) {
+        List<BaseProfessional> allList = baseProfessionalMapper.selectBaseProfessional(baseProfessionalVo);
+        // 将实体类转换为Vo类
+        List<BaseProfessionalVo> allListVo = BeanUtils.entityListToVOList(allList, BaseProfessionalVo.class);
+        List<BaseProfessionalVo> treeList = buildTree(allListVo);
+        return treeList;
+    }
+
+    /**
+     * 构建树形结构
+     *
+     * @return
+     */
+    public static List<BaseProfessionalVo> buildTree(List<BaseProfessionalVo> allList) {
+        //创建集合封装最终数据
+        List<BaseProfessionalVo> trees = new ArrayList<>();
+        //遍历所有菜单集合
+        for (BaseProfessionalVo baseProfessional : allList) {
+            //找到递归入口,parentId=0
+            if (baseProfessional.getParentCode().equals("0")) {
+                trees.add(findChildren(baseProfessional, allList));
+            }
+        }
+        return trees;
+    }
+
+    /**
+     * 从根节点进行递归查询,查询子节点
+     * 判断 编码 =  父级编码是否相同,如果相同是子节点,进行数据封装
+     */
+    private static BaseProfessionalVo findChildren(BaseProfessionalVo baseProfessional, List<BaseProfessionalVo> allList) {
+        //数据初始化
+        baseProfessional.setBaseProfessionalVoList(new ArrayList<BaseProfessionalVo>());
+        //遍历递归查找
+        for (BaseProfessionalVo it : allList) {
+            if (baseProfessional.getProfessionalCode().equals(it.getParentCode())) {
+                if (baseProfessional.getBaseProfessionalVoList() == null) {
+                    baseProfessional.setBaseProfessionalVoList(new ArrayList<>());
+                }
+                baseProfessional.getBaseProfessionalVoList().add(findChildren(it, allList));
+            }
+        }
+        return baseProfessional;
+    }
+
+}

+ 27 - 0
purchase-system/src/main/java/com/ozs/base/vo/BaseAgentPageReqVo.java

@@ -0,0 +1,27 @@
+package com.ozs.base.vo;
+
+import com.ozs.common.vo.PageVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+
+@ApiModel(value = "BaseAgentPageReqVo", description = "代理机构分页查询实体")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class BaseAgentPageReqVo extends PageVo {
+
+
+    @ApiModelProperty("代理机构名称")
+    private String companyName;
+    // 公司性质
+    @ApiModelProperty("公司性质")
+    private String companyNature;
+    // 状态0白,1黑
+    @ApiModelProperty("状态0白,1黑")
+    private Integer status;
+}

+ 24 - 0
purchase-system/src/main/java/com/ozs/base/vo/BaseFileTemplatePageReqVo.java

@@ -0,0 +1,24 @@
+package com.ozs.base.vo;
+
+import com.ozs.common.vo.PageVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+@ApiModel(value = "BaseFileTemplatePageReqVo", description = "文件模板分页查询实体")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class BaseFileTemplatePageReqVo extends PageVo {
+
+
+    @ApiModelProperty("文件名称")
+    private String fileName;
+
+    @ApiModelProperty("公司性质")
+    private String fileType;
+
+}

+ 33 - 0
purchase-system/src/main/java/com/ozs/base/vo/BaseNoticePageReqVo.java

@@ -0,0 +1,33 @@
+package com.ozs.base.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ozs.common.constant.ModularConstans;
+import com.ozs.common.vo.PageVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@ApiModel(value = "BaseNoticePageReqVo", description = ModularConstans.notice+ "分页查询实体")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class BaseNoticePageReqVo extends PageVo {
+
+    @ApiModelProperty("公告标题")
+    private String title;
+
+    // 开始时间
+    @ApiModelProperty("开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date startTime;
+
+    // 结束时间
+    @ApiModelProperty("结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date entTime;
+
+}

+ 20 - 0
purchase-system/src/main/java/com/ozs/base/vo/BaseNoticeTypePageReqVo.java

@@ -0,0 +1,20 @@
+package com.ozs.base.vo;
+
+import com.ozs.common.constant.ModularConstans;
+import com.ozs.common.vo.PageVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@ApiModel(value = "BaseNoticeTypePageReqVo", description = ModularConstans.noticeType+ "分页查询实体")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class BaseNoticeTypePageReqVo extends PageVo {
+
+    @ApiModelProperty("公告类型名称")
+    private String name;
+
+}

+ 32 - 0
purchase-system/src/main/java/com/ozs/base/vo/BaseNoticeVo.java

@@ -0,0 +1,32 @@
+package com.ozs.base.vo;
+
+import com.ozs.base.domain.BaseNotice;
+import com.ozs.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+/**
+ * 公告管理对象 base_notice
+ *
+ * @author ruoyi
+ * @date 2023-01-14
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("公告管理对象vo")
+public class BaseNoticeVo extends BaseNotice
+{
+
+    /** 项目名称 */
+    @Excel(name = "公告类型名称")
+    @ApiModelProperty("公告类型名称")
+    private String typeName;
+
+
+
+}

+ 33 - 0
purchase-system/src/main/java/com/ozs/base/vo/BasePolicyPageReqVo.java

@@ -0,0 +1,33 @@
+package com.ozs.base.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ozs.common.constant.ModularConstans;
+import com.ozs.common.vo.PageVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@ApiModel(value = "BasePolicyPageReqVo", description = ModularConstans.policy+ "分页查询实体")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class BasePolicyPageReqVo extends PageVo {
+
+    @ApiModelProperty("法律条文或内容")
+    private String name;
+
+    // 开始时间
+    @ApiModelProperty("开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date startTime;
+
+    // 结束时间
+    @ApiModelProperty("结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date entTime;
+
+}

+ 18 - 0
purchase-system/src/main/java/com/ozs/system/domain/vo/requestVo/SysMenuIdsRequestVo.java

@@ -0,0 +1,18 @@
+package com.ozs.system.domain.vo.requestVo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 分配模块使用的入参
+ * @author Administrator
+ */
+@Data
+public class SysMenuIdsRequestVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /** 菜单组 */
+    private Long[] menuIds;
+    private Long roleId;
+}

+ 13 - 0
purchase-system/src/main/java/com/ozs/system/domain/vo/requestVo/SysRoleRequestVo.java

@@ -0,0 +1,13 @@
+package com.ozs.system.domain.vo.requestVo;
+
+import java.io.Serializable;
+
+/**
+ * @author Administrator
+ */
+public class SysRoleRequestVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+    private String roleName;
+    private String status;
+    private String roleRemarks;
+}

+ 13 - 0
purchase-system/src/main/java/com/ozs/system/domain/vo/requestVo/SysStatusRequestVo.java

@@ -0,0 +1,13 @@
+package com.ozs.system.domain.vo.requestVo;
+
+import lombok.Data;
+
+/**
+ * @author Administrator
+ * 修改状态
+ */
+@Data
+public class SysStatusRequestVo {
+    private Long Id;
+    private String status;
+}

+ 17 - 0
purchase-system/src/main/java/com/ozs/system/domain/vo/requestVo/SysUserRequestVo.java

@@ -0,0 +1,17 @@
+package com.ozs.system.domain.vo.requestVo;
+
+import java.io.Serializable;
+
+/**
+ * @author Administrator
+ */
+public class SysUserRequestVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+    private String nickName;
+    private Long deptId;
+    private String userName;
+    private String password;
+    private String phonenumber;
+    private Long[] roleIds;
+    private Long userId;
+}

+ 0 - 7
purchase-system/src/main/java/com/ozs/system/domain/vo/responseVo/UnitManagementResponseVo.java

@@ -1,7 +0,0 @@
-package com.ozs.system.domain.vo.responseVo;
-
-/**
- * @author Administrator
- */
-public class UnitManagementResponseVo {
-}

+ 40 - 0
purchase-system/src/main/java/com/ozs/system/service/ISysRoleService.java

@@ -2,8 +2,12 @@ package com.ozs.system.service;
 
 import java.util.List;
 import java.util.Set;
+
+import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.core.domain.entity.SysRole;
 import com.ozs.system.domain.SysUserRole;
+import com.ozs.system.domain.vo.requestVo.SysMenuIdsRequestVo;
+import com.ozs.system.domain.vo.requestVo.SysStatusRequestVo;
 
 /**
  * 角色业务层
@@ -170,4 +174,40 @@ public interface ISysRoleService
      * @return 结果
      */
     public int insertAuthUsers(Long roleId, Long[] userIds);
+    /**
+     * 新增保存角色信息
+     *
+     * @param role 角色信息
+     * @return 结果
+     */
+    int addRole(SysRole role);
+
+    /**
+     * 新增分配模块
+     * @param sysMenuIdsRequestVo
+     * @return 
+     */
+    int distributionModule(SysMenuIdsRequestVo sysMenuIdsRequestVo);
+
+    /**
+     * 修改保存角色信息
+     *
+     * @param role 角色信息
+     * @return 结果
+     */
+    int updateRoles(SysRole role);
+
+    /**
+     * 修改分配模块
+     * @param sysMenuIdsRequestVo
+     * @return
+     */
+    int updateDistributionModule(SysMenuIdsRequestVo sysMenuIdsRequestVo);
+
+    /**
+     * 批量状态修改
+     * @param sysStatusRequestVoList
+     * @return
+     */
+    int changeStatus(List<SysStatusRequestVo> sysStatusRequestVoList);
 }

+ 14 - 0
purchase-system/src/main/java/com/ozs/system/service/ISysUserService.java

@@ -203,4 +203,18 @@ public interface ISysUserService
      * @return 结果
      */
     public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
+
+    /**
+     * 新增用户
+     * @param user
+     * @return
+     */
+    int saveUser(SysUser user);
+
+    /**
+     * 修改用户
+     * @param user
+     * @return
+     */
+    int updateUsers(SysUser user);
 }

+ 104 - 82
purchase-system/src/main/java/com/ozs/system/service/impl/SysRoleServiceImpl.java

@@ -6,9 +6,12 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
+import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.system.domain.SysRoleDept;
 import com.ozs.system.domain.SysRoleMenu;
 import com.ozs.system.domain.SysUserRole;
+import com.ozs.system.domain.vo.requestVo.SysMenuIdsRequestVo;
+import com.ozs.system.domain.vo.requestVo.SysStatusRequestVo;
 import com.ozs.system.mapper.SysRoleMapper;
 import com.ozs.system.service.ISysRoleService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,8 +35,7 @@ import com.ozs.system.mapper.SysUserRoleMapper;
  * @author ruoyi
  */
 @Service
-public class SysRoleServiceImpl implements ISysRoleService
-{
+public class SysRoleServiceImpl implements ISysRoleService {
     @Autowired
     private SysRoleMapper roleMapper;
 
@@ -54,8 +56,7 @@ public class SysRoleServiceImpl implements ISysRoleService
      */
     @Override
     @DataScope(deptAlias = "d")
-    public List<SysRole> selectRoleList(SysRole role)
-    {
+    public List<SysRole> selectRoleList(SysRole role) {
         return roleMapper.selectRoleList(role);
     }
 
@@ -66,16 +67,12 @@ public class SysRoleServiceImpl implements ISysRoleService
      * @return 角色列表
      */
     @Override
-    public List<SysRole> selectRolesByUserId(Long userId)
-    {
+    public List<SysRole> selectRolesByUserId(Long userId) {
         List<SysRole> userRoles = roleMapper.selectRolePermissionByUserId(userId);
         List<SysRole> roles = selectRoleAll();
-        for (SysRole role : roles)
-        {
-            for (SysRole userRole : userRoles)
-            {
-                if (role.getRoleId().longValue() == userRole.getRoleId().longValue())
-                {
+        for (SysRole role : roles) {
+            for (SysRole userRole : userRoles) {
+                if (role.getRoleId().longValue() == userRole.getRoleId().longValue()) {
                     role.setFlag(true);
                     break;
                 }
@@ -91,14 +88,11 @@ public class SysRoleServiceImpl implements ISysRoleService
      * @return 权限列表
      */
     @Override
-    public Set<String> selectRolePermissionByUserId(Long userId)
-    {
+    public Set<String> selectRolePermissionByUserId(Long userId) {
         List<SysRole> perms = roleMapper.selectRolePermissionByUserId(userId);
         Set<String> permsSet = new HashSet<>();
-        for (SysRole perm : perms)
-        {
-            if (StringUtils.isNotNull(perm))
-            {
+        for (SysRole perm : perms) {
+            if (StringUtils.isNotNull(perm)) {
                 permsSet.addAll(Arrays.asList(perm.getRoleKey().trim().split(",")));
             }
         }
@@ -111,8 +105,7 @@ public class SysRoleServiceImpl implements ISysRoleService
      * @return 角色列表
      */
     @Override
-    public List<SysRole> selectRoleAll()
-    {
+    public List<SysRole> selectRoleAll() {
         return SpringUtils.getAopProxy(this).selectRoleList(new SysRole());
     }
 
@@ -123,8 +116,7 @@ public class SysRoleServiceImpl implements ISysRoleService
      * @return 选中角色ID列表
      */
     @Override
-    public List<Long> selectRoleListByUserId(Long userId)
-    {
+    public List<Long> selectRoleListByUserId(Long userId) {
         return roleMapper.selectRoleListByUserId(userId);
     }
 
@@ -135,8 +127,7 @@ public class SysRoleServiceImpl implements ISysRoleService
      * @return 角色对象信息
      */
     @Override
-    public SysRole selectRoleById(Long roleId)
-    {
+    public SysRole selectRoleById(Long roleId) {
         return roleMapper.selectRoleById(roleId);
     }
 
@@ -147,12 +138,10 @@ public class SysRoleServiceImpl implements ISysRoleService
      * @return 结果
      */
     @Override
-    public String checkRoleNameUnique(SysRole role)
-    {
+    public String checkRoleNameUnique(SysRole role) {
         Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId();
         SysRole info = roleMapper.checkRoleNameUnique(role.getRoleName());
-        if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue())
-        {
+        if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) {
             return UserConstants.NOT_UNIQUE;
         }
         return UserConstants.UNIQUE;
@@ -165,12 +154,10 @@ public class SysRoleServiceImpl implements ISysRoleService
      * @return 结果
      */
     @Override
-    public String checkRoleKeyUnique(SysRole role)
-    {
+    public String checkRoleKeyUnique(SysRole role) {
         Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId();
         SysRole info = roleMapper.checkRoleKeyUnique(role.getRoleKey());
-        if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue())
-        {
+        if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) {
             return UserConstants.NOT_UNIQUE;
         }
         return UserConstants.UNIQUE;
@@ -182,10 +169,8 @@ public class SysRoleServiceImpl implements ISysRoleService
      * @param role 角色信息
      */
     @Override
-    public void checkRoleAllowed(SysRole role)
-    {
-        if (StringUtils.isNotNull(role.getRoleId()) && role.isAdmin())
-        {
+    public void checkRoleAllowed(SysRole role) {
+        if (StringUtils.isNotNull(role.getRoleId()) && role.isAdmin()) {
             throw new ServiceException("不允许操作超级管理员角色");
         }
     }
@@ -196,15 +181,12 @@ public class SysRoleServiceImpl implements ISysRoleService
      * @param roleId 角色id
      */
     @Override
-    public void checkRoleDataScope(Long roleId)
-    {
-        if (!SysUser.isAdmin(SecurityUtils.getUserId()))
-        {
+    public void checkRoleDataScope(Long roleId) {
+        if (!SysUser.isAdmin(SecurityUtils.getUserId())) {
             SysRole role = new SysRole();
             role.setRoleId(roleId);
             List<SysRole> roles = SpringUtils.getAopProxy(this).selectRoleList(role);
-            if (StringUtils.isEmpty(roles))
-            {
+            if (StringUtils.isEmpty(roles)) {
                 throw new ServiceException("没有权限访问角色数据!");
             }
         }
@@ -217,8 +199,7 @@ public class SysRoleServiceImpl implements ISysRoleService
      * @return 结果
      */
     @Override
-    public int countUserRoleByRoleId(Long roleId)
-    {
+    public int countUserRoleByRoleId(Long roleId) {
         return userRoleMapper.countUserRoleByRoleId(roleId);
     }
 
@@ -230,8 +211,7 @@ public class SysRoleServiceImpl implements ISysRoleService
      */
     @Override
     @Transactional
-    public int insertRole(SysRole role)
-    {
+    public int insertRole(SysRole role) {
         // 新增角色信息
         roleMapper.insertRole(role);
         return insertRoleMenu(role);
@@ -245,8 +225,7 @@ public class SysRoleServiceImpl implements ISysRoleService
      */
     @Override
     @Transactional
-    public int updateRole(SysRole role)
-    {
+    public int updateRole(SysRole role) {
         // 修改角色信息
         roleMapper.updateRole(role);
         // 删除角色与菜单关联
@@ -261,8 +240,7 @@ public class SysRoleServiceImpl implements ISysRoleService
      * @return 结果
      */
     @Override
-    public int updateRoleStatus(SysRole role)
-    {
+    public int updateRoleStatus(SysRole role) {
         return roleMapper.updateRole(role);
     }
 
@@ -274,8 +252,7 @@ public class SysRoleServiceImpl implements ISysRoleService
      */
     @Override
     @Transactional
-    public int authDataScope(SysRole role)
-    {
+    public int authDataScope(SysRole role) {
         // 修改角色信息
         roleMapper.updateRole(role);
         // 删除角色与部门关联
@@ -289,20 +266,17 @@ public class SysRoleServiceImpl implements ISysRoleService
      *
      * @param role 角色对象
      */
-    public int insertRoleMenu(SysRole role)
-    {
+    public int insertRoleMenu(SysRole role) {
         int rows = 1;
         // 新增用户与角色管理
         List<SysRoleMenu> list = new ArrayList<SysRoleMenu>();
-        for (Long menuId : role.getMenuIds())
-        {
+        for (Long menuId : role.getMenuIds()) {
             SysRoleMenu rm = new SysRoleMenu();
             rm.setRoleId(role.getRoleId());
             rm.setMenuId(menuId);
             list.add(rm);
         }
-        if (list.size() > 0)
-        {
+        if (list.size() > 0) {
             rows = roleMenuMapper.batchRoleMenu(list);
         }
         return rows;
@@ -313,20 +287,17 @@ public class SysRoleServiceImpl implements ISysRoleService
      *
      * @param role 角色对象
      */
-    public int insertRoleDept(SysRole role)
-    {
+    public int insertRoleDept(SysRole role) {
         int rows = 1;
         // 新增角色与部门(数据权限)管理
         List<SysRoleDept> list = new ArrayList<SysRoleDept>();
-        for (Long deptId : role.getDeptIds())
-        {
+        for (Long deptId : role.getDeptIds()) {
             SysRoleDept rd = new SysRoleDept();
             rd.setRoleId(role.getRoleId());
             rd.setDeptId(deptId);
             list.add(rd);
         }
-        if (list.size() > 0)
-        {
+        if (list.size() > 0) {
             rows = roleDeptMapper.batchRoleDept(list);
         }
         return rows;
@@ -340,8 +311,7 @@ public class SysRoleServiceImpl implements ISysRoleService
      */
     @Override
     @Transactional
-    public int deleteRoleById(Long roleId)
-    {
+    public int deleteRoleById(Long roleId) {
         // 删除角色与菜单关联
         roleMenuMapper.deleteRoleMenuByRoleId(roleId);
         // 删除角色与部门关联
@@ -357,15 +327,12 @@ public class SysRoleServiceImpl implements ISysRoleService
      */
     @Override
     @Transactional
-    public int deleteRoleByIds(Long[] roleIds)
-    {
-        for (Long roleId : roleIds)
-        {
+    public int deleteRoleByIds(Long[] roleIds) {
+        for (Long roleId : roleIds) {
             checkRoleAllowed(new SysRole(roleId));
             checkRoleDataScope(roleId);
             SysRole role = selectRoleById(roleId);
-            if (countUserRoleByRoleId(roleId) > 0)
-            {
+            if (countUserRoleByRoleId(roleId) > 0) {
                 throw new ServiceException(String.format("%1$s已分配,不能删除", role.getRoleName()));
             }
         }
@@ -383,38 +350,34 @@ public class SysRoleServiceImpl implements ISysRoleService
      * @return 结果
      */
     @Override
-    public int deleteAuthUser(SysUserRole userRole)
-    {
+    public int deleteAuthUser(SysUserRole userRole) {
         return userRoleMapper.deleteUserRoleInfo(userRole);
     }
 
     /**
      * 批量取消授权用户角色
      *
-     * @param roleId 角色ID
+     * @param roleId  角色ID
      * @param userIds 需要取消授权的用户数据ID
      * @return 结果
      */
     @Override
-    public int deleteAuthUsers(Long roleId, Long[] userIds)
-    {
+    public int deleteAuthUsers(Long roleId, Long[] userIds) {
         return userRoleMapper.deleteUserRoleInfos(roleId, userIds);
     }
 
     /**
      * 批量选择授权用户角色
      *
-     * @param roleId 角色ID
+     * @param roleId  角色ID
      * @param userIds 需要授权的用户数据ID
      * @return 结果
      */
     @Override
-    public int insertAuthUsers(Long roleId, Long[] userIds)
-    {
+    public int insertAuthUsers(Long roleId, Long[] userIds) {
         // 新增用户与角色管理
         List<SysUserRole> list = new ArrayList<SysUserRole>();
-        for (Long userId : userIds)
-        {
+        for (Long userId : userIds) {
             SysUserRole ur = new SysUserRole();
             ur.setUserId(userId);
             ur.setRoleId(roleId);
@@ -422,4 +385,63 @@ public class SysRoleServiceImpl implements ISysRoleService
         }
         return userRoleMapper.batchUserRole(list);
     }
+
+    @Override
+    public int addRole(SysRole role) {
+        // 新增角色信息
+        return roleMapper.insertRole(role);
+    }
+
+    @Override
+    public int distributionModule(SysMenuIdsRequestVo sysMenuIdsRequestVo) {
+        return insertRoleMenuList(sysMenuIdsRequestVo);
+    }
+
+    @Override
+    public int updateRoles(SysRole role) {
+        // 修改角色信息
+        return roleMapper.updateRole(role);
+    }
+
+    @Override
+    public int updateDistributionModule(SysMenuIdsRequestVo sysMenuIdsRequestVo) {
+        // 删除角色与菜单关联
+        roleMenuMapper.deleteRoleMenuByRoleId(sysMenuIdsRequestVo.getRoleId());
+        return insertRoleMenuList(sysMenuIdsRequestVo);
+    }
+
+    @Override
+    public int changeStatus(List<SysStatusRequestVo> sysStatusRequestVoList) {
+        for (SysStatusRequestVo sysStatusRequestVo : sysStatusRequestVoList) {
+            SysRole sysRole = new SysRole();
+            sysRole.setRoleId(sysStatusRequestVo.getId());
+            sysRole.setStatus(sysStatusRequestVo.getStatus());
+            checkRoleAllowed(sysRole);
+            checkRoleDataScope(sysRole.getRoleId());
+            if (roleMapper.updateRole(sysRole)<=0){
+                return 0;
+            }
+        }
+        return  1;
+    }
+
+    /**
+     * 新增角色菜单信息
+     *
+     * @param sysMenuIdsRequestVo 分配模块
+     */
+    public int insertRoleMenuList(SysMenuIdsRequestVo sysMenuIdsRequestVo) {
+        int rows = 1;
+        List<SysRoleMenu> list = new ArrayList<SysRoleMenu>();
+        for (Long menuId : sysMenuIdsRequestVo.getMenuIds()) {
+            SysRoleMenu rm = new SysRoleMenu();
+            rm.setRoleId(sysMenuIdsRequestVo.getRoleId());
+            rm.setMenuId(menuId);
+            list.add(rm);
+        }
+        if (list.size() > 0) {
+            rows = roleMenuMapper.batchRoleMenu(list);
+        }
+        return rows;
+    }
 }

+ 19 - 0
purchase-system/src/main/java/com/ozs/system/service/impl/SysUserServiceImpl.java

@@ -541,4 +541,23 @@ public class SysUserServiceImpl implements ISysUserService
         }
         return successMsg.toString();
     }
+
+    @Override
+    public int saveUser(SysUser user) {
+        // 新增用户信息
+        int rows = userMapper.insertUser(user);
+        // 新增用户与角色管理
+        insertUserRole(user);
+        return rows;
+    }
+
+    @Override
+    public int updateUsers(SysUser user) {
+        Long userId = user.getUserId();
+        // 删除用户与角色关联
+        userRoleMapper.deleteUserRoleByUserId(userId);
+        // 新增用户与角色管理
+        insertUserRole(user);
+        return userMapper.updateUser(user);
+    }
 }

+ 43 - 0
purchase-system/src/main/resources/mapper/base/BaseProfessionalMapper.xml

@@ -0,0 +1,43 @@
+<?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.ozs.base.mapper.BaseProfessionalMapper">
+
+    <resultMap type="com.ozs.base.domain.BaseProfessional" id="BaseProfessionalResult">
+        <id property="id" column="id"/>
+        <result property="professionalName" column="professional_name"/>
+        <result property="professionalCode" column="professional_code"/>
+        <result property="purchaseState" column="purchase_state"/>
+        <result property="professionalGrade" column="professional_grade"/>
+        <result property="parentCode" column="parent_code"/>
+    </resultMap>
+
+    <select id="selectBaseProfessional" parameterType="com.ozs.base.domain.vo.BaseProfessionalVo" resultMap="BaseProfessionalResult">
+        select * from base_professional
+        <where>
+            <if test="professionalName != null and professionalName != ''">
+                professional_name like '% +' #{professionalName} '+ %',
+            </if>
+            <if test="professionalCode != null and professionalCode != ''">
+                professional_code = #{professionalCode},
+            </if>
+            <if test="professionalGrade != null and professionalGrade != ''">
+                professional_grade = #{professionalGrade}
+            </if>
+        </where>
+    </select>
+
+    <select id="selectoneGradeList" parameterType="com.ozs.base.domain.BaseProfessional" resultMap="BaseProfessionalResult">
+        select * from base_professional where professional_code = #{professionalCode}
+    </select>
+
+    <select id="countByParentCodec" parameterType="java.lang.String">
+        select count(id) from base_professional where parent_code = #{professionalCode}
+    </select>
+
+    <select id="selectByParentCode" parameterType="com.ozs.base.domain.BaseProfessional" resultMap="BaseProfessionalResult">
+        select * from base_professional where parent_code = #{professionalCode}
+    </select>
+
+</mapper>

+ 2 - 2
purchase-system/src/main/resources/mapper/system/SysDeptMapper.xml

@@ -126,8 +126,8 @@
             <if test="parentId != null and parentId != 0">parent_id = #{parentId},</if>
             <if test="deptName != null and deptName != ''">dept_name = #{deptName},</if>
             <if test="ancestors != null and ancestors != ''">ancestors = #{ancestors},</if>
-            <if test="address != null and address != ''">#{address},</if>
-            <if test="remarks != null and remarks != ''">#{remarks},</if>
+            <if test="address != null and address != ''">address = #{address},</if>
+            <if test="remarks != null and remarks != ''">remarks = #{remarks},</if>
             <if test="orderNum != null">order_num = #{orderNum},</if>
             <if test="leader != null">leader = #{leader},</if>
             <if test="phone != null">phone = #{phone},</if>

+ 2 - 0
purchase-system/src/main/resources/mapper/system/SysRoleMapper.xml

@@ -98,6 +98,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="roleId != null and roleId != 0">role_id,</if>
  			<if test="roleName != null and roleName != ''">role_name,</if>
  			<if test="roleKey != null and roleKey != ''">role_key,</if>
+		    <if test="roleRemarks != null and roleRemarks != ''">role_remarks,</if>
  			<if test="roleSort != null">role_sort,</if>
  			<if test="dataScope != null and dataScope != ''">data_scope,</if>
  			<if test="menuCheckStrictly != null">menu_check_strictly,</if>
@@ -110,6 +111,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="roleId != null and roleId != 0">#{roleId},</if>
  			<if test="roleName != null and roleName != ''">#{roleName},</if>
  			<if test="roleKey != null and roleKey != ''">#{roleKey},</if>
+		    <if test="roleRemarks != null and roleRemarks != ''">#{role_remarks},</if>
  			<if test="roleSort != null">#{roleSort},</if>
  			<if test="dataScope != null and dataScope != ''">#{dataScope},</if>
  			<if test="menuCheckStrictly != null">#{menuCheckStrictly},</if>