Преглед на файлове

Merge remote-tracking branch 'origin/master'

suntianwu преди 2 години
родител
ревизия
72b70c6180
променени са 22 файла, в които са добавени 341 реда и са изтрити 142 реда
  1. 6 0
      pom.xml
  2. 20 0
      purchase-admin/pom.xml
  3. 67 10
      purchase-admin/src/main/java/com/ozs/web/controller/plan/PlanYearsController.java
  4. 41 43
      purchase-admin/src/main/java/com/ozs/web/controller/system/SysUserController.java
  5. 2 2
      purchase-admin/src/main/resources/application.yml
  6. BIN
      purchase-admin/src/main/resources/template/planYears.xlsx
  7. BIN
      purchase-admin/src/main/resources/template/plan_year.xlsx
  8. 6 0
      purchase-common/pom.xml
  9. 59 19
      purchase-common/src/main/java/com/ozs/common/core/domain/entity/SysDept.java
  10. 5 5
      purchase-common/src/main/java/com/ozs/common/core/domain/entity/SysRole.java
  11. 4 0
      purchase-system/src/main/java/com/ozs/plan/doman/vo/responseVo/PlanYearsResponseVo.java
  12. 2 2
      purchase-system/src/main/java/com/ozs/plan/mapper/PlanYearsMapper.java
  13. 32 19
      purchase-system/src/main/java/com/ozs/plan/service/impl/PlanYearsServiceImpl.java
  14. 1 1
      purchase-system/src/main/java/com/ozs/plan/service/impl/ProvisionalPlanServiceImpl.java
  15. 1 1
      purchase-system/src/main/java/com/ozs/pm/doman/vo/requestVo/PmDemandReqVo.java
  16. 1 0
      purchase-system/src/main/java/com/ozs/pm/service/IPmDemandService.java
  17. 1 1
      purchase-system/src/main/java/com/ozs/pm/service/impl/PmAuditDeptRefServiceImpl.java
  18. 35 26
      purchase-system/src/main/java/com/ozs/pm/service/impl/PmDemandServiceImpl.java
  19. 1 1
      purchase-system/src/main/java/com/ozs/system/mapper/SysDeptMapper.java
  20. 8 0
      purchase-system/src/main/java/com/ozs/system/service/ISysDeptService.java
  21. 31 1
      purchase-system/src/main/java/com/ozs/system/service/impl/SysDeptServiceImpl.java
  22. 18 11
      purchase-system/src/main/resources/mapper/system/SysDeptMapper.xml

+ 6 - 0
pom.xml

@@ -108,6 +108,12 @@
                 <version>${poi.version}</version>
                 <version>${poi.version}</version>
             </dependency>
             </dependency>
 
 
+            <dependency>
+                <groupId>org.apache.poi</groupId>
+                <artifactId>poi</artifactId>
+                <version>${poi.version}</version>
+            </dependency>
+
             <!-- velocity代码生成使用模板 -->
             <!-- velocity代码生成使用模板 -->
             <dependency>
             <dependency>
                 <groupId>org.apache.velocity</groupId>
                 <groupId>org.apache.velocity</groupId>

+ 20 - 0
purchase-admin/pom.xml

@@ -49,7 +49,27 @@
             <groupId>com.ozs</groupId>
             <groupId>com.ozs</groupId>
             <artifactId>purchase-generator</artifactId>
             <artifactId>purchase-generator</artifactId>
         </dependency>
         </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+            <version>2.1.6</version>
+        </dependency>
 
 
+        <dependency>
+            <groupId>org.apache.xmlbeans</groupId>
+            <artifactId>xmlbeans</artifactId>
+            <version>3.1.0</version>
+        </dependency>
+        <!--        <dependency>-->
+        <!--            <groupId>org.apache.poi</groupId>-->
+        <!--            <artifactId>poi</artifactId>-->
+        <!--            <version>3.10-FINAL</version>-->
+        <!--        </dependency>-->
+        <!--        <dependency>-->
+        <!--            <groupId>org.apache.poi</groupId>-->
+        <!--            <artifactId>poi-ooxml</artifactId>-->
+        <!--            <version>3.10-FINAL</version>-->
+        <!--        </dependency>-->
     </dependencies>
     </dependencies>
 
 
     <build>
     <build>

+ 67 - 10
purchase-admin/src/main/java/com/ozs/web/controller/plan/PlanYearsController.java

@@ -1,5 +1,8 @@
 package com.ozs.web.controller.plan;
 package com.ozs.web.controller.plan;
 
 
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ozs.common.annotation.Log;
 import com.ozs.common.annotation.Log;
