|
@@ -4,23 +4,24 @@ 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import com.github.pagehelper.PageHelper;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
+import com.ozs.common.constant.Constants;
|
|
|
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.SysRole;
|
|
|
import com.ozs.common.core.domain.model.LoginUser;
|
|
|
+import com.ozs.common.enums.DataIsDelete;
|
|
|
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.PageUtils;
|
|
|
import com.ozs.common.utils.StringUtils;
|
|
|
import com.ozs.common.utils.bean.BeanUtils;
|
|
|
-import com.ozs.plan.doman.PlanQuarter;
|
|
|
import com.ozs.plan.doman.PlanYears;
|
|
|
import com.ozs.plan.doman.ProvisionalPlan;
|
|
|
-import com.ozs.plan.doman.vo.requestVo.PlanQuarterStandardVo;
|
|
|
import com.ozs.plan.doman.vo.requestVo.ProvisionalPlanVo;
|
|
|
import com.ozs.plan.mapper.PlanYearsMapper;
|
|
|
import com.ozs.plan.mapper.ProvisionalPlanMapper;
|
|
@@ -39,8 +40,11 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.ObjectUtils;
|
|
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMapper, ProvisionalPlan> implements ProvisionalPlanService {
|
|
@@ -140,7 +144,7 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<ProvisionalPlan> selectProvisionalPlanExport(ProvisionalPlanVo vo) {
|
|
|
+ public List<ProvisionalPlan> selectProvisionalPlanExport(ProvisionalPlanVo vo, LoginUser loginUser) {
|
|
|
List<ProvisionalPlan> list = new ArrayList<>();
|
|
|
List<ProvisionalPlan> provisionalPlanList = new ArrayList<>();
|
|
|
try {
|
|
@@ -148,6 +152,7 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
|
|
|
int size = 200;
|
|
|
while (size == 200) {
|
|
|
LambdaQueryWrapper<ProvisionalPlan> lw = new LambdaQueryWrapper<ProvisionalPlan>();
|
|
|
+ lw.eq(ProvisionalPlan::getPlanType, "1");
|
|
|
if (!ObjectUtils.isEmpty(vo.getProjectName())) {
|
|
|
lw.like(ProvisionalPlan::getProjectName, vo.getProjectName());
|
|
|
}
|
|
@@ -166,6 +171,38 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
|
|
|
if (!ObjectUtils.isEmpty(vo.getEndTime())) {
|
|
|
lw.le(ProvisionalPlan::getPlanDemandSubTime, vo.getEndTime());
|
|
|
}
|
|
|
+ // 添加数据权限
|
|
|
+ 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(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId());
|
|
|
+ } else if (roleKeys.contains(Constants.PURCHASING_MANAGEMENT)
|
|
|
+ || roleKeys.contains(Constants.PURCHASE_SERVICES)) {
|
|
|
+ // 采购管理部门 或 采购办
|
|
|
+ SysDept sysDept = new SysDept();
|
|
|
+ sysDept.setParentId(loginUser.getDeptId());
|
|
|
+ sysDept.setStatus("0");
|
|
|
+ List<Long> childDeptIds = deptService.selectDeptList(sysDept)
|
|
|
+ .stream()
|
|
|
+ .map(SysDept::getDeptId)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (ObjectUtils.isEmpty(childDeptIds)) {
|
|
|
+ lw.and((wrapper) -> {
|
|
|
+ wrapper.eq(ProvisionalPlan::getIsExcess, 0);
|
|
|
+ wrapper.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId());
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ lw.and((wrapper) -> {
|
|
|
+ wrapper.eq(ProvisionalPlan::getIsExcess, 0);
|
|
|
+ wrapper.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId());
|
|
|
+ })
|
|
|
+ .or((wrapper) -> {
|
|
|
+ wrapper.eq(ProvisionalPlan::getIsExcess, 1);
|
|
|
+ wrapper.in(ProvisionalPlan::getPurchaseDeptId, childDeptIds);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
Page<ProvisionalPlan> page = provisionalPlanMapper.selectPage(new Page<ProvisionalPlan>(num, size, false), lw);
|
|
|
list.addAll(page.getRecords());
|
|
|
size = page.getRecords().size();
|
|
@@ -208,22 +245,164 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
|
|
|
return AjaxResult.success(provisionalPlanVo);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
@Override
|
|
|
- public PageInfo<ProvisionalPlan> selectProvisionalPlan(ProvisionalPlanVo provisionalPlanVo) {
|
|
|
- List<ProvisionalPlan> provisionalPlanList = provisionalPlanMapper.selectProvisionalPlan(provisionalPlanVo);
|
|
|
- provisionalPlanList = changeTo(provisionalPlanList);
|
|
|
- PageHelper.startPage(provisionalPlanVo.getPageNum().intValue(), provisionalPlanVo.getPageSize().intValue());
|
|
|
- PageInfo<ProvisionalPlan> pageInfo = new PageInfo<>(provisionalPlanList);
|
|
|
- return pageInfo;
|
|
|
+ public AjaxResult selectProvisionalPlan(ProvisionalPlanVo vo, HttpServletRequest request, LoginUser loginUser) {
|
|
|
+ List<ProvisionalPlan> provisionalPlanList = new ArrayList<>();
|
|
|
+ try {
|
|
|
+ LambdaQueryWrapper<ProvisionalPlan> lw = new LambdaQueryWrapper<>();
|
|
|
+ lw.eq(ProvisionalPlan::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
|
|
|
+ lw.eq(ProvisionalPlan::getPlanType, "1");
|
|
|
+ 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())) {
|
|
|
+ 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(ProvisionalPlan::getPlanDemandSubTime, parse);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 添加数据权限
|
|
|
+ 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(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId());
|
|
|
+ } else if (roleKeys.contains(Constants.PURCHASING_MANAGEMENT)
|
|
|
+ || roleKeys.contains(Constants.PURCHASE_SERVICES)) {
|
|
|
+ // 采购管理部门 或 采购办
|
|
|
+ SysDept sysDept = new SysDept();
|
|
|
+ sysDept.setParentId(loginUser.getDeptId());
|
|
|
+ sysDept.setStatus("0");
|
|
|
+ List<Long> childDeptIds = deptService.selectDeptList(sysDept)
|
|
|
+ .stream()
|
|
|
+ .map(SysDept::getDeptId)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (ObjectUtils.isEmpty(childDeptIds)) {
|
|
|
+ lw.and((wrapper) -> {
|
|
|
+ wrapper.eq(ProvisionalPlan::getIsExcess, 0);
|
|
|
+ wrapper.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId());
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ lw.and((wrapper) -> {
|
|
|
+ wrapper.eq(ProvisionalPlan::getIsExcess, 0);
|
|
|
+ wrapper.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId());
|
|
|
+ })
|
|
|
+ .or((wrapper) -> {
|
|
|
+ wrapper.eq(ProvisionalPlan::getIsExcess, 1);
|
|
|
+ wrapper.in(ProvisionalPlan::getPurchaseDeptId, childDeptIds);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ lw.orderBy(true, false, ProvisionalPlan::getCreateTime);
|
|
|
+ List<ProvisionalPlan> list = provisionalPlanMapper.selectList(lw);
|
|
|
+ provisionalPlanList = changeTo(list);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ Page pages = PageUtils.getPages(vo.getPageNum().intValue(), vo.getPageSize().intValue(), provisionalPlanList);
|
|
|
+ PageInfo<ProvisionalPlan> provisionalPlanPageInfo = new PageInfo<>();
|
|
|
+ if (!ObjectUtils.isEmpty(pages) && pages.getRecords().size() > 0) {
|
|
|
+ provisionalPlanPageInfo.setList(pages.getRecords());
|
|
|
+ provisionalPlanPageInfo.setSize(Math.toIntExact(pages.getSize()));
|
|
|
+ provisionalPlanPageInfo.setPageNum(Math.toIntExact(pages.getCurrent()));
|
|
|
+ provisionalPlanPageInfo.setTotal(pages.getTotal());
|
|
|
+ provisionalPlanPageInfo.setPages(Integer.parseInt(pages.getPages() + ""));
|
|
|
+ }
|
|
|
+ return AjaxResult.success(provisionalPlanPageInfo);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public PageInfo<ProvisionalPlan> selectProvisionalPlanAudit(ProvisionalPlanVo provisionalPlanVo) {
|
|
|
- List<ProvisionalPlan> provisionalPlanList = provisionalPlanMapper.selectProvisionalPlanAudit(provisionalPlanVo);
|
|
|
- provisionalPlanList = changeTo(provisionalPlanList);
|
|
|
- PageHelper.startPage(provisionalPlanVo.getPageNum().intValue(), provisionalPlanVo.getPageSize().intValue());
|
|
|
- PageInfo<ProvisionalPlan> pageInfo = new PageInfo<>(provisionalPlanList);
|
|
|
- return pageInfo;
|
|
|
+ public AjaxResult selectProvisionalPlanAudit(ProvisionalPlanVo vo, HttpServletRequest request, LoginUser loginUser) {
|
|
|
+ List<ProvisionalPlan> provisionalPlanList = new ArrayList<>();
|
|
|
+ try {
|
|
|
+ LambdaQueryWrapper<ProvisionalPlan> lw = new LambdaQueryWrapper<>();
|
|
|
+ lw.eq(ProvisionalPlan::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
|
|
|
+ lw.eq(ProvisionalPlan::getPlanType, "1");
|
|
|
+ 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());
|
|
|
+ } else {
|
|
|
+ lw.apply(" project_status IN (1,3)", "");
|
|
|
+ }
|
|
|
+ if (!ObjectUtils.isEmpty(vo.getStartTime())) {
|
|
|
+ lw.ge(ProvisionalPlan::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(ProvisionalPlan::getPlanDemandSubTime, parse);
|
|
|
+ }
|
|
|
+ // 添加数据权限
|
|
|
+ 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(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId());
|
|
|
+ } else if (roleKeys.contains(Constants.PURCHASING_MANAGEMENT)
|
|
|
+ || roleKeys.contains(Constants.PURCHASE_SERVICES)) {
|
|
|
+ // 采购管理部门 或 采购办
|
|
|
+ SysDept sysDept = new SysDept();
|
|
|
+ sysDept.setParentId(loginUser.getDeptId());
|
|
|
+ sysDept.setStatus("0");
|
|
|
+ List<Long> childDeptIds = deptService.selectDeptList(sysDept)
|
|
|
+ .stream()
|
|
|
+ .map(SysDept::getDeptId)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (ObjectUtils.isEmpty(childDeptIds)) {
|
|
|
+ lw.and((wrapper) -> {
|
|
|
+ wrapper.eq(ProvisionalPlan::getIsExcess, 0);
|
|
|
+ wrapper.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId());
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ lw.and((wrapper) -> {
|
|
|
+ wrapper.eq(ProvisionalPlan::getIsExcess, 0);
|
|
|
+ wrapper.eq(ProvisionalPlan::getPurchaseDeptId, loginUser.getDeptId());
|
|
|
+ })
|
|
|
+ .or((wrapper) -> {
|
|
|
+ wrapper.eq(ProvisionalPlan::getIsExcess, 1);
|
|
|
+ wrapper.in(ProvisionalPlan::getPurchaseDeptId, childDeptIds);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ lw.orderBy(true, false, ProvisionalPlan::getCreateTime);
|
|
|
+ List<ProvisionalPlan> list = provisionalPlanMapper.selectList(lw);
|
|
|
+ provisionalPlanList = changeTo(list);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ Page pages = PageUtils.getPages(vo.getPageNum().intValue(), vo.getPageSize().intValue(), provisionalPlanList);
|
|
|
+ PageInfo<ProvisionalPlan> provisionalPlanPageInfo = new PageInfo<>();
|
|
|
+ if (!ObjectUtils.isEmpty(pages) && pages.getRecords().size() > 0) {
|
|
|
+ provisionalPlanPageInfo.setList(pages.getRecords());
|
|
|
+ provisionalPlanPageInfo.setSize(Math.toIntExact(pages.getSize()));
|
|
|
+ provisionalPlanPageInfo.setPageNum(Math.toIntExact(pages.getCurrent()));
|
|
|
+ provisionalPlanPageInfo.setTotal(pages.getTotal());
|
|
|
+ provisionalPlanPageInfo.setPages(Integer.parseInt(pages.getPages() + ""));
|
|
|
+ }
|
|
|
+ return AjaxResult.success(provisionalPlanPageInfo);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -232,6 +411,7 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
|
|
|
if (ObjectUtils.isEmpty(byId.getPlanYearId())) {
|
|
|
PlanYears ofYears = new PlanYears();
|
|
|
BeanUtils.copyProperties(byId, ofYears);
|
|
|
+ ofYears.setProjectStatus(ProjectStatus.PLANTOEXAMINE.getCode());
|
|
|
planYearsMapper.insertPlanYears(ofYears);
|
|
|
byId.setPlanYearId(ofYears.getPlanYearId().intValue());
|
|
|
}
|