Prechádzať zdrojové kódy

一键生成零号变更改为选择生成

chenr 4 mesiacov pred
rodič
commit
10bab82515

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

@@ -60,8 +60,8 @@ public class ChangeTokenFormController extends BladeController {
 	@ApiImplicitParams(value = {
 			@ApiImplicitParam(name = "contractId", value = "合同id", required = true)
 	})
-	public R buildZeroChange(Long contractId) {
-		changeTokenFormService.buildZeroChange(contractId);
+	public R buildZeroChange(Long contractId,Long nodeId) {
+		changeTokenFormService.buildZeroChange(contractId,nodeId);
 		return R.success("生成成功");
 	}
 
@@ -177,7 +177,7 @@ public class ChangeTokenFormController extends BladeController {
 		IPage<ChangeTokenPageVO> pages = changeTokenFormService.page2(contractId,query);
 		return R.data(pages);
 	}
-	
+
 	/**
 	 * 删除 变更令表
 	 */
@@ -217,5 +217,5 @@ public class ChangeTokenFormController extends BladeController {
 		return R.success("撤销成功");
 	}
 
-	
+
 }

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

@@ -33,7 +33,7 @@ import java.util.List;
 public interface ChangeTokenFormMapper extends BaseMapper<ChangeTokenForm> {
 
 
-    List<ContractInventoryForm> getAllForm(@Param("contractId") Long contractId);
+    List<ContractInventoryForm> getAllForm(@Param("contractId") Long contractId,@Param("nodeId")Long nodeId);
 
     List<ZeroChangeVO> getZeroChange(@Param("contractId") Long contractId,@Param("nodeId") Long nodeId);
 

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

@@ -83,8 +83,16 @@
                        where ifm.contract_id = #{contractId} and ifm.is_deleted = 0 and ifm.contract_form_id = cif.id),0) as changeTotal
         from s_contract_inventory_form cif
         where id in
-        (select contract_form_id from s_inventory_form_meter
-                where contract_id = #{contractId} and is_deleted = 0 group by contract_form_id)
+              (SELECT contract_form_id
+               FROM s_inventory_form_meter
+               WHERE contract_id = #{contractId}
+                 and is_deleted = 0
+                 and contract_meter_id in (SELECT id
+                                           FROM s_meter_tree_contract mtc
+                                           WHERE contract_id = #{contractId}
+                                             and is_deleted = 0
+                                             and (mtc.id = #{nodeId} or FIND_IN_SET(#{nodeId}, ancestor) > 0))
+               GROUP BY contract_form_id)
     </select>
     <select id="getZeroChange" resultType="org.springblade.meter.vo.ZeroChangeVO">
         select id,form_number,form_name,current_price,contract_total,contract_money,

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

@@ -38,7 +38,7 @@ public interface IChangeTokenFormService extends BaseService<ChangeTokenForm> {
     /**
      * 一键生成零号变更
      */
-    void buildZeroChange(Long contractId);
+    void buildZeroChange(Long contractId,Long nodeId);
 
     /**
      * 获取零号变更

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

@@ -90,9 +90,9 @@ public class ChangeTokenFormServiceImpl extends BaseServiceImpl<ChangeTokenFormM
      * 一键生成零号变更  统计每个清单节点当前分解量,设置进清单的划分数量
      */
     @Override
-    public void buildZeroChange(Long contractId) {
+    public void buildZeroChange(Long contractId,Long nodeId) {
         //联表查询清单表和中间表
-        List<ContractInventoryForm> list = baseMapper.getAllForm(contractId);
+        List<ContractInventoryForm> list = baseMapper.getAllForm(contractId,nodeId);
         if (list.size() == 0){
             throw new ServiceException("生成失败,当前合同段还没有清单");
         }