| 
					
				 | 
			
			
				@@ -1,32 +1,49 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.ozs.web.controller.plan; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.github.pagehelper.PageInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.common.annotation.Log; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ozs.common.constant.Constants; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 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.entity.SysDept; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ozs.common.core.domain.entity.SysRole; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.common.core.domain.model.LoginUser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.common.enums.BusinessType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ozs.common.enums.DataIsDelete; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.common.exception.ServiceException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ozs.common.utils.PageUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.common.utils.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.common.utils.poi.ExcelUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.framework.web.service.TokenService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ozs.plan.doman.PlanQuarter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.plan.doman.ProvisionalPlan; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.plan.doman.vo.requestVo.ProvisionalPlanVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ozs.plan.doman.vo.responseVo.PlanQuarterResponseVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ozs.plan.service.PlanQuarterService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ozs.plan.service.ProvisionalPlanService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ozs.plan.service.impl.PlanQuarterServiceImpl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ozs.system.service.ISysDeptService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import io.swagger.annotations.Api; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import io.swagger.annotations.ApiOperation; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.security.access.prepost.PreAuthorize; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.util.ObjectUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.web.bind.annotation.PostMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.web.bind.annotation.RequestBody; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.web.bind.annotation.RequestMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 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.text.SimpleDateFormat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.Date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * 临时计划 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -38,14 +55,20 @@ import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @RequestMapping("/plan/provisionalPlan") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public class ProvisionalPlanController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private PlanQuarterService quarterService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private PlanQuarterServiceImpl quarterServiceImpl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private ProvisionalPlanService provisionalPlanService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private TokenService tokenService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private ISysDeptService iSysDeptService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperation(value = "新增临时计划") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @PostMapping("/insertProvisionalPlan") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @PreAuthorize("@ss.hasPermi('base:provisionalPlan:insertProvisionalPlan')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('provisionalPlan:insertProvisionalPlan')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.INSERT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public AjaxResult insertProvisionalPlan(@RequestBody ProvisionalPlan provisionalPlan, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //获取采购单位 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -62,7 +85,7 @@ public class ProvisionalPlanController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperation(value = "删除临时计划", notes = "必传 plan_practical_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @PostMapping("/deleteProvisionalPlan") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @PreAuthorize("@ss.hasPermi('base:provisionalPlan:deleteProvisionalPlan')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('provisionalPlan:deleteProvisionalPlan')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.DELETE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public AjaxResult deleteProvisionalPlan(@RequestBody ProvisionalPlan provisionalPlan) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (StringUtils.isNull(provisionalPlan) || StringUtils.isNull(provisionalPlan.getPlanPracticalId())) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -73,7 +96,7 @@ public class ProvisionalPlanController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperation(value = "修改临时计划", notes = "必传 plan_year_id 及修改数据") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @PostMapping("/updateProvisionalPlan") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @PreAuthorize("@ss.hasPermi('base:provisionalPlan:updateProvisionalPlan')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('provisionalPlan:updateProvisionalPlan')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.UPDATE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public AjaxResult updateProvisionalPlan(@RequestBody ProvisionalPlanVo provisionalPlan) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (StringUtils.isNull(provisionalPlan) || StringUtils.isNull(provisionalPlan.getPlanPracticalId())) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -84,49 +107,179 @@ public class ProvisionalPlanController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperation(value = "查询临时计划") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @PostMapping("/selectProvisionalPlan") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('provisionalPlan:selectProvisionalPlan')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.QUERY) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public AjaxResult selectProvisionalPlan(@RequestBody ProvisionalPlanVo provisionalPlanVo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        LambdaQueryWrapper<ProvisionalPlan> lw = new LambdaQueryWrapper<ProvisionalPlan>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        // planType计划类型(0:季度计划,1:临时计划) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        lw.eq(ProvisionalPlan::getPlanType, "1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        if (!StringUtils.isBlank(provisionalPlanVo.getProjectName())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            lw.like(ProvisionalPlan::getProjectName, provisionalPlanVo.getProjectName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        if (!StringUtils.isBlank(provisionalPlanVo.getPurchaseServices())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            lw.eq(ProvisionalPlan::getPurchaseServices, provisionalPlanVo.getPurchaseServices()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        if (!ObjectUtils.isEmpty(provisionalPlanVo.getProjectStatus())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            lw.eq(ProvisionalPlan::getProjectStatus, provisionalPlanVo.getProjectStatus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        if (!ObjectUtils.isEmpty(provisionalPlanVo.getStartTime()) || !ObjectUtils.isEmpty(provisionalPlanVo.getEndTime())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            lw.between(ProvisionalPlan::getPlanDemandSubTime, provisionalPlanVo.getStartTime(), provisionalPlanVo.getEndTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        IPage<ProvisionalPlan> page = provisionalPlanService.page(new Page<ProvisionalPlan>(provisionalPlanVo.getPageNum(), provisionalPlanVo.getPageSize()), lw); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        return success(page); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (StringUtils.isNull(provisionalPlanVo) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                || StringUtils.isNull(provisionalPlanVo.getPageNum()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                || StringUtils.isNull(provisionalPlanVo.getPageSize())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            throw new ServiceException("查询条件及分页不能为空!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public AjaxResult selectProvisionalPlan(@RequestBody ProvisionalPlanVo vo, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (StringUtils.isNull(vo) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                || StringUtils.isNull(vo.getPageNum()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                || StringUtils.isNull(vo.getPageSize())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw new ServiceException("分页参数不能为空!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<PlanQuarterResponseVo> planQuarterList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            LambdaQueryWrapper<PlanQuarter> lw = new LambdaQueryWrapper<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lw.eq(PlanQuarter::getDelFlay, DataIsDelete.DataNOTDelete.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lw.eq(PlanQuarter::getPlanType, "1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!ObjectUtils.isEmpty(vo.getProjectName())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                lw.like(PlanQuarter::getProjectName, vo.getProjectName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!ObjectUtils.isEmpty(vo.getPurchaseServices())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                lw.eq(PlanQuarter::getPurchaseServices, vo.getPurchaseServices()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!ObjectUtils.isEmpty(vo.getIsExcess())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                lw.eq(PlanQuarter::getIsExcess, vo.getIsExcess()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!ObjectUtils.isEmpty(vo.getProjectStatus())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                lw.eq(PlanQuarter::getProjectStatus, vo.getProjectStatus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!ObjectUtils.isEmpty(vo.getStartTime())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                lw.ge(PlanQuarter::getPlanDemandSubTime, vo.getStartTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!ObjectUtils.isEmpty(vo.getEndTime())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                SimpleDateFormat dateFormatT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Date parse = dateFormatT.parse(dateFormat.format(vo.getEndTime()) + " 23:59:59:999"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                lw.le(PlanQuarter::getPlanDemandSubTime, parse); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            LoginUser loginUser = tokenService.getLoginUser(request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 添加数据权限 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<String> roleKeys = loginUser.getUser().getRoles().stream().map(SysRole::getRoleKey).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (roleKeys.contains(Constants.DEMAND_UNIT)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 需求单位 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                /*(purchase_dept_id = 当前用户deptID) */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                lw.eq(PlanQuarter::getPurchaseDeptId, loginUser.getDeptId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else if (roleKeys.contains(Constants.PURCHASING_MANAGEMENT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    || roleKeys.contains(Constants.PURCHASE_SERVICES)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 采购管理部门  或  采购办 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            /*  (purchase_dept_id = 当前用户deptID  AND  is_excess = 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                OR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (purchase_dept_id IN (当前用户 子deptId 集合) and AND  is_excess = 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                SysDept sysDept = new SysDept(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sysDept.setParentId(loginUser.getDeptId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sysDept.setStatus("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<Long> childDeptIds = iSysDeptService.selectDeptList(sysDept) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .map(SysDept::getDeptId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (ObjectUtils.isEmpty(childDeptIds)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    lw.and((wrapper) -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        wrapper.eq(PlanQuarter::getIsExcess, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        wrapper.eq(PlanQuarter::getPurchaseDeptId, loginUser.getDeptId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    lw.and((wrapper) -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        wrapper.eq(PlanQuarter::getIsExcess, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        wrapper.eq(PlanQuarter::getPurchaseDeptId, loginUser.getDeptId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .or((wrapper) -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                wrapper.eq(PlanQuarter::getIsExcess, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                wrapper.in(PlanQuarter::getPurchaseDeptId, childDeptIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lw.orderBy(true, false, PlanQuarter::getCreateTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<PlanQuarter> list = quarterService.list(lw); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            planQuarterList = quarterServiceImpl.changeTo(list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        PageInfo<ProvisionalPlan> page = provisionalPlanService.selectProvisionalPlan(provisionalPlanVo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return success(page); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Page pages = PageUtils.getPages(vo.getPageNum().intValue(), vo.getPageSize().intValue(), planQuarterList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return AjaxResult.success(pages); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperation(value = "查询临时计划-审核单位") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @PostMapping("/selectProvisionalPlanAudit") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('provisionalPlan:selectProvisionalPlanAudit')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.QUERY) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public AjaxResult selectProvisionalPlanAudit(@RequestBody ProvisionalPlanVo provisionalPlanVo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (StringUtils.isNull(provisionalPlanVo) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                || StringUtils.isNull(provisionalPlanVo.getPageNum()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                || StringUtils.isNull(provisionalPlanVo.getPageSize())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            throw new ServiceException("查询条件及分页不能为空!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public AjaxResult selectProvisionalPlanAudit(@RequestBody ProvisionalPlanVo vo, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (StringUtils.isNull(vo) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                || StringUtils.isNull(vo.getPageNum()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                || StringUtils.isNull(vo.getPageSize())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw new ServiceException("分页参数不能为空!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        PageInfo<ProvisionalPlan> page = provisionalPlanService.selectProvisionalPlanAudit(provisionalPlanVo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return success(page); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<PlanQuarterResponseVo> planQuarterList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            LambdaQueryWrapper<PlanQuarter> lw = new LambdaQueryWrapper<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lw.eq(PlanQuarter::getDelFlay, DataIsDelete.DataNOTDelete.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lw.eq(PlanQuarter::getPlanType, "1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!ObjectUtils.isEmpty(vo.getProjectName())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                lw.like(PlanQuarter::getProjectName, vo.getProjectName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!ObjectUtils.isEmpty(vo.getPurchaseServices())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                lw.eq(PlanQuarter::getPurchaseServices, vo.getPurchaseServices()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!ObjectUtils.isEmpty(vo.getIsExcess())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                lw.eq(PlanQuarter::getIsExcess, vo.getIsExcess()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!ObjectUtils.isEmpty(vo.getProjectStatus())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                lw.eq(PlanQuarter::getProjectStatus, vo.getProjectStatus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                lw.apply("  project_status IN (1,3)", ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!ObjectUtils.isEmpty(vo.getStartTime())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                lw.ge(PlanQuarter::getPlanDemandSubTime, vo.getStartTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!ObjectUtils.isEmpty(vo.getEndTime())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                SimpleDateFormat dateFormatT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Date parse = dateFormatT.parse(dateFormat.format(vo.getEndTime()) + " 23:59:59:999"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                lw.le(PlanQuarter::getPlanDemandSubTime, parse); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            LoginUser loginUser = tokenService.getLoginUser(request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 添加数据权限 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<String> roleKeys = loginUser.getUser().getRoles().stream().map(SysRole::getRoleKey).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (roleKeys.contains(Constants.DEMAND_UNIT)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 需求单位 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                /*(purchase_dept_id = 当前用户deptID) */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                lw.eq(PlanQuarter::getPurchaseDeptId, loginUser.getDeptId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else if (roleKeys.contains(Constants.PURCHASING_MANAGEMENT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    || roleKeys.contains(Constants.PURCHASE_SERVICES)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 采购管理部门  或  采购办 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            /*  (purchase_dept_id = 当前用户deptID  AND  is_excess = 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                OR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (purchase_dept_id IN (当前用户 子deptId 集合) and AND  is_excess = 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                SysDept sysDept = new SysDept(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sysDept.setParentId(loginUser.getDeptId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sysDept.setStatus("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<Long> childDeptIds = iSysDeptService.selectDeptList(sysDept) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .map(SysDept::getDeptId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (ObjectUtils.isEmpty(childDeptIds)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    lw.and((wrapper) -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        wrapper.eq(PlanQuarter::getIsExcess, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        wrapper.eq(PlanQuarter::getPurchaseDeptId, loginUser.getDeptId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    lw.and((wrapper) -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        wrapper.eq(PlanQuarter::getIsExcess, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        wrapper.eq(PlanQuarter::getPurchaseDeptId, loginUser.getDeptId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .or((wrapper) -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                wrapper.eq(PlanQuarter::getIsExcess, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                wrapper.in(PlanQuarter::getPurchaseDeptId, childDeptIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lw.orderBy(true, false, PlanQuarter::getCreateTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<PlanQuarter> list = quarterService.list(lw); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            planQuarterList = quarterServiceImpl.changeTo(list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Page pages = PageUtils.getPages(vo.getPageNum().intValue(), vo.getPageSize().intValue(), planQuarterList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return AjaxResult.success(pages); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperation(value = "查询临时计划详情") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @PostMapping("/selectById") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('provisionalPlan:selectById')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.QUERY) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public AjaxResult selectById(@RequestBody ProvisionalPlanVo provisionalPlanVo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (StringUtils.isNull(provisionalPlanVo) || StringUtils.isNull(provisionalPlanVo.getPlanPracticalId())) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -137,7 +290,7 @@ public class ProvisionalPlanController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperation(value = "导入临时计划") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @PostMapping("/importProvisionalPlan") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @PreAuthorize("@ss.hasPermi('base:provisionalPlan:importProvisionalPlan')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('provisionalPlan:importProvisionalPlan')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.INSERT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public AjaxResult importProvisionalPlan(MultipartFile file, boolean updateSupport) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ExcelUtil<ProvisionalPlan> util = new ExcelUtil<>(ProvisionalPlan.class); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -153,6 +306,7 @@ public class ProvisionalPlanController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperation(value = "导出临时计划") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @PostMapping("/exportProvisionalPlan") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('provisionalPlan:exportProvisionalPlan')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.EXPORT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public void exportProvisionalPlan(HttpServletResponse response, @RequestBody ProvisionalPlanVo provisionalPlanVo) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<ProvisionalPlan> list = provisionalPlanService.selectProvisionalPlanExport(provisionalPlanVo); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -162,7 +316,7 @@ public class ProvisionalPlanController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperation(value = "提交临时计划") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @PostMapping("/commitProvisionalPlan") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @PreAuthorize("@ss.hasPermi('base:provisionalPlan:commitProvisionalPlan')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('provisionalPlan:commitProvisionalPlan')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.UPDATE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public AjaxResult commitProvisionalPlan(@RequestBody ProvisionalPlanVo provisionalPlanVo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (StringUtils.isNull(provisionalPlanVo) || StringUtils.isNull(provisionalPlanVo.getPlanPracticalId())) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -173,6 +327,7 @@ public class ProvisionalPlanController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperation(value = "审核通过") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @PostMapping("/auditPass") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('provisionalPlan:auditPass')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.UPDATE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public AjaxResult auditPass(@RequestBody ProvisionalPlanVo provisionalPlanVo, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (StringUtils.isNull(provisionalPlanVo) || StringUtils.isNull(provisionalPlanVo.getPlanPracticalId())) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -185,6 +340,7 @@ public class ProvisionalPlanController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperation(value = "审核不通过") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @PostMapping("/auditNoPass") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('provisionalPlan:auditNoPass')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Log(title = ModularConstans.provisionalPlan, businessType = BusinessType.UPDATE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public AjaxResult auditNoPass(@RequestBody ProvisionalPlanVo provisionalPlanVo, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (StringUtils.isNull(provisionalPlanVo) || StringUtils.isNull(provisionalPlanVo.getPlanPracticalId())) { 
			 |