@@ -41,8 +44,11 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 import java.io.InputStream;
+import java.io.OutputStream;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.net.URLEncoder;
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.*;
 
 
@@ -150,8 +156,26 @@ public class PlanYearsController extends BaseController {
     public void exportPlan(HttpServletResponse response, @RequestBody PlanYearsStandardVo yearsStandardVo, HttpServletRequest request) throws Exception {
     public void exportPlan(HttpServletResponse response, @RequestBody PlanYearsStandardVo yearsStandardVo, HttpServletRequest request) throws Exception {
         LoginUser loginUser = tokenService.getLoginUser(request);
         LoginUser loginUser = tokenService.getLoginUser(request);
         List<PlanYearsResponseVo> list = planYearsService.selectPlanYearsListEXP(yearsStandardVo, loginUser);
         List<PlanYearsResponseVo> list = planYearsService.selectPlanYearsListEXP(yearsStandardVo, loginUser);
-        ExcelUtil<PlanYearsResponseVo> util = new ExcelUtil<>(PlanYearsResponseVo.class);
-        util.exportExcel(response, list, "年度计划数据");
+        InputStream resourceAsStream = this.getClass().getResourceAsStream("/template/plan_year.xlsx");
+        OutputStream outputStream = null;
+        try {
+            response.setContentType("application/vnd.ms-excel");
+            response.setCharacterEncoding("utf-8");
+            // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
+            String fileName = URLEncoder.encode("年度计划", "UTF-8").replaceAll("\\+", "%20");
+            response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
+            outputStream = response.getOutputStream();
+            ExcelWriter excelWriter = EasyExcel.write(outputStream)
+                    .withTemplate(resourceAsStream).autoCloseStream(true).build();
+            WriteSheet writeSheet = EasyExcel.writerSheet().build();
+            excelWriter.fill(list, writeSheet);
+            excelWriter.finish();
+            outputStream.flush();
+            outputStream.close();
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            throw new BaseException("下载异常");
+        }
     }
     }
 
 
     @ApiOperation(value = "导出年度计划数据(审核单位)")
     @ApiOperation(value = "导出年度计划数据(审核单位)")
@@ -161,8 +185,28 @@ public class PlanYearsController extends BaseController {
     public void exportPlanExamine(HttpServletResponse response, @RequestBody PlanYearsStandardVo yearsStandardVo, HttpServletRequest request) throws Exception {
     public void exportPlanExamine(HttpServletResponse response, @RequestBody PlanYearsStandardVo yearsStandardVo, HttpServletRequest request) throws Exception {
         LoginUser loginUser = tokenService.getLoginUser(request);
         LoginUser loginUser = tokenService.getLoginUser(request);
         List<PlanYearsResponseVo> list = planYearsService.selectPlanYearsExamineListEXP(yearsStandardVo, loginUser);
         List<PlanYearsResponseVo> list = planYearsService.selectPlanYearsExamineListEXP(yearsStandardVo, loginUser);
-        ExcelUtil<PlanYearsResponseVo> util = new ExcelUtil<>(PlanYearsResponseVo.class);
-        util.exportExcel(response, list, "年度计划数据(审核单位)");
+        InputStream resourceAsStream = this.getClass().getResourceAsStream("/template/plan_year.xlsx");
+        OutputStream outputStream = null;
+        try {
+            response.setContentType("application/vnd.ms-excel");
+            response.setCharacterEncoding("utf-8");
+            // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
+            String fileName = URLEncoder.encode("年度计划(审核)", "UTF-8").replaceAll("\\+", "%20");
+            response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
+            outputStream = response.getOutputStream();
+            ExcelWriter excelWriter = EasyExcel.write(outputStream)
+                    .withTemplate(resourceAsStream).autoCloseStream(true).build();
+            WriteSheet writeSheet = EasyExcel.writerSheet().build();
+            excelWriter.fill(list, writeSheet);
+            excelWriter.finish();
+            outputStream.flush();
+            outputStream.close();
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            throw new BaseException("下载异常");
+        }
+//        ExcelUtil<PlanYearsResponseVo> util = new ExcelUtil<>(PlanYearsResponseVo.class);
+//        util.exportExcel(response, list, "年度计划数据(审核单位)");
     }
     }
 
 
     @ApiOperation(value = "创建年度计划")
     @ApiOperation(value = "创建年度计划")
@@ -283,7 +327,7 @@ public class PlanYearsController extends BaseController {
     @Log(title = ModularConstans.planYear, businessType = BusinessType.INSERT)
     @Log(title = ModularConstans.planYear, businessType = BusinessType.INSERT)
     public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
     public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
         ExcelUtil<PlanYearsStandardVo> util = new ExcelUtil<>(PlanYearsStandardVo.class);
         ExcelUtil<PlanYearsStandardVo> util = new ExcelUtil<>(PlanYearsStandardVo.class);
-        List<PlanYearsStandardVo> planYears = util.importExcel(file.getInputStream());
+        List<PlanYearsStandardVo> planYears = util.importExcel(file.getInputStream(), 3);
         //获取采购单位-
         //获取采购单位-
         LoginUser loginUser = getLoginUser();
         LoginUser loginUser = getLoginUser();
         String message = planYearsService.importPlanYears(planYears, updateSupport, loginUser);
         String message = planYearsService.importPlanYears(planYears, updateSupport, loginUser);
@@ -301,13 +345,26 @@ public class PlanYearsController extends BaseController {
     @ApiOperation("模板下载")
     @ApiOperation("模板下载")
     @GetMapping("/downloaExcel")
     @GetMapping("/downloaExcel")
     public void downloadZip(HttpServletResponse response) {
     public void downloadZip(HttpServletResponse response) {
+        List<PlanYearsResponseVo> list = new ArrayList<PlanYearsResponseVo>();
+        InputStream resourceAsStream = this.getClass().getResourceAsStream("/template/plan_year.xlsx");
+        OutputStream outputStream = null;
         try {
         try {
-            InputStream resourceAsStream = this.getClass().getResourceAsStream("/template/planYears.xlsx");
-            response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
-            FileUtils.setAttachmentResponseHeader(response, "年度计划导入模板.xlsx");
-            FileUtils.writeBytesByInput(resourceAsStream, response.getOutputStream());
+            response.setContentType("application/vnd.ms-excel");
+            response.setCharacterEncoding("utf-8");
+            // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
+            String fileName = URLEncoder.encode("年度计划(模板)", "UTF-8").replaceAll("\\+", "%20");
+            response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
+            outputStream = response.getOutputStream();
+            ExcelWriter excelWriter = EasyExcel.write(outputStream)
+                    .withTemplate(resourceAsStream).autoCloseStream(true).build();
+            WriteSheet writeSheet = EasyExcel.writerSheet().build();
+            excelWriter.fill(list, writeSheet);
+            excelWriter.finish();
+            outputStream.flush();
+            outputStream.close();
         } catch (Exception e) {
         } catch (Exception e) {
-            log.error("下载文件失败", e);
+            log.error(e.getMessage());
+            throw new BaseException("下载异常");
         }
         }
     }
     }
 
 

+ 41 - 43
purchase-admin/src/main/java/com/ozs/web/controller/system/SysUserController.java

@@ -1,5 +1,6 @@
 package com.ozs.web.controller.system;
 package com.ozs.web.controller.system;
 
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
@@ -10,7 +11,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ozs.common.constant.Constants;
 import com.ozs.common.constant.Constants;
 import com.ozs.common.core.domain.entity.SysDictData;
 import com.ozs.common.core.domain.entity.SysDictData;
+import com.ozs.common.core.domain.model.LoginUser;
 import com.ozs.home.domain.HomeNotice;
 import com.ozs.home.domain.HomeNotice;
+import com.ozs.pm.service.IPmDemandService;
 import com.ozs.system.domain.vo.requestVo.SysUserPageRequestVo;
 import com.ozs.system.domain.vo.requestVo.SysUserPageRequestVo;
 import com.ozs.system.domain.vo.requestVo.SysUserRequestVo;
 import com.ozs.system.domain.vo.requestVo.SysUserRequestVo;
 import com.ozs.system.domain.vo.responseVo.SysDeptResponseVo;
 import com.ozs.system.domain.vo.responseVo.SysDeptResponseVo;
@@ -56,8 +59,7 @@ import com.ozs.system.service.ISysUserService;
 @RestController
 @RestController
 @RequestMapping("/system/user")
 @RequestMapping("/system/user")
 @Api(tags = "用户信息")
 @Api(tags = "用户信息")
-public class SysUserController extends BaseController
-{
+public class SysUserController extends BaseController {
     @Autowired
     @Autowired
     private ISysUserService userService;
     private ISysUserService userService;
 
 
@@ -71,6 +73,8 @@ public class SysUserController extends BaseController
     private ISysPostService postService;
     private ISysPostService postService;
     @Autowired
     @Autowired
     private ISysDeptService iSysDeptService;
     private ISysDeptService iSysDeptService;
+    @Autowired
+    private IPmDemandService demandService;
 
 
 //    /**
 //    /**
 //     * 获取用户列表
 //     * 获取用户列表
@@ -91,14 +95,25 @@ public class SysUserController extends BaseController
     @PreAuthorize("@ss.hasPermi('system:user:list')")
     @PreAuthorize("@ss.hasPermi('system:user:list')")
     @PostMapping("/list")
     @PostMapping("/list")
     @ApiOperation("获取用户列表")
     @ApiOperation("获取用户列表")
-    public AjaxResult list(@RequestBody SysUserPageRequestVo sysUserPageRequestVo)
-    {
+    public AjaxResult list(@RequestBody SysUserPageRequestVo sysUserPageRequestVo) {
         LambdaQueryWrapper<SysUser> lw = new LambdaQueryWrapper<SysUser>();
         LambdaQueryWrapper<SysUser> lw = new LambdaQueryWrapper<SysUser>();
-        lw.eq(SysUser::getDelFlag,0);
+        lw.eq(SysUser::getDelFlag, 0);
         if (!StringUtils.isBlank(sysUserPageRequestVo.getNickName())) {
         if (!StringUtils.isBlank(sysUserPageRequestVo.getNickName())) {
             lw.like(SysUser::getNickName, "%" + sysUserPageRequestVo.getNickName() + "%");
             lw.like(SysUser::getNickName, "%" + sysUserPageRequestVo.getNickName() + "%");
         }
         }
-        if (!StringUtils.isBlank(sysUserPageRequestVo.getDeptId())) {
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        if (!String.valueOf(loginUser.getUserId()).equals("1")) {
+            List<Long> deptList = new ArrayList<>();
+            //获取到子孙级部门id
+            Long deptId = loginUser.getDeptId();
+            if (deptService.hasChildByDeptId(loginUser.getDeptId())) {
+                List<Long> children = deptService.getDeptChildren(deptId);
+                System.err.println(children.size());
+                deptList.addAll(children);
+            }
+            deptList.add(deptId);
+            lw.in(SysUser::getDeptId, deptList);
+        } else if (!StringUtils.isBlank(sysUserPageRequestVo.getDeptId())) {
             lw.eq(SysUser::getDeptId, sysUserPageRequestVo.getDeptId());
             lw.eq(SysUser::getDeptId, sysUserPageRequestVo.getDeptId());
         }
         }
         IPage<SysUser> page = userService.page(new Page<>(sysUserPageRequestVo.getPageNum(), sysUserPageRequestVo.getPageSize()), lw);
         IPage<SysUser> page = userService.page(new Page<>(sysUserPageRequestVo.getPageNum(), sysUserPageRequestVo.getPageSize()), lw);
@@ -115,7 +130,7 @@ public class SysUserController extends BaseController
                 return dto;
                 return dto;
             }).collect(Collectors.toList()));
             }).collect(Collectors.toList()));
         }
         }
