فهرست منبع

更改通过审核的逻辑

buzhanyi 2 سال پیش
والد
کامیت
9cc64b3fa6

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

@@ -76,6 +76,10 @@ public class ProvisionalPlanController extends BaseController {
         provisionalPlan.setPurchaseDeptId(String.valueOf(loginUser.getDeptId()));
         provisionalPlan.setCreated(String.valueOf(loginUser.getUserId()));
         provisionalPlan.setCreateTime(new Date());
+        //默认未超额
+        if (ObjectUtils.isEmpty(provisionalPlan.getIsExcess())) {
+            provisionalPlan.setIsExcess("0");
+        }
         // planType计划类型(0:季度计划,1:临时计划)
         provisionalPlan.setPlanType("1");
         // 项目状态(0:计划待提交,1:计划待审核,2:计划已退回,3:计划已审核)

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

@@ -2,7 +2,6 @@ package com.ozs.plan.service.impl;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;

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

@@ -246,6 +246,10 @@ public class PlanQuarterServiceImpl extends ServiceImpl<PlanQuarterMapper, PlanQ
         if (planQuarterMapper.countProjectName(quarterStandardVo.getProjectName()) > 0) {
             return AjaxResult.error("该项目名称已经存在");
         }
+        //默认未超额
+        if (ObjectUtils.isEmpty(quarterStandardVo.getIsExcess())) {
+            quarterStandardVo.setIsExcess("0");
+        }
         PlanQuarter quarters = new PlanQuarter();
         try {
             BeanUtils.copyProperties(quarterStandardVo, quarters);
@@ -317,6 +321,10 @@ public class PlanQuarterServiceImpl extends ServiceImpl<PlanQuarterMapper, PlanQ
         if (planQuarterMapper.countProjectNameOther(quarterStandardVo.getProjectName(), String.valueOf(quarterStandardVo.getPlanPracticalId())) > 0) {
             return AjaxResult.error("该项目名称已经存在");
         }
+        //默认未超额
+        if (ObjectUtils.isEmpty(quarterStandardVo.getIsExcess())) {
+            quarterStandardVo.setIsExcess("0");
+        }
         PlanQuarter quarters = new PlanQuarter();
         try {
             BeanUtils.copyProperties(quarterStandardVo, quarters);
@@ -452,6 +460,44 @@ public class PlanQuarterServiceImpl extends ServiceImpl<PlanQuarterMapper, PlanQ
     @Override
     @Transactional
     public AjaxResult reviewTo(PlanQuarterStandardVo vo) {
+        SysUser sysUser = userService.selectUserById(SecurityUtils.getUserId());
+        Long deptId = sysUser.getDeptId();
+        SysDept sysDept = deptMapper.selectDeptById(deptId);
+        String[] ancestors = sysDept.getAncestors().split(",");
+        String deptLevel = null;
+        if (ancestors.length == 2) { //C级
+            deptLevel = "C";
+        } else if (ancestors.length == 3) { //B级
+            deptLevel = "B";
+        } else if (ancestors.length == 4) { //A级
+            deptLevel = "A";
+        }
+        LambdaQueryWrapper<PmAuditDeptRef> lw = new LambdaQueryWrapper();
+        lw.eq(PmAuditDeptRef::getRefId, vo.getPlanPracticalId());
+        lw.eq(PmAuditDeptRef::getRefType, "1");
+        List<PmAuditDeptRef> list = pmAuditDeptRefService.list(lw);
+        boolean flay = true;
+        if (!ObjectUtils.isEmpty(list)) {
+            for (PmAuditDeptRef pmAuditDeptRef : list) {
+                // 判断 deptLevel 是否还有更高的 且是 待审核的数据
+                if (pmAuditDeptRef.getDeptLevel().compareTo(deptLevel) > 0
+                        && pmAuditDeptRef.getStatus().equals(Integer.parseInt("0"))) {
+                    flay = false;
+                }
+                // 更新当前  deptLevel 级别的审核状态
+                if (pmAuditDeptRef.getDeptLevel().compareTo(deptLevel) == 0) {
+                    pmAuditDeptRef.setStatus(1);
+                    pmAuditDeptRefService.updateById(pmAuditDeptRef);
+                }
+            }
+        }
+        if (flay) {
+            realReviewTo(vo);
+        }
+        return AjaxResult.success();
+    }
+
+    public AjaxResult realReviewTo(PlanQuarterStandardVo vo) {
         //季度计划审核通过后同步到年度计划和项目管理
         PlanQuarter quarters = new PlanQuarter();
         PmDemand demand = new PmDemand();
@@ -485,7 +531,6 @@ public class PlanQuarterServiceImpl extends ServiceImpl<PlanQuarterMapper, PlanQ
             }
         }
         //上传审核文件并赋予计划审核通过
-        vo.setProjectStatus(ProjectStatus.PLANTOEXAMINE.getCode());
         List<SysFileRef> sysFileRefuses = vo.getSysFileRefs();
         if (!ObjectUtils.isEmpty(sysFileRefuses)) {
             for (SysFileRef ref : sysFileRefuses) {
@@ -512,6 +557,7 @@ public class PlanQuarterServiceImpl extends ServiceImpl<PlanQuarterMapper, PlanQ
                 sysFileRefMapper.insert(ref2);
             }
         }
+        vo.setProjectStatus(ProjectStatus.PLANTOEXAMINE.getCode());
         return review(vo);
     }
 

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

@@ -25,6 +25,7 @@ import com.ozs.home.domain.vo.HomeToDoQueryResVo;
 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.PlanYearsStandardVo;
 import com.ozs.plan.doman.vo.responseVo.PlanQuarterResponseVo;
 import com.ozs.plan.doman.vo.responseVo.PlanYearsResponseVo;
@@ -127,7 +128,6 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
     private PmAuditDeptRefService pmAuditDeptRefService;
 
 
-
     @Override
     public List<PlanYearsResponseVo> selectPlanYearsListEXP(PlanYearsStandardVo vo, LoginUser loginUser) {
         List<PlanYears> list = new ArrayList<>();
@@ -252,6 +252,10 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
         if (planYearsMapper.countProjectName(yearsStandardVo.getProjectName()) > 0) {
             return AjaxResult.error("该项目名称已经存在");
         }
+        //默认未超额
+        if (ObjectUtils.isEmpty(yearsStandardVo.getIsExcess())) {
+            yearsStandardVo.setIsExcess("0");
+        }
         PlanYears ofYears = new PlanYears();
         try {
             BeanUtils.copyProperties(yearsStandardVo, ofYears);
@@ -324,6 +328,10 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
         if (planYearsMapper.countProjectNameOther(yearsStandardVo.getProjectName(), String.valueOf(yearsStandardVo.getPlanYearId())) > 0) {
             return AjaxResult.error("该项目名称已经存在");
         }
+        //默认未超额
+        if (ObjectUtils.isEmpty(yearsStandardVo.getIsExcess())) {
+            yearsStandardVo.setIsExcess("0");
+        }
         PlanYears ofYears = new PlanYears();
         try {
             BeanUtils.copyProperties(yearsStandardVo, ofYears);
@@ -460,6 +468,45 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
     @Override
     @Transactional
     public AjaxResult reviewTo(PlanYearsStandardVo vo) {
+        SysUser sysUser = userService.selectUserById(SecurityUtils.getUserId());
+        Long deptId = sysUser.getDeptId();
+        SysDept sysDept = deptMapper.selectDeptById(deptId);
+        String[] ancestors = sysDept.getAncestors().split(",");
+        String deptLevel = null;
+        if (ancestors.length == 2) { //C级
+            deptLevel = "C";
+        } else if (ancestors.length == 3) { //B级
+            deptLevel = "B";
+        } else if (ancestors.length == 4) { //A级
+            deptLevel = "A";
+        }
+        LambdaQueryWrapper<PmAuditDeptRef> lw = new LambdaQueryWrapper();
+        lw.eq(PmAuditDeptRef::getRefId, vo.getPlanYearId());
+        lw.eq(PmAuditDeptRef::getRefType, "0");
+        List<PmAuditDeptRef> list = pmAuditDeptRefService.list(lw);
+        boolean flay = true;
+        if (!ObjectUtils.isEmpty(list)) {
+            for (PmAuditDeptRef pmAuditDeptRef : list) {
+                // 判断 deptLevel 是否还有更高的 且是 待审核的数据
+                if (pmAuditDeptRef.getDeptLevel().compareTo(deptLevel) > 0
+                        && pmAuditDeptRef.getStatus().equals(Integer.parseInt("0"))) {
+                    flay = false;
+                }
+                // 更新当前  deptLevel 级别的审核状态
+                if (pmAuditDeptRef.getDeptLevel().compareTo(deptLevel) == 0) {
+                    pmAuditDeptRef.setStatus(1);
+                    pmAuditDeptRefService.updateById(pmAuditDeptRef);
+                }
+            }
+        }
+        if (flay) {
+            realReviewTo(vo);
+        }
+        return AjaxResult.success();
+    }
+
+    @Transactional
+    public AjaxResult realReviewTo(PlanYearsStandardVo vo) {
         //年度计划审核通过后同步到季度计划和项目管理
         PlanQuarter quarters = new PlanQuarter();
         PmDemand demand = new PmDemand();
@@ -501,7 +548,6 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
                 sysFileRefMapper.insert(ref);
             }
         }
-        vo.setProjectStatus(ProjectStatus.PLANTOEXAMINE.getCode());
         List<SysFileRef> sysFileRefuses = vo.getSysFileRefs();
         if (!ObjectUtils.isEmpty(sysFileRefuses)) {
             for (SysFileRef ref : sysFileRefuses) {
@@ -528,6 +574,7 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
                 sysFileRefMapper.insert(ref2);
             }
         }
+        vo.setProjectStatus(ProjectStatus.PLANTOEXAMINE.getCode());
         return review(vo);
     }
 

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

@@ -90,6 +90,10 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
     @Override
     @Transactional
     public int updateProvisionalPlanById(ProvisionalPlanVo provisionalPlan) {
+        //默认未超额
+        if (ObjectUtils.isEmpty(provisionalPlan.getIsExcess())) {
+            provisionalPlan.setIsExcess("0");
+        }
         List<SysFileRef> sysFileRefs = provisionalPlan.getSysFileRefs();
         if (!ObjectUtils.isEmpty(sysFileRefs)) {
             // 删关联
@@ -460,6 +464,44 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
     @Override
     @Transactional
     public AjaxResult auditPass(ProvisionalPlanVo provisionalPlanVo) {
+        SysUser sysUser = userService.selectUserById(SecurityUtils.getUserId());
+        Long deptId = sysUser.getDeptId();
+        SysDept sysDept = deptMapper.selectDeptById(deptId);
+        String[] ancestors = sysDept.getAncestors().split(",");
+        String deptLevel = null;
+        if (ancestors.length == 2) { //C级
+            deptLevel = "C";
+        } else if (ancestors.length == 3) { //B级
+            deptLevel = "B";
+        } else if (ancestors.length == 4) { //A级
+            deptLevel = "A";
+        }
+        LambdaQueryWrapper<PmAuditDeptRef> lw = new LambdaQueryWrapper();
+        lw.eq(PmAuditDeptRef::getRefId, provisionalPlanVo.getPlanPracticalId());
+        lw.eq(PmAuditDeptRef::getRefType, "1");
+        List<PmAuditDeptRef> list = pmAuditDeptRefService.list(lw);
+        boolean flay = true;
+        if (!ObjectUtils.isEmpty(list)) {
+            for (PmAuditDeptRef pmAuditDeptRef : list) {
+                // 判断 deptLevel 是否还有更高的 且是 待审核的数据
+                if (pmAuditDeptRef.getDeptLevel().compareTo(deptLevel) > 0
+                        && pmAuditDeptRef.getStatus().equals(Integer.parseInt("0"))) {
+                    flay = false;
+                }
+                // 更新当前  deptLevel 级别的审核状态
+                if (pmAuditDeptRef.getDeptLevel().compareTo(deptLevel) == 0) {
+                    pmAuditDeptRef.setStatus(1);
+                    pmAuditDeptRefService.updateById(pmAuditDeptRef);
+                }
+            }
+        }
+        if (flay) {
+            realReviewTo(provisionalPlanVo);
+        }
+        return AjaxResult.success();
+    }
+
+    public AjaxResult realReviewTo(ProvisionalPlanVo provisionalPlanVo) {
         ProvisionalPlan byId = provisionalPlanMapper.seletById(provisionalPlanVo.getPlanPracticalId());
         if (ObjectUtils.isEmpty(byId.getPlanYearId())) {
             PlanYears ofYears = new PlanYears();
@@ -496,8 +538,27 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
                 sysFileRefMapper.insert(ref);
             }
         }
-        provisionalPlanVo.setProjectStatus(ProjectStatus.PLANTOEXAMINE.getCode());
         //上传审核文件并赋予计划审核通过
+        provisionalPlanVo.setProjectStatus(ProjectStatus.PLANTOEXAMINE.getCode());
+        List<SysFileRef> sysFileRefss = provisionalPlanVo.getSysFileRefs();
+        if (!ObjectUtils.isEmpty(sysFileRefss)) {
+            for (SysFileRef ref : sysFileRefss) {
+                ref.setRedId(provisionalPlanVo.getPlanPracticalId().longValue());
+                ref.setType(SysFileRefEnum.PLAN_TEMPORARY_EXAMINE.getType());
+                ref.setCreated(provisionalPlanVo.getUpdated());
+                ref.setCreateTime(new Date());
+                ref.setUpdated(provisionalPlanVo.getUpdated());
+                ref.setUpdateTime(new Date());
+                sysFileRefMapper.insert(ref);
+                //同步到采购需求审核文件
+                SysFileRef ref2 = new SysFileRef(null, demand.getDemandId(), ref.getFileId(), SysFileRefEnum.PM_DEMAND.getType());
+                ref2.setCreated(provisionalPlanVo.getUpdated());
+                ref2.setCreateTime(new Date());
+                ref2.setUpdated(provisionalPlanVo.getUpdated());
+                ref2.setUpdateTime(new Date());
+                sysFileRefMapper.insert(ref2);
+            }
+        }
         return review(provisionalPlanVo);
     }
 
@@ -545,18 +606,6 @@ public class ProvisionalPlanServiceImpl extends ServiceImpl<ProvisionalPlanMappe
     }
 
     private AjaxResult review(ProvisionalPlanVo vo) {
-        List<SysFileRef> sysFileRefs = vo.getSysFileRefs();
-        if (!ObjectUtils.isEmpty(sysFileRefs)) {
-            for (SysFileRef ref : sysFileRefs) {
-                ref.setRedId(vo.getPlanPracticalId().longValue());
-                ref.setType(SysFileRefEnum.PLAN_TEMPORARY_EXAMINE.getType());
-                ref.setCreated(vo.getUpdated());
-                ref.setCreateTime(new Date());
-                ref.setUpdated(vo.getUpdated());
-                ref.setUpdateTime(new Date());
-                sysFileRefMapper.insert(ref);
-            }
-        }
         int review = provisionalPlanMapper.review(vo);
         if (review != 1) {
             return AjaxResult.error("项目状态数据异常");