浏览代码

Merge remote-tracking branch 'origin/master' into master

yangyj 1 年之前
父节点
当前提交
88a937b20d
共有 25 个文件被更改,包括 313 次插入19 次删除
  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. 52 1
      blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java
  7. 1 1
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.xml
  8. 12 1
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/InterimPayCertificateController.java
  9. 3 2
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/MaterialMeterFormController.java
  10. 16 3
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/MaterialStartStatementController.java
  11. 12 2
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/MeterPeriodController.java
  12. 3 2
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/StartPayMeterFormController.java
  13. 3 1
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MeterPeriodMapper.java
  14. 18 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MeterPeriodMapper.xml
  15. 2 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/IInterimPayCertificateService.java
  16. 4 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/IMaterialMeterFormService.java
  17. 8 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/IMaterialStartStatementService.java
  18. 2 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/IMeterPeriodService.java
  19. 4 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/IStartPayMeterFormService.java
  20. 27 5
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/InterimPayCertificateServiceImpl.java
  21. 28 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MaterialMeterFormServiceImpl.java
  22. 49 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MaterialStartStatementServiceImpl.java
  23. 14 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MeterPeriodServiceImpl.java
  24. 15 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MiddleMeterApplyServiceImpl.java
  25. 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 = "排序")
     @ApiModelProperty(value = "排序")
     private Integer sort;
     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锁定")
     @ApiModelProperty(value = "是否锁定:0未锁定,1锁定")
     private Integer isLock;
     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 = "排序")
     @ApiModelProperty(value = "排序")
     private Integer sort;
     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 = "排序")
     @ApiModelProperty(value = "排序")
     private Integer sort;
     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;
     private Integer approveStatus;
     /**
     /**
      * 开工预付款总额
      * 开工预付款总额

+ 52 - 1
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -2144,7 +2144,7 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 	 * @param nodeId 筛选条件:节点编号
 	 * @param nodeId 筛选条件:节点编号
 	 * @return 符合条件的档案列表
 	 * @return 符合条件的档案列表
 	 */
 	 */
-	public List<ArchiveTreeContract> archiveTreeContractFilter(List<ArchiveTreeContract> archiveTreeContracts, String treeCode, String nodeId,Long contractId) {
+	public List<ArchiveTreeContract> archiveTreeContractFilter1(List<ArchiveTreeContract> archiveTreeContracts, String treeCode, String nodeId,Long contractId) {
 		List<ArchiveTreeContract> result = new ArrayList<>();
 		List<ArchiveTreeContract> result = new ArrayList<>();
 
 
 		if (contractId==null) {
 		if (contractId==null) {
@@ -2158,7 +2158,11 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 					//如果还选择了节点
 					//如果还选择了节点
 					if (StringUtils.isNotEmpty(contract.getAncestors()) && contract.getAncestors().contains(nodeId)) {
 					if (StringUtils.isNotEmpty(contract.getAncestors()) && contract.getAncestors().contains(nodeId)) {
 						result.add(contract);
 						result.add(contract);
+					}else if (contract.getId().toString().equals(nodeId)) {
+						result.add(contract);
 					}
 					}
+
+
 				}else{
 				}else{
 					if (StringUtils.isEmpty(contract.getTreeCode()) || contractId.toString().equals(contract.getTreeCode())  || contractId.equals(contract.getContractId())) {
 					if (StringUtils.isEmpty(contract.getTreeCode()) || contractId.toString().equals(contract.getTreeCode())  || contractId.equals(contract.getContractId())) {
 						result.add(contract);
 						result.add(contract);
@@ -2170,10 +2174,52 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 						//如果还选择了节点
 						//如果还选择了节点
 						if (StringUtils.isNotEmpty(contract.getAncestors()) && contract.getAncestors().contains(nodeId)) {
 						if (StringUtils.isNotEmpty(contract.getAncestors()) && contract.getAncestors().contains(nodeId)) {
 							result.add(contract);
 							result.add(contract);
+						}else if (contract.getId().toString().equals(nodeId)  )
+							result.add(contract);
 						}
 						}
 					}else{
 					}else{
 						result.add(contract);
 						result.add(contract);
 					}
 					}
+			}
+		}
+
+
+		return result;
+	}
+	/**
+	 * 根据给定的条件过滤ArchiveTreeContract列表
+	 *
+	 * @param archiveTreeContracts 待过滤的ArchiveTreeContract列表
+	 * @param treeCode 树代码
+	 * @param nodeId 节点ID
+	 * @param contractId 合同ID
+	 * @return 过滤后的ArchiveTreeContract列表
+	 */
+	public List<ArchiveTreeContract> archiveTreeContractFilter(List<ArchiveTreeContract> archiveTreeContracts, String treeCode, String nodeId, Long contractId) {
+		List<ArchiveTreeContract> result = new ArrayList<>();
+
+		if (contractId == null) {
+			return archiveTreeContracts;
+		}
+
+		for (ArchiveTreeContract contract : archiveTreeContracts) {
+			boolean isContractValid = contractId.toString().equals(contract.getTreeCode()) || contractId.equals(contract.getContractId());
+
+			if (StringUtils.isEmpty(treeCode)) {
+				if (StringUtils.isNotEmpty(nodeId)) {
+					if (isNodeOrAncestor(contract, nodeId) && isContractValid) {
+						result.add(contract);
+					}
+				} else if (isContractValid || StringUtils.isEmpty(contract.getTreeCode())) {
+					result.add(contract);
+				}
+			} else if (treeCode.equals(contract.getTreeCode()) || isContractValid) {
+				if (StringUtils.isNotEmpty(nodeId)) {
+					if (isNodeOrAncestor(contract, nodeId) ) {
+						result.add(contract);
+					}
+				} else  {
+					result.add(contract);
 				}
 				}
 			}
 			}
 		}
 		}
