qianxb преди 1 година
родител
ревизия
32c91e6cb7

+ 10 - 2
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/FormPeriodController.java

@@ -93,7 +93,7 @@ public class FormPeriodController extends BladeController {
 	}
 
 	@PostMapping("/updateFormPlan")
-	@ApiOperationSupport(order = 3)
+	@ApiOperationSupport(order = 4)
 	@ApiOperation(value = "修改资金预算计划", notes = "传入项目id,合同id,资金预算期id ,清单计划集合")
 	public R updateFormPlan(@RequestBody FormPeriodDetailDTO dto) {
 		formPeriodDetailService.updateFormPlan(dto);
@@ -101,13 +101,21 @@ public class FormPeriodController extends BladeController {
 	}
 
 	@GetMapping("/getMeterMonth")
-	@ApiOperationSupport(order = 3)
+	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "获取已经计量月份", notes = "传入 合同id,资金预算期id,返回月份数组")
 	public R<Set<String>> getMeterMonth(Long contractId, Long formPeriodId) {
 		Set<String> list = formPeriodDetailService.getMeterMonth(contractId,formPeriodId);
 		return R.data(list);
 	}
 
+	@GetMapping("/deleteById")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "删除资金预算计划", notes = "传入 资金预算期id")
+	public R deleteById(Long formPeriodId) {
+		formPeriodService.deleteById(formPeriodId);
+		return R.success("删除成功");
+	}
+
 
 
 	

+ 4 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/FormPeriodMapper.java

@@ -38,4 +38,8 @@ public interface FormPeriodMapper extends BaseMapper<FormPeriod> {
     List<FormPeriodVO> periodPage(@Param("contractId") Long contractId);
 
     void removeByContractId(@Param("contractId") Long contractId);
+
+    void removeById(@Param("id") Long formPeriodId);
+
+    Integer checkCiteStatusById(@Param("id") Long formPeriodId);
 }

+ 11 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/FormPeriodMapper.xml

@@ -4,6 +4,9 @@
     <delete id="removeByContractId">
         delete from s_form_period where contract_id = #{contractId}
     </delete>
+    <delete id="removeById">
+        delete from s_form_period where id = #{id}
+    </delete>
 
 
     <select id="periodPage" resultType="org.springblade.meter.vo.FormPeriodVO">
@@ -15,4 +18,12 @@
         where is_deleted = 0 and contract_id = #{contractId}
         ORDER BY period_year
     </select>
+    <select id="checkCiteStatusById" resultType="java.lang.Integer">
+        select
+               if((select count(1) from s_contract_meter_period cmp
+                   where cmp.contract_id = sfp.contract_id and is_deleted = 0 and sfp.period_year = cmp.period_year
+                     and approve_status in (2,3))=0,0,1)
+        from s_form_period sfp
+        where id = #{id}
+    </select>
 </mapper>

+ 2 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/IFormPeriodService.java

@@ -40,4 +40,6 @@ public interface IFormPeriodService extends BaseService<FormPeriod> {
     List<FormPeriodVO> periodPage(Long contractId);
 
     void edit(FormPeriodDTO dto);
+
+    void deleteById(Long formPeriodId);
 }

+ 10 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/FormPeriodServiceImpl.java

@@ -88,4 +88,14 @@ public class FormPeriodServiceImpl extends BaseServiceImpl<FormPeriodMapper, For
             this.saveBatch(list);
         }
     }
+
+    @Override
+    public void deleteById(Long formPeriodId) {
+        //校验当前资金预算期是否被引用
+        Integer status = baseMapper.checkCiteStatusById(formPeriodId);
+        if (status == 1){
+            throw new ServiceException("删除失败:当前资金预算期已经被引用");
+        }
+        baseMapper.removeById(formPeriodId);
+    }
 }