Kaynağa Gözat

计量支付的所有增删改查增加审批条件

qianxb 1 yıl önce
ebeveyn
işleme
e6915ef794
23 değiştirilmiş dosya ile 260 ekleme ve 17 silme
  1. 3 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/ContractMeterPeriod.java
  2. 3 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/InterimPayCertificate.java
  3. 3 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MaterialStartStatement.java
  4. 3 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MeterPeriod.java
  5. 1 1
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/StartPayMeterForm.java
  6. 12 1
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/InterimPayCertificateController.java
  7. 3 2
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/MaterialMeterFormController.java
  8. 16 3
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/MaterialStartStatementController.java
  9. 12 2
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/MeterPeriodController.java
  10. 3 2
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/StartPayMeterFormController.java
  11. 3 1
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MeterPeriodMapper.java
  12. 18 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MeterPeriodMapper.xml
  13. 2 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/IInterimPayCertificateService.java
  14. 4 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/IMaterialMeterFormService.java
  15. 8 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/IMaterialStartStatementService.java
  16. 2 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/IMeterPeriodService.java
  17. 4 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/IStartPayMeterFormService.java
  18. 27 5
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/InterimPayCertificateServiceImpl.java
  19. 28 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MaterialMeterFormServiceImpl.java
  20. 49 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MaterialStartStatementServiceImpl.java
  21. 14 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MeterPeriodServiceImpl.java
  22. 15 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MiddleMeterApplyServiceImpl.java
  23. 27 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/StartPayMeterFormServiceImpl.java

+ 3 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/ContractMeterPeriod.java

@@ -101,5 +101,8 @@ public class ContractMeterPeriod extends BaseEntity {
     @ApiModelProperty(value = "排序")
     private Integer sort;
 
+    @ApiModelProperty(value = "审批状态,0未上报,1待审批,2已审批")
+    private Integer approveStatus;
+
 
 }

+ 3 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/InterimPayCertificate.java

@@ -106,6 +106,9 @@ public class InterimPayCertificate extends BaseEntity {
     @ApiModelProperty(value = "是否锁定:0未锁定,1锁定")
     private Integer isLock;
 
+    @ApiModelProperty(value = "审批状态,0未上报,1待审批,2已审批")
+    private Integer approveStatus;
+
 
 
 }

+ 3 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MaterialStartStatement.java

@@ -95,5 +95,8 @@ public class MaterialStartStatement extends BaseEntity {
     @ApiModelProperty(value = "排序")
     private Integer sort;
 
+    @ApiModelProperty(value = "审批状态,0未上报,1待审批,2已审批")
+    private Integer approveStatus;
+
 
 }

+ 3 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MeterPeriod.java

@@ -93,5 +93,8 @@ public class MeterPeriod extends BaseEntity {
     @ApiModelProperty(value = "排序")
     private Integer sort;
 
+    @ApiModelProperty(value = "审批状态,0未上报,1待审批,2已审批")
+    private Integer approveStatus;
+
 
 }

+ 1 - 1
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/StartPayMeterForm.java

@@ -76,7 +76,7 @@ public class StartPayMeterForm extends BaseEntity {
     /**
      * 审批状态
      */
-    @ApiModelProperty(value = "审批状态")
+    @ApiModelProperty(value = "审批状态,0未上报,1待审批,2已审批")
     private Integer approveStatus;
     /**
      * 开工预付款总额

+ 12 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/InterimPayCertificateController.java

@@ -124,11 +124,22 @@ public class InterimPayCertificateController extends BladeController {
 	 */
 	@GetMapping("/recalculate")
 	@ApiOperationSupport(order = 6)
-	@ApiOperation(value = "重新计算", notes = "传入ids")
+	@ApiOperation(value = "重新计算", notes = "传入中期支付证书id")
 	public R recalculate(@ApiParam(value = "主键", required = true) @RequestParam Long id) {
 		interimPayCertificateService.recalculate(id);
 		return R.success("计算完成");
 	}
 
+	/**
+	 * 查看报表 中期支付证书
+	 */
+	@GetMapping("/getStatement")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "查看报表", notes = "传入计量期id,返回报表URL")
+	public R getStatement(@ApiParam(value = "主键", required = true) @RequestParam Long id) {
+		interimPayCertificateService.getStatement(id);
+		return R.success("计算完成");
+	}
+
 	
 }

+ 3 - 2
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/MaterialMeterFormController.java

