Pārlūkot izejas kodu

合同计量单元,增加是否计量状态

qianxb 1 gadu atpakaļ
vecāks
revīzija
738b934384

+ 3 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/MeterTreeContractVO.java

@@ -21,4 +21,7 @@ public class MeterTreeContractVO extends MeterTreeContract {
     @ApiModelProperty(value = "桩号类型名称")
     private String stakeTypeName;
 
+    @ApiModelProperty(value = "是否已经计量:0否1是")
+    private Integer isMeter;
+
 }

+ 11 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/MeterTreeController.java

@@ -55,6 +55,7 @@ public class MeterTreeController extends BladeController {
     private final IInventoryFormMeterService inventoryFormMeterService;
     private final DataSourceTransactionManager transactionManager;
     private final IMeterTreeLinkWbsTreeService meterTreeLinkWbsTreeService;
+    private final IMiddleMeterApplyService middleMeterApplyService;
 
     @GetMapping("/template/detail")
     @ApiOperationSupport(order = 1)
@@ -631,7 +632,7 @@ public class MeterTreeController extends BladeController {
             try {
 //                b1 = meterTreeContractService.updateById(dto);
                 b1 = meterTreeContractService.contractUpdate(dto);
-                b2 = inventoryFormMeterService.updateInfo(dto.getDecompositionList(), dto.getId(),dto.getUpPayRatio());
+                b2 = inventoryFormMeterService.updateInfo(dto);
                 transactionManager.commit(status);
             }catch (Exception e){
                 transactionManager.rollback(status);
@@ -701,6 +702,15 @@ public class MeterTreeController extends BladeController {
                     .eq(MeterTreeContract::getContractId, basicInfo.getContractId())
                     .eq(MeterTreeContract::getParentId, basicInfo.getId()));
             if (count == 0) {
+                //设置是否被计量
+                int total = Math.toIntExact(middleMeterApplyService.count(new LambdaQueryWrapper<MiddleMeterApply>()
+                        .eq(MiddleMeterApply::getContractId, basicInfo.getContractId())
+                        .eq(MiddleMeterApply::getContractUnitId, id)));
+                if (total == 0){
+                    vo.setIsMeter(0);
+                }else {
+                    vo.setIsMeter(1);
+                }
                 //设置清单
                 List<ContractFromVO> contrFormAllByContrId = contractInventoryFormService.getNodeResolveForm(basicInfo.getContractId(), basicInfo.getId());
                 vo.setDecompositionList(contrFormAllByContrId);

+ 2 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/service/IInventoryFormMeterService.java

@@ -17,6 +17,7 @@
 package org.springblade.meter.service;
 
 import org.springblade.core.tool.api.R;
+import org.springblade.meter.dto.MeterTreeContractDTO;
 import org.springblade.meter.entity.InventoryFormMeter;
 import org.springblade.core.mp.base.BaseService;
 import org.springblade.meter.vo.ContractFromVO;
@@ -42,7 +43,7 @@ public interface IInventoryFormMeterService extends BaseService<InventoryFormMet
     R inventoryFormMeterService(String meterId, String formIds);
 
     // 修改信息
-    boolean updateInfo(List<ContractFromVO> dataInfo, Long meterId, BigDecimal upPayRatio);
+    boolean updateInfo(MeterTreeContractDTO dto);
 
     /**
      * 删除 同合计量 清单

+ 9 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/InventoryFormMeterServiceImpl.java

@@ -26,6 +26,7 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.manager.entity.WbsTree;
+import org.springblade.meter.dto.MeterTreeContractDTO;
 import org.springblade.meter.entity.*;
 import org.springblade.meter.mapper.InventoryFormMeterMapper;
 import org.springblade.meter.service.IChangeTokenInventoryService;
@@ -87,7 +88,11 @@ public class InventoryFormMeterServiceImpl extends BaseServiceImpl<InventoryForm
     }
 
     @Override
-    public boolean updateInfo(List<ContractFromVO> dataInfo,Long meterId, BigDecimal upPayRatio) {
+    public boolean updateInfo(MeterTreeContractDTO dto) {
+        List<ContractFromVO> dataInfo = dto.getDecompositionList();
+        Long meterId = dto.getId();
+        BigDecimal upPayRatio = dto.getUpPayRatio();
+        Integer isAutoMeter = dto.getIsAutoMeter();
         //统计施工图金额和变更后施工图金额
         BigDecimal b1 = BigDecimal.ZERO;
         BigDecimal b2 = BigDecimal.ZERO;
@@ -113,6 +118,9 @@ public class InventoryFormMeterServiceImpl extends BaseServiceImpl<InventoryForm
             //统计
             vo.setBuildPictureMoney(vo.getCurrentPrice().multiply(vo.getBuildPictureTotal()));
             vo.setChangeBuildPictureMoney(vo.getCurrentPrice().multiply(vo.getChangeBuildPictureTotal()));
+            if (isAutoMeter == 1){
+                vo.setUpPayRatio(null);
+            }
 //            vo.setUpPayMoney(vo.getChangeBuildPictureMoney().multiply(vo.getUpPayRatio().divide(new BigDecimal(100))));
             b1 = b1.add(vo.getBuildPictureMoney());
             b2 = b2.add(vo.getChangeBuildPictureMoney());

+ 4 - 4
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MeterTreeContractServiceImpl.java

@@ -1792,24 +1792,24 @@ public class MeterTreeContractServiceImpl extends BaseServiceImpl<MeterTreeContr
                     .eq(MeterTreeContract::getContractId,dto.getContractId())
                     .ne(MeterTreeContract::getId, dto.getId()));
             if (count > 0){
-                throw new ServiceException("修改失败,当前工程编号已经存在");
+                throw new ServiceException("当前工程编号已经存在");
             }
         }
         //校验如果为混泥土节点
         if (dto.getIsConcreteNode() == 1){
             if ( (dto.getSevenRatio() == null || dto.getTwentyEightRatio() == null)) {
-                throw new ServiceException("修改失败,混泥土节点必须填写强度比例");
+                throw new ServiceException("混泥土节点必须填写强度比例");
             }
             if ((dto.getSevenRatio().compareTo(BigDecimal.ZERO) < 0 || dto.getSevenRatio().compareTo(new BigDecimal("100")) > 0)
                     || (dto.getTwentyEightRatio().compareTo(BigDecimal.ZERO) < 0 || dto.getTwentyEightRatio().compareTo(new BigDecimal("100")) > 0)){
-                throw new ServiceException("修改失败,强度比例必须在0-100范围内");
+                throw new ServiceException("强度比例必须在0-100范围内");
             }
         }
         //校验比例是否在范围之内
         if (dto.getUpPayRatio() == null){
             dto.setUpPayRatio(new BigDecimal(80));
         }else if (dto.getUpPayRatio().compareTo(BigDecimal.ZERO) < 0 || dto.getUpPayRatio().compareTo(new BigDecimal("100")) > 0){
-            throw new ServiceException("修改失败,请检查支付比例是否在规定范围");
+            throw new ServiceException("请检查支付比例是否在规定范围");
         }
         //如果计算式有值,就同步去修改所有中间计量申请的
         if (StringUtils.isNotBlank(dto.getCalculateFormula())){