Bläddra i källkod

修改变更令

qianxb 1 år sedan
förälder
incheckning
03bccaf748
16 ändrade filer med 155 tillägg och 19 borttagningar
  1. 3 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/ChangeTokenMeter.java
  2. 4 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/ChangeNodeVO.java
  3. 14 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/ChangeTokenFormController.java
  4. 16 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/MiddleMeterApplyController.java
  5. 4 4
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenFormMapper.xml
  6. 5 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenMeterMapper.java
  7. 3 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenMeterMapper.xml
  8. 2 2
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ContractInventoryFormMapper.xml
  9. 3 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MiddleMeterApplyMapper.java
  10. 8 1
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MiddleMeterApplyMapper.xml
  11. 23 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/IChangeTokenFormService.java
  12. 7 1
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/IChangeTokenMeterService.java
  13. 3 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/IMiddleMeterApplyService.java
  14. 38 11
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/ChangeTokenFormServiceImpl.java
  15. 14 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/ChangeTokenMeterServiceImpl.java
  16. 8 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MiddleMeterApplyServiceImpl.java

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

@@ -74,6 +74,9 @@ public class ChangeTokenMeter extends BaseEntity {
     @ApiModelProperty(value = "变更后金额")
     private BigDecimal changeMoney;
 
+    @ApiModelProperty(value = "变更前-变更后金额")
+    private BigDecimal beforeChangeMoney;
+
     @ApiModelProperty(value = "是否增补")
     private Integer isSupplement;
 

+ 4 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/ChangeNodeVO.java

@@ -27,6 +27,9 @@ public class ChangeNodeVO {
     @ApiModelProperty(value = "合同图号")
     private String contractPicture;
 
+    @ApiModelProperty(value = "变更前-变更后金额")
+    private BigDecimal beforeChangeMoney;
+
     @ApiModelProperty(value = "变更后金额")
     private BigDecimal changeMoney;
 
@@ -47,6 +50,7 @@ public class ChangeNodeVO {
         return id.equals(that.id);
     }
 
+    //用于去重
     @Override
     public int hashCode() {
         return Objects.hash(id);

+ 14 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/ChangeTokenFormController.java

@@ -188,5 +188,19 @@ public class ChangeTokenFormController extends BladeController {
 		return R.success("删除成功");
 	}
 
+	/**
+	 * 下达变更 变更令表
+	 */
+	@GetMapping("/executeChange")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "下达变更", notes = "传入当前变更令id")
+	@ApiImplicitParams(value = {
+			@ApiImplicitParam(name = "id", value = "当前变更令id", required = true),
+	})
+	public R executeChange(Long id) {
+		changeTokenFormService.executeChange(id);
+		return R.success("下达成功");
+	}
+
 	
 }

+ 16 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/MiddleMeterApplyController.java

@@ -37,6 +37,7 @@ import org.springblade.meter.entity.MiddleMeterApply;
 import org.springblade.meter.service.IMiddleMeterApplyService;
 import org.springblade.core.boot.ctrl.BladeController;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -71,6 +72,7 @@ public class MiddleMeterApplyController extends BladeController {
 		return R.data(vos);
 	}
 
+
 	/**
 	 * 添加分解清单
 	 */
@@ -198,6 +200,20 @@ public class MiddleMeterApplyController extends BladeController {
 		return R.data(middleMeterApplyService.getMeterNumber(middleMeterApply));
 	}
 
+	/**
+	 * 获取本期计量总金额
+	 */
+	@GetMapping("/getCurrentMeterMoney")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "获取本期计量总金额", notes = "传入合同id,合同计量期id,返回值为总金额")
+	@ApiImplicitParams(value = {
+			@ApiImplicitParam(name = "contractId", value = "合同id", required = true),
+			@ApiImplicitParam(name = "contractPeriodId", value = "合同计量期id", required = true)
+	})
+	public R<BigDecimal> getCurrentMeterMoney(MiddleMeterApply middleMeterApply) {
+		return R.data(middleMeterApplyService.getCurrentMeterMoney(middleMeterApply));
+	}
+
 
 	
 }