@@ -103,8 +103,9 @@ public class MaterialMeterFormController extends BladeController {
 	@PostMapping("/remove")
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "逻辑删除", notes = "传入ids")
-	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-		return R.status(materialMeterFormService.deleteLogic(Func.toLongList(ids)));
+	public R delete(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		materialMeterFormService.delete(Func.toLongList(ids));
+		return R.success("删除成功");
 	}
 
 	

+ 16 - 3
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/MaterialStartStatementController.java

@@ -53,7 +53,8 @@ public class MaterialStartStatementController extends BladeController {
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "新增或修改", notes = "传入materialStartStatement,type:1材料2开工")
 	public R addOrUpdate(@Valid @RequestBody MaterialStartStatement materialStartStatement) {
-		return R.status(materialStartStatementService.saveOrUpdate(materialStartStatement));
+		materialStartStatementService.addOrUpdate(materialStartStatement);
+		return R.success("操作成功");
 	}
 
 
@@ -80,8 +81,20 @@ public class MaterialStartStatementController extends BladeController {
 	@PostMapping("/remove")
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "逻辑删除", notes = "传入ids")
-	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-		return R.status(materialStartStatementService.deleteLogic(Func.toLongList(ids)));
+	public R delete(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		materialStartStatementService.delete(Func.toLongList(ids));
+		return R.success("删除成功");
+	}
+
+	/**
+	 * 重新计算 材料和开工报表
+	 */
+	@GetMapping("/recalculate")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "重新计算材料和开工报表", notes = "传入材料和开工报表id")
+	public R recalculate(@ApiParam(value = "主键", required = true) @RequestParam Long id) {
+		materialStartStatementService.recalculate(id);
+		return R.success("计算完成");
 	}
 
 	

+ 12 - 2
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/MeterPeriodController.java