@@ -2181,6 +2227,11 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		return result;
 		return result;
 	}
 	}
 
 
+	private boolean isNodeOrAncestor(ArchiveTreeContract contract, String nodeId) {
+		return StringUtils.isNotEmpty(contract.getAncestors()) && contract.getAncestors().contains(nodeId) || contract.getId().toString().equals(nodeId);
+	}
+
+
 	/**
 	/**
 	 * 带权限筛选的档案列表筛选函数
 	 * 带权限筛选的档案列表筛选函数
 	 * 规则,1. 合同段ID为空,则不过滤
 	 * 规则,1. 合同段ID为空,则不过滤

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.xml

@@ -292,7 +292,7 @@
         select box_name as boxName, box_number as boxNumber, group_concat(DISTINCT id ORDER BY id ASC SEPARATOR ',') as ids
         select box_name as boxName, box_number as boxNumber, group_concat(DISTINCT id ORDER BY id ASC SEPARATOR ',') as ids
         from u_archive_file
         from u_archive_file
         where node_id = #{nodeId}
         where node_id = #{nodeId}
-          and (box_number is not null and box_number != '' and box_number != -1)
+          and (box_number is not null and box_number != '' and box_number != -1) and is_deleted = 0
         group by box_name
         group by box_name
         order by box_number asc
         order by box_number asc
     </select>
     </select>

+ 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")
 	@GetMapping("/recalculate")
 	@ApiOperationSupport(order = 6)
 	@ApiOperationSupport(order = 6)
-	@ApiOperation(value = "重新计算", notes = "传入ids")
+	@ApiOperation(value = "重新计算", notes = "传入中期支付证书id")
 	public R recalculate(@ApiParam(value = "主键", required = true) @RequestParam Long id) {
 	public R recalculate(@ApiParam(value = "主键", required = true) @RequestParam Long id) {
 		interimPayCertificateService.recalculate(id);
 		interimPayCertificateService.recalculate(id);
 		return R.success("计算完成");
 		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")
 	@PostMapping("/remove")
 	@ApiOperationSupport(order = 7)
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "逻辑删除", notes = "传入ids")
 	@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)
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "新增或修改", notes = "传入materialStartStatement,type:1材料2开工")
 	@ApiOperation(value = "新增或修改", notes = "传入materialStartStatement,type:1材料2开工")
 	public R addOrUpdate(@Valid @RequestBody MaterialStartStatement materialStartStatement) {
 	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")
 	@PostMapping("/remove")
 	@ApiOperationSupport(order = 7)
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "逻辑删除", notes = "传入ids")
 	@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")
 	@GetMapping("/allPeriod")
-	@ApiOperationSupport(order = 3)
+	@ApiOperationSupport(order = 4)
 	@ApiOperation(value = "计量期列表-全部", notes = "传入contractId,type:材料传1开工传2")
 	@ApiOperation(value = "计量期列表-全部", notes = "传入contractId,type:材料传1开工传2")
 	public R<List<MeterPeriodVO>> allPeriod(Long contractId,Integer type) {
 	public R<List<MeterPeriodVO>> allPeriod(Long contractId,Integer type) {
 		return R.data(meterPeriodService.allPeriod(contractId,type));
 		return R.data(meterPeriodService.allPeriod(contractId,type));
@@ -100,12 +100,22 @@ public class MeterPeriodController extends BladeController {
 	 * 计量期列表-未关联报表 材料开工计量期表
 	 * 计量期列表-未关联报表 材料开工计量期表
 	 */
 	 */
 	@GetMapping("/conditionPeriod")
 	@GetMapping("/conditionPeriod")