+ 4 - 4
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenFormMapper.xml

@@ -92,7 +92,7 @@
         GROUP BY contract_form_id
     </select>
     <select id="getChangeNode" resultType="org.springblade.meter.vo.ChangeNodeVO">
-        select id,node_name,change_picture as contractPicture,0 as change_money,ifnull(is_supplement,0) as isSupplement,
+        select id,node_name,change_picture as contractPicture,change_money,change_money as beforeChangeMoney,ifnull(is_supplement,0) as isSupplement,
                 if(is_supplement = 1,'是','否') as isSupplementName
         from s_meter_tree_contract mtc
         WHERE mtc.contract_id = #{contractId} and mtc.is_deleted = 0
@@ -102,7 +102,7 @@
             FIND_IN_SET(#{id} , mtc.ancestor)
         </foreach>
         union
-        select id,node_name,change_picture as contractPicture,0 as change_money,ifnull(is_supplement,0) as isSupplement,
+        select id,node_name,change_picture as contractPicture,change_money,change_money as beforeChangeMoney,ifnull(is_supplement,0) as isSupplement,
         if(is_supplement = 1,'是','否') as isSupplementName
         from s_meter_tree_contract mtc
         WHERE mtc.contract_id = #{contractId} and mtc.is_deleted = 0
@@ -132,7 +132,7 @@
         where id = #{id}
     </select>
     <select id="getNodeList" resultType="org.springblade.meter.vo.ChangeNodeVO">
-        select ctm.contract_meter_id as id,ctm.node_name,ctm.node_url,
+        select ctm.contract_meter_id as id,ctm.node_name,ctm.node_url,before_change_money,
                if(ctm.is_supplement = 1,'是','否') as isSupplementName,
                ctm.contract_picture,ctm.change_money
         from s_change_token_meter ctm
@@ -155,7 +155,7 @@
                     else '已废除' end as approveStatusName,
                0 as citeStatus
         from s_change_token_form ctf
-        where contract_id = #{contractId}
+        where contract_id = #{contractId} and is_deleted = 0
         order by change_approval_date desc
     </select>
 

+ 5 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenMeterMapper.java

@@ -19,6 +19,9 @@ package org.springblade.meter.mapper;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.meter.entity.ChangeTokenMeter;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.meter.vo.ChangeNodeVO;
+
+import java.util.List;
 
 /**
  * 变更令与合同计量单元	中间表 Mapper 接口
@@ -30,4 +33,6 @@ public interface ChangeTokenMeterMapper extends BaseMapper<ChangeTokenMeter> {
 
 
     void deleteByTokenId(@Param("id") Long id);
+
+    List<ChangeNodeVO> getChangTokenAllNode(@Param("tokenId") Long tokenId,@Param("contractId") Long contractId);
 }

+ 3 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ChangeTokenMeterMapper.xml

@@ -22,6 +22,9 @@
         DELETE FROM s_change_token_meter
         where change_token_id = #{id}
     </delete>
+    <select id="getChangTokenAllNode" resultType="org.springblade.meter.vo.ChangeNodeVO">
+
+    </select>
 
 
 </mapper>

+ 2 - 2
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ContractInventoryFormMapper.xml

@@ -145,8 +145,8 @@
     <select id="getNodeResolveForm" resultType="org.springblade.meter.vo.ContractFromVO">
         select ifm.id, cif.form_number,cif.form_name,cif.current_price,cif.contract_total,cif.change_total,cif.is_supplement,
                ifm.build_picture_total,ifm.change_build_picture_total,ifm.build_picture_money,ifm.change_build_picture_money,
-               if(ifm.build_picture_total=ifm.change_build_picture_total,(select count(1) from s_inventory_form_apply
-                where contract_id = #{contractId} and is_deleted = 0 and contract_form_id = ifm.contract_form_id),1) as citeStatus,
+               if(ifm.build_picture_total=ifm.change_build_picture_total,if((select count(1) from s_inventory_form_apply
+                   where contract_id = #{contractId} and is_deleted = 0 and contract_form_id = ifm.contract_form_id)=0,0,1),1) as citeStatus,
             IFNULL((SELECT SUM(build_picture_total) from s_inventory_form_meter WHERE contract_id = #{contractId} and contract_form_id = cif.id
                      and is_deleted = 0 and contract_meter_id and contract_meter_id != #{meterId}),0)  as otherPoseNum,
             IFNULL((SELECT SUM(build_picture_total) from s_inventory_form_meter

+ 3 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MiddleMeterApplyMapper.java

@@ -28,6 +28,7 @@ import org.springblade.meter.vo.MeterInventoryVO;
 import org.springblade.meter.vo.MiddleMeterApplyVO;
 import org.springblade.meter.vo.ResolveInventoryVO;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -62,4 +63,6 @@ public interface MiddleMeterApplyMapper extends BaseMapper<MiddleMeterApply> {
     Integer getNodeChild(@Param("contractId") Long contractId,@Param("nodeId") Long contractUnitId);
 
     List<Long> getNodeOtherFormId(@Param("contractId") Long contractId,@Param("contractPeriodId") Long contractPeriodId,@Param("nodeId") Long nodeId);
+
+    BigDecimal getCurrentMeterMoney(@Param("contractId") Long contractId,@Param("contractPeriodId") Long contractPeriodId);
 }

+ 8 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MiddleMeterApplyMapper.xml

@@ -38,7 +38,9 @@
             </foreach>
     </select>
     <select id="getResolveFormInfo" resultType="org.springblade.meter.vo.MeterInventoryVO">
-        select id,form_number,form_name,current_price,change_total,
+        select id,form_number,form_name,current_price,
+               IFNULL((select sum(change_build_picture_total) from s_inventory_form_meter where is_deleted = 0
+                    and contract_meter_id = #{nodeId} and contract_form_id = cif.id),0) as change_total,
                IFNULL((select sum(build_picture_total) from s_inventory_form_meter where is_deleted = 0
                             and contract_meter_id = #{nodeId} and contract_form_id = cif.id),0) as resolveTotal,
                0 as currentMeterTotal,0 as containChangeTotal,0 as currentMeterMoney,
@@ -113,6 +115,11 @@
         select contract_form_id from s_inventory_form_apply
         where contract_id = #{contractId} and is_deleted = 0 and contract_period_id = #{contractPeriodId} and contract_meter_id = #{nodeId}
     </select>
+    <select id="getCurrentMeterMoney" resultType="java.math.BigDecimal">
+        select ifnull(sum(meter_money),0)
+        from s_middle_meter_apply
+        where contract_id = #{contractId} and is_deleted = 0 and contract_period_id = #{contractPeriodId} and approve_status != 3
+    </select>
 
 
 </mapper>

+ 23 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/IChangeTokenFormService.java

@@ -55,15 +55,38 @@ public interface IChangeTokenFormService extends BaseService<ChangeTokenForm> {
      */
     List<ChangeFormVO> addForm(ChangeTokenAddFormDTO dto);
 
+    /**
+     * 新增-确认选择清单
+     */
     List<ChangeFormVO2> selectForm(Long contractId,Long nodeId,String ids);
 
+    /**
+     * 新增 变更令
+     */
     List<ChangeNodeVO> getChangeNode(Long contractId,String ids,String changeIds);
 
+    /**
+     * 修改 变更令表
+     */
     void update2(ChangeTokenFormDTO dto);
 
+    /**
+     * 详情
+     */
     ChangeTokenFormVO detail(Long id);
 
+    /**
+     * 分页 变更令表
+     */
     IPage<ChangeTokenPageVO> page2(Long contractId, Query query);
 
+    /**
+     * 删除 变更令表
+     */
     void delete(String ids);
+
+    /**
+     * 下达变更 变更令表
+     */
+    void executeChange(Long id);
 }