@@ -90,7 +90,7 @@ public class MeterPeriodController extends BladeController {
 	 * 计量期列表-全部 材料开工计量期表
 	 */
 	@GetMapping("/allPeriod")
-	@ApiOperationSupport(order = 3)
+	@ApiOperationSupport(order = 4)
 	@ApiOperation(value = "计量期列表-全部", notes = "传入contractId,type:材料传1开工传2")
 	public R<List<MeterPeriodVO>> allPeriod(Long contractId,Integer type) {
 		return R.data(meterPeriodService.allPeriod(contractId,type));
@@ -100,12 +100,22 @@ public class MeterPeriodController extends BladeController {
 	 * 计量期列表-未关联报表 材料开工计量期表
 	 */
 	@GetMapping("/conditionPeriod")
-	@ApiOperationSupport(order = 3)
+	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "计量期列表-未关联报表", notes = "传入contractId,type:材料传1开工传2")
 	public R<List<MeterPeriod>> conditionPeriod(Long contractId,Integer type) {
 		return R.data(meterPeriodService.conditionPeriod(contractId,type));
 	}
 
+	/**
+	 * 计量期列表-已审批 材料开工计量期表
+	 */
+	@GetMapping("/approvalPeriod")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "计量期列表-已审批", notes = "传入contractId,type:材料传1开工传2")
+	public R<List<MeterPeriod>> approvalPeriod(Long contractId,Integer type) {
+		return R.data(meterPeriodService.approvalPeriod(contractId,type));
+	}
+
 
 
 

+ 3 - 2
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/StartPayMeterFormController.java

@@ -124,8 +124,9 @@ public class StartPayMeterFormController extends BladeController {
 	@PostMapping("/remove")
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "逻辑删除", notes = "传入ids")
-	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-		return R.status(startPayMeterFormService.deleteLogic(Func.toLongList(ids)));
+	public R delete(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		startPayMeterFormService.delete(Func.toLongList(ids));
+		return R.success("删除成功");
 	}
 
 	

+ 3 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MeterPeriodMapper.java

@@ -39,5 +39,7 @@ public interface MeterPeriodMapper extends BaseMapper<MeterPeriod> {
 
     List<MeterPeriod> conditionPeriod(@Param("contractId") Long contractId,@Param("type") Integer type);
 
-    List<MeterPeriodVO> allPeriod(Long contractId, Integer type);
+    List<MeterPeriodVO> allPeriod(@Param("contractId") Long contractId,@Param("type") Integer type);
+
+    List<MeterPeriod> approvalPeriod(@Param("contractId") Long contractId,@Param("type") Integer type);
 }

+ 18 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MeterPeriodMapper.xml

@@ -67,6 +67,24 @@
             ORDER BY sort
         </if>
     </select>
+    <select id="approvalPeriod" resultType="org.springblade.meter.entity.MeterPeriod">
+        <if test="type == 1">
+            select *,
+            if(smp.is_lock = 0,if((select count(1) from s_material_meter_form mmf where contract_id = #{contractId} and is_deleted = 0 and mmf.meter_period_id = smp.id)=0,
+            if((select count(1) from s_material_start_statement mss where contract_id = #{contractId} and is_deleted = 0 and mss.meter_period_id = smp.id)=0,0,1),1),1) as citeStatus
+            from s_meter_period smp
+            where is_deleted = 0 and contract_id = #{contractId} and type = 1 and approve_status = 2
+            ORDER BY sort
+        </if>
+        <if test="type == 2">
+            select *,
+            if(smp.is_lock = 0,if((select count(1) from s_start_pay_meter_form smf where contract_id = #{contractId} and is_deleted = 0 and smf.meter_period_id = smp.id)=0,
+            if((select count(1) from s_material_start_statement mss where contract_id = #{contractId} and is_deleted = 0 and mss.meter_period_id = smp.id)=0,0,1),1),1) as citeStatus
+            from s_meter_period smp
+            where is_deleted = 0 and contract_id = #{contractId} and type = 2 and approve_status = 2
+            ORDER BY sort
+        </if>
+    </select>
 
 
 </mapper>

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

@@ -42,4 +42,6 @@ public interface IInterimPayCertificateService extends BaseService<InterimPayCer
     InterimPayCertificateVO detail(Long id);
 
     void recalculate(Long id);
+
+    String getStatement(Long id);
 }

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

@@ -23,6 +23,8 @@ import org.springblade.meter.entity.MaterialMeterForm;
 import org.springblade.core.mp.base.BaseService;
 import org.springblade.meter.vo.MaterialMeterFormVO;
 
+import java.util.List;
+
 /**
  * 材料计量单 服务类
  *
@@ -39,4 +41,6 @@ public interface IMaterialMeterFormService extends BaseService<MaterialMeterForm
     MaterialMeterFormVO detail(Long id);
 
     void update2(MaterialMeterFormDTO dto);
+
+    void delete(List<Long> ids);
 }

+ 8 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/IMaterialStartStatementService.java

@@ -21,6 +21,8 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.meter.entity.MaterialStartStatement;
 import org.springblade.core.mp.base.BaseService;
 
+import java.util.List;
+
 /**
  * 材料和开工报表 服务类
  *
@@ -31,4 +33,10 @@ public interface IMaterialStartStatementService extends BaseService<MaterialStar
 
 
     IPage<MaterialStartStatement> page2(MaterialStartStatement statement, Query query);
+
+    void addOrUpdate(MaterialStartStatement materialStartStatement);
+
+    void delete(List<Long> ids);
+
+    void recalculate(Long id);
 }

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

@@ -43,4 +43,6 @@ public interface IMeterPeriodService extends BaseService<MeterPeriod> {
     List<MeterPeriodVO> allPeriod(Long contractId,Integer type);
 
     List<MeterPeriod> conditionPeriod(Long contractId, Integer type);
+
+    List<MeterPeriod> approvalPeriod(Long contractId, Integer type);
 }

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

@@ -23,6 +23,8 @@ import org.springblade.meter.entity.StartPayMeterForm;
 import org.springblade.core.mp.base.BaseService;
 import org.springblade.meter.vo.StartPayMeterFormVO;
 
+import java.util.List;
+
 /**
  * 开工预付款计量单 服务类
  *
@@ -39,4 +41,6 @@ public interface IStartPayMeterFormService extends BaseService<StartPayMeterForm
     IPage<StartPayMeterFormVO> page2(Long contractId, Long meterPeriodId, Query query);
 
     StartPayMeterFormVO detail(Long id);
+
+    void delete(List<Long> ids);
 }

+ 27 - 5
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/InterimPayCertificateServiceImpl.java

@@ -57,10 +57,12 @@ public class InterimPayCertificateServiceImpl extends BaseServiceImpl<InterimPay
     public void update2(InterimPayCertificate interimPayCertificate) {
         //获取支付证书
         InterimPayCertificate certificate = this.getById(interimPayCertificate.getId());
-        //判断是否锁定
         if (certificate.getIsLock() == 1){
             throw new ServiceException("修改失败,当前证书已锁定");
         }
+        if (certificate.getApproveStatus() != 0){
+            throw new ServiceException("修改失败,当前证书已上报或已审批");
+        }
         this.updateById(interimPayCertificate);
     }
 
@@ -73,14 +75,20 @@ public class InterimPayCertificateServiceImpl extends BaseServiceImpl<InterimPay
             //获取支付证书
             InterimPayCertificate certificate = this.getById(aLong);
             //判断是否锁定
-            if (certificate.getIsLock() == 0){
-                this.removeById(aLong);
-            }else {
-                throw new ServiceException("删除失败,当前证书已锁定");
+            if (certificate.getIsLock() == 1){
+                throw new ServiceException("修改失败,当前证书已锁定");
             }
+            if (certificate.getApproveStatus() != 0){
+                throw new ServiceException("修改失败,当前证书已上报或已审批");
+            }
+            this.removeById(aLong);
+
         }
     }
 
+    /**
+     * 锁定
+     */
     @Override
     public void locking(Long id, Integer isLock) {
         Integer type;
@@ -94,6 +102,9 @@ public class InterimPayCertificateServiceImpl extends BaseServiceImpl<InterimPay
                 .set(InterimPayCertificate::getIsLock,type));
     }
 
+    /**
+     * 详情
+     */
     @Override
     public InterimPayCertificateVO detail(Long id) {
         InterimPayCertificateVO vo = baseMapper.getById(id);
@@ -112,6 +123,17 @@ public class InterimPayCertificateServiceImpl extends BaseServiceImpl<InterimPay
         if (certificate.getIsLock() == 1){
             throw new ServiceException("生成失败,当前证书已锁定");
         }
+        if (certificate.getApproveStatus() != 0){
+            throw new ServiceException("生成失败,当前证书已上报或已审批");
+        }
         //生成报表,计算之后生成金额设置进支付证书
     }
+
+    /**
+     * 查看报表 中期支付证书
+     */
+    @Override
+    public String getStatement(Long id) {
+        return null;
+    }
 }

+ 28 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MaterialMeterFormServiceImpl.java

@@ -21,14 +21,18 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.AllArgsConstructor;
 import org.springblade.common.utils.SnowFlakeUtil;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Query;
 import org.springblade.meter.dto.MaterialMeterFormDTO;
 import org.springblade.meter.entity.AttachmentForm;
+import org.springblade.meter.entity.ContractMeterPeriod;
 import org.springblade.meter.entity.MaterialMeterForm;
+import org.springblade.meter.entity.MeterPeriod;
 import org.springblade.meter.mapper.MaterialMeterFormMapper;
 import org.springblade.meter.service.IAttachmentFormService;
 import org.springblade.meter.service.IMaterialMeterFormService;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.meter.service.IMeterPeriodService;
 import org.springblade.meter.vo.MaterialMeterFormVO;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
@@ -49,6 +53,8 @@ public class MaterialMeterFormServiceImpl extends BaseServiceImpl<MaterialMeterF
 
     private final IAttachmentFormService attachmentFormService;
 
+    private final IMeterPeriodService meterPeriodService;
+
 
     /**
      * 新增 材料计量单
@@ -56,6 +62,11 @@ public class MaterialMeterFormServiceImpl extends BaseServiceImpl<MaterialMeterF
     @Override
     @Transactional
     public void add(MaterialMeterFormDTO dto) {
+        //校验当前计量期是否已经上报
+        MeterPeriod period = meterPeriodService.getById(dto.getMeterPeriodId());
+        if (period.getApproveStatus() != 0){
+            throw new ServiceException("新增失败,当前计量期已经上报或审批");
+        }
         //保存材料计量单信息
         MaterialMeterForm form = new MaterialMeterForm();
         BeanUtils.copyProperties(dto,form);
@@ -107,6 +118,11 @@ public class MaterialMeterFormServiceImpl extends BaseServiceImpl<MaterialMeterF
     @Override
     @Transactional
     public void update2(MaterialMeterFormDTO dto) {
+        //校验当前计量期是否已经上报
+        MeterPeriod period = meterPeriodService.getById(dto.getMeterPeriodId());
+        if (period.getApproveStatus() != 0){
+            throw new ServiceException("修改失败,当前计量期已经上报或审批");
+        }
         //保存材料计量单信息
         MaterialMeterForm form = new MaterialMeterForm();
         BeanUtils.copyProperties(dto,form);
@@ -127,4 +143,16 @@ public class MaterialMeterFormServiceImpl extends BaseServiceImpl<MaterialMeterF
             attachmentFormService.saveBatch(fileList);
         }
     }
+
+    @Override
+    public void delete(List<Long> ids) {
+        for (Long id : ids) {
+            //校验当前计量期是否已经上报
+            MaterialMeterForm form = this.getById(id);
+            if (form.getApproveStatus() != 0){
+                throw new ServiceException("删除失败,当前计量期已经上报或审批");
+            }
+            this.removeById(id);
+        }
+    }
 }

+ 49 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MaterialStartStatementServiceImpl.java

@@ -18,13 +18,19 @@ package org.springblade.meter.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.AllArgsConstructor;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Query;
 import org.springblade.meter.entity.MaterialStartStatement;
+import org.springblade.meter.entity.MeterPeriod;
 import org.springblade.meter.mapper.MaterialStartStatementMapper;
 import org.springblade.meter.service.IMaterialStartStatementService;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.meter.service.IMeterPeriodService;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * 材料和开工报表 服务实现类
  *
@@ -32,12 +38,55 @@ import org.springframework.stereotype.Service;
  * @since 2023-11-29
  */
 @Service
+@AllArgsConstructor
 public class MaterialStartStatementServiceImpl extends BaseServiceImpl<MaterialStartStatementMapper, MaterialStartStatement> implements IMaterialStartStatementService {
 
 
+    /**
+     * 分页 材料和开工报表
+     */
     @Override
     public IPage<MaterialStartStatement> page2(MaterialStartStatement statement, Query query) {
         IPage<MaterialStartStatement> page = new Page<>(query.getCurrent(),query.getSize());
         return baseMapper.page2(page,statement);
     }
+
+    /**
+     * 新增或修改 材料和开工报表
+     */
+    @Override
+    public void addOrUpdate(MaterialStartStatement materialStartStatement) {
+        //如果是修改
+        if (materialStartStatement.getId() != null) {
+            //校验当前计量期是否已经上报
+            MaterialStartStatement statement = this.getById(materialStartStatement.getId());
+            if (statement.getApproveStatus() != 0) {
+                throw new ServiceException("修改失败,当前计量期已经上报或审批");
+            }
+        }
+        this.saveOrUpdate(materialStartStatement);
+
+    }
+
+    @Override
+    public void delete(List<Long> ids) {
+        for (Long id : ids) {
+            //校验当前计量期是否已经上报
+            MaterialStartStatement statement = this.getById(id);
+            if (statement.getApproveStatus() != 0) {
+                throw new ServiceException("修改失败,当前计量期已经上报或审批");
+            }
+            this.removeById(id);
+        }
+    }
+
+    @Override
+    public void recalculate(Long id) {
+        //校验当前计量期是否已经上报
+        MaterialStartStatement statement = this.getById(id);
+        if (statement.getApproveStatus() != 0) {
+            throw new ServiceException("重新计算失败,当前计量期已经上报或审批");
+        }
+        //生成报表,计算之后生成金额设置进当前报表
+    }
 }

+ 14 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MeterPeriodServiceImpl.java

@@ -124,13 +124,27 @@ public class MeterPeriodServiceImpl extends BaseServiceImpl<MeterPeriodMapper, M
                 .set(MeterPeriod::getIsLock,type));
     }
 
+    /**
+     * 计量期列表-全部 材料开工计量期表
+     */
     @Override
     public List<MeterPeriodVO> allPeriod(Long contractId, Integer type) {
         return baseMapper.allPeriod(contractId,type);
     }
 
+    /**
+     * 计量期列表-未关联报表 材料开工计量期表
+     */
     @Override
     public List<MeterPeriod> conditionPeriod(Long contractId, Integer type) {
         return baseMapper.conditionPeriod(contractId,type);
     }
+
+    /**
+     * 计量期列表-已审批 材料开工计量期表
+     */
+    @Override
+    public List<MeterPeriod> approvalPeriod(Long contractId, Integer type) {
+        return baseMapper.approvalPeriod(contractId,type);
+    }
 }

+ 15 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MiddleMeterApplyServiceImpl.java

@@ -121,6 +121,11 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
         if (count != 0){
             throw new ServiceException("请在最底层节点新增中间计量申请");
         }
+        //校验当前计量期是否已经上报
+        ContractMeterPeriod period = contractMeterPeriodService.getById(dto.getContractPeriodId());
+        if (period.getApproveStatus() != 0){
+            throw new ServiceException("新增失败,当前计量期已经上报或审批");
+        }
         //保存中间计量申请,设置计量金额为0,如果存在计量清单,则统计计量清单总金额
         MiddleMeterApply apply = new MiddleMeterApply();
         Long id = SnowFlakeUtil.getId();
@@ -224,6 +229,11 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
     @Override
     @Transactional
     public void update2(MiddleMeterApplyDTO dto) {
+        //校验当前计量期是否已经上报
+        ContractMeterPeriod period = contractMeterPeriodService.getById(dto.getContractPeriodId());
+        if (period.getApproveStatus() != 0){
+            throw new ServiceException("修改失败,当前计量期已经上报或审批");
+        }
         //保存中间计量申请,设置计量金额为0,如果存在计量清单,则统计计量清单总金额
         MiddleMeterApply apply = new MiddleMeterApply();
         BeanUtils.copyProperties(dto,apply);
@@ -297,6 +307,11 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
     @Transactional
     public void delete(List<Long> ids) {
         for (Long id : ids) {
+            //校验当前计量期是否已经上报
+            ContractMeterPeriod period = contractMeterPeriodService.getById(id);
+            if (period.getApproveStatus() != 0){
+                throw new ServiceException("删除,当前计量期已经上报或审批");
+            }
             //删除中间计量申请信息
             baseMapper.deleteById(id);
             //删除中间表当前中间计量申请数据

+ 27 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/StartPayMeterFormServiceImpl.java

@@ -21,12 +21,15 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.AllArgsConstructor;
 import org.springblade.common.utils.SnowFlakeUtil;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Query;
 import org.springblade.meter.dto.StartPayMeterFormDTO;
 import org.springblade.meter.entity.AttachmentForm;
+import org.springblade.meter.entity.MeterPeriod;
 import org.springblade.meter.entity.StartPayMeterForm;
 import org.springblade.meter.mapper.StartPayMeterFormMapper;
 import org.springblade.meter.service.IAttachmentFormService;
+import org.springblade.meter.service.IMeterPeriodService;
 import org.springblade.meter.service.IStartPayMeterFormService;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.meter.vo.StartPayMeterFormVO;
@@ -47,11 +50,18 @@ public class StartPayMeterFormServiceImpl extends BaseServiceImpl<StartPayMeterF
 
     private final IAttachmentFormService attachmentFormService;
 
+    private final IMeterPeriodService meterPeriodService;
+
     /**
      * 新增 开工预付款计量单
      */
     @Override
     public void add(StartPayMeterFormDTO dto) {
+        //校验当前计量期是否已经上报
+        MeterPeriod period = meterPeriodService.getById(dto.getMeterPeriodId());
+        if (period.getApproveStatus() != 0){
+            throw new ServiceException("新增失败,当前计量期已经上报或审批");
+        }
         //保存材料计量单信息
         StartPayMeterForm form = new StartPayMeterForm();
         BeanUtils.copyProperties(dto,form);
@@ -75,6 +85,11 @@ public class StartPayMeterFormServiceImpl extends BaseServiceImpl<StartPayMeterF
      */
     @Override
     public void update2(StartPayMeterFormDTO dto) {
+        //校验当前计量期是否已经上报
+        MeterPeriod period = meterPeriodService.getById(dto.getMeterPeriodId());
+        if (period.getApproveStatus() != 0){
+            throw new ServiceException("修改失败,当前计量期已经上报或审批");
+        }
         //保存材料计量单信息
         StartPayMeterForm form = new StartPayMeterForm();
         BeanUtils.copyProperties(dto,form);
@@ -116,4 +131,16 @@ public class StartPayMeterFormServiceImpl extends BaseServiceImpl<StartPayMeterF
         vo.setFileList(list);
         return vo;
     }
+
+    @Override
+    public void delete(List<Long> ids) {
+        for (Long id : ids) {
+            //校验当前计量期是否已经上报
+            StartPayMeterForm form = this.getById(id);
+            if (form.getApproveStatus() != 0){
+                throw new ServiceException("删除失败,当前计量期已经上报或审批");
+            }
+            this.removeById(id);
+        }
+    }
 }