Browse Source

Merge remote-tracking branch 'origin/master'

buzhanyi 2 năm trước cách đây
mục cha
commit
65c9bd9c11
40 tập tin đã thay đổi với 1229 bổ sung60 xóa
  1. 1 1
      purchase-admin/src/main/java/com/ozs/web/controller/base/BaseAgencyController.java
  2. 14 10
      purchase-admin/src/main/java/com/ozs/web/controller/base/BaseProfessionalController.java
  3. 61 0
      purchase-admin/src/main/java/com/ozs/web/controller/home/HomeNoticeController.java
  4. 79 0
      purchase-admin/src/main/java/com/ozs/web/controller/home/HomeNotificationMessageController.java
  5. 85 0
      purchase-admin/src/main/java/com/ozs/web/controller/home/SystemHomepageController.java
  6. 6 1
      purchase-admin/src/main/java/com/ozs/web/controller/plan/PlanYearsController.java
  7. 10 0
      purchase-admin/src/main/java/com/ozs/web/controller/plan/ProvisionalPlanController.java
  8. 35 3
      purchase-admin/src/main/java/com/ozs/web/controller/pm/PmDemandController.java
  9. 11 2
      purchase-admin/src/main/java/com/ozs/web/controller/pm/PmTaskReleaseController.java
  10. 1 1
      purchase-common/src/main/java/com/ozs/common/core/domain/entity/SysProcurementStandard.java
  11. 6 0
      purchase-system/src/main/java/com/ozs/base/domain/BaseProfessional.java
  12. 44 6
      purchase-system/src/main/java/com/ozs/base/domain/vo/BaseProfessionalVo.java
  13. 3 3
      purchase-system/src/main/java/com/ozs/base/service/BaseProfessionalService.java
  14. 7 7
      purchase-system/src/main/java/com/ozs/base/service/impl/BaseProfessionalServiceImpl.java
  15. 49 0
      purchase-system/src/main/java/com/ozs/home/domain/HomeNotice.java
  16. 51 0
      purchase-system/src/main/java/com/ozs/home/domain/HomeNotificationMessage.java
  17. 25 0
      purchase-system/src/main/java/com/ozs/home/domain/vo/HomeNoticeVo.java
  18. 28 0
      purchase-system/src/main/java/com/ozs/home/domain/vo/HomeNotificationMessageVo.java
  19. 18 0
      purchase-system/src/main/java/com/ozs/home/domain/vo/ReasonsForLagVo.java
  20. 15 0
      purchase-system/src/main/java/com/ozs/home/mapper/HomeNoticeMapper.java
  21. 15 0
      purchase-system/src/main/java/com/ozs/home/mapper/HomeNotificationMessageMapper.java
  22. 20 0
      purchase-system/src/main/java/com/ozs/home/service/HomeNoticeService.java
  23. 14 0
      purchase-system/src/main/java/com/ozs/home/service/HomeNotificationMessageService.java
  24. 18 0
      purchase-system/src/main/java/com/ozs/home/service/impl/HomeNoticeServiceImpl.java
  25. 21 0
      purchase-system/src/main/java/com/ozs/home/service/impl/HomeNotificationMessageServiceImpl.java
  26. 11 3
      purchase-system/src/main/java/com/ozs/plan/doman/ProvisionalPlan.java
  27. 63 1
      purchase-system/src/main/java/com/ozs/plan/service/PlanYearsService.java
  28. 4 0
      purchase-system/src/main/java/com/ozs/plan/service/ProvisionalPlanService.java
  29. 287 2
      purchase-system/src/main/java/com/ozs/plan/service/impl/PlanYearsServiceImpl.java
  30. 107 12
      purchase-system/src/main/java/com/ozs/plan/service/impl/ProvisionalPlanServiceImpl.java
  31. 2 0
      purchase-system/src/main/java/com/ozs/pm/mapper/PmDemandMapper.java
  32. 1 1
      purchase-system/src/main/java/com/ozs/pm/service/IPmDemandService.java
  33. 97 1
      purchase-system/src/main/java/com/ozs/pm/service/impl/PmDemandServiceImpl.java
  34. 2 2
      purchase-system/src/main/java/com/ozs/system/domain/SysFileRef.java
  35. 1 1
      purchase-system/src/main/java/com/ozs/system/domain/vo/requestVo/SysProcurementStandardVo.java
  36. 1 1
      purchase-system/src/main/java/com/ozs/system/service/impl/SysUserServiceImpl.java
  37. 7 0
      purchase-system/src/main/resources/mapper/home/HomeNoticeMapper.xml
  38. 7 0
      purchase-system/src/main/resources/mapper/home/HomeNotificationMessageMapper.xml
  39. 1 1
      purchase-system/src/main/resources/mapper/plan/ProvisionalPlanMapper.xml
  40. 1 1
      purchase-system/src/main/resources/mapper/system/SysDeptMapper.xml

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

