Selaa lähdekoodia

季度计划审核后可申请修改--项目已填制的情况下不可申请修改

buzhanyi 2 vuotta sitten
vanhempi
commit
8de0a35948

+ 8 - 0
purchase-system/src/main/java/com/ozs/plan/mapper/PlanQuarterMapper.java

@@ -65,6 +65,14 @@ public interface PlanQuarterMapper extends BaseMapper<PlanQuarter> {
      */
      */
     public PlanQuarter getById(Long planPracticalId);
     public PlanQuarter getById(Long planPracticalId);
 
 
+    /**
+     * 根据年度计划id查询季度计划
+     *
+     * @param planYearId 年度计划ID
+     * @return 结果
+     */
+    public PlanQuarter getByPlanYearId(Long planYearId);
+
     /**
     /**
      * 查询项目名称是否存在(除自己以外)
      * 查询项目名称是否存在(除自己以外)
      *
      *

+ 8 - 0
purchase-system/src/main/java/com/ozs/plan/service/impl/PlanQuarterServiceImpl.java

@@ -429,6 +429,7 @@ public class PlanQuarterServiceImpl implements PlanQuarterService {
         demand.setPlanId(byId.getPlanPracticalId());
         demand.setPlanId(byId.getPlanPracticalId());
         //同步到项目管理状态为需求待填制
         //同步到项目管理状态为需求待填制
         demand.setProjectStatus(Long.valueOf(PmProjectStatus.DEMAND_WAIT_FILL.getCode()));
         demand.setProjectStatus(Long.valueOf(PmProjectStatus.DEMAND_WAIT_FILL.getCode()));
+        demand.setCreateTime(new Date());
         pmDemandMapper.insert(demand);
         pmDemandMapper.insert(demand);
         //计划附件也进行同步---查询年度计划附件后复制一份改为项目需求附件
         //计划附件也进行同步---查询年度计划附件后复制一份改为项目需求附件
         LambdaQueryWrapper<SysFileRef> sysFileRefLp = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<SysFileRef> sysFileRefLp = new LambdaQueryWrapper<>();
@@ -475,6 +476,13 @@ public class PlanQuarterServiceImpl implements PlanQuarterService {
 
 
     @Override
     @Override
     public AjaxResult appUpdate(PlanQuarterStandardVo vo) {
     public AjaxResult appUpdate(PlanQuarterStandardVo vo) {
+        //如果项目管理中数据已填制,则不允许申请修改
+        LambdaQueryWrapper<PmDemand> demandLp = new LambdaQueryWrapper<>();
+        demandLp.eq(PmDemand::getPlanId, vo.getPlanPracticalId());
+        PmDemand demand = pmDemandMapper.selectOne(demandLp);
+        if (!String.valueOf(demand.getProjectStatus()).equals(PmProjectStatus.DEMAND_WAIT_FILL.getCode())) {
+            return AjaxResult.error("项目信息已填制,不可更改");
+        }
         //申请后会成为未提交的状态,可以进行修改
         //申请后会成为未提交的状态,可以进行修改
         vo.setProjectStatus(ProjectStatus.PLANWAITCOMMIT.getCode());
         vo.setProjectStatus(ProjectStatus.PLANWAITCOMMIT.getCode());
         int review = planQuarterMapper.review(vo);
         int review = planQuarterMapper.review(vo);

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

@@ -441,27 +441,34 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
         PlanYears byId = planYearsMapper.getById(vo.getPlanYearId());
         PlanYears byId = planYearsMapper.getById(vo.getPlanYearId());
         BeanUtils.copyProperties(byId, quarters);
         BeanUtils.copyProperties(byId, quarters);
         BeanUtils.copyProperties(byId, demand);
         BeanUtils.copyProperties(byId, demand);
-        //同步到季度计划状态为已审核
-        quarters.setPlanYearId(byId.getPlanYearId());
-        quarters.setProjectStatus(ProjectStatus.PLANTOEXAMINE.getCode());
-        planQuarterMapper.insertPlanQuarter(quarters);
-        //同步到项目管理状态为需求待填制
-        demand.setPlanId(quarters.getPlanPracticalId());
-        demand.setProjectStatus(Long.valueOf(PmProjectStatus.DEMAND_WAIT_FILL.getCode()));
-        pmDemandMapper.insert(demand);
-        //计划附件也进行同步---查询年度计划附件后复制一份改为项目需求附件
-        LambdaQueryWrapper<SysFileRef> sysFileRefLp = new LambdaQueryWrapper<>();
-        sysFileRefLp.eq(SysFileRef::getType, SysFileRefEnum.PLAN_YEAR.getType());
-        sysFileRefLp.eq(SysFileRef::getRedId, vo.getPlanYearId());
-        List<SysFileRef> sysFileRefs = sysFileRefMapper.selectList(sysFileRefLp);
-        if (!ObjectUtils.isEmpty(sysFileRefs)) {
-            for (SysFileRef ref : sysFileRefs) {
-                ref.setRedId(demand.getDemandId());
-                ref.setType(SysFileRefEnum.PM_DEMAND.getType());
-                ref.setId(null);
-                sysFileRefMapper.insert(ref);
+
+        //同步到季度计划状态为已审核---(已审核过的不再同步)
+        PlanQuarter quarter = planQuarterMapper.getByPlanYearId(vo.getPlanYearId());
+        if (ObjectUtils.isEmpty(quarter)) {
+            quarters.setPlanYearId(byId.getPlanYearId());
+            quarters.setProjectStatus(ProjectStatus.PLANTOEXAMINE.getCode());
+            quarters.setCreateTime(new Date());
+            planQuarterMapper.insertPlanQuarter(quarters);
+            //同步到项目管理状态为需求待填制
+            demand.setPlanId(quarters.getPlanPracticalId());
+            demand.setProjectStatus(Long.valueOf(PmProjectStatus.DEMAND_WAIT_FILL.getCode()));
+            demand.setCreateTime(new Date());
+            pmDemandMapper.insert(demand);
+            //计划附件也进行同步---查询年度计划附件后复制一份改为项目需求附件
+            LambdaQueryWrapper<SysFileRef> sysFileRefLp = new LambdaQueryWrapper<>();
+            sysFileRefLp.eq(SysFileRef::getType, SysFileRefEnum.PLAN_YEAR.getType());
+            sysFileRefLp.eq(SysFileRef::getRedId, vo.getPlanYearId());
+            List<SysFileRef> sysFileRefs = sysFileRefMapper.selectList(sysFileRefLp);
+            if (!ObjectUtils.isEmpty(sysFileRefs)) {
+                for (SysFileRef ref : sysFileRefs) {
+                    ref.setRedId(demand.getDemandId());
+                    ref.setType(SysFileRefEnum.PM_DEMAND.getType());
+                    ref.setId(null);
+                    sysFileRefMapper.insert(ref);
+                }
             }
             }
         }
         }
+
         vo.setProjectStatus(ProjectStatus.PLANTOEXAMINE.getCode());
         vo.setProjectStatus(ProjectStatus.PLANTOEXAMINE.getCode());
         return review(vo);
         return review(vo);
     }
     }

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

@@ -125,6 +125,13 @@
           and del_flay = 0
           and del_flay = 0
     </select>
     </select>
 
 
+    <select id="getByPlanYearId" resultType="com.ozs.plan.doman.PlanQuarter" parameterType="java.lang.Long">
+        select *
+        from plan_practical
+        where plan_year_id = #{planYearId}
+          and del_flay = 0
+    </select>
+
     <select id="countProjectNameOther" resultType="java.lang.Integer" parameterType="java.lang.String">
     <select id="countProjectNameOther" resultType="java.lang.Integer" parameterType="java.lang.String">
         select count(plan_practical.plan_practical_id)
         select count(plan_practical.plan_practical_id)
         from plan_practical
         from plan_practical
@@ -179,7 +186,7 @@
                 refuse_reason=#{refuseReason},
                 refuse_reason=#{refuseReason},
             </if>
             </if>
             <if test="projectStatus != null and projectStatus != ''">
             <if test="projectStatus != null and projectStatus != ''">
-                project_status=#{projectStatus}
+                project_status=#{projectStatus},
             </if>
             </if>
             <if test="adjustReason != null and adjustReason != ''">
             <if test="adjustReason != null and adjustReason != ''">
                 adjust_reason=#{adjustReason}
                 adjust_reason=#{adjustReason}

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

@@ -169,7 +169,7 @@
 				refuse_reason=#{refuseReason},
 				refuse_reason=#{refuseReason},
 			</if>
 			</if>
 			<if test="projectStatus != null and projectStatus != ''">
 			<if test="projectStatus != null and projectStatus != ''">
-				project_status=#{projectStatus}
+				project_status=#{projectStatus},
 			</if>
 			</if>
 			<if test="adjustReason != null and adjustReason != ''">
 			<if test="adjustReason != null and adjustReason != ''">
 				adjust_reason=#{adjustReason}
 				adjust_reason=#{adjustReason}