-        if(!ObjectUtils.isEmpty(page) && !ObjectUtils.isEmpty(page.getRecords())){
+        if (!ObjectUtils.isEmpty(page) && !ObjectUtils.isEmpty(page.getRecords())) {
             List<SysUser> dto1 = page.getRecords().stream().map(o -> {
             List<SysUser> dto1 = page.getRecords().stream().map(o -> {
                 Map<String, Object> stringObjectMap = deptService.selectDeptById(o.getDeptId());
                 Map<String, Object> stringObjectMap = deptService.selectDeptById(o.getDeptId());
                 Object sysDept = stringObjectMap.get("dto");
                 Object sysDept = stringObjectMap.get("dto");
@@ -135,8 +150,7 @@ public class SysUserController extends BaseController
     @PreAuthorize("@ss.hasPermi('system:user:export')")
     @PreAuthorize("@ss.hasPermi('system:user:export')")
     @PostMapping("/export")
     @PostMapping("/export")
     @ApiOperation("用户管理")
     @ApiOperation("用户管理")
-    public void export(HttpServletResponse response, SysUser user)
-    {
+    public void export(HttpServletResponse response, SysUser user) {
         List<SysUser> list = userService.selectUserList(user);
         List<SysUser> list = userService.selectUserList(user);
         ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
         ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
         util.exportExcel(response, list, "用户数据");
         util.exportExcel(response, list, "用户数据");
@@ -146,8 +160,7 @@ public class SysUserController extends BaseController
     @PreAuthorize("@ss.hasPermi('system:user:import')")
     @PreAuthorize("@ss.hasPermi('system:user:import')")
     @PostMapping("/importData")
     @PostMapping("/importData")
     @ApiOperation("用户管理")
     @ApiOperation("用户管理")
-    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
-    {
+    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
         ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
         ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
         List<SysUser> userList = util.importExcel(file.getInputStream());
         List<SysUser> userList = util.importExcel(file.getInputStream());
         String operName = getUsername();
         String operName = getUsername();
@@ -157,8 +170,7 @@ public class SysUserController extends BaseController
 
 
     @PostMapping("/importTemplate")
     @PostMapping("/importTemplate")
     @ApiOperation("用户数据")
     @ApiOperation("用户数据")
-    public void importTemplate(HttpServletResponse response)
-    {
+    public void importTemplate(HttpServletResponse response) {
         ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
         ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
         util.importTemplateExcel(response, "用户数据");
         util.importTemplateExcel(response, "用户数据");
     }
     }
@@ -166,17 +178,15 @@ public class SysUserController extends BaseController
     /**
     /**
      * 根据用户编号获取详细信息
      * 根据用户编号获取详细信息
      */
      */
-    @GetMapping(value = { "/", "/{userId}" })
+    @GetMapping(value = {"/", "/{userId}"})
     @ApiOperation("根据用户编号获取详细信息")
     @ApiOperation("根据用户编号获取详细信息")
-    public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId)
-    {
+    public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) {
         userService.checkUserDataScope(userId);
         userService.checkUserDataScope(userId);
         AjaxResult ajax = AjaxResult.success();
         AjaxResult ajax = AjaxResult.success();
         List<SysRole> roles = roleService.selectRoleAll();
         List<SysRole> roles = roleService.selectRoleAll();
         ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
         ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
         ajax.put("posts", postService.selectPostAll());
         ajax.put("posts", postService.selectPostAll());
-        if (StringUtils.isNotNull(userId))
-        {
+        if (StringUtils.isNotNull(userId)) {
             SysUser sysUser = userService.selectUserById(userId);
             SysUser sysUser = userService.selectUserById(userId);
             ajax.put(AjaxResult.DATA_TAG, sysUser);
             ajax.put(AjaxResult.DATA_TAG, sysUser);
             ajax.put("postIds", postService.selectPostListByUserId(userId));
             ajax.put("postIds", postService.selectPostListByUserId(userId));
@@ -214,7 +224,6 @@ public class SysUserController extends BaseController
 //    }
 //    }
 
 
 
 
-
     /**
     /**
      * 新增用户
      * 新增用户
      */
      */
@@ -222,17 +231,13 @@ public class SysUserController extends BaseController
     @Log(title = "用户管理", businessType = BusinessType.INSERT)
     @Log(title = "用户管理", businessType = BusinessType.INSERT)
     @PostMapping
     @PostMapping
     @ApiOperation("新增用户")
     @ApiOperation("新增用户")
-    public AjaxResult add(@Validated @RequestBody SysUserRequestVo sysUserRequestVo)
-    {
+    public AjaxResult add(@Validated @RequestBody SysUserRequestVo sysUserRequestVo) {
         SysUser user = new SysUser();
         SysUser user = new SysUser();
-        BeanUtils.copyProperties(sysUserRequestVo,user);
-        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user)))
-        {
+        BeanUtils.copyProperties(sysUserRequestVo, user);
+        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user))) {
             return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
             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() + "'失败,手机号码已存在");
             return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
         }
         }
         user.setCreateBy(getUsername());
         user.setCreateBy(getUsername());
@@ -278,7 +283,7 @@ public class SysUserController extends BaseController
     @ApiOperation("修改用户")
     @ApiOperation("修改用户")
     public AjaxResult edit(@Validated @RequestBody SysUserRequestVo sysUserRequestVo) {
     public AjaxResult edit(@Validated @RequestBody SysUserRequestVo sysUserRequestVo) {
         SysUser user = new SysUser();
         SysUser user = new SysUser();
-        BeanUtils.copyProperties(sysUserRequestVo,user);
+        BeanUtils.copyProperties(sysUserRequestVo, user);
         userService.checkUserAllowed(user);
         userService.checkUserAllowed(user);
         userService.checkUserDataScope(user.getUserId());
         userService.checkUserDataScope(user.getUserId());
         if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user))) {
         if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user))) {
@@ -298,10 +303,8 @@ public class SysUserController extends BaseController
     @Log(title = "用户管理", businessType = BusinessType.DELETE)
     @Log(title = "用户管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{userIds}")
     @DeleteMapping("/{userIds}")
     @ApiOperation("删除用户")
     @ApiOperation("删除用户")
-    public AjaxResult remove(@PathVariable Long[] userIds)
-    {
-        if (ArrayUtils.contains(userIds, getUserId()))
-        {
+    public AjaxResult remove(@PathVariable Long[] userIds) {
+        if (ArrayUtils.contains(userIds, getUserId())) {
             return error("当前用户不能删除");
             return error("当前用户不能删除");
         }
         }
         return toAjax(userService.deleteUserByIds(userIds));
         return toAjax(userService.deleteUserByIds(userIds));
@@ -314,8 +317,7 @@ public class SysUserController extends BaseController
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @PutMapping("/resetPwd")
     @PutMapping("/resetPwd")
     @ApiOperation("重置密码")
     @ApiOperation("重置密码")
-    public AjaxResult resetPwd(@RequestBody SysUser user)
-    {
+    public AjaxResult resetPwd(@RequestBody SysUser user) {
         userService.checkUserAllowed(user);
         userService.checkUserAllowed(user);
         userService.checkUserDataScope(user.getUserId());
         userService.checkUserDataScope(user.getUserId());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
@@ -330,8 +332,7 @@ public class SysUserController extends BaseController
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @PutMapping("/changeStatus")
     @PutMapping("/changeStatus")
     @ApiOperation("状态修改")
     @ApiOperation("状态修改")
-    public AjaxResult changeStatus(@RequestBody SysUser user)
-    {
+    public AjaxResult changeStatus(@RequestBody SysUser user) {
         userService.checkUserAllowed(user);
         userService.checkUserAllowed(user);
         userService.checkUserDataScope(user.getUserId());
         userService.checkUserDataScope(user.getUserId());
         user.setUpdateBy(getUsername());
         user.setUpdateBy(getUsername());
@@ -343,8 +344,7 @@ public class SysUserController extends BaseController
      */
      */
     @GetMapping("/authRole/{userId}")
     @GetMapping("/authRole/{userId}")
     @ApiOperation("根据用户编号获取授权角色")
     @ApiOperation("根据用户编号获取授权角色")
-    public AjaxResult authRole(@PathVariable("userId") Long userId)
-    {
+    public AjaxResult authRole(@PathVariable("userId") Long userId) {
         AjaxResult ajax = AjaxResult.success();
         AjaxResult ajax = AjaxResult.success();
         SysUser user = userService.selectUserById(userId);
         SysUser user = userService.selectUserById(userId);
         List<SysRole> roles = roleService.selectRolesByUserId(userId);
         List<SysRole> roles = roleService.selectRolesByUserId(userId);
@@ -360,8 +360,7 @@ public class SysUserController extends BaseController
     @Log(title = "用户管理", businessType = BusinessType.GRANT)
     @Log(title = "用户管理", businessType = BusinessType.GRANT)
     @PutMapping("/authRole")
     @PutMapping("/authRole")
     @ApiOperation("用户授权角色")
     @ApiOperation("用户授权角色")
-    public AjaxResult insertAuthRole(Long userId, Long[] roleIds)
-    {
+    public AjaxResult insertAuthRole(Long userId, Long[] roleIds) {
         userService.checkUserDataScope(userId);
         userService.checkUserDataScope(userId);
         userService.insertUserAuth(userId, roleIds);
         userService.insertUserAuth(userId, roleIds);
         return success();
         return success();
@@ -372,8 +371,7 @@ public class SysUserController extends BaseController
      */
      */
     @GetMapping("/deptTree")
     @GetMapping("/deptTree")
     @ApiOperation("获取部门树列表")
     @ApiOperation("获取部门树列表")
-    public AjaxResult deptTree(SysDept dept)
-    {
+    public AjaxResult deptTree(SysDept dept) {
         return success(deptService.selectDeptTreeList(dept));
         return success(deptService.selectDeptTreeList(dept));
     }
     }
 }
 }

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

@@ -10,5 +10,5 @@ server:
 # Spring配置
 # Spring配置
 spring:
 spring:
   profiles:
   profiles:
-#    active: druid,test
-    active: prod
+    active: druid,test
+#    active: prod

BIN
purchase-admin/src/main/resources/template/planYears.xlsx


BIN
purchase-admin/src/main/resources/template/plan_year.xlsx


+ 6 - 0
purchase-common/pom.xml

@@ -91,6 +91,12 @@
             <artifactId>poi-ooxml</artifactId>
             <artifactId>poi-ooxml</artifactId>
         </dependency>
         </dependency>
 
 
+        <!-- excel工具 -->
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi</artifactId>
+        </dependency>
+
         <!-- yml解析器 -->
         <!-- yml解析器 -->
         <dependency>
         <dependency>
             <groupId>org.yaml</groupId>
             <groupId>org.yaml</groupId>

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

@@ -84,7 +84,21 @@ public class SysDept extends BaseEntity
     /**
     /**
      * 采购服务站名称
      * 采购服务站名称
      */
      */
-    private String  purchaseServices;
+    private String purchaseServices;
+
+    /**
+     * 查询全部or指定部门
+     */
+    @TableField(exist = false)
+    private List<Long> deptList;
+
+    public List<Long> getDeptList() {
+        return deptList;
+    }
+
+    public void setDeptList(List<Long> deptList) {
+        this.deptList = deptList;
+    }
 
 
     public String getProjectContact() {
     public String getProjectContact() {
         return projectContact;
         return projectContact;
@@ -268,30 +282,56 @@ public class SysDept extends BaseEntity
         this.purchaseServices = purchaseServices;
         this.purchaseServices = purchaseServices;
     }
     }
 
 
+    public SysDept() {
+    }
+
+    public SysDept(Long deptId, Long parentId, String ancestors, String deptName, Integer orderNum, String leader, String phone, String email, String status, String delFlag, String parentName, List<SysDept> children, String remarks, String address, String projectContact, String bankAccountName, String bankOfDeposit, String accountNumber, String purchaseServices, List<Long> deptList) {
+        this.deptId = deptId;
+        this.parentId = parentId;
+        this.ancestors = ancestors;
+        this.deptName = deptName;
+        this.orderNum = orderNum;
+        this.leader = leader;
+        this.phone = phone;
+        this.email = email;
+        this.status = status;
+        this.delFlag = delFlag;
+        this.parentName = parentName;
+        this.children = children;
+        this.remarks = remarks;
+        this.address = address;
+        this.projectContact = projectContact;
+        this.bankAccountName = bankAccountName;
+        this.bankOfDeposit = bankOfDeposit;
+        this.accountNumber = accountNumber;
+        this.purchaseServices = purchaseServices;
+        this.deptList = deptList;
+    }
+
     @Override
     @Override
     public String toString() {
     public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("deptId", getDeptId())
-            .append("parentId", getParentId())
-            .append("ancestors", getAncestors())
-            .append("deptName", getDeptName())
-            .append("orderNum", getOrderNum())
-            .append("leader", getLeader())
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("deptId", getDeptId())
+                .append("parentId", getParentId())
+                .append("ancestors", getAncestors())
+                .append("deptName", getDeptName())
+                .append("orderNum", getOrderNum())
+                .append("leader", getLeader())
             .append("phone", getPhone())
             .append("phone", getPhone())
             .append("email", getEmail())
             .append("email", getEmail())
             .append("status", getStatus())
             .append("status", getStatus())
             .append("delFlag", getDelFlag())
             .append("delFlag", getDelFlag())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .append("remarks",getRemarks())
-            .append("address",getAddress())
-            .append("projectContact", getProjectContact())
-            .append("bankAccountName", getBankAccountName())
-            .append("bankOfDeposit", getBankOfDeposit())
-            .append("accountNumber", getAccountNumber())
-            .append("purchaseServices",getPurchaseServices())    
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("remarks", getRemarks())
+                .append("address", getAddress())
+                .append("projectContact", getProjectContact())
+                .append("bankAccountName", getBankAccountName())
+                .append("bankOfDeposit", getBankOfDeposit())
+                .append("accountNumber", getAccountNumber())
+                .append("purchaseServices", getPurchaseServices())
             .toString();
             .toString();
     }
     }
 }
 }

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

@@ -22,21 +22,21 @@ public class SysRole extends BaseEntity
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
 
 
     /** 角色ID */
     /** 角色ID */
-//    @Excel(name = "角色序号", cellType = ColumnType.NUMERIC)
+    @Excel(name = "角色序号", cellType = ColumnType.NUMERIC)
     private Long roleId;
     private Long roleId;
 
 
     /** 角色名称 */
     /** 角色名称 */
-//    @Excel(name = "角色名称")
+    @Excel(name = "角色名称")
     private String roleName;
     private String roleName;
 
 
     /** 角色权限 */
     /** 角色权限 */
-//    @Excel(name = "角色权限")
+    @Excel(name = "角色权限")
     private String  roleKey;
     private String  roleKey;
 
 
     /** 角色排序 */
     /** 角色排序 */
 //    @Excel(name = "角色排序")
 //    @Excel(name = "角色排序")
     private Integer roleSort;
     private Integer roleSort;
-    
+
     private String roleRemarks;
     private String roleRemarks;
 
 
     /** 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) */
     /** 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) */
@@ -50,7 +50,7 @@ public class SysRole extends BaseEntity
     private boolean deptCheckStrictly;
     private boolean deptCheckStrictly;
 
 
     /** 角色状态(0正常 1停用) */
     /** 角色状态(0正常 1停用) */
-//    @Excel(name = "角色状态", readConverterExp = "0=正常,1=停用")
+    @Excel(name = "角色状态", readConverterExp = "0=正常,1=停用")
     private String status;
     private String status;
 
 
     /** 删除标志(0代表存在 2代表删除) */
     /** 删除标志(0代表存在 2代表删除) */

+ 4 - 0
purchase-system/src/main/java/com/ozs/plan/doman/vo/responseVo/PlanYearsResponseVo.java

@@ -4,7 +4,9 @@ package com.ozs.plan.doman.vo.responseVo;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ozs.common.annotation.Excel;
 import com.ozs.common.annotation.Excel;
 import com.ozs.system.domain.SysFileInfo;
 import com.ozs.system.domain.SysFileInfo;
+import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
@@ -15,6 +17,8 @@ import java.util.List;
  * @author buzhanyi
  * @author buzhanyi
  */
  */
 @Data
 @Data
+@AllArgsConstructor
+@NoArgsConstructor
 public class PlanYearsResponseVo implements Serializable {
 public class PlanYearsResponseVo implements Serializable {
 
 
     /**
     /**

+ 2 - 2
purchase-system/src/main/java/com/ozs/plan/mapper/PlanYearsMapper.java

@@ -83,7 +83,7 @@ public interface PlanYearsMapper extends BaseMapper<PlanYears> {
 
 
     List<PlanYears> query(PlanYearsStandardVo vo);
     List<PlanYears> query(PlanYearsStandardVo vo);
 
 
-    @Select("SELECT plan_year_id FROM plan_years WHERE plan_year_id not in" +
-            "(SELECT plan_year_id FROM plan_practical WHERE del_flay=0)  AND del_flay=0")
+    @Select("SELECT plan_year_id  FROM plan_years WHERE plan_year_id not in " +
+            " (SELECT IFNULL(plan_year_id,-1) FROM plan_practical WHERE del_flay=0)  AND del_flay=0")
     List<Integer> idNotInQuarter();
     List<Integer> idNotInQuarter();
 }
 }

+ 32 - 19
purchase-system/src/main/java/com/ozs/plan/service/impl/PlanYearsServiceImpl.java

@@ -338,7 +338,7 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
         //项目属性
         //项目属性
         HashMap<String, String> projectAttributes = planEnums.get("projectAttributes");
         HashMap<String, String> projectAttributes = planEnums.get("projectAttributes");
         //项目类型
         //项目类型
-        HashMap<String, String> projectTypesMap = planEnums.get("projectTypes");
+        HashMap<String, String> projectTypesMap = planEnums.get("projectTypesAds");
         //预算科目
         //预算科目
         HashMap<String, String> budgetAccountMap = planEnums.get("budgetAccount");
         HashMap<String, String> budgetAccountMap = planEnums.get("budgetAccount");
         //采购服务站
         //采购服务站
@@ -372,6 +372,15 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
                         ++failureNum;
                         ++failureNum;
                         failureMsg.append("*" + failureNum + "*采购单位“" + ofYear.getPurchaseDeptName() + "”不存在");
                         failureMsg.append("*" + failureNum + "*采购单位“" + ofYear.getPurchaseDeptName() + "”不存在");
                     }
                     }
+                    //采购单位
+                    SysDept infoTow = deptMapper.checkDeptNameOnlyOne(ofYear.getOrganDivision());
+                    if (!ObjectUtils.isEmpty(infoTow)) {
+                        ofYear.setOrganDivision(String.valueOf(info.getDeptId()));
+                    } else {
+                        ++failureNum;
+                        failureMsg.append("*" + failureNum + "*机关业务指导处(科)“" + ofYear.getOrganDivision() + "”不存在");
+                    }
+
                     ofYear.setProjectType(projectTypesMap.get(ofYear.getProjectType()));
                     ofYear.setProjectType(projectTypesMap.get(ofYear.getProjectType()));
                     ofYear.setPurchaseServices(purchaseServicesMap.get(ofYear.getPurchaseServices()));
                     ofYear.setPurchaseServices(purchaseServicesMap.get(ofYear.getPurchaseServices()));
                     ofYear.setBudgetAccount(budgetAccountMap.get(ofYear.getBudgetAccount()));
                     ofYear.setBudgetAccount(budgetAccountMap.get(ofYear.getBudgetAccount()));
@@ -1027,14 +1036,17 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
     }
     }
 
 
     public List<PlanQuarterResponseVo> getListByProjectStatus(String projectStatus) {
     public List<PlanQuarterResponseVo> getListByProjectStatus(String projectStatus) {
+        LoginUser user = SecurityUtils.getLoginUser();
         LambdaQueryWrapper<PlanYears> yearsLp = new LambdaQueryWrapper<PlanYears>();
         LambdaQueryWrapper<PlanYears> yearsLp = new LambdaQueryWrapper<PlanYears>();
         yearsLp.eq(PlanYears::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
         yearsLp.eq(PlanYears::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
         yearsLp.eq(PlanYears::getProjectStatus, projectStatus);
         yearsLp.eq(PlanYears::getProjectStatus, projectStatus);
+        yearsLp.eq(PlanYears::getPurchaseDeptId, user.getDeptId());
         List<PlanYears> planYears = planYearsMapper.selectList(yearsLp);
         List<PlanYears> planYears = planYearsMapper.selectList(yearsLp);
 
 
         LambdaQueryWrapper<PlanQuarter> quarterLp = new LambdaQueryWrapper<PlanQuarter>();
         LambdaQueryWrapper<PlanQuarter> quarterLp = new LambdaQueryWrapper<PlanQuarter>();
         quarterLp.eq(PlanQuarter::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
         quarterLp.eq(PlanQuarter::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
         quarterLp.eq(PlanQuarter::getProjectStatus, projectStatus);
         quarterLp.eq(PlanQuarter::getProjectStatus, projectStatus);
+        yearsLp.eq(PlanYears::getPurchaseDeptId, user.getDeptId());
         List<PlanQuarter> planQuarters = planQuarterMapper.selectList(quarterLp);
         List<PlanQuarter> planQuarters = planQuarterMapper.selectList(quarterLp);
         //融合一起
         //融合一起
         List<PlanQuarterResponseVo> vos = planComplex(planYears, planQuarters);
         List<PlanQuarterResponseVo> vos = planComplex(planYears, planQuarters);
@@ -1087,6 +1099,8 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
         HashMap<String, String> projectStatusMap = planEnums.get("projectStatus");
         HashMap<String, String> projectStatusMap = planEnums.get("projectStatus");
         //项目类型
         //项目类型
         HashMap<String, String> projectTypesMap = planEnums.get("projectTypes");
         HashMap<String, String> projectTypesMap = planEnums.get("projectTypes");
+        //项目类型
+        HashMap<String, String> projectTypesAdMap = planEnums.get("projectTypesAds");
         //预算科目
         //预算科目
         HashMap<String, String> budgetAccountMap = planEnums.get("budgetAccount");
         HashMap<String, String> budgetAccountMap = planEnums.get("budgetAccount");
         //采购服务站
         //采购服务站
@@ -1120,10 +1134,19 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
                 }
                 }
             }
             }
             //项目类型
             //项目类型
-            for (Map.Entry<String, String> entry : projectTypesMap.entrySet()) {
-                if (!ObjectUtils.isEmpty(planYear.getProjectType()) && planYear.getProjectType().equals(entry.getValue())) {
-                    planYear.setProjectTypeStr(entry.getKey());
-                    break;
+            if (planYear.getProjectStatus().equals(ProjectStatus.PLANWAITCOMMIT)) {
+                for (Map.Entry<String, String> entry : projectTypesMap.entrySet()) {
+                    if (!ObjectUtils.isEmpty(planYear.getProjectType()) && planYear.getProjectType().equals(entry.getValue())) {
+                        planYear.setProjectTypeStr(entry.getKey());
+                        break;
+                    }
+                }
+            } else {
+                for (Map.Entry<String, String> entry : projectTypesAdMap.entrySet()) {
+                    if (!ObjectUtils.isEmpty(planYear.getProjectType()) && planYear.getProjectType().equals(entry.getValue())) {
+                        planYear.setProjectTypeStr(entry.getKey());
+                        break;
+                    }
                 }
                 }
             }
             }
             //项目属性为value拼接
             //项目属性为value拼接
@@ -1179,20 +1202,10 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
                     }
                     }
                 }
                 }
             }
             }
-            //是否可以申请撤销
-            //需求待填制可以申请,需求建档就不能申请
-            PlanQuarter byPlanYearId = planQuarterMapper.getByPlanYearId(planYear.getPlanYearId());
-            if (!ObjectUtils.isEmpty(byPlanYearId)) {
-                PmDemand demand = demandService.selectByPlanId(byPlanYearId.getPlanPracticalId());
-                if (!ObjectUtils.isEmpty(demand) && !demand.getProjectStatus().equals(PmProjectStatus.DEMAND_WAIT_FILL.getCode())) {
-                    planYear.setAppDeleteDo("false");
-                } else if (!ObjectUtils.isEmpty(planYear.getAppDelete()) && planYear.getAppDelete().equals("true")) {
-                    //申请过的不能再申请
-                    planYear.setAppDeleteDo("false");
-                } else {
-                    planYear.setAppDeleteDo("true");
-                }
-            } else if (!planYear.getProjectStatus().equals("0")) {
+            if (!ObjectUtils.isEmpty(planYear.getAppDelete())) {
+                //申请过的不能再申请
+                planYear.setAppDeleteDo("false");
+            } else if (planYear.getProjectStatus().equals(ProjectStatus.PLANWAIEXAMINE.getCode())) {
                 //提交后可以申请撤销
                 //提交后可以申请撤销
                 planYear.setAppDeleteDo("true");
                 planYear.setAppDeleteDo("true");
             }
             }

+ 1 - 1
purchase-system/src/main/java/com/ozs/plan/service/impl/ProvisionalPlanServiceImpl.java

@@ -484,7 +484,7 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
         BeanUtils.copyProperties(provisionalPlanVo, standardVo);
         BeanUtils.copyProperties(provisionalPlanVo, standardVo);
         //上传审核文件并赋予计划审核退回
         //上传审核文件并赋予计划审核退回
         quarterService.upExamineFile(standardVo);
         quarterService.upExamineFile(standardVo);
-        standardVo.setProjectStatus(ProjectStatus.PLANTOBACK.getCode());
+        provisionalPlanVo.setProjectStatus(ProjectStatus.PLANTOBACK.getCode());
         return review(provisionalPlanVo);
         return review(provisionalPlanVo);
     }
     }
 
 

+ 1 - 1
purchase-system/src/main/java/com/ozs/pm/doman/vo/requestVo/PmDemandReqVo.java

@@ -135,7 +135,7 @@ public class PmDemandReqVo extends PageVo {
     /**
     /**
      * 查询全部or指定部门
      * 查询全部or指定部门
      */
      */
-    private List<Integer> deptList;
+    private List<Long> deptList;
 
 
     @ApiModelProperty("回退序号")
     @ApiModelProperty("回退序号")
     private Integer returnOrderNumber;
     private Integer returnOrderNumber;

+ 1 - 0
purchase-system/src/main/java/com/ozs/pm/service/IPmDemandService.java

@@ -379,4 +379,5 @@ public interface IPmDemandService extends IService<PmDemand> {
      * @return
      * @return
      */
      */
     AjaxResult exceedLink(PmDemandReqVo pmDemandReqVo);
     AjaxResult exceedLink(PmDemandReqVo pmDemandReqVo);
+
 }
 }

+ 1 - 1
purchase-system/src/main/java/com/ozs/pm/service/impl/PmAuditDeptRefServiceImpl.java

@@ -66,7 +66,7 @@ public class PmAuditDeptRefServiceImpl extends ServiceImpl<PmAuditDeptRefMapper,
             bdeptId = Long.valueOf(ancestors[3]);
             bdeptId = Long.valueOf(ancestors[3]);
         }
         }
         if (!Arrays.asList("A", "B", "C").contains(deptLevel)) {
         if (!Arrays.asList("A", "B", "C").contains(deptLevel)) {
-            throw new BaseException("当前用户单位不属于ABC三级,无权提交");
+            throw new BaseException("管理员无权限提交需求。");
         }
         }
         //判断每个级别是否允许审核,并插入审核关联表
         //判断每个级别是否允许审核,并插入审核关联表
         PmAuditDeptRef refA = new PmAuditDeptRef(null, refId, refType, deptId,
         PmAuditDeptRef refA = new PmAuditDeptRef(null, refId, refType, deptId,

+ 35 - 26
purchase-system/src/main/java/com/ozs/pm/service/impl/PmDemandServiceImpl.java

@@ -21,6 +21,7 @@ import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.core.domain.entity.SysDept;
 import com.ozs.common.core.domain.entity.SysDept;
 import com.ozs.common.core.domain.entity.SysDictData;
 import com.ozs.common.core.domain.entity.SysDictData;
 import com.ozs.common.core.domain.entity.SysUser;
 import com.ozs.common.core.domain.entity.SysUser;
+import com.ozs.common.core.domain.model.LoginUser;
 import com.ozs.common.enums.BidWinningStatus;
 import com.ozs.common.enums.BidWinningStatus;
 import com.ozs.common.enums.ExpertType;
 import com.ozs.common.enums.ExpertType;
 import com.ozs.common.enums.IsExcess;
 import com.ozs.common.enums.IsExcess;
@@ -1851,7 +1852,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
     @Override
     @Override
     public AjaxResult procurementOfficeWillManipulateTotal() {
     public AjaxResult procurementOfficeWillManipulateTotal() {
         List<HomeToDoQueryResVo> homeRes = new ArrayList<>();
         List<HomeToDoQueryResVo> homeRes = new ArrayList<>();
-        // 待选取代理, 待上传招标文件, 待发布公告, 待开标, 待发布中标公告, 中标公示中
+        // 采购需求对接,专家意见反馈,采购文件编制审核,采购公告发布,标前质疑投诉,待开标,评标结果公告,流废标处置,标后质疑
         List<PmDemandResVo> demandRes = new ArrayList<>();
         List<PmDemandResVo> demandRes = new ArrayList<>();
         demandRes.addAll(getListByStatus(PmProjectStatus.PURCHASE_DEMAND_DOCKING.getCode()));
         demandRes.addAll(getListByStatus(PmProjectStatus.PURCHASE_DEMAND_DOCKING.getCode()));
         demandRes.addAll(getListByStatus(PmProjectStatus.EXPERT_FEEDBACK.getCode()));
         demandRes.addAll(getListByStatus(PmProjectStatus.EXPERT_FEEDBACK.getCode()));
@@ -3405,13 +3406,13 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         //2.本年度提报:指本年度“需求待提交”之后状态的数据
         //2.本年度提报:指本年度“需求待提交”之后状态的数据
         StatisticalChartsResVo lastYear = pmDemandMapper.selectSTSLastYear(pmDemandReqVo);
         StatisticalChartsResVo lastYear = pmDemandMapper.selectSTSLastYear(pmDemandReqVo);
         StatisticalChartsResVo thisYear = pmDemandMapper.selectSTSThisYear(pmDemandReqVo);
         StatisticalChartsResVo thisYear = pmDemandMapper.selectSTSThisYear(pmDemandReqVo);
-        if (ObjectUtils.isEmpty(lastYear)) {
+        if (ObjectUtils.isEmpty(lastYear.getNum())) {
             lastYear = new StatisticalChartsResVo();
             lastYear = new StatisticalChartsResVo();
             lastYear.setNum(0);
             lastYear.setNum(0);
             lastYear.setEvaluationTotal(BigDecimal.ZERO);
             lastYear.setEvaluationTotal(BigDecimal.ZERO);
             lastYear.setEvaluationContractTotal(BigDecimal.ZERO);
             lastYear.setEvaluationContractTotal(BigDecimal.ZERO);
         }
         }
-        if (ObjectUtils.isEmpty(thisYear)) {
+        if (ObjectUtils.isEmpty(thisYear.getNum())) {
             thisYear = new StatisticalChartsResVo();
             thisYear = new StatisticalChartsResVo();
             thisYear.setNum(0);
             thisYear.setNum(0);
             thisYear.setEvaluationTotal(BigDecimal.ZERO);
             thisYear.setEvaluationTotal(BigDecimal.ZERO);
@@ -3483,21 +3484,21 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         //本年度提报:状态为“标后质疑”后的数据
         //本年度提报:状态为“标后质疑”后的数据
         StatisticalChartsResVo zLastYear = pmDemandMapper.selectZJLastYear(pmDemandReqVo);
         StatisticalChartsResVo zLastYear = pmDemandMapper.selectZJLastYear(pmDemandReqVo);
         StatisticalChartsResVo tThisYear = pmDemandMapper.selectTBThisYear(pmDemandReqVo);
         StatisticalChartsResVo tThisYear = pmDemandMapper.selectTBThisYear(pmDemandReqVo);
-        if (ObjectUtils.isEmpty(zLastYear)) {
+        if (ObjectUtils.isEmpty(zLastYear.getNum())) {
             zLastYear = new StatisticalChartsResVo();
             zLastYear = new StatisticalChartsResVo();
             zLastYear.setNum(0);
             zLastYear.setNum(0);
             zLastYear.setEvaluationTotal(BigDecimal.ZERO);
             zLastYear.setEvaluationTotal(BigDecimal.ZERO);
             zLastYear.setEvaluationContractTotal(BigDecimal.ZERO);
             zLastYear.setEvaluationContractTotal(BigDecimal.ZERO);
         }
         }
-        if (ObjectUtils.isEmpty(tThisYear)) {
+        if (ObjectUtils.isEmpty(tThisYear.getNum())) {
             tThisYear = new StatisticalChartsResVo();
             tThisYear = new StatisticalChartsResVo();
             tThisYear.setNum(0);
             tThisYear.setNum(0);
             tThisYear.setEvaluationTotal(BigDecimal.ZERO);
             tThisYear.setEvaluationTotal(BigDecimal.ZERO);
             tThisYear.setEvaluationContractTotal(BigDecimal.ZERO);
             tThisYear.setEvaluationContractTotal(BigDecimal.ZERO);
         }
         }
-        tThisYear.setNum(tThisYear.getNum() + zLastYear.getNum());
-        tThisYear.setEvaluationTotal(tThisYear.getEvaluationTotal().add(zLastYear.getEvaluationTotal()));
-        tThisYear.setEvaluationContractTotal(tThisYear.getEvaluationContractTotal().add(zLastYear.getEvaluationContractTotal()));
+        //tThisYear.setNum(ObjectUtils.isEmpty(tThisYear.getNum()) ? 0 : tThisYear.getNum() + (ObjectUtils.isEmpty(zLastYear.getNum()) ? 0 : zLastYear.getNum()));
+        //tThisYear.setEvaluationTotal((ObjectUtils.isEmpty(tThisYear.getEvaluationTotal()) ? BigDecimal.ZERO : tThisYear.getEvaluationTotal()).add((ObjectUtils.isEmpty(zLastYear.getEvaluationTotal()) ? BigDecimal.ZERO : zLastYear.getEvaluationTotal())));
+        //tThisYear.setEvaluationContractTotal((ObjectUtils.isEmpty(tThisYear.getEvaluationContractTotal()) ? BigDecimal.ZERO : tThisYear.getEvaluationContractTotal()).add(ObjectUtils.isEmpty(zLastYear.getEvaluationContractTotal()) ? BigDecimal.ZERO : zLastYear.getEvaluationContractTotal()));
         tThisYear.setColumnName("上年度结转和本年度提报的采购需求");
         tThisYear.setColumnName("上年度结转和本年度提报的采购需求");
         tThisYear.setColumnNamePlus("累计完成采购任务数量");
         tThisYear.setColumnNamePlus("累计完成采购任务数量");
         byChange.add(tThisYear);
         byChange.add(tThisYear);
@@ -3768,9 +3769,30 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
 
 
     //查询不同状态下的项目数据
     //查询不同状态下的项目数据
     public List<PmDemandResVo> getListByStatus(String projectStatus) {
     public List<PmDemandResVo> getListByStatus(String projectStatus) {
+        LoginUser user = SecurityUtils.getLoginUser();
         LambdaQueryWrapper<PmDemand> lw = new LambdaQueryWrapper<PmDemand>();
         LambdaQueryWrapper<PmDemand> lw = new LambdaQueryWrapper<PmDemand>();
         lw.eq(PmDemand::getProjectStatus, projectStatus);
         lw.eq(PmDemand::getProjectStatus, projectStatus);
+        //  4 (合同信息管理)、 0(需求单位管理) 、 5(项目建设管理)  需求单位
+        //  1(需求需求审核) 、2 (任务下达管理)      采购管理部门
+        //  3(采购执行管理)   采购办
+        List<PmAuditDeptRef> list = new ArrayList<>();
+        LambdaQueryWrapper<PmAuditDeptRef> l = new LambdaQueryWrapper<>();
+        l.eq(PmAuditDeptRef::getDeptId, SecurityUtils.getDeptId());
+        l.eq(PmAuditDeptRef::getRefType, "2");
+        list = pmAuditDeptRefService.list(l);
+        if (!user.getUserId().toString().equals("1")) {
+            if (Arrays.asList(1, 2, 3).contains(0)) {
+                if (!ObjectUtils.isEmpty(list) && !SecurityUtils.getUserId().equals(Integer.parseInt("1"))) {
+                    lw.in(PmDemand::getDemandId, list.stream().map(PmAuditDeptRef::getRefId).collect(Collectors.toList()));
+                }
+            } else {
+                lw.eq(PmDemand::getPurchaseDeptId, SecurityUtils.getDeptId());
+            }
+        }
+        lw.eq(PmDemand::getProjectStatus, projectStatus);
+        lw.last(" order by project_status, plan_demand_sub_time");
         List<PmDemand> demandList = this.baseMapper.selectList(lw);
         List<PmDemand> demandList = this.baseMapper.selectList(lw);
+
         //数据转换
         //数据转换
         List<PmDemandResVo> pmDemandResponseVoList = new ArrayList<>();
         List<PmDemandResVo> pmDemandResponseVoList = new ArrayList<>();
         if (!ObjectUtils.isEmpty(demandList) && demandList.size() > 0) {
         if (!ObjectUtils.isEmpty(demandList) && demandList.size() > 0) {
@@ -3924,18 +3946,18 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
     }
     }
 
 
     //查询本单位还是本单位及子孙级----要查询子单位的超额数据
     //查询本单位还是本单位及子孙级----要查询子单位的超额数据
-    public List<Integer> isQueryAll(Integer queryAll) {
-        List<Integer> deptList = new ArrayList<>();
+    public List<Long> isQueryAll(Integer queryAll) {
+        List<Long> deptList = new ArrayList<>();
         Long deptId = SecurityUtils.getDeptId();
         Long deptId = SecurityUtils.getDeptId();
         //查询全部
         //查询全部
         if (queryAll.equals(-1)) {
         if (queryAll.equals(-1)) {
             //获取到子孙级部门id
             //获取到子孙级部门id
-            if (deptService.hasChildByDeptId(deptId)) {
-                List<Integer> children = getDeptChildren(deptId);
+            if (deptService.hasChildByDeptId(SecurityUtils.getDeptId())) {
+                List<Long> children = deptService.getDeptChildren(deptId);
                 System.err.println(children.size());
                 System.err.println(children.size());
                 deptList.addAll(children);
                 deptList.addAll(children);
             }
             }
-            deptList.add(Math.toIntExact(deptId));
+            deptList.add(deptId);
         }
         }
         return deptList;
         return deptList;
     }
     }
@@ -3981,18 +4003,5 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         return demandId;
         return demandId;
     }
     }
 
 
-    //获取到子孙级部门id
-    public List<Integer> getDeptChildren(Long deptId) {
-        List<Integer> deptList = new ArrayList<>();
-        Long did = Long.valueOf(deptId);
-        List<Long> childByDeptId = deptService.getChildIdByDeptId(did);
-        for (Long cid : childByDeptId) {
-            deptList.add(Math.toIntExact(cid));
-            if (deptService.hasChildByDeptId(cid)) {
-                deptList.addAll(getDeptChildren(cid));
-            }
-        }
-        return deptList;
-    }
 
 
 }
 }

+ 1 - 1
purchase-system/src/main/java/com/ozs/system/mapper/SysDeptMapper.java

@@ -17,7 +17,7 @@ public interface SysDeptMapper {
      * @param dept 部门信息
      * @param dept 部门信息
      * @return 部门信息集合
      * @return 部门信息集合
      */
      */
-    public List<SysDept> selectDeptList(SysDept dept);
+    public List<SysDept> selectDeptList(@Param("dept") SysDept dept);
 
 
     /**
     /**
      * 根据角色ID查询部门树信息
      * 根据角色ID查询部门树信息

+ 8 - 0
purchase-system/src/main/java/com/ozs/system/service/ISysDeptService.java

@@ -134,6 +134,14 @@ public interface ISysDeptService {
 
 
     public String isExcessOrNo(String projectType, BigDecimal evaluation, Long deptId);
     public String isExcessOrNo(String projectType, BigDecimal evaluation, Long deptId);
 
 
+    /**
+     * 获取到子孙级部门id
+     *
+     * @param deptId
+     * @return
+     */
+    public List<Long> getDeptChildren(Long deptId);
+
     public SysDept selectById(Long deptId);
     public SysDept selectById(Long deptId);
 
 
     public List<SysDept> selectChildrenDeptById(Long deptId);
     public List<SysDept> selectChildrenDeptById(Long deptId);

+ 31 - 1
purchase-system/src/main/java/com/ozs/system/service/impl/SysDeptServiceImpl.java

@@ -10,7 +10,9 @@ import java.util.stream.Collectors;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ozs.common.core.domain.entity.SysProcurementStandard;
 import com.ozs.common.core.domain.entity.SysProcurementStandard;
+import com.ozs.common.core.domain.model.LoginUser;
 import com.ozs.common.exception.base.BaseException;
 import com.ozs.common.exception.base.BaseException;
+import com.ozs.pm.service.IPmDemandService;
 import com.ozs.system.domain.vo.responseVo.SysDeptResponseVo;
 import com.ozs.system.domain.vo.responseVo.SysDeptResponseVo;
 import com.ozs.system.mapper.SysDeptMapper;
 import com.ozs.system.mapper.SysDeptMapper;
 import com.ozs.system.mapper.SysProcurementStandardMapper;
 import com.ozs.system.mapper.SysProcurementStandardMapper;
@@ -41,9 +43,11 @@ import javax.annotation.Resource;
  */
  */
 @Service
 @Service
 public class SysDeptServiceImpl implements ISysDeptService {
 public class SysDeptServiceImpl implements ISysDeptService {
+
     @Autowired
     @Autowired
     private SysDeptMapper deptMapper;
     private SysDeptMapper deptMapper;
-
+    @Autowired
+    private ISysDeptService deptService;
     @Autowired
     @Autowired
     private SysRoleMapper roleMapper;
     private SysRoleMapper roleMapper;
     @Resource
     @Resource
@@ -58,6 +62,19 @@ public class SysDeptServiceImpl implements ISysDeptService {
     @Override
     @Override
     @DataScope(deptAlias = "d")
     @DataScope(deptAlias = "d")
     public List<SysDept> selectDeptList(SysDept dept) {
     public List<SysDept> selectDeptList(SysDept dept) {
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        if (!String.valueOf(loginUser.getUserId()).equals("1")) {
+            List<Long> deptList = new ArrayList<>();
+            //获取到子孙级部门id
+            Long deptId = loginUser.getDeptId();
+            if (deptService.hasChildByDeptId(loginUser.getDeptId())) {
+                List<Long> children = deptService.getDeptChildren(deptId);
+                System.err.println(children.size());
+                deptList.addAll(children);
+            }
+            deptList.add(deptId);
+            dept.setDeptList(deptList);
+        }
         return deptMapper.selectDeptList(dept);
         return deptMapper.selectDeptList(dept);
     }
     }
 
 
@@ -367,6 +384,19 @@ public class SysDeptServiceImpl implements ISysDeptService {
 
 
     }
     }
 
 
+    //获取到子孙级部门id
+    public List<Long> getDeptChildren(Long deptId) {
+        List<Long> deptList = new ArrayList<>();
+        List<Long> childByDeptId = getChildIdByDeptId(deptId);
+        for (Long cid : childByDeptId) {
+            deptList.add(cid);
+            if (hasChildByDeptId(cid)) {
+                deptList.addAll(getDeptChildren(cid));
+            }
+        }
+        return deptList;
+    }
+
     @Override
     @Override
     public SysDept selectById(Long deptId) {
     public SysDept selectById(Long deptId) {
         return deptMapper.selectDeptById(deptId);
         return deptMapper.selectDeptById(deptId);

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

@@ -28,27 +28,34 @@
         from sys_dept d
         from sys_dept d
     </sql>
     </sql>
 
 
-    <select id="selectDeptList" parameterType="SysDept" resultMap="SysDeptResult">
+    <select id="selectDeptList" parameterType="com.ozs.common.core.domain.entity.SysDept" resultMap="SysDeptResult">
         <include refid="selectDeptVo"/>
         <include refid="selectDeptVo"/>
         where d.del_flag = '0'
         where d.del_flag = '0'
-        <if test="deptId != null and deptId != 0">
-            AND dept_id = #{deptId}
+        <if test="dept.deptId != null and dept.deptId != 0">
+            AND d.dept_id = #{dept.deptId}
         </if>
         </if>
-        <if test="parentId != null and parentId != 0">
-            AND parent_id = #{parentId}
+        <if test="dept.deptList != null and dept.deptList.size != 0 ">
+            AND d.dept_id in
+            <foreach collection="dept.deptList" item="item" index="index"
+                     separator="," open="(" close=")">
+                #{item}
+            </foreach>
         </if>
         </if>
-        <if test="deptName != null and deptName != ''">
-            AND dept_name like concat('%', #{deptName}, '%')
+        <if test="dept.parentId != null and dept.parentId != 0">
+            AND d.parent_id = #{dept.parentId}
         </if>
         </if>
-        <if test="status != null and status != ''">
-            AND status = #{status}
+        <if test="dept.deptName != null and dept.deptName != ''">
+            AND d.dept_name like concat('%', #{dept.deptName}, '%')
+        </if>
+        <if test="dept.status != null and dept.status != ''">
+            AND d.status = #{dept.status}
         </if>
         </if>
         <!-- 数据范围过滤 -->
         <!-- 数据范围过滤 -->
-        ${params.dataScope}
+        ${dept.params.dataScope}
         order by d.parent_id, d.order_num
         order by d.parent_id, d.order_num
     </select>
     </select>
 
 
-    <select id="selectDeptListByRoleId" resultType="Long">
+    <select id="selectDeptListByRoleId" resultType="java.lang.Long">
         select d.dept_id
         select d.dept_id
         from sys_dept d
         from sys_dept d
         left join sys_role_dept rd on d.dept_id = rd.dept_id
         left join sys_role_dept rd on d.dept_id = rd.dept_id