@@ -237,7 +237,7 @@ public class BaseAgencyController extends BaseController {
     @Log(title = ModularConstans.agency, businessType = BusinessType.OTHER)
     public AjaxResult extract(@NotEmpty(message = "主键id不能为空")
                                   @RequestParam(value = "demandId", required = true)
-                                              @RequestBody Long demandId) {
+                                               Long demandId) {
         LambdaQueryWrapper<BaseAgency> lw = new LambdaQueryWrapper<>();
         MonthlyReconciliation byId = monthlyReconciliationService.getById(demandId);
         if(ObjectUtils.isEmpty(byId)){

+ 14 - 10
purchase-admin/src/main/java/com/ozs/web/controller/base/BaseProfessionalController.java

@@ -5,9 +5,12 @@ 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.core.domain.model.LoginUser;
 import com.ozs.common.exception.ServiceException;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.poi.ExcelUtil;
+import com.ozs.plan.doman.ProvisionalPlan;
+import com.ozs.plan.doman.vo.requestVo.ProvisionalPlanVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,8 +39,9 @@ public class BaseProfessionalController extends BaseController {
         if (StringUtils.isNull(baseProfessional)
                 || StringUtils.isNull(baseProfessional.getProfessionalName())
                 || StringUtils.isNull(baseProfessional.getProfessionalCode())
-                || StringUtils.isNull(baseProfessional.getProfessionalGrade())) {
-            return error("专业库名称、编码、一级分类不能为空");
+                || StringUtils.isNull(baseProfessional.getProfessionalGrade())
+                || StringUtils.isNull(baseProfessional.getParentCode())) {
+            return error("专业库名称、编码、一级分类、父级ID 不能为空");
         }
         return toAjax(baseProfessionalService.save(baseProfessional));
     }
@@ -70,28 +74,28 @@ public class BaseProfessionalController extends BaseController {
     @ApiOperation(value = "查询专业库树结构", notes = "非必传 查询条件:品目名称")
     @PostMapping("/selectBaseProfessional")
     public AjaxResult selectBaseProfessional(@RequestBody BaseProfessionalVo baseProfessionalVo) {
-        List<BaseProfessionalVo> baseSupplierList = baseProfessionalService.selectBaseProfessional(baseProfessionalVo);
+        List<BaseProfessionalVo> baseSupplierList = baseProfessionalService.selectBaseProfessionalVo(baseProfessionalVo);
         return success(baseSupplierList);
     }
 
     @ApiOperation(value = "导入专业库", notes = "导入表格")
     @PostMapping("/importBaseProfessional")
-    public AjaxResult importBaseProfessional(@RequestBody MultipartFile file) throws Exception {
-        ExcelUtil<BaseProfessional> util = new ExcelUtil<BaseProfessional>(BaseProfessional.class);
+    public AjaxResult importBaseProfessional(MultipartFile file, boolean updateSupport) throws Exception {
+        ExcelUtil<BaseProfessional> util = new ExcelUtil<>(BaseProfessional.class);
         List<BaseProfessional> baseProfessionalList = util.importExcel(file.getInputStream());
         if (StringUtils.isNull(baseProfessionalList) || baseProfessionalList.size() == 0) {
             throw new ServiceException("导入专业库数据不能为空!");
         }
         // String operName = getUsername();
-        String message = baseProfessionalService.importBaseProfessional(baseProfessionalList);
+        String message = baseProfessionalService.importBaseProfessional(baseProfessionalList, updateSupport);
         return success(message);
     }
 
     @ApiOperation("导出专业库")
     @PostMapping("/exportBaseProfessional")
-    public void exportBaseProfessional(HttpServletResponse response, BaseProfessional baseProfessional) {
-        List<BaseProfessional> list = baseProfessionalService.selectBaseProfessional(baseProfessional);
-        ExcelUtil<BaseProfessional> util = new ExcelUtil<BaseProfessional>(BaseProfessional.class);
-        util.exportExcel(response, list, "参数数据");
+    public void exportBaseProfessional(HttpServletResponse response, @RequestBody BaseProfessionalVo baseProfessionalVo) {
+        List<BaseProfessional> list = baseProfessionalService.selectBaseProfessional(baseProfessionalVo);
+        ExcelUtil<BaseProfessional> util = new ExcelUtil<>(BaseProfessional.class);
+        util.exportExcel(response, list, "专业库数据");
     }
 }

+ 61 - 0
purchase-admin/src/main/java/com/ozs/web/controller/home/HomeNoticeController.java

@@ -0,0 +1,61 @@
+package com.ozs.web.controller.home;
+
+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.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.StringUtils;
+import com.ozs.home.domain.HomeNotice;
+import com.ozs.home.domain.vo.HomeNoticeVo;
+import com.ozs.home.service.HomeNoticeService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.util.ObjectUtils;
+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.annotation.Resource;
+
+/**
+ * 首页公告控制层
+ *
+ * @author buzhanyi
+ */
+@RestController
+@RequestMapping("/home/homeNotice")
+public class HomeNoticeController extends BaseController {
+    
+    @Resource
+    private  HomeNoticeService homeNoticeService;
+
+    @ApiOperation(value = "查询首页公告")
+    @PostMapping("/selectHomeNotice")
+    @PreAuthorize("@ss.hasPermi('home:homeNotice:selecthomeNotice')")
+    @Log(title = ModularConstans.notice, businessType = BusinessType.QUERY)
+    public AjaxResult selectHomeNotice(@RequestBody HomeNoticeVo homeNoticeVo) {
+        LambdaQueryWrapper<HomeNotice> lw = new LambdaQueryWrapper<HomeNotice>();
+        if (!StringUtils.isBlank(homeNoticeVo.getNoticeName())) {
+            lw.like(HomeNotice::getNoticeName, "%" + homeNoticeVo.getNoticeName() + "%");
+        }
+        if (!StringUtils.isBlank(homeNoticeVo.getAnnouncementClassification())) {
+            lw.eq(HomeNotice::getAnnouncementClassification, homeNoticeVo.getAnnouncementClassification());
+        }
+        if (!StringUtils.isBlank(homeNoticeVo.getHomepageClassification())) {
+            lw.eq(HomeNotice::getHomepageClassification, homeNoticeVo.getHomepageClassification());
+        }
+        if(!ObjectUtils.isEmpty(homeNoticeVo.getNoticeTime())){
+            lw.ge(HomeNotice::getNoticeTime,homeNoticeVo.getNoticeTime());
+        }
+        if(!ObjectUtils.isEmpty(homeNoticeVo.getNoticeTime())){
+            lw.le(HomeNotice::getNoticeTime,homeNoticeVo.getNoticeTime());
+        }
+        IPage<HomeNotice> page = homeNoticeService.page(new Page<HomeNotice>(homeNoticeVo.getPageNum(), homeNoticeVo.getPageSize()), lw);
+        return success(page);
+    }
+}

+ 79 - 0
purchase-admin/src/main/java/com/ozs/web/controller/home/HomeNotificationMessageController.java

@@ -0,0 +1,79 @@
+package com.ozs.web.controller.home;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+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.core.domain.R;
+import com.ozs.common.enums.BusinessType;
+import com.ozs.common.utils.StringUtils;
+import com.ozs.home.domain.HomeNotificationMessage;
+import com.ozs.home.domain.vo.HomeNotificationMessageVo;
+import com.ozs.home.domain.vo.ReasonsForLagVo;
+import com.ozs.home.service.HomeNotificationMessageService;
+import com.ozs.pm.doman.PmDemand;
+import com.ozs.pm.mapper.PmDemandMapper;
+import io.swagger.annotations.ApiOperation;
+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.annotation.Resource;
+
+/**
+ * 首页通知消息
+ *
+ * @author Administrator
+ */
+@RestController
+@RequestMapping("/home/homeNotificationMessage")
+public class HomeNotificationMessageController extends BaseController {
+
+    @Resource
+    private HomeNotificationMessageService homeNotificationMessageService;
+    @Resource
+    private PmDemandMapper pmDemandMapper;
+
+    @ApiOperation(value = "查询首页通知消息")
+    @PostMapping("/selectHomeNotificationMessage")
+    @PreAuthorize("@ss.hasPermi('home:homeNotificationMessage:selectHomeNotificationMessage')")
+    @Log(title = ModularConstans.notice, businessType = BusinessType.QUERY)
+    public AjaxResult selectHomeNotificationMessage(@RequestBody HomeNotificationMessageVo homeNotificationMessageVo) {
+        LambdaQueryWrapper<HomeNotificationMessage> lw = new LambdaQueryWrapper<HomeNotificationMessage>();
+        if (!StringUtils.isBlank(homeNotificationMessageVo.getHomepageClassification())) {
+            lw.eq(HomeNotificationMessage::getHomepageClassification, homeNotificationMessageVo.getHomepageClassification());
+        }
+        if (!StringUtils.isBlank(homeNotificationMessageVo.getMessageClassification())) {
+            lw.eq(HomeNotificationMessage::getMessageClassification, homeNotificationMessageVo.getMessageClassification());
+        }
+        IPage<HomeNotificationMessage> page = homeNotificationMessageService.page(new Page<HomeNotificationMessage>(homeNotificationMessageVo.getPageNum(), homeNotificationMessageVo.getPageSize()), lw);
+        return success(page);
+    }
+
+
+    @ApiOperation(value = "填写滞后原因")
+    @PostMapping("/saveReasonsForLag")
+    @PreAuthorize("@ss.hasPermi('home:homeNotificationMessage:saveReasonsForLag')")
+    @Log(title = ModularConstans.notice, businessType = BusinessType.UPDATE)
+    public AjaxResult saveReasonsForLag(@RequestBody ReasonsForLagVo reasonsForLagVo) {
+        HomeNotificationMessage homeNotificationMessage = homeNotificationMessageService.getById(reasonsForLagVo.getHomeNotificationMessageId());
+        homeNotificationMessage.setState(0);
+        QueryWrapper<PmDemand> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("demand_id", homeNotificationMessage.getDemandId());
+        PmDemand pmDemand = pmDemandMapper.selectOne(queryWrapper);
+        pmDemand.setDelayReason(reasonsForLagVo.getDelayReason());
+        pmDemand.setAdjustAdvice(reasonsForLagVo.getAdjustAdvice());
+        if (pmDemandMapper.updateById(pmDemand) > 0 && homeNotificationMessageService.updateById(homeNotificationMessage)) {
+            return success();
+        } else {
+            return error();
+        }
+    }
+}

+ 85 - 0
purchase-admin/src/main/java/com/ozs/web/controller/home/SystemHomepageController.java

@@ -0,0 +1,85 @@
+package com.ozs.web.controller.home;
+
+import com.ozs.common.core.controller.BaseController;
+import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.plan.service.PlanYearsService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+
+/**
+ * 系统首页控制层
+ *
+ * @author buzhanyi
+ */
+@RestController
+@RequestMapping("/home/systemHomepage")
+public class SystemHomepageController extends BaseController {
+    @Resource
+    private PlanYearsService planYearsService;
+
+    @ApiOperation(value = "需求单位首页计划管理总数")
+    @GetMapping("/demandUnit/planManagement/total")
+    public AjaxResult demandUnitPlanManagementTotal() {
+        return planYearsService.demandUnitPlanManagementTotal();
+    }
+
+    @ApiOperation(value = "采购管理部门首页计划管理总数")
+    @GetMapping("/purchasingManagement/planManagement/total")
+    public AjaxResult purchasingManagementPurchasingManagementTotal() {
+        return planYearsService.purchasingManagementPurchasingManagementTotal();
+    }
+
+    @ApiOperation(value = "需求单位首页需求管理总数")
+    @GetMapping("/demandUnit/demandManagement/total")
+    public AjaxResult demandUnitDemandManagementTotal() {
+        return planYearsService.demandUnitDemandManagementTotal();
+    }
+
+    @ApiOperation(value = "采购管理部门首页需求管理总数")
+    @GetMapping("/purchasingManagement/demandManagement/total")
+    public AjaxResult purchasingManagementDemandManagementTotal() {
+        return planYearsService.purchasingManagementDemandManagementTotal();
+    }
+
+    @ApiOperation(value = "需求单位首页合同管理总数")
+    @GetMapping("/demandUnit/contractManagement/total")
+    public AjaxResult demandUnitContractManagementTotal() {
+        return planYearsService.demandUnitContractManagementTotal();
+    }
+
+    @ApiOperation(value = "需求单位首页建设管理总数")
+    @GetMapping("/demandUnit/constructionManagement/total")
+    public AjaxResult demandUnitConstructionManagementTotal() {
+        return planYearsService.demandUnitConstructionManagementTotal();
+    }
+
+    @ApiOperation(value = "采购管理部门首页任务下达管理总数")
+    @GetMapping("/purchasingManagement/taskRelease/total")
+    public AjaxResult purchasingManagementTaskReleaseTotal() {
+        return planYearsService.purchasingManagementTaskReleaseTotal();
+    }
+
+    @ApiOperation(value = "采购办首页采购执行管理总数")
+    @GetMapping("/procurementOffice/procurementExecution/total")
+    public AjaxResult procurementOfficeProcurementExecutionTotal() {
+        return planYearsService.procurementOfficeProcurementExecutionTotal();
+    }
+
+    @ApiOperation(value = "采购办首已中标项目理总数")
+    @GetMapping("/procurementOffice/winningTheBid/total")
+    public AjaxResult procurementOfficeWinningTheBidTotal() {
+        return planYearsService.procurementOfficeWinningTheBidTotal();
+    }
+
+    @ApiOperation(value = "采购办首未中标项目理总数")
+    @GetMapping("/procurementOffice/failureToWinTheBid/total")
+    public AjaxResult procurementOfficeFailureToWinTheBidTotal() {
+        return planYearsService.procurementOfficeFailureToWinTheBidTotal();
+    }
+    
+}

+ 6 - 1
purchase-admin/src/main/java/com/ozs/web/controller/plan/PlanYearsController.java

@@ -11,6 +11,7 @@ import com.ozs.plan.doman.vo.requestVo.PlanYearsStandardVo;
 import com.ozs.plan.service.PlanYearsService;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -152,5 +153,9 @@ public class PlanYearsController extends BaseController {
         return success(message);
     }
 
-
+    @ApiOperation(value = "系统首页计划管理")
+    @GetMapping("/planYearsTotal")
+    public AjaxResult planYearsTotal(){
+     return    success(planYearsService.count());
+    }
 }

+ 10 - 0
purchase-admin/src/main/java/com/ozs/web/controller/plan/ProvisionalPlanController.java

@@ -15,6 +15,7 @@ import com.ozs.common.utils.poi.ExcelUtil;
 import com.ozs.framework.web.service.TokenService;
 import com.ozs.plan.doman.PlanYears;
 import com.ozs.plan.doman.ProvisionalPlan;
+import com.ozs.plan.doman.vo.requestVo.PlanYearsStandardVo;
 import com.ozs.plan.doman.vo.requestVo.ProvisionalPlanVo;
 import com.ozs.plan.service.ProvisionalPlanService;
 import io.swagger.annotations.Api;
@@ -29,6 +30,7 @@ import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.util.Date;
 import java.util.List;
 
@@ -116,4 +118,12 @@ public class ProvisionalPlanController extends BaseController {
         String message = provisionalPlanService.importProvisionalPlan(provisionalPlans, updateSupport, loginUser);
         return success(message);
     }
+
+    @ApiOperation(value = "导出临时计划")
+    @PostMapping("/exportProvisionalPlan")
+    public void exportProvisionalPlan(HttpServletResponse response, @RequestBody ProvisionalPlanVo provisionalPlanVo) throws Exception {
+        List<ProvisionalPlan> list = provisionalPlanService.selectProvisionalPlanExport(provisionalPlanVo);
+        ExcelUtil<ProvisionalPlan> util = new ExcelUtil<>(ProvisionalPlan.class);
+        util.exportExcel(response, list, "临时计划数据");
+    }
 }

+ 35 - 3
purchase-admin/src/main/java/com/ozs/web/controller/pm/PmDemandController.java

@@ -3,6 +3,7 @@ package com.ozs.web.controller.pm;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ozs.common.core.domain.model.LoginUser;
+import com.ozs.common.utils.StringUtils;
 import com.ozs.framework.web.service.TokenService;
 import com.ozs.pm.doman.vo.requestVo.PmBookBuildingReqVo;
 import com.ozs.pm.doman.vo.requestVo.PmDemandReqVo;
@@ -10,6 +11,7 @@ import com.ozs.pm.doman.vo.responseVo.PmDemandResVo;
 import com.ozs.pm.service.IPmDemandService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.poi.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -47,11 +49,14 @@ public class PmDemandController extends BaseController {
     }
 
     /**
-     * 获取采购需求详细信息
+     * 查看详情
      */
-    @ApiOperation(value = "获取采购需求详细信息", notes = "必传demandId,其他字段不传")
+    @ApiOperation(value = "查看详情", notes = "必传demandId,其他字段不传")
     @PostMapping("/view")
     public AjaxResult view(@RequestBody PmDemandReqVo pmDemandReqVo) {
+        if(pmDemandReqVo.getDemandId() == null){
+            return AjaxResult.error("demandId不能为空");
+        }
         return success(pmDemandService.selectPmDemandByDemandId(pmDemandReqVo.getDemandId()));
     }
 
@@ -61,6 +66,9 @@ public class PmDemandController extends BaseController {
     @ApiOperation(value = "需求建档", notes = "必传demandId,根据项目类型必传pmDemandEngineeringResponseVo、pmDemandEquipResponseVo、pmDemandMaterialsResponseVo、pmDemandServeResponseVo")
     @PostMapping("/bookBuilding")
     public AjaxResult bookBuilding(@RequestBody PmBookBuildingReqVo pmBookBuildingReqVo, HttpServletRequest request) {
+        if(pmBookBuildingReqVo.getDemandId() == null){
+            return AjaxResult.error("demandId不能为空");
+        }
         LoginUser loginUser = tokenService.getLoginUser(request);
         pmBookBuildingReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));
         return toAjax(pmDemandService.bookBuilding(pmBookBuildingReqVo));
@@ -69,6 +77,9 @@ public class PmDemandController extends BaseController {
     @ApiOperation(value = "提交采购需求", notes = "必传demandId,其他字段不传")
     @PostMapping("/commit")
     public AjaxResult commit(@RequestBody PmDemandReqVo pmDemandReqVo, HttpServletRequest request) {
+        if(pmDemandReqVo.getDemandId() == null){
+            return AjaxResult.error("demandId不能为空");
+        }
         LoginUser loginUser = tokenService.getLoginUser(request);
         pmDemandReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));
         return toAjax(pmDemandService.commit(pmDemandReqVo));
@@ -80,15 +91,24 @@ public class PmDemandController extends BaseController {
     @ApiOperation(value = "查看流程图,获取当前阶段名字", notes = "必传demandId,其他字段不传")
     @PostMapping("/viewFlowChart")
     public AjaxResult viewFlowChart(@RequestBody PmDemandReqVo pmRequestVo) {
+        if(pmRequestVo.getDemandId() == null){
+            return AjaxResult.error("demandId不能为空");
+        }
         return success(pmDemandService.viewFlowChart(pmRequestVo.getDemandId()));
     }
 
     /**
      * 查看流程图,鼠标移到对应模块后,显示悬浮框提示
      */
-    @ApiOperation(value = "查看流程图,鼠标移到对应模块后,显示悬浮框提示", notes = "必传demandId,模块名称,其他字段不传")
+    @ApiOperation(value = "查看流程图,鼠标移到对应模块后,显示悬浮框提示", notes = "必传demandId模块名称,其他字段不传")
     @PostMapping("/getModuleInfo")
     public AjaxResult getModuleInfo(@RequestBody PmDemandReqVo pmRequestVo) {
+        if(pmRequestVo.getDemandId() == null){
+            return AjaxResult.error("demandId不能为空");
+        }
+        if(pmRequestVo.getModuleName() == null){
+            return AjaxResult.error("模块名称不能为空");
+        }
         return success(pmDemandService.getModuleInfo(pmRequestVo.getDemandId(),pmRequestVo.getModuleName()));
     }
 
@@ -106,6 +126,12 @@ public class PmDemandController extends BaseController {
     @ApiOperation(value = "审核采购需求通过", notes = "必传demandId和上传附件,其他字段不传")
     @PostMapping("/reviewTo")
     public AjaxResult reviewTo(@RequestBody PmDemandReqVo pmDemandReqVo, HttpServletRequest request) {
+        if(pmDemandReqVo.getDemandId() == null){
+            return AjaxResult.error("demandId不能为空");
+        }
+        if(pmDemandReqVo.getSysFileRefs() == null || pmDemandReqVo.getSysFileRefs().size() == 0){
+            return AjaxResult.error("上传附件不能为空");
+        }
         LoginUser loginUser = tokenService.getLoginUser(request);
         pmDemandReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));
         return toAjax(pmDemandService.reviewTo(pmDemandReqVo));
@@ -114,6 +140,12 @@ public class PmDemandController extends BaseController {
     @ApiOperation(value = "审核采购需求退回", notes = "必传demandId和退回原因,其他字段不传")
     @PostMapping("/reviewReturn")
     public AjaxResult reviewReturn(@RequestBody PmDemandReqVo pmDemandReqVo, HttpServletRequest request) {
+        if(pmDemandReqVo.getDemandId() == null){
+            return AjaxResult.error("demandId不能为空");
+        }
+        if(StringUtils.isEmpty(pmDemandReqVo.getRefuseReason())){
+            return AjaxResult.error("退回原因不能为空");
+        }
         LoginUser loginUser = tokenService.getLoginUser(request);
         pmDemandReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));
         return toAjax(pmDemandService.reviewReturn(pmDemandReqVo));

+ 11 - 2
purchase-admin/src/main/java/com/ozs/web/controller/pm/PmTaskReleaseController.java

@@ -48,17 +48,26 @@ public class PmTaskReleaseController extends BaseController {
     @ApiOperation(value = "下达任务", notes = "必传demandId和上传附件,其他字段不传")
     @PostMapping("/releaseTask")
     public AjaxResult releaseTask(@RequestBody PmDemandReqVo pmDemandReqVo, HttpServletRequest request) {
+        if(pmDemandReqVo.getDemandId() == null){
+            return AjaxResult.error("demandId不能为空");
+        }
+        if(pmDemandReqVo.getSysFileRefs() == null || pmDemandReqVo.getSysFileRefs().size() == 0){
+            return AjaxResult.error("上传附件不能为空");
+        }
         LoginUser loginUser = tokenService.getLoginUser(request);
         pmDemandReqVo.setUpdateBy(String.valueOf(loginUser.getUserId()));
         return toAjax(pmDemandService.releaseTask(pmDemandReqVo));
     }
 
     /**
-     * 获取采购需求详细信息
+     * 查看详情
      */
-    @ApiOperation(value = "获取采购需求详细信息", notes = "必传demandId,其他字段不传")
+    @ApiOperation(value = "查看详情", notes = "必传demandId,其他字段不传")
     @PostMapping("/view")
     public AjaxResult view(@RequestBody PmDemandReqVo pmDemandReqVo) {
+        if(pmDemandReqVo.getDemandId() == null){
+            return AjaxResult.error("demandId不能为空");
+        }
         return success(pmDemandService.selectPmDemandByDemandId(pmDemandReqVo.getDemandId()));
     }
 }

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

@@ -27,7 +27,7 @@ public class SysProcurementStandard implements Serializable {
     @TableField("dept_id")
     private Long deptId;
 
-    /** 类别(0装备类1服务类2装备类3工程类) */
+    /** 类别(0装备类1服务类2物资类3工程类) */
     @ApiModelProperty(value = "类别")
     @TableField("category")
     private Integer category;

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

@@ -2,6 +2,7 @@ package com.ozs.base.domain;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.ozs.common.annotation.Excel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -19,6 +20,7 @@ public class BaseProfessional {
     /**
      * 品目名称
      */
+    @Excel(name = "品目名称")
     @ApiModelProperty(value = "品目名称")
     @TableField("professional_name")
     private String professionalName;
@@ -26,6 +28,7 @@ public class BaseProfessional {
     /**
      * 编码
      */
+    @Excel(name = "编码")
     @ApiModelProperty(value = "编码")
     @TableField("professional_code")
     private String professionalCode;
@@ -33,6 +36,7 @@ public class BaseProfessional {
     /**
      * 说明
      */
+    @Excel(name = "说明")
     @ApiModelProperty(value = "说明")
     @TableField("purchase_state")
     private String purchaseState;
@@ -40,6 +44,7 @@ public class BaseProfessional {
     /**
      * 一级分类
      */
+    @Excel(name = "一级分类")
     @ApiModelProperty(value = "一级分类")
     @TableField("professional_grade")
     private String professionalGrade;
@@ -47,6 +52,7 @@ public class BaseProfessional {
     /**
      * 父级编码
      */
+    @Excel(name = "父级编码")
     @ApiModelProperty(value = "父级编码")
     @TableField("parent_code")
     private String parentCode;

+ 44 - 6
purchase-system/src/main/java/com/ozs/base/domain/vo/BaseProfessionalVo.java

@@ -1,6 +1,9 @@
 package com.ozs.base.domain.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.ozs.base.domain.BaseProfessional;
+import com.ozs.common.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -8,12 +11,47 @@ 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;
+    /**
+     * 主键ID
+     */
+    @ApiModelProperty(value = "id")
+    private Integer id;
+
+    /**
+     * 品目名称
+     */
+    @Excel(name = "品目名称")
+    @ApiModelProperty(value = "品目名称")
+    private String professionalName;
+
+    /**
+     * 编码
+     */
+    @Excel(name = "编码")
+    @ApiModelProperty(value = "编码")
+    private String professionalCode;
+
+    /**
+     * 说明
+     */
+    @Excel(name = "说明")
+    @ApiModelProperty(value = "说明")
+    private String purchaseState;
+
+    /**
+     * 一级分类
+     */
+    @Excel(name = "一级分类")
+    @ApiModelProperty(value = "一级分类")
+    private String professionalGrade;
+
+    /**
+     * 父级编码
+     */
+    @Excel(name = "父级编码")
+    @ApiModelProperty(value = "父级编码")
+    private String parentCode;
+
     private List<BaseProfessionalVo> baseProfessionalVoList;
     private List<Integer> deleteIds;
 }

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

@@ -7,10 +7,10 @@ import com.ozs.base.domain.vo.BaseProfessionalVo;
 import java.util.List;
 
 public interface BaseProfessionalService extends IService<BaseProfessional> {
-    List<BaseProfessionalVo> selectBaseProfessional(BaseProfessionalVo baseProfessional);
-    List<BaseProfessional> selectBaseProfessional(BaseProfessional baseProfessional);
+    List<BaseProfessionalVo> selectBaseProfessionalVo(BaseProfessionalVo baseProfessional);
+    List<BaseProfessional> selectBaseProfessional(BaseProfessionalVo baseProfessionalVo);
 
     void deleteIds(List<Integer> deleteIds);
 
-    String importBaseProfessional(List<BaseProfessional> userList);
+    String importBaseProfessional(List<BaseProfessional> userList, boolean updateSupport);
 }

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

@@ -40,12 +40,12 @@ public class BaseProfessionalServiceImpl extends ServiceImpl<BaseProfessionalMap
     }
 
     @Override
-    public String importBaseProfessional(List<BaseProfessional> userList) {
+    public String importBaseProfessional(List<BaseProfessional> baseProfessionalList, boolean updateSupport) {
         int successNum = 0;
         int failureNum = 0;
         StringBuilder successMsg = new StringBuilder();
         StringBuilder failureMsg = new StringBuilder();
-        for (BaseProfessional baseProfessional : userList) {
+        for (BaseProfessional baseProfessional : baseProfessionalList) {
             try {
                 // 判断编码是否存在
                 List<BaseProfessional> professionalCode = baseProfessionalMapper.selectByProfessionalCode(baseProfessional);
@@ -59,7 +59,7 @@ public class BaseProfessionalServiceImpl extends ServiceImpl<BaseProfessionalMap
                     BeanValidators.validateWithException(validator, baseProfessional);
                     baseProfessionalMapper.insert(baseProfessional);
                     successNum++;
-                    successMsg.append("<br/>" + successNum + "、专业名称 " + baseProfessional.getProfessionalName() + " 导入成功");
+                    // successMsg.append("<br/>" + successNum + "、专业名称 " + baseProfessional.getProfessionalName() + " 导入成功");
                 }
             } catch (Exception e) {
                 failureNum++;
@@ -72,13 +72,13 @@ public class BaseProfessionalServiceImpl extends ServiceImpl<BaseProfessionalMap
             failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
             throw new ServiceException(failureMsg.toString());
         } else {
-            successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
+            successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条");
         }
         return successMsg.toString();
     }
 
     @Override
-    public List<BaseProfessionalVo> selectBaseProfessional(BaseProfessionalVo baseProfessionalVo) {
+    public List<BaseProfessionalVo> selectBaseProfessionalVo(BaseProfessionalVo baseProfessionalVo) {
         List<BaseProfessional> allList = baseProfessionalMapper.selectBaseProfessional(baseProfessionalVo);
         // 将实体类转换为Vo类
         List<BaseProfessionalVo> allListVo = BeanUtils.entityListToVOList(allList, BaseProfessionalVo.class);
@@ -87,8 +87,8 @@ public class BaseProfessionalServiceImpl extends ServiceImpl<BaseProfessionalMap
     }
 
     @Override
-    public List<BaseProfessional> selectBaseProfessional(BaseProfessional baseProfessional) {
-        List<BaseProfessional> allList = baseProfessionalMapper.selectBaseProfessional(baseProfessional);
+    public List<BaseProfessional> selectBaseProfessional(BaseProfessionalVo baseProfessionalVo) {
+        List<BaseProfessional> allList = baseProfessionalMapper.selectBaseProfessional(baseProfessionalVo);
         return allList;
     }
 

+ 49 - 0
purchase-system/src/main/java/com/ozs/home/domain/HomeNotice.java

@@ -0,0 +1,49 @@
+package com.ozs.home.domain;
+
+
+import com.ozs.common.annotation.Excel;
+import com.ozs.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 首页公告
+ * @author Administrator
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("首页公告")
+public class HomeNotice extends BaseEntity {
+
+    /** 主键 */
+    private Long homeNoticeId;
+
+    /** 首页分类(0需求单位首页1采购管理部门首页2采购部首页) */
+    private Integer homepageClassification;
+
+    /** 公告分类(0采购公告1中标公告2流标公告) */
+    private Integer announcementClassification;
+
+    /** 公告名称 */
+    private String noticeName;
+
+    /** 公告时间 */
+    private Date noticeTime;
+
+    /** 采购项目编号 */
+    private Long projectNo;
+
+    /** 合同履行日期 */
+    private String performanceDate;
+
+    /** 采购项目名称 */
+    private String projectName;
+}

+ 51 - 0
purchase-system/src/main/java/com/ozs/home/domain/HomeNotificationMessage.java

@@ -0,0 +1,51 @@
+package com.ozs.home.domain;
+
+
+import com.ozs.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 首页通知消息
+ * @author Administrator
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("首页通知消息")
+public class HomeNotificationMessage extends BaseEntity {
+
+    /** 主键 */
+    private Long homeNotificationMessageId;
+
+    /** 首页分类(0需求单位首页1采购管理部门首页2采购部首页) */
+    private Integer homepageClassification;
+
+    /** 公消息分类(0预警消息1.发函催告2.预期告警) */
+    private Integer messageClassification;
+    
+    /** 项目类型(0:装备类;1:物资类;2:服务类;3:工程类) */
+    private String projectType;
+
+    /** 计划提报需求时间 */
+    private Date planDemandSubTime;
+
+    /** 是否填写完成滞后原因(0是1否) */
+    private Integer state;
+
+    /** 需求概况 */
+    private String demandOverview;
+
+    /** 采购项目名称 */
+    private String projectName;
+
+    /** 采购需求id */
+    private Long demandId;
+}

+ 25 - 0
purchase-system/src/main/java/com/ozs/home/domain/vo/HomeNoticeVo.java

@@ -0,0 +1,25 @@
+package com.ozs.home.domain.vo;
+
+
+import com.ozs.common.vo.PageVo;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author buzhanyi
+ */
+@Data
+public class HomeNoticeVo extends PageVo {
+    /** 首页分类(0需求单位首页1采购管理部门首页2采购部首页) */
+    private String homepageClassification;
+
+    /** 公告分类(0采购公告1中标公告2流标公告) */
+    private String announcementClassification;
+
+    /** 公告名称 */
+    private String noticeName;
+
+    /** 公告时间 */
+    private Date noticeTime;
+}

+ 28 - 0
purchase-system/src/main/java/com/ozs/home/domain/vo/HomeNotificationMessageVo.java

@@ -0,0 +1,28 @@
+package com.ozs.home.domain.vo;
+
+
+import com.ozs.common.core.domain.BaseEntity;
+import com.ozs.common.vo.PageVo;
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+/**
+ * 首页通知消息
+ * @author Administrator
+ */
+@Data
+
+public class HomeNotificationMessageVo extends PageVo {
+    
+
+    /** 首页分类(0需求单位首页1采购管理部门首页2采购部首页) */
+    private String homepageClassification;
+
+    /** 公消息分类(0预警消息1.发函催告2.预期告警) */
+    private String messageClassification;
+}

+ 18 - 0
purchase-system/src/main/java/com/ozs/home/domain/vo/ReasonsForLagVo.java

@@ -0,0 +1,18 @@
+package com.ozs.home.domain.vo;
+
+import lombok.Data;
+
+/**
+ * 滞后原因
+ * @author Administrator
+ */
+@Data
+public class ReasonsForLagVo {
+    /** 滞后原因 */
+    private String delayReason;
+
+    /** 调整建议 */
+    private String adjustAdvice;
+    /** 主键 */
+    private Long homeNotificationMessageId;
+}

+ 15 - 0
purchase-system/src/main/java/com/ozs/home/mapper/HomeNoticeMapper.java

@@ -0,0 +1,15 @@
+package com.ozs.home.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.home.domain.HomeNotice;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 首页公告 数据层
+ *
+ * @author bu
+ */
+@Mapper
+public interface HomeNoticeMapper extends BaseMapper<HomeNotice> {
+}

+ 15 - 0
purchase-system/src/main/java/com/ozs/home/mapper/HomeNotificationMessageMapper.java

@@ -0,0 +1,15 @@
+package com.ozs.home.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.home.domain.HomeNotificationMessage;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 首页通知消息 数据层
+ *
+ * @author bu
+ */
+@Mapper
+public interface HomeNotificationMessageMapper extends BaseMapper<HomeNotificationMessage> {
+}

+ 20 - 0
purchase-system/src/main/java/com/ozs/home/service/HomeNoticeService.java

@@ -0,0 +1,20 @@
+package com.ozs.home.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.pagehelper.PageInfo;
+import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.common.core.domain.model.LoginUser;
+import com.ozs.home.domain.HomeNotice;
+import com.ozs.plan.doman.PlanYears;
+import com.ozs.plan.doman.vo.requestVo.PlanYearsStandardVo;
+
+import java.util.List;
+
+/**
+ * 首页公告 服务层
+ *
+ * @author bu
+ */
+public interface HomeNoticeService extends IService<HomeNotice> {
+}

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

@@ -0,0 +1,14 @@
+package com.ozs.home.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ozs.home.domain.HomeNotice;
+import com.ozs.home.domain.HomeNotificationMessage;
+
+/**
+ * 首页通知消息 服务层
+ *
+ * @author bu
+ */
+public interface HomeNotificationMessageService extends IService<HomeNotificationMessage> {
+}

+ 18 - 0
purchase-system/src/main/java/com/ozs/home/service/impl/HomeNoticeServiceImpl.java

@@ -0,0 +1,18 @@
+package com.ozs.home.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ozs.home.domain.HomeNotice;
+import com.ozs.home.mapper.HomeNoticeMapper;
+import com.ozs.home.service.HomeNoticeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author buzhanyi
+ */
+@Service
+@Slf4j
+public class HomeNoticeServiceImpl extends ServiceImpl<HomeNoticeMapper, HomeNotice> implements HomeNoticeService {
+    
+}

+ 21 - 0
purchase-system/src/main/java/com/ozs/home/service/impl/HomeNotificationMessageServiceImpl.java

@@ -0,0 +1,21 @@
+package com.ozs.home.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ozs.home.domain.HomeNotice;
+import com.ozs.home.domain.HomeNotificationMessage;
+import com.ozs.home.mapper.HomeNoticeMapper;
+import com.ozs.home.mapper.HomeNotificationMessageMapper;
+import com.ozs.home.service.HomeNoticeService;
+import com.ozs.home.service.HomeNotificationMessageService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author buzhanyi
+ */
+@Service
+@Slf4j
+public class HomeNotificationMessageServiceImpl extends ServiceImpl<HomeNotificationMessageMapper, HomeNotificationMessage> implements HomeNotificationMessageService {
+    
+}

+ 11 - 3
purchase-system/src/main/java/com/ozs/plan/doman/ProvisionalPlan.java

@@ -38,6 +38,8 @@ public class ProvisionalPlan {
     @ApiModelProperty(value = "项目类型(0:装备类;1:物资类;2:服务类;3:工程类)")
     @TableField("project_type")
     private String projectType;
+    @TableField(exist = false)
+    private String projectTypeStr;
 
     @Excel(name = "需求概况")
     @ApiModelProperty(value = "需求概况")
@@ -53,15 +55,19 @@ public class ProvisionalPlan {
     @TableField("is_excess")
     private String isExcess;
 
-    @Excel(name = "采购服务站")
     @ApiModelProperty(value = "采购服务站")
     @TableField("purchase_services")
-    private String purchaseServices;
+    private String  purchaseServices;
+    @Excel(name = "采购服务站")
+    @TableField(exist = false)
+    private String purchaseServicesStr;
 
     @Excel(name = "采购方式")
     @ApiModelProperty(value = "采购方式  (0:公开招标, 1:单一来源,2:邀请招标,3:竞争式谈判,4:询价)")
     @TableField("purchase_mode")
     private String purchaseMode;
+    @TableField(exist = false)
+    private String purchaseModeStr;
 
     @Excel(name = "提报需求时间")
     @JsonFormat(pattern = "yyyy-MM-dd")
@@ -81,10 +87,12 @@ public class ProvisionalPlan {
     @TableField("plan_deliver_time")
     private Date planDeliverTime;
 
-    @Excel(name = "项目属性")
     @ApiModelProperty(value = "项目属性(0:应急应战项目, 1:重大规划任务项目, 2:规划任务项目, 3:一般项目)")
     @TableField("project_attr")
     private String projectAttr;
+    @Excel(name = "项目属性")
+    @TableField(exist = false)
+    private String projectAttrStr;
 
     @Excel(name = "计划调整情况及理由")
     @ApiModelProperty(value = "计划调整情况及理由--->如计划需要变更,在填写申请修改时需填写调整情况及理由,审核单位审核通过后显示该信息")

+ 63 - 1
purchase-system/src/main/java/com/ozs/plan/service/PlanYearsService.java

@@ -1,11 +1,14 @@
 package com.ozs.plan.service;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.github.pagehelper.PageInfo;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.core.domain.model.LoginUser;
 import com.ozs.plan.doman.PlanYears;
 import com.ozs.plan.doman.vo.requestVo.PlanYearsStandardVo;
+import com.ozs.system.domain.SysOperLog;
 
 import java.util.List;
 
@@ -14,7 +17,7 @@ import java.util.List;
  *
  * @author bu
  */
-public interface PlanYearsService {
+public interface PlanYearsService extends IService<PlanYears> {
 
     /**
      * 查询年度计划记录集合
@@ -149,4 +152,63 @@ public interface PlanYearsService {
      * @return 结果
      */
     AjaxResult downLoadPlanFile(PlanYearsStandardVo yearsStandardVo);
+    /**
+     * 需求单位首页计划管理总数
+     * @return
+     */
+    AjaxResult demandUnitPlanManagementTotal();
+
+    /**
+     * 采购管理部门首页计划管理总数
+     * @return
+     */
+    AjaxResult purchasingManagementPurchasingManagementTotal();
+
+    /**
+     * 需求单位首页需求管理总数
+     * @return
+     */
+    AjaxResult demandUnitDemandManagementTotal();
+
+    /**
+     * 采购管理部门首页需求管理总数
+     * @return
+     */
+    AjaxResult purchasingManagementDemandManagementTotal();
+
+    /**
+     * 需求单位首页合同管理总数
+     * @return
+     */
+    AjaxResult demandUnitContractManagementTotal();
+
+    /**
+     * 需求单位首页建设管理总数
+     * @return
+     */
+    AjaxResult demandUnitConstructionManagementTotal();
+
+    /**
+     * 采购管理部门首页任务下达管理总数
+     * @return
+     */
+    AjaxResult purchasingManagementTaskReleaseTotal();
+
+    /**
+     * 采购办首页采购执行管理总数
+     * @return
+     */
+    AjaxResult procurementOfficeProcurementExecutionTotal();
+
+    /**
+     * 采购办首已中标项目理总数
+     * @return
+     */
+    AjaxResult procurementOfficeWinningTheBidTotal();
+
+    /**
+     * 采购办首未中标项目理总数 
+     * @return
+     */ 
+    AjaxResult procurementOfficeFailureToWinTheBidTotal();
 }

+ 4 - 0
purchase-system/src/main/java/com/ozs/plan/service/ProvisionalPlanService.java

@@ -2,7 +2,9 @@ package com.ozs.plan.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ozs.common.core.domain.model.LoginUser;
+import com.ozs.plan.doman.PlanYears;
 import com.ozs.plan.doman.ProvisionalPlan;
+import com.ozs.plan.doman.vo.requestVo.ProvisionalPlanVo;
 
 import java.util.List;
 
@@ -12,4 +14,6 @@ public interface ProvisionalPlanService extends IService<ProvisionalPlan> {
     int updateProvisionalPlanById(ProvisionalPlan provisionalPlan);
 
     String importProvisionalPlan(List<ProvisionalPlan> provisionalPlans, boolean updateSupport, LoginUser loginUser);
+
+    List<ProvisionalPlan> selectProvisionalPlanExport(ProvisionalPlanVo provisionalPlanVo);
 }

+ 287 - 2
purchase-system/src/main/java/com/ozs/plan/service/impl/PlanYearsServiceImpl.java

@@ -2,16 +2,29 @@ package com.ozs.plan.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.ozs.base.domain.BaseAgency;
+import com.ozs.base.domain.BaseNoticeType;
+import com.ozs.base.vo.BaseNoticeVo;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.core.domain.entity.SysDept;
 import com.ozs.common.core.domain.entity.SysDictData;
+import com.ozs.common.core.domain.entity.SysProcurementStandard;
+import com.ozs.common.core.domain.entity.SysRole;
+import com.ozs.common.core.domain.entity.SysUser;
 import com.ozs.common.core.domain.model.LoginUser;
+import com.ozs.common.enums.IsExcess;
+import com.ozs.common.enums.PmProjectStatus;
 import com.ozs.common.enums.ProjectStatus;
 import com.ozs.common.enums.ProjectTypes;
 import com.ozs.common.enums.SysFileRefEnum;
 import com.ozs.common.exception.ServiceException;
+import com.ozs.common.utils.SecurityUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.bean.BeanUtils;
 import com.ozs.plan.doman.PlanQuarter;
@@ -21,13 +34,23 @@ import com.ozs.plan.doman.vo.responseVo.PlanYearsResponseVo;
 import com.ozs.plan.mapper.PlanQuarterMapper;
 import com.ozs.plan.mapper.PlanYearsMapper;
 import com.ozs.plan.service.PlanYearsService;
+import com.ozs.pm.doman.PmDemand;
+import com.ozs.pm.mapper.PmDemandMapper;
 import com.ozs.system.domain.SysFileInfo;
 import com.ozs.system.domain.SysFileRef;
+import com.ozs.system.domain.SysOperLog;
+import com.ozs.system.domain.SysUserRole;
 import com.ozs.system.domain.vo.responseVo.SysDeptResponseVo;
 import com.ozs.system.mapper.SysDeptMapper;
 import com.ozs.system.mapper.SysFileRefMapper;
+import com.ozs.system.mapper.SysOperLogMapper;
+import com.ozs.system.mapper.SysProcurementStandardMapper;
+import com.ozs.system.mapper.SysRoleMapper;
+import com.ozs.system.mapper.SysUserRoleMapper;
 import com.ozs.system.service.ISysDeptService;
 import com.ozs.system.service.ISysDictTypeService;
+import com.ozs.system.service.ISysRoleService;
+import com.ozs.system.service.ISysUserService;
 import com.ozs.system.service.SysFileService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -43,13 +66,16 @@ import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.function.Consumer;
+import java.util.stream.Collectors;
 
 /**
  * @author buzhanyi
  */
 @Service
 @Slf4j
-public class PlanYearsServiceImpl implements PlanYearsService {
+public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears> implements PlanYearsService {
 
     @Autowired
     PlanYearsMapper planYearsMapper;
@@ -67,7 +93,14 @@ public class PlanYearsServiceImpl implements PlanYearsService {
     private SysDeptMapper deptMapper;
     @Autowired
     private SysFileService fileService;
-
+    @Autowired
+    private SysRoleMapper sysRoleMapper;
+    @Autowired
+    private ISysUserService userService;
+    @Autowired
+    private SysProcurementStandardMapper sysProcurementStandardMapper;
+    @Autowired
+    private PmDemandMapper pmDemandMapper;
     @Override
     public PageInfo<PlanYears> selectPlanYearsList(PlanYearsStandardVo vo) {
         PlanYears ofYears = new PlanYears();
@@ -491,6 +524,258 @@ public class PlanYearsServiceImpl implements PlanYearsService {
         return AjaxResult.success();
     }
 
+    @Override
+    public AjaxResult demandUnitPlanManagementTotal() {
+        List<PlanYears> planYears = new ArrayList<>();
+        try {
+            List<SysRole> sysRoles = sysRoleMapper.selectRolePermissionByUserId(SecurityUtils.getUserId());
+            List<SysRole> sysRoleList = sysRoles.stream().filter(tdto -> tdto.getRoleKey().equals("demand_unit")).collect(Collectors.toList());
+            if (sysRoleList.size() > 0) {
+                SysUser sysUser = userService.selectUserById(SecurityUtils.getUserId());
+                SysDept sysDept = deptMapper.selectDeptById(sysUser.getDeptId());
+                QueryWrapper<PlanYears> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("purchase_dept_id", sysDept.getDeptId());
+                planYears = planYearsMapper.selectList(queryWrapper);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return AjaxResult.success(planYears.size());
+    }
+
+    @Override
+    public AjaxResult purchasingManagementPurchasingManagementTotal() {
+        List<PlanYears> planYears = new ArrayList<>();
+        try {
+            List<SysRole> sysRoles = sysRoleMapper.selectRolePermissionByUserId(SecurityUtils.getUserId());
+            List<SysRole> sysRoleList = sysRoles.stream().filter(tdto -> tdto.getRoleKey().equals("demand_unit")).collect(Collectors.toList());
+            if (sysRoleList.size() > 0) {
+                SysUser sysUser = userService.selectUserById(SecurityUtils.getUserId());
+                SysDept sysDept = deptMapper.selectDeptById(sysUser.getDeptId());
+                List<SysDept> sysDepts = deptMapper.selectChildrenDeptById(sysDept.getDeptId());
+                List<Long> collect = sysDepts.stream().map(SysDept::getDeptId).collect(Collectors.toList());
+                if (collect.size()==0){
+                    collect.add(-1L);
+                }
+                QueryWrapper<PlanYears> queryWrapper = new QueryWrapper<>();
+                queryWrapper
+                        .or(wrapper -> wrapper.lambda().eq(PlanYears::getPurchaseDeptId, sysDept.getDeptId())
+                        .eq(PlanYears::getIsExcess, IsExcess.NO_EXCESS.getCode()))
+                        .or(wrapper -> wrapper.lambda().in(PlanYears::getPurchaseDeptId, collect)
+                        .eq(PlanYears::getIsExcess, IsExcess.EXCESS.getCode()))
+                        .in("project_status",ProjectStatus.PLANWAIEXAMINE.getCode(),ProjectStatus.PLANTOEXAMINE.getCode());
+                planYears = planYearsMapper.selectList(queryWrapper);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return AjaxResult.success(planYears.size());
+    }
+
+    @Override
+    public AjaxResult demandUnitDemandManagementTotal() {
+        List<PmDemand> pmDemands = new ArrayList<>();
+        try {
+            List<SysRole> sysRoles = sysRoleMapper.selectRolePermissionByUserId(SecurityUtils.getUserId());
+            List<SysRole> sysRoleList = sysRoles.stream().filter(tdto -> tdto.getRoleKey().equals("purchasing_management")).collect(Collectors.toList());
+            if (sysRoleList.size() > 0) {
+                SysUser sysUser = userService.selectUserById(SecurityUtils.getUserId());
+                SysDept sysDept = deptMapper.selectDeptById(sysUser.getDeptId());
+                QueryWrapper<PmDemand> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("purchase_dept_id", sysDept.getDeptId());
+                pmDemands =pmDemandMapper.selectList(queryWrapper);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return AjaxResult.success(pmDemands.size());
+    }
+
+    @Override
+    public AjaxResult purchasingManagementDemandManagementTotal() {
+        List<PmDemand> pmDemands = new ArrayList<>();
+        try {
+            List<SysRole> sysRoles = sysRoleMapper.selectRolePermissionByUserId(SecurityUtils.getUserId());
+            List<SysRole> sysRoleList = sysRoles.stream().filter(tdto -> tdto.getRoleKey().equals("demand_unit")).collect(Collectors.toList());
+            if (sysRoleList.size() > 0) {
+                SysUser sysUser = userService.selectUserById(SecurityUtils.getUserId());
+                SysDept sysDept = deptMapper.selectDeptById(sysUser.getDeptId());
+                List<SysDept> sysDepts = deptMapper.selectChildrenDeptById(sysDept.getDeptId());
+                List<Long> collect = sysDepts.stream().map(SysDept::getDeptId).collect(Collectors.toList());
+                if (collect.size()==0){
+                    collect.add(-1L);
+                }
+                QueryWrapper<PmDemand> queryWrapper = new QueryWrapper<>();
+                queryWrapper
+                        .or(wrapper -> wrapper.lambda().eq(PmDemand::getPurchaseDeptId, sysDept.getDeptId())
+                                .eq(PmDemand::getIsExcess, IsExcess.NO_EXCESS.getCode()))
+                        .or(wrapper -> wrapper.lambda().in(PmDemand::getPurchaseDeptId, sysDepts)
+                                .eq(PmDemand::getIsExcess, IsExcess.EXCESS.getCode()))
+                        .in("project_status",PmProjectStatus.DEMAND_WAIT_AUDIT.getCode(),PmProjectStatus.DEMAND_AUDIT_RETURN.getCode());
+                pmDemands = pmDemandMapper.selectList(queryWrapper);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return AjaxResult.success(pmDemands.size());
+    }
+
+    @Override
+    public AjaxResult demandUnitContractManagementTotal() {
+        List<PmDemand> pmDemands = new ArrayList<>();
+        try {
+            List<SysRole> sysRoles = sysRoleMapper.selectRolePermissionByUserId(SecurityUtils.getUserId());
+            List<SysRole> sysRoleList = sysRoles.stream().filter(tdto -> tdto.getRoleKey().equals("purchasing_management")).collect(Collectors.toList());
+            if (sysRoleList.size() > 0) {
+                SysUser sysUser = userService.selectUserById(SecurityUtils.getUserId());
+                SysDept sysDept = deptMapper.selectDeptById(sysUser.getDeptId());
+                QueryWrapper<PmDemand> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("purchase_dept_id", sysDept.getDeptId());
+                queryWrapper.in("project_status",PmProjectStatus.CONTRACT_WAIT_FILL.getCode(),PmProjectStatus.UNDER_CONSTRUCTION.getCode());
+                pmDemands =pmDemandMapper.selectList(queryWrapper);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return AjaxResult.success(pmDemands.size());
+    }
+
+    @Override
+    public AjaxResult demandUnitConstructionManagementTotal() {
+        List<PmDemand> pmDemands = new ArrayList<>();
+        try {
+            List<SysRole> sysRoles = sysRoleMapper.selectRolePermissionByUserId(SecurityUtils.getUserId());
+            List<SysRole> sysRoleList = sysRoles.stream().filter(tdto -> tdto.getRoleKey().equals("purchasing_management")).collect(Collectors.toList());
+            if (sysRoleList.size() > 0) {
+                SysUser sysUser = userService.selectUserById(SecurityUtils.getUserId());
+                SysDept sysDept = deptMapper.selectDeptById(sysUser.getDeptId());
+                QueryWrapper<PmDemand> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("purchase_dept_id", sysDept.getDeptId());
+                queryWrapper.in("project_status",PmProjectStatus.UNDER_CONSTRUCTION.getCode(),PmProjectStatus.COMPLETION_CONSTRUCTION.getCode());
+                pmDemands =pmDemandMapper.selectList(queryWrapper);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return AjaxResult.success(pmDemands.size());
+    }
+
+    @Override
+    public AjaxResult purchasingManagementTaskReleaseTotal() {
+        List<PmDemand> pmDemands = new ArrayList<>();
+        try {
+            List<SysRole> sysRoles = sysRoleMapper.selectRolePermissionByUserId(SecurityUtils.getUserId());
+            List<SysRole> sysRoleList = sysRoles.stream().filter(tdto -> tdto.getRoleKey().equals("demand_unit")).collect(Collectors.toList());
+            if (sysRoleList.size() > 0) {
+                SysUser sysUser = userService.selectUserById(SecurityUtils.getUserId());
+                SysDept sysDept = deptMapper.selectDeptById(sysUser.getDeptId());
+                List<SysDept> sysDepts = deptMapper.selectChildrenDeptById(sysDept.getDeptId());
+                List<Long> collect = sysDepts.stream().map(SysDept::getDeptId).collect(Collectors.toList());
+                if (collect.size()==0){
+                    collect.add(-1L);
+                }
+                QueryWrapper<PmDemand> queryWrapper = new QueryWrapper<>();
+                queryWrapper
+                        .or(wrapper -> wrapper.lambda().eq(PmDemand::getPurchaseDeptId, sysDept.getDeptId())
+                                .eq(PmDemand::getIsExcess, IsExcess.NO_EXCESS.getCode()))
+                        .or(wrapper -> wrapper.lambda().in(PmDemand::getPurchaseDeptId, sysDepts)
+                                .eq(PmDemand::getIsExcess, IsExcess.EXCESS.getCode()))
+                        .in("project_status",PmProjectStatus.TASK_WAIT_RELEASE.getCode(),PmProjectStatus.BID_INFO_WAIT_FILL.getCode());
+                pmDemands = pmDemandMapper.selectList(queryWrapper);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return AjaxResult.success(pmDemands.size());
+    }
+
+    @Override
+    public AjaxResult procurementOfficeProcurementExecutionTotal() {
+        List<PmDemand> pmDemands = new ArrayList<>();
+        try {
+            List<SysRole> sysRoles = sysRoleMapper.selectRolePermissionByUserId(SecurityUtils.getUserId());
+            List<SysRole> sysRoleList = sysRoles.stream().filter(tdto -> tdto.getRoleKey().equals("demand_unit")).collect(Collectors.toList());
+            if (sysRoleList.size() > 0) {
+                SysUser sysUser = userService.selectUserById(SecurityUtils.getUserId());
+                SysDept sysDept = deptMapper.selectDeptById(sysUser.getDeptId());
+                List<SysDept> sysDepts = deptMapper.selectChildrenDeptById(sysDept.getDeptId());
+                List<Long> collect = sysDepts.stream().map(SysDept::getDeptId).collect(Collectors.toList());
+                if (collect.size()==0){
+                    collect.add(-1L);
+                }
+                QueryWrapper<PmDemand> queryWrapper = new QueryWrapper<>();
+                queryWrapper
+                        .or(wrapper -> wrapper.lambda().eq(PmDemand::getPurchaseDeptId, sysDept.getDeptId())
+                                .eq(PmDemand::getIsExcess, IsExcess.NO_EXCESS.getCode()))
+                        .or(wrapper -> wrapper.lambda().in(PmDemand::getPurchaseDeptId, sysDepts)
+                                .eq(PmDemand::getIsExcess, IsExcess.EXCESS.getCode()))
+                        .in("project_status",PmProjectStatus.BID_INFO_WAIT_FILL.getCode(),PmProjectStatus.CONTRACT_WAIT_FILL.getCode());
+                pmDemands = pmDemandMapper.selectList(queryWrapper);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return AjaxResult.success(pmDemands.size());
+    }
+
+    @Override
+    public AjaxResult procurementOfficeWinningTheBidTotal() {
+        List<PmDemand> pmDemands = new ArrayList<>();
+        try {
+            List<SysRole> sysRoles = sysRoleMapper.selectRolePermissionByUserId(SecurityUtils.getUserId());
+            List<SysRole> sysRoleList = sysRoles.stream().filter(tdto -> tdto.getRoleKey().equals("demand_unit")).collect(Collectors.toList());
+            if (sysRoleList.size() > 0) {
+                SysUser sysUser = userService.selectUserById(SecurityUtils.getUserId());
+                SysDept sysDept = deptMapper.selectDeptById(sysUser.getDeptId());
+                List<SysDept> sysDepts = deptMapper.selectChildrenDeptById(sysDept.getDeptId());
+                List<Long> collect = sysDepts.stream().map(SysDept::getDeptId).collect(Collectors.toList());
+                if (collect.size()==0){
+                    collect.add(-1L);
+                }
+                QueryWrapper<PmDemand> queryWrapper = new QueryWrapper<>();
+                queryWrapper
+                        .or(wrapper -> wrapper.lambda().eq(PmDemand::getPurchaseDeptId, sysDept.getDeptId())
+                                .eq(PmDemand::getIsExcess, IsExcess.NO_EXCESS.getCode()))
+                        .or(wrapper -> wrapper.lambda().in(PmDemand::getPurchaseDeptId, sysDepts)
+                                .eq(PmDemand::getIsExcess, IsExcess.EXCESS.getCode()))
+                        .lt("project_status",PmProjectStatus.CONTRACT_WAIT_FILL.getCode());
+                pmDemands = pmDemandMapper.selectList(queryWrapper);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return AjaxResult.success(pmDemands.size());
+    }
+
+    @Override
+    public AjaxResult procurementOfficeFailureToWinTheBidTotal() {
+        List<PmDemand> pmDemands = new ArrayList<>();
+        try {
+            List<SysRole> sysRoles = sysRoleMapper.selectRolePermissionByUserId(SecurityUtils.getUserId());
+            List<SysRole> sysRoleList = sysRoles.stream().filter(tdto -> tdto.getRoleKey().equals("demand_unit")).collect(Collectors.toList());
+            if (sysRoleList.size() > 0) {
+                SysUser sysUser = userService.selectUserById(SecurityUtils.getUserId());
+                SysDept sysDept = deptMapper.selectDeptById(sysUser.getDeptId());
+                List<SysDept> sysDepts = deptMapper.selectChildrenDeptById(sysDept.getDeptId());
+                List<Long> collect = sysDepts.stream().map(SysDept::getDeptId).collect(Collectors.toList());
+                if (collect.size()==0){
+                    collect.add(-1L);
+                }
+                QueryWrapper<PmDemand> queryWrapper = new QueryWrapper<>();
+                queryWrapper
+                        .or(wrapper -> wrapper.lambda().eq(PmDemand::getPurchaseDeptId, sysDept.getDeptId())
+                                .eq(PmDemand::getIsExcess, IsExcess.NO_EXCESS.getCode()))
+                        .or(wrapper -> wrapper.lambda().in(PmDemand::getPurchaseDeptId, sysDepts)
+                                .eq(PmDemand::getIsExcess, IsExcess.EXCESS.getCode()))
+                        .gt("project_status",PmProjectStatus.CONTRACT_WAIT_FILL.getCode());
+                pmDemands = pmDemandMapper.selectList(queryWrapper);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return AjaxResult.success(pmDemands.size());
+    }
+
     //判断是否为超额计划
     public String isExcessOrNo(String projectType, BigDecimal evaluation) {
         BigDecimal threshold = new BigDecimal(0);

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

@@ -1,5 +1,7 @@
 package com.ozs.plan.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ozs.common.core.domain.entity.SysDept;
 import com.ozs.common.core.domain.entity.SysDictData;
@@ -10,19 +12,20 @@ import com.ozs.common.exception.ServiceException;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.plan.doman.PlanYears;
 import com.ozs.plan.doman.ProvisionalPlan;
+import com.ozs.plan.doman.vo.requestVo.ProvisionalPlanVo;
 import com.ozs.plan.mapper.PlanYearsMapper;
 import com.ozs.plan.mapper.ProvisionalPlanMapper;
 import com.ozs.plan.service.ProvisionalPlanService;
+import com.ozs.system.domain.vo.responseVo.SysDeptResponseVo;
 import com.ozs.system.mapper.SysDeptMapper;
+import com.ozs.system.service.ISysDeptService;
 import com.ozs.system.service.ISysDictTypeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
+import java.util.*;
 
 @Service
 public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMapper, ProvisionalPlan> implements ProvisionalPlanService {
@@ -33,6 +36,8 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
     private ISysDictTypeService dictTypeService;
     @Autowired
     private SysDeptMapper deptMapper;
+    @Autowired
+    private ISysDeptService deptService;
 
     @Override
     public int deleteProvisionalPlanById(Integer planYearId) {
@@ -87,17 +92,10 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
                     ofProvisionalPlan.setIsExcess(isExcessOrNo(ofProvisionalPlan.getProjectType(), ofProvisionalPlan.getEvaluation()));
                     ofProvisionalPlan.setCreated(String.valueOf(loginUser.getUserId()));
                     ofProvisionalPlan.setCreateTime(new Date());
+                    ofProvisionalPlan.setPlanType("1");
                     provisionalPlanMapper.insert(ofProvisionalPlan);
                     successNum++;
                     successMsg.append("*" + successNum + "、项目 " + ofProvisionalPlan.getProjectName() + " 导入成功!");
-                    //} else if (isUpdateSupport) {
-                    //    PlanYears years = plan.get(0);
-                    //    BeanValidators.validateWithException(validator, ofYear);
-                    //    years.setCreateTime(new Date());
-                    //    years.setProjectStatus(ProjectStatus.PLANWAITCOMMIT.getCode());
-                    //    planYearsMapper.updateById(years);
-                    //    successNum++;
-                    //    successMsg.append("<br/>" + successNum + "、项目 " + ofYear.getProjectName() + " 更新成功");
                 } else {
                     failureNum++;
                     failureMsg.append("*" + successNum + "、项目 " + ofProvisionalPlan.getProjectName() + " 已存在");
@@ -118,6 +116,45 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
         return successMsg.toString();
     }
 
+    @Override
+    public List<ProvisionalPlan> selectProvisionalPlanExport(ProvisionalPlanVo vo) {
+        List<ProvisionalPlan> list = new ArrayList<>();
+        List<ProvisionalPlan> provisionalPlanList = new ArrayList<>();
+        try {
+            int num = 1;
+            int size = 200;
+            while (size == 200) {
+                LambdaQueryWrapper<ProvisionalPlan> lw = new LambdaQueryWrapper<ProvisionalPlan>();
+                if (!ObjectUtils.isEmpty(vo.getProjectName())) {
+                    lw.like(ProvisionalPlan::getProjectName, vo.getProjectName());
+                }
+                if (!ObjectUtils.isEmpty(vo.getPurchaseServices())) {
+                    lw.eq(ProvisionalPlan::getPurchaseServices, vo.getPurchaseServices());
+                }
+                if (!ObjectUtils.isEmpty(vo.getIsExcess())) {
+                    lw.eq(ProvisionalPlan::getIsExcess, vo.getIsExcess());
+                }
+                if (!ObjectUtils.isEmpty(vo.getProjectStatus())) {
+                    lw.eq(ProvisionalPlan::getProjectStatus, vo.getProjectStatus());
+                }
+                if (!ObjectUtils.isEmpty(vo.getStartTime())) {
+                    lw.ge(ProvisionalPlan::getPlanDemandSubTime, vo.getStartTime());
+                }
+                if (!ObjectUtils.isEmpty(vo.getEndTime())) {
+                    lw.le(ProvisionalPlan::getPlanDemandSubTime, vo.getEndTime());
+                }
+                Page<ProvisionalPlan> page = provisionalPlanMapper.selectPage(new Page<ProvisionalPlan>(num, size, false), lw);
+                list.addAll(page.getRecords());
+                size = page.getRecords().size();
+                num++;
+            }
+            provisionalPlanList = changeTo(list);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return provisionalPlanList;
+    }
+
     //判断是否为超额计划
     public String isExcessOrNo(String projectType, BigDecimal evaluation) {
         BigDecimal threshold = new BigDecimal(0);
@@ -143,4 +180,62 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
             return ("0");
         }
     }
+
+    //字段赋值对应的名称
+    public List<ProvisionalPlan> changeTo(List<ProvisionalPlan> provisionalPlans) {
+        HashMap<String, HashMap<String, String>> planEnums = dictTypeService.getAboutEnums();
+        HashMap<String, String> projectTypesMap = planEnums.get("projectTypes");
+        HashMap<String, String> planPurchaseModesMap = planEnums.get("planPurchaseModes");
+        HashMap<String, String> projectAttributes = planEnums.get("projectAttributes");
+        HashMap<String, String> purchaseServices = planEnums.get("purchaseServices");
+        List<ProvisionalPlan> list = new ArrayList<ProvisionalPlan>();
+        for (ProvisionalPlan provisionalPlan : provisionalPlans) {
+            if (provisionalPlan.getPurchaseDeptId() != null) {
+                SysDeptResponseVo sysDeptResponseVo = (SysDeptResponseVo) deptService.selectDeptById(provisionalPlan.getPurchaseDeptId()).get("sysDept");
+                provisionalPlan.setPurchaseDeptName(sysDeptResponseVo.getDeptName());
+            }
+            for (Map.Entry<String, String> entry : projectTypesMap.entrySet()) {
+                if (provisionalPlan.getProjectType() != null && provisionalPlan.getProjectType().equals(entry.getValue())) {
+                    provisionalPlan.setProjectTypeStr(entry.getKey());
+                    break;
+                }
+            }
+            for (Map.Entry<String, String> entry : planPurchaseModesMap.entrySet()) {
+                if (provisionalPlan.getPurchaseMode() != null && provisionalPlan.getPurchaseMode().equals(entry.getValue())) {
+                    provisionalPlan.setPurchaseModeStr(entry.getKey());
+                    break;
+                }
+            }
+            //项目属性是拼接的
+            if (provisionalPlan.getProjectAttr().length() > 1) {
+                StringBuilder builder = new StringBuilder();
+                String[] split = provisionalPlan.getProjectAttr().split(",");
+                for (String s : split) {
+                    for (Map.Entry<String, String> entry : projectAttributes.entrySet()) {
+                        if (s.equals(entry.getValue())) {
+                            builder.append(entry.getKey() + ",");
+                            break;
+                        }
+                    }
+                }
+                provisionalPlan.setProjectAttrStr(builder.toString());
+            } else {
+                for (Map.Entry<String, String> entry : projectAttributes.entrySet()) {
+                    if (provisionalPlan.getProjectAttr() != null && provisionalPlan.getProjectAttr().equals(entry.getValue())) {
+                        provisionalPlan.setProjectAttrStr(entry.getKey());
+                        break;
+                    }
+                }
+            }
+            for (Map.Entry<String, String> entry : purchaseServices.entrySet()) {
+                if (provisionalPlan.getPurchaseServices() != null && provisionalPlan.getPurchaseServices().equals(entry.getValue())) {
+                    provisionalPlan.setPurchaseServicesStr(entry.getKey());
+                    break;
+                }
+            }
+
+            list.add(provisionalPlan);
+        }
+        return list;
+    }
 }

+ 2 - 0
purchase-system/src/main/java/com/ozs/pm/mapper/PmDemandMapper.java

@@ -1,5 +1,7 @@
 package com.ozs.pm.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.plan.doman.PlanYears;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ozs.pm.doman.PmDemand;
 

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

@@ -65,7 +65,7 @@ public interface IPmDemandService extends IService<PmDemand>
      * @param demandId 采购需求主键
      * @return 采购需求
      */
-    public String viewFlowChart(Long demandId);
+    public Object viewFlowChart(Long demandId);
 
     /**
      * 查看流程图

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

@@ -3,6 +3,7 @@ package com.ozs.pm.service.impl;
 import java.util.*;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -24,6 +25,7 @@ import com.ozs.system.service.SysFileRefService;
 import com.ozs.system.service.SysFileService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 import org.springframework.util.ObjectUtils;
 
 
@@ -414,17 +416,35 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
             List<PmDemandEquip> pmDemandEquipList = iPmDemandEquipService.selectPmDemandEquipList(pmDemandEquipReq);
             if(pmDemandEquipList != null && pmDemandEquipList.size() > 0){
                 pmDemandEquip = pmDemandEquipList.get(0);
+                pmDemandEquipReqVo.setDemandEquipId(pmDemandEquip.getDemandEquipId());
                 BeanUtils.copyProperties(pmDemandEquipReqVo,pmDemandEquip);
+                pmDemandEquip.setUpdateBy(vo.getUpdateBy());
+                pmDemandEquip.setUpdateTime(new Date());
                 iPmDemandEquipService.updatePmDemandEquip(pmDemandEquip);
             } else {
                 pmDemandEquip = new PmDemandEquip();
                 BeanUtils.copyProperties(pmDemandEquipReqVo,pmDemandEquip);
+                pmDemandEquip.setCreateBy(vo.getUpdateBy());
+                pmDemandEquip.setCreateTime(new Date());
+                pmDemandEquip.setUpdateBy(vo.getUpdateBy());
+                pmDemandEquip.setUpdateTime(new Date());
                 iPmDemandEquipService.insertPmDemandEquip(pmDemandEquip);
             }
 
             List<SysFileRef> sysFileRefs = pmDemandEquipReqVo.getSysFileRefs();
             if (!ObjectUtils.isEmpty(sysFileRefs)) {
                 for (SysFileRef ref : sysFileRefs) {
+                    if(ref.getFileId() == null){
+                        continue;
+                    }
+                    QueryWrapper<SysFileRef> queryWrapper = new QueryWrapper<>();
+                    queryWrapper.lambda().eq(SysFileRef::getFileId,ref.getFileId())
+                            .eq(SysFileRef::getRedId,pmDemandEquip.getDemandEquipId())
+                            .eq(SysFileRef::getType,SysFileRefEnum.PM_DEMAND_EQUIP.getType());
+                    List<SysFileRef> sysFileRefList = sysFileRefService.list(queryWrapper);
+                    if(!CollectionUtils.isEmpty(sysFileRefList)){
+                        sysFileRefService.remove(queryWrapper);
+                    }
                     ref.setRedId(pmDemandEquip.getDemandEquipId());
                     ref.setType(SysFileRefEnum.PM_DEMAND_EQUIP.getType());
                     ref.setCreated(vo.getUpdateBy());
@@ -442,17 +462,35 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
             List<PmDemandMaterials> pmDemandMaterialsList = iPmDemandMaterialsService.selectPmDemandMaterialsList(pmDemandMaterialsReq);
             if(pmDemandMaterialsList != null && pmDemandMaterialsList.size() > 0){
                 pmDemandMaterials = pmDemandMaterialsList.get(0);
+                pmDemandMaterialsReqVo.setDemandMaterialsId(pmDemandMaterials.getDemandMaterialsId());
                 BeanUtils.copyProperties(pmDemandMaterialsReqVo,pmDemandMaterials);
+                pmDemandMaterials.setUpdateBy(vo.getUpdateBy());
+                pmDemandMaterials.setUpdateTime(new Date());
                 iPmDemandMaterialsService.updatePmDemandMaterials(pmDemandMaterials);
             } else {
                 pmDemandMaterials = new PmDemandMaterials();
                 BeanUtils.copyProperties(pmDemandMaterialsReqVo,pmDemandMaterials);
+                pmDemandMaterials.setCreateBy(vo.getUpdateBy());
+                pmDemandMaterials.setCreateTime(new Date());
+                pmDemandMaterials.setUpdateBy(vo.getUpdateBy());
+                pmDemandMaterials.setUpdateTime(new Date());
                 iPmDemandMaterialsService.insertPmDemandMaterials(pmDemandMaterials);
             }
 
             List<SysFileRef> sysFileRefs = pmDemandMaterialsReqVo.getSysFileRefs();
             if (!ObjectUtils.isEmpty(sysFileRefs)) {
                 for (SysFileRef ref : sysFileRefs) {
+                    if(ref.getFileId() == null){
+                        continue;
+                    }
+                    QueryWrapper<SysFileRef> queryWrapper = new QueryWrapper<>();
+                    queryWrapper.lambda().eq(SysFileRef::getFileId,ref.getFileId())
+                            .eq(SysFileRef::getRedId,pmDemandMaterials.getDemandMaterialsId())
+                            .eq(SysFileRef::getType,SysFileRefEnum.PM_DEMAND_MATERIALS.getType());
+                    List<SysFileRef> sysFileRefList = sysFileRefService.list(queryWrapper);
+                    if(!CollectionUtils.isEmpty(sysFileRefList)){
+                        sysFileRefService.remove(queryWrapper);
+                    }
                     ref.setRedId(pmDemandMaterials.getDemandMaterialsId());
                     ref.setType(SysFileRefEnum.PM_DEMAND_MATERIALS.getType());
                     ref.setCreated(vo.getUpdateBy());
@@ -470,16 +508,34 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
             List<PmDemandServe> pmDemandServeList = iPmDemandServeService.selectPmDemandServeList(pmDemandServeReq);
             if(pmDemandServeList != null && pmDemandServeList.size() > 0){
                 pmDemandServe = pmDemandServeList.get(0);
+                pmDemandServeReqVo.setDemandServeId(pmDemandServe.getDemandServeId());
                 BeanUtils.copyProperties(pmDemandServeReqVo,pmDemandServe);
+                pmDemandServe.setUpdateBy(vo.getUpdateBy());
+                pmDemandServe.setUpdateTime(new Date());
                 iPmDemandServeService.updatePmDemandServe(pmDemandServe);
             } else {
                 pmDemandServe = new PmDemandServe();
                 BeanUtils.copyProperties(pmDemandServeReqVo,pmDemandServe);
+                pmDemandServe.setCreateBy(vo.getUpdateBy());
+                pmDemandServe.setCreateTime(new Date());
+                pmDemandServe.setUpdateBy(vo.getUpdateBy());
+                pmDemandServe.setUpdateTime(new Date());
                 iPmDemandServeService.insertPmDemandServe(pmDemandServe);
             }
             List<SysFileRef> sysFileRefs = pmDemandServeReqVo.getSysFileRefs();
             if (!ObjectUtils.isEmpty(sysFileRefs)) {
                 for (SysFileRef ref : sysFileRefs) {
+                    if(ref.getFileId() == null){
+                        continue;
+                    }
+                    QueryWrapper<SysFileRef> queryWrapper = new QueryWrapper<>();
+                    queryWrapper.lambda().eq(SysFileRef::getFileId,ref.getFileId())
+                            .eq(SysFileRef::getRedId,pmDemandServe.getDemandServeId())
+                            .eq(SysFileRef::getType,SysFileRefEnum.PM_DEMAND_SERVE.getType());
+                    List<SysFileRef> sysFileRefList = sysFileRefService.list(queryWrapper);
+                    if(!CollectionUtils.isEmpty(sysFileRefList)){
+                        sysFileRefService.remove(queryWrapper);
+                    }
                     ref.setRedId(pmDemandServe.getDemandServeId());
                     ref.setType(SysFileRefEnum.PM_DEMAND_SERVE.getType());
                     ref.setCreated(vo.getUpdateBy());
@@ -497,16 +553,34 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
             List<PmDemandEngineering> pmDemandEngineeringList = iPmDemandEngineeringService.selectPmDemandEngineeringList(pmDemandEngineeringReq);
             if(pmDemandEngineeringList != null && pmDemandEngineeringList.size() > 0){
                 pmDemandEngineering = pmDemandEngineeringList.get(0);
+                pmDemandEngineeringReqVo.setDemandEngineeringId(pmDemandEngineering.getDemandEngineeringId());
                 BeanUtils.copyProperties(pmDemandEngineeringReqVo,pmDemandEngineering);
+                pmDemandEngineering.setUpdateBy(vo.getUpdateBy());
+                pmDemandEngineering.setUpdateTime(new Date());
                 iPmDemandEngineeringService.updatePmDemandEngineering(pmDemandEngineering);
             } else {
                 pmDemandEngineering = new PmDemandEngineering();
                 BeanUtils.copyProperties(pmDemandEngineeringReqVo,pmDemandEngineering);
+                pmDemandEngineering.setCreateBy(vo.getUpdateBy());
+                pmDemandEngineering.setCreateTime(new Date());
+                pmDemandEngineering.setUpdateBy(vo.getUpdateBy());
+                pmDemandEngineering.setUpdateTime(new Date());
                 iPmDemandEngineeringService.insertPmDemandEngineering(pmDemandEngineering);
             }
             List<SysFileRef> sysFileRefs = pmDemandEngineeringReqVo.getSysFileRefs();
             if (!ObjectUtils.isEmpty(sysFileRefs)) {
                 for (SysFileRef ref : sysFileRefs) {
+                    if(ref.getFileId() == null){
+                        continue;
+                    }
+                    QueryWrapper<SysFileRef> queryWrapper = new QueryWrapper<>();
+                    queryWrapper.lambda().eq(SysFileRef::getFileId,ref.getFileId())
+                            .eq(SysFileRef::getRedId,pmDemandEngineering.getDemandEngineeringId())
+                            .eq(SysFileRef::getType,SysFileRefEnum.PM_DEMAND_ENGINEERING.getType());
+                    List<SysFileRef> sysFileRefList = sysFileRefService.list(queryWrapper);
+                    if(!CollectionUtils.isEmpty(sysFileRefList)){
+                        sysFileRefService.remove(queryWrapper);
+                    }
                     ref.setRedId(pmDemandEngineering.getDemandEngineeringId());
                     ref.setType(SysFileRefEnum.PM_DEMAND_ENGINEERING.getType());
                     ref.setCreated(vo.getUpdateBy());
@@ -549,7 +623,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
      * @return 采购需求
      */
     @Override
-    public String viewFlowChart(Long demandId) {
+    public Object viewFlowChart(Long demandId) {
         PmDemand pmDemand = pmDemandMapper.selectPmDemandByDemandId(demandId);
         String projectStatus = String.valueOf(pmDemand.getProjectStatus());
         String moduleName = null;
@@ -677,6 +751,17 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         List<SysFileRef> sysFileRefs = pmDemandReqVo.getSysFileRefs();
         if (!ObjectUtils.isEmpty(sysFileRefs)) {
             for (SysFileRef ref : sysFileRefs) {
+                if(ref.getFileId() == null){
+                    continue;
+                }
+                QueryWrapper<SysFileRef> queryWrapper = new QueryWrapper<>();
+                queryWrapper.lambda().eq(SysFileRef::getFileId,ref.getFileId())
+                        .eq(SysFileRef::getRedId,pmDemandReqVo.getDemandId())
+                        .eq(SysFileRef::getType,SysFileRefEnum.PM_DEMAND_EXAMINE.getType());
+                List<SysFileRef> sysFileRefList = sysFileRefService.list(queryWrapper);
+                if(!CollectionUtils.isEmpty(sysFileRefList)){
+                    sysFileRefService.remove(queryWrapper);
+                }
                 ref.setRedId(pmDemandReqVo.getDemandId());
                 ref.setType(SysFileRefEnum.PM_DEMAND_EXAMINE.getType());
                 ref.setCreated(pmDemandReqVo.getUpdateBy());
@@ -724,6 +809,17 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         List<SysFileRef> sysFileRefs = pmDemandReqVo.getSysFileRefs();
         if (!ObjectUtils.isEmpty(sysFileRefs)) {
             for (SysFileRef ref : sysFileRefs) {
+                if(ref.getFileId() == null){
+                    continue;
+                }
+                QueryWrapper<SysFileRef> queryWrapper = new QueryWrapper<>();
+                queryWrapper.lambda().eq(SysFileRef::getFileId,ref.getFileId())
+                        .eq(SysFileRef::getRedId,pmDemandReqVo.getDemandId())
+                        .eq(SysFileRef::getType,SysFileRefEnum.PM_TAST_RELEASE.getType());
+                List<SysFileRef> sysFileRefList = sysFileRefService.list(queryWrapper);
+                if(!CollectionUtils.isEmpty(sysFileRefList)){
+                    sysFileRefService.remove(queryWrapper);
+                }
                 ref.setRedId(pmDemandReqVo.getDemandId());
                 ref.setType(SysFileRefEnum.PM_TAST_RELEASE.getType());
                 ref.setCreated(pmDemandReqVo.getUpdateBy());

+ 2 - 2
purchase-system/src/main/java/com/ozs/system/domain/SysFileRef.java

@@ -37,8 +37,8 @@ public class SysFileRef extends BaseDto
     @Excel(name = "附件主键")
     private Long fileId;
 
-    /** 来源类型:年度1;季度2;临时3,项目4 */
-    @Excel(name = "来源类型:年度1;季度2;临时3,项目4")
+    /** 来源类型:年度1;季度2;临时3,采购需求附件4 ... */
+    @Excel(name = "来源类型:年度1;季度2;临时3,采购需求附件4, ...")
     private Integer type;
 
 

+ 1 - 1
purchase-system/src/main/java/com/ozs/system/domain/vo/requestVo/SysProcurementStandardVo.java

@@ -23,7 +23,7 @@ public class SysProcurementStandardVo implements Serializable {
     @ApiModelProperty(value = "部门ID")
     private Long deptId;
 
-    /** 类别(0装备类1服务类2装备类3工程类) */
+    /** 类别(0装备类1服务类2物资类3工程类) */
     @ApiModelProperty(value = "类别")
     private Integer category;
 

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

@@ -462,7 +462,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     {
         for (Long userId : userIds)
         {
-            checkUserAllowed(new SysUser(userId));
+//            checkUserAllowed(new SysUser(userId));
             checkUserDataScope(userId);
         }
         // 删除用户与角色关联

+ 7 - 0
purchase-system/src/main/resources/mapper/home/HomeNoticeMapper.xml

@@ -0,0 +1,7 @@
+<?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.home.mapper.HomeNoticeMapper">
+
+</mapper>

+ 7 - 0
purchase-system/src/main/resources/mapper/home/HomeNotificationMessageMapper.xml

@@ -0,0 +1,7 @@
+<?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.home.mapper.HomeNotificationMessageMapper">
+
+</mapper>

+ 1 - 1
purchase-system/src/main/resources/mapper/plan/ProvisionalPlanMapper.xml

@@ -102,6 +102,6 @@
 	</update>
 
 	<select id="selectProjectName" resultType="com.ozs.plan.doman.ProvisionalPlan" parameterType="java.lang.String">
-		select * from plan_practical where project_name = #{projectName} and del_flay = 0 and plan_type = 1
+		select * from plan_practical where project_name = #{projectName} and del_flay = 0 and plan_type = "1"
 	</select>
 </mapper>

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

@@ -60,7 +60,7 @@
     </select>
 
     <select id="selectDeptById" parameterType="Long" resultMap="SysDeptResult">
-		select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status,
+		select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status,d.remarks,d.address,
 			(select dept_name from sys_dept where dept_id = d.parent_id) parent_name
 		from sys_dept d
 		where d.dept_id = #{deptId}