+ 7 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/service/IChangeTokenMeterService.java

@@ -18,6 +18,9 @@ package org.springblade.meter.service;
 
 import org.springblade.meter.entity.ChangeTokenMeter;
 import org.springblade.core.mp.base.BaseService;
+import org.springblade.meter.vo.ChangeNodeVO;
+
+import java.util.List;
 
 /**
  * 变更令与合同计量单元	中间表 服务类
@@ -28,5 +31,8 @@ import org.springblade.core.mp.base.BaseService;
 public interface IChangeTokenMeterService extends BaseService<ChangeTokenMeter> {
 
     //删除当前变更令下的清单
-    void deleteByTokenId(Long id);
+    void deleteByTokenId(Long tokenId);
+
+    //获取当前变更令下的所有节点
+    List<ChangeNodeVO> getChangTokenAllNode(Long tokenId,Long contractId);
 }

+ 3 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/IMiddleMeterApplyService.java

@@ -26,6 +26,7 @@ import org.springblade.meter.vo.MeterInventoryVO;
 import org.springblade.meter.vo.MiddleMeterApplyVO;
 import org.springblade.meter.vo.ResolveInventoryVO;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -58,4 +59,6 @@ public interface IMiddleMeterApplyService extends BaseService<MiddleMeterApply>
     MiddleMeterApplyVO detail(Long id);
 
     String getMeterNumber(MiddleMeterApply middleMeterApply);
+
+    BigDecimal getCurrentMeterMoney(MiddleMeterApply middleMeterApply);
 }

+ 38 - 11
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/ChangeTokenFormServiceImpl.java

@@ -143,23 +143,24 @@ public class ChangeTokenFormServiceImpl extends BaseServiceImpl<ChangeTokenFormM
                 //设置部位基础信息,方便公式生成报表
                 meter.setNodeName(l.getNodeName());
                 meter.setNodeUrl(l.getNodeUrl());
-                meter.setChangeMoney(new BigDecimal(0));
+                meter.setChangeMoney(BigDecimal.ZERO);
+                meter.setBeforeChangeMoney(l.getBeforeChangeMoney());
                 meter.setIsSupplement(l.getIsSupplement());
                 List<ChangeFormVO2> list = l.getFormList();
-                BigDecimal big = new BigDecimal(0);
+                BigDecimal big = BigDecimal.ZERO;
                 if (list != null && list.size() != 0){
                     formList.addAll(list);
                     for (ChangeFormVO2 vo2 : list) {
-                        big = big.add(vo2.getChangeMoney());
+                        big = big.add(vo2.getCurrentChangeMoney());
                     }
                 }
-                meter.setChangeMoney(big);
+                meter.setChangeMoney(l.getBeforeChangeMoney().add(big));
                 return meter;
             }).collect(Collectors.toList());
             changeTokenMeterService.saveBatch(meterList);
         }
         //保存清单,并计算总变更金额设置进变更令
-        BigDecimal big = new BigDecimal(0);
+        BigDecimal big = BigDecimal.ZERO;
         if (formList.size() != 0){
             List<ChangeTokenInventory> inventoryList = new ArrayList<>();
             for (ChangeFormVO2 vo2 : formList) {
@@ -196,7 +197,7 @@ public class ChangeTokenFormServiceImpl extends BaseServiceImpl<ChangeTokenFormM
                 inventory.setChangeBeforeMoney(vo2.getContractMoney());
                 //计算变更增减金额
                 inventory.setChangeMoney(vo2.getCurrentPrice().multiply(inventory.getChangeTotal()));
-                big = big.add(inventory.getChangeMoney());
+                big = big.add(vo2.getCurrentChangeMoney());
                 //计算变更后金额
                 inventory.setChangeAfterMoney(vo2.getCurrentPrice().multiply(inventory.getChangeAfterTotal()));
                 inventoryList.add(inventory);
@@ -322,17 +323,18 @@ public class ChangeTokenFormServiceImpl extends BaseServiceImpl<ChangeTokenFormM
                 //设置部位基础信息,方便公式生成报表
                 meter.setNodeName(l.getNodeName());
                 meter.setNodeUrl(l.getNodeUrl());
-                meter.setChangeMoney(new BigDecimal(0));
+                meter.setChangeMoney(BigDecimal.ZERO);
+                meter.setBeforeChangeMoney(l.getBeforeChangeMoney());
                 meter.setIsSupplement(l.getIsSupplement());
                 List<ChangeFormVO2> list = l.getFormList();
-                BigDecimal big = new BigDecimal(0);
+                BigDecimal big = BigDecimal.ZERO;
                 if (list != null && list.size() != 0){
                     formList.addAll(list);
                     for (ChangeFormVO2 vo2 : list) {
-                        big = big.add(vo2.getChangeMoney());
+                        big = big.add(vo2.getCurrentChangeMoney());
                     }
                 }
-                meter.setChangeMoney(big);
+                meter.setChangeMoney(l.getBeforeChangeMoney().add(big));
                 return meter;
             }).collect(Collectors.toList());
             changeTokenMeterService.saveBatch(meterList);
@@ -377,7 +379,7 @@ public class ChangeTokenFormServiceImpl extends BaseServiceImpl<ChangeTokenFormM
                 inventory.setChangeBeforeMoney(vo2.getContractMoney());
                 //计算变更增减金额
                 inventory.setChangeMoney(vo2.getCurrentPrice().multiply(inventory.getChangeTotal()));
-                big = big.add(inventory.getChangeMoney());
+                big = big.add(vo2.getCurrentChangeMoney());
                 //计算变更后金额
                 inventory.setChangeAfterMoney(vo2.getCurrentPrice().multiply(inventory.getChangeAfterTotal()));
                 inventoryList.add(inventory);
@@ -463,4 +465,29 @@ public class ChangeTokenFormServiceImpl extends BaseServiceImpl<ChangeTokenFormM
             attachmentFormService.deleteByMasterId(id);
         }
     }
+
+    /**
+     * 下达变更 变更令表
+     */
+    @Override
+    @Transactional
+    public void executeChange(Long id) {
+        ChangeTokenForm form = this.getById(id);
+        if (form.getCommandStatus() == 1){
+            throw new ServiceException("当前变更任务已经下达,请勿重复下达");
+        }
+        //获取当前变更令的变更节点
+
+        //获取当前变更令的所有变更清单
+        //清单放入节点中
+        //修改合同清单
+            // 此条清单的变更后数量和变更后金额
+
+        //修改清单与合同计量单元,当前节点下当前清单
+            // 修改施工图数量和施工图变更后数量,施工图金额和施工图变更后金额,并且重新计算节点金额
+        //修改清单与中间计量申请,当前节点下当前清单
+            // 只修改业务日期在今天之后的,并且未上报的,修改分解数量与变更后数量
+
+
+    }
 }

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

@@ -20,8 +20,11 @@ import org.springblade.meter.entity.ChangeTokenMeter;
 import org.springblade.meter.mapper.ChangeTokenMeterMapper;
 import org.springblade.meter.service.IChangeTokenMeterService;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.meter.vo.ChangeNodeVO;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * 变更令与合同计量单元	中间表 服务实现类
  *
@@ -36,4 +39,15 @@ public class ChangeTokenMeterServiceImpl extends BaseServiceImpl<ChangeTokenMete
     public void deleteByTokenId(Long id) {
         baseMapper.deleteByTokenId(id);
     }
+
+    /**
+     *     //获取当前变更令下的所有节点
+     * @param tokenId
+     * @param contractId
+     * @return
+     */
+    @Override
+    public List<ChangeNodeVO> getChangTokenAllNode(Long tokenId, Long contractId) {
+        return baseMapper.getChangTokenAllNode(tokenId,contractId);
+    }
 }

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

@@ -399,4 +399,12 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
         str.append(count+1);
         return str.toString();
     }
+
+    /**
+     * 获取本期计量总金额
+     */
+    @Override
+    public BigDecimal getCurrentMeterMoney(MiddleMeterApply middleMeterApply) {
+        return baseMapper.getCurrentMeterMoney(middleMeterApply.getContractId(),middleMeterApply.getContractPeriodId());
+    }
 }