-	@ApiOperationSupport(order = 3)
+	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "计量期列表-未关联报表", notes = "传入contractId,type:材料传1开工传2")
 	@ApiOperation(value = "计量期列表-未关联报表", notes = "传入contractId,type:材料传1开工传2")
 	public R<List<MeterPeriod>> conditionPeriod(Long contractId,Integer type) {
 	public R<List<MeterPeriod>> conditionPeriod(Long contractId,Integer type) {
 		return R.data(meterPeriodService.conditionPeriod(contractId,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")
 	@PostMapping("/remove")
 	@ApiOperationSupport(order = 7)
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "逻辑删除", notes = "传入ids")
 	@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<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
             ORDER BY sort
         </if>
         </if>
     </select>
     </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>
 </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);
     InterimPayCertificateVO detail(Long id);
 
 
     void recalculate(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.core.mp.base.BaseService;
 import org.springblade.meter.vo.MaterialMeterFormVO;
 import org.springblade.meter.vo.MaterialMeterFormVO;
 
 
+import java.util.List;
+
 /**
 /**
  * 材料计量单 服务类
  * 材料计量单 服务类
  *
  *
@@ -39,4 +41,6 @@ public interface IMaterialMeterFormService extends BaseService<MaterialMeterForm
     MaterialMeterFormVO detail(Long id);
     MaterialMeterFormVO detail(Long id);
 
 
     void update2(MaterialMeterFormDTO dto);
     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.meter.entity.MaterialStartStatement;
 import org.springblade.core.mp.base.BaseService;
 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);
     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<MeterPeriodVO> allPeriod(Long contractId,Integer type);
 
 
     List<MeterPeriod> conditionPeriod(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.core.mp.base.BaseService;
 import org.springblade.meter.vo.StartPayMeterFormVO;
 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);
     IPage<StartPayMeterFormVO> page2(Long contractId, Long meterPeriodId, Query query);
 
 
     StartPayMeterFormVO detail(Long id);
     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) {
     public void update2(InterimPayCertificate interimPayCertificate) {
         //获取支付证书
         //获取支付证书
         InterimPayCertificate certificate = this.getById(interimPayCertificate.getId());
         InterimPayCertificate certificate = this.getById(interimPayCertificate.getId());
-        //判断是否锁定
         if (certificate.getIsLock() == 1){
         if (certificate.getIsLock() == 1){
             throw new ServiceException("修改失败,当前证书已锁定");
             throw new ServiceException("修改失败,当前证书已锁定");
         }
         }
+        if (certificate.getApproveStatus() != 0){
+            throw new ServiceException("修改失败,当前证书已上报或已审批");
+        }
         this.updateById(interimPayCertificate);
         this.updateById(interimPayCertificate);
     }
     }
 
 
@@ -73,14 +75,20 @@ public class InterimPayCertificateServiceImpl extends BaseServiceImpl<InterimPay
             //获取支付证书
             //获取支付证书
             InterimPayCertificate certificate = this.getById(aLong);
             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
     @Override
     public void locking(Long id, Integer isLock) {
     public void locking(Long id, Integer isLock) {
         Integer type;
         Integer type;
@@ -94,6 +102,9 @@ public class InterimPayCertificateServiceImpl extends BaseServiceImpl<InterimPay
                 .set(InterimPayCertificate::getIsLock,type));
                 .set(InterimPayCertificate::getIsLock,type));
     }
     }
 
 
+    /**
+     * 详情
+     */
     @Override
     @Override
     public InterimPayCertificateVO detail(Long id) {
     public InterimPayCertificateVO detail(Long id) {
         InterimPayCertificateVO vo = baseMapper.getById(id);
         InterimPayCertificateVO vo = baseMapper.getById(id);
@@ -112,6 +123,17 @@ public class InterimPayCertificateServiceImpl extends BaseServiceImpl<InterimPay
         if (certificate.getIsLock() == 1){
         if (certificate.getIsLock() == 1){
             throw new ServiceException("生成失败,当前证书已锁定");
             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 com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.common.utils.SnowFlakeUtil;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.mp.support.Query;
 import org.springblade.meter.dto.MaterialMeterFormDTO;
 import org.springblade.meter.dto.MaterialMeterFormDTO;
 import org.springblade.meter.entity.AttachmentForm;
 import org.springblade.meter.entity.AttachmentForm;
+import org.springblade.meter.entity.ContractMeterPeriod;
 import org.springblade.meter.entity.MaterialMeterForm;
 import org.springblade.meter.entity.MaterialMeterForm;
+import org.springblade.meter.entity.MeterPeriod;
 import org.springblade.meter.mapper.MaterialMeterFormMapper;
 import org.springblade.meter.mapper.MaterialMeterFormMapper;
 import org.springblade.meter.service.IAttachmentFormService;
 import org.springblade.meter.service.IAttachmentFormService;
 import org.springblade.meter.service.IMaterialMeterFormService;
 import org.springblade.meter.service.IMaterialMeterFormService;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.meter.service.IMeterPeriodService;
 import org.springblade.meter.vo.MaterialMeterFormVO;
 import org.springblade.meter.vo.MaterialMeterFormVO;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -49,6 +53,8 @@ public class MaterialMeterFormServiceImpl extends BaseServiceImpl<MaterialMeterF
 
 
     private final IAttachmentFormService attachmentFormService;
     private final IAttachmentFormService attachmentFormService;
 
 
+    private final IMeterPeriodService meterPeriodService;
+
 
 
     /**
     /**
      * 新增 材料计量单
      * 新增 材料计量单
@@ -56,6 +62,11 @@ public class MaterialMeterFormServiceImpl extends BaseServiceImpl<MaterialMeterF
     @Override
     @Override
     @Transactional
     @Transactional
     public void add(MaterialMeterFormDTO dto) {
     public void add(MaterialMeterFormDTO dto) {
+        //校验当前计量期是否已经上报
+        MeterPeriod period = meterPeriodService.getById(dto.getMeterPeriodId());
+        if (period.getApproveStatus() != 0){
+            throw new ServiceException("新增失败,当前计量期已经上报或审批");
+        }
         //保存材料计量单信息
         //保存材料计量单信息
         MaterialMeterForm form = new MaterialMeterForm();
         MaterialMeterForm form = new MaterialMeterForm();
         BeanUtils.copyProperties(dto,form);
         BeanUtils.copyProperties(dto,form);
@@ -107,6 +118,11 @@ public class MaterialMeterFormServiceImpl extends BaseServiceImpl<MaterialMeterF
     @Override
     @Override
     @Transactional
     @Transactional
     public void update2(MaterialMeterFormDTO dto) {
     public void update2(MaterialMeterFormDTO dto) {
+        //校验当前计量期是否已经上报
+        MeterPeriod period = meterPeriodService.getById(dto.getMeterPeriodId());
+        if (period.getApproveStatus() != 0){
+            throw new ServiceException("修改失败,当前计量期已经上报或审批");
+        }
         //保存材料计量单信息
         //保存材料计量单信息
         MaterialMeterForm form = new MaterialMeterForm();
         MaterialMeterForm form = new MaterialMeterForm();
         BeanUtils.copyProperties(dto,form);
         BeanUtils.copyProperties(dto,form);
@@ -127,4 +143,16 @@ public class MaterialMeterFormServiceImpl extends BaseServiceImpl<MaterialMeterF
             attachmentFormService.saveBatch(fileList);
             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.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 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.core.mp.support.Query;
 import org.springblade.meter.entity.MaterialStartStatement;
 import org.springblade.meter.entity.MaterialStartStatement;
+import org.springblade.meter.entity.MeterPeriod;
 import org.springblade.meter.mapper.MaterialStartStatementMapper;
 import org.springblade.meter.mapper.MaterialStartStatementMapper;
 import org.springblade.meter.service.IMaterialStartStatementService;
 import org.springblade.meter.service.IMaterialStartStatementService;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.meter.service.IMeterPeriodService;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.util.List;
+
 /**
 /**
  * 材料和开工报表 服务实现类
  * 材料和开工报表 服务实现类
  *
  *
@@ -32,12 +38,55 @@ import org.springframework.stereotype.Service;
  * @since 2023-11-29
  * @since 2023-11-29
  */
  */
 @Service
 @Service
+@AllArgsConstructor
 public class MaterialStartStatementServiceImpl extends BaseServiceImpl<MaterialStartStatementMapper, MaterialStartStatement> implements IMaterialStartStatementService {
 public class MaterialStartStatementServiceImpl extends BaseServiceImpl<MaterialStartStatementMapper, MaterialStartStatement> implements IMaterialStartStatementService {
 
 
 
 
+    /**
+     * 分页 材料和开工报表
+     */
     @Override
     @Override
     public IPage<MaterialStartStatement> page2(MaterialStartStatement statement, Query query) {
     public IPage<MaterialStartStatement> page2(MaterialStartStatement statement, Query query) {
         IPage<MaterialStartStatement> page = new Page<>(query.getCurrent(),query.getSize());
         IPage<MaterialStartStatement> page = new Page<>(query.getCurrent(),query.getSize());
         return baseMapper.page2(page,statement);
         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));
                 .set(MeterPeriod::getIsLock,type));
     }
     }
 
 
+    /**
+     * 计量期列表-全部 材料开工计量期表
+     */
     @Override
     @Override
     public List<MeterPeriodVO> allPeriod(Long contractId, Integer type) {
     public List<MeterPeriodVO> allPeriod(Long contractId, Integer type) {
         return baseMapper.allPeriod(contractId,type);
         return baseMapper.allPeriod(contractId,type);
     }
     }
 
 
+    /**
+     * 计量期列表-未关联报表 材料开工计量期表
+     */
     @Override
     @Override
     public List<MeterPeriod> conditionPeriod(Long contractId, Integer type) {
     public List<MeterPeriod> conditionPeriod(Long contractId, Integer type) {
         return baseMapper.conditionPeriod(contractId,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){
         if (count != 0){
             throw new ServiceException("请在最底层节点新增中间计量申请");
             throw new ServiceException("请在最底层节点新增中间计量申请");
         }
         }
+        //校验当前计量期是否已经上报
+        ContractMeterPeriod period = contractMeterPeriodService.getById(dto.getContractPeriodId());
+        if (period.getApproveStatus() != 0){
+            throw new ServiceException("新增失败,当前计量期已经上报或审批");
+        }
         //保存中间计量申请,设置计量金额为0,如果存在计量清单,则统计计量清单总金额
         //保存中间计量申请,设置计量金额为0,如果存在计量清单,则统计计量清单总金额
         MiddleMeterApply apply = new MiddleMeterApply();
         MiddleMeterApply apply = new MiddleMeterApply();
         Long id = SnowFlakeUtil.getId();
         Long id = SnowFlakeUtil.getId();
@@ -224,6 +229,11 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
     @Override
     @Override
     @Transactional
     @Transactional
     public void update2(MiddleMeterApplyDTO dto) {
     public void update2(MiddleMeterApplyDTO dto) {
+        //校验当前计量期是否已经上报
+        ContractMeterPeriod period = contractMeterPeriodService.getById(dto.getContractPeriodId());
+        if (period.getApproveStatus() != 0){
+            throw new ServiceException("修改失败,当前计量期已经上报或审批");
+        }
         //保存中间计量申请,设置计量金额为0,如果存在计量清单,则统计计量清单总金额
         //保存中间计量申请,设置计量金额为0,如果存在计量清单,则统计计量清单总金额
         MiddleMeterApply apply = new MiddleMeterApply();
         MiddleMeterApply apply = new MiddleMeterApply();
         BeanUtils.copyProperties(dto,apply);
         BeanUtils.copyProperties(dto,apply);
@@ -297,6 +307,11 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
     @Transactional
     @Transactional
     public void delete(List<Long> ids) {
     public void delete(List<Long> ids) {
         for (Long id : ids) {
         for (Long id : ids) {
+            //校验当前计量期是否已经上报
+            ContractMeterPeriod period = contractMeterPeriodService.getById(id);
+            if (period.getApproveStatus() != 0){
+                throw new ServiceException("删除,当前计量期已经上报或审批");
+            }
             //删除中间计量申请信息
             //删除中间计量申请信息
             baseMapper.deleteById(id);
             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 com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.common.utils.SnowFlakeUtil;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.mp.support.Query;
 import org.springblade.meter.dto.StartPayMeterFormDTO;
 import org.springblade.meter.dto.StartPayMeterFormDTO;
 import org.springblade.meter.entity.AttachmentForm;
 import org.springblade.meter.entity.AttachmentForm;
+import org.springblade.meter.entity.MeterPeriod;
 import org.springblade.meter.entity.StartPayMeterForm;
 import org.springblade.meter.entity.StartPayMeterForm;
 import org.springblade.meter.mapper.StartPayMeterFormMapper;
 import org.springblade.meter.mapper.StartPayMeterFormMapper;
 import org.springblade.meter.service.IAttachmentFormService;
 import org.springblade.meter.service.IAttachmentFormService;
+import org.springblade.meter.service.IMeterPeriodService;
 import org.springblade.meter.service.IStartPayMeterFormService;
 import org.springblade.meter.service.IStartPayMeterFormService;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.meter.vo.StartPayMeterFormVO;
 import org.springblade.meter.vo.StartPayMeterFormVO;
@@ -47,11 +50,18 @@ public class StartPayMeterFormServiceImpl extends BaseServiceImpl<StartPayMeterF
 
 
     private final IAttachmentFormService attachmentFormService;
     private final IAttachmentFormService attachmentFormService;
 
 
+    private final IMeterPeriodService meterPeriodService;
+
     /**
     /**
      * 新增 开工预付款计量单
      * 新增 开工预付款计量单
      */
      */
     @Override
     @Override
     public void add(StartPayMeterFormDTO dto) {
     public void add(StartPayMeterFormDTO dto) {
+        //校验当前计量期是否已经上报
+        MeterPeriod period = meterPeriodService.getById(dto.getMeterPeriodId());
+        if (period.getApproveStatus() != 0){
+            throw new ServiceException("新增失败,当前计量期已经上报或审批");
+        }
         //保存材料计量单信息
         //保存材料计量单信息
         StartPayMeterForm form = new StartPayMeterForm();
         StartPayMeterForm form = new StartPayMeterForm();
         BeanUtils.copyProperties(dto,form);
         BeanUtils.copyProperties(dto,form);
@@ -75,6 +85,11 @@ public class StartPayMeterFormServiceImpl extends BaseServiceImpl<StartPayMeterF
      */
      */
     @Override
     @Override
     public void update2(StartPayMeterFormDTO dto) {
     public void update2(StartPayMeterFormDTO dto) {
+        //校验当前计量期是否已经上报
+        MeterPeriod period = meterPeriodService.getById(dto.getMeterPeriodId());
+        if (period.getApproveStatus() != 0){
+            throw new ServiceException("修改失败,当前计量期已经上报或审批");
+        }
         //保存材料计量单信息
         //保存材料计量单信息
         StartPayMeterForm form = new StartPayMeterForm();
         StartPayMeterForm form = new StartPayMeterForm();
         BeanUtils.copyProperties(dto,form);
         BeanUtils.copyProperties(dto,form);
@@ -116,4 +131,16 @@ public class StartPayMeterFormServiceImpl extends BaseServiceImpl<StartPayMeterF
         vo.setFileList(list);
         vo.setFileList(list);
         return vo;
         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);
+        }
+    }
 }
 }