yangyj 1 год назад
Родитель
Сommit
482fbeacd2

+ 6 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/Material.java

@@ -1,6 +1,7 @@
 package org.springblade.manager.vo;
 
 import com.alibaba.fastjson.annotation.JSONField;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.ArrayList;
@@ -49,6 +50,11 @@ public class Material {
     private String storageConform;
     @JSONField(name = "key_14",label="备注",ordinal = 14)
     private String remark;
+    @JSONField(name = "key_16",label="材料到场编号",ordinal = 14)
+    private String materialArriveNumber;
+    @JSONField(name = "key_17",label="合格证",ordinal = 14)
+    private String certificate;
+
     private Integer sort;
     private Long periodId;
     public List<Object> getData(){

+ 8 - 4
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/MaterialPriceDifferential.java

@@ -24,7 +24,7 @@ public class MaterialPriceDifferential implements  DataModel{
     private String unit;
 
     @JSONField(name = "key_4",label="数量",ordinal = 5)
-    private String quantity  ;
+    private String quantity;
 
     @JSONField(name = "key_5",label="基期单价",ordinal = 5)
     private String priceBase;
@@ -38,13 +38,17 @@ public class MaterialPriceDifferential implements  DataModel{
 
     @JSONField(name = "key_9",label="价差",ordinal = 13)
     private String priceSpread;
-    @JSONField(name = "key_10",label="总金额",ordinal = 13)
+    @JSONField(name = "key_10",label="价差总金额",ordinal = 13)
     private String total;
 
     @JSONField(name = "key_11",label="计量表编号",ordinal = 15)
-    private String formNumber;
+    private String materialArriveNumber;
 
     @JSONField(name = "key_12",label="批准文号",ordinal = 15)
-    private String approvalNumber;
+    private String certificate;
+    @JSONField(name = "key_14",label="合计",ordinal = 102)
+    private String sum;
+    @JSONField(name = "key_13",label="页码",format="$2页,第$1页",ordinal = 101)
+    private String pageCount;
 
 }

+ 0 - 1
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/MaterialWithheld.java

@@ -52,6 +52,5 @@ public class MaterialWithheld {
     @JSONField(name = "key_14",label="本期期回扣设备款",ordinal = 1)
     private String curPeriodBackEi;
     @JSONField(name = "key_15",label="页码",ordinal = 101)
-    /**第n页 共m页*/
     private String pageCount;
 }

+ 12 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorMeter.java

@@ -300,7 +300,7 @@ public class ExecutorMeter extends FormulaExecutor {
     @Data
     @EqualsAndHashCode(callSuper = true)
     public  class MaterialSp extends   BaseSpecial<MaterialPriceDifferential> implements Special{
-
+     /*永久性工程材料差价金额一览表*/
         @Override
         public boolean ready() {
             return MeterInfo.MB_ZJ.equals(tec.getMeterInfo().getConfig());
@@ -319,14 +319,23 @@ public class ExecutorMeter extends FormulaExecutor {
                     mpd.setUnit(e.getUnit());
                     mpd.setQuantity(e.getMeterAmount());
                     mpd.setPriceBase(e.getPriceBase());
-                    mpd.setAmountBase(e.getSum());
                     mpd.setPrice(e.getPrice());
+                    mpd.setAmount(multiFc.apply(e.getPrice(),e.getMeterAmount()));
                     mpd.setAmountBase(multiFc.apply(e.getPriceBase(),e.getMeterAmount()));
+                    mpd.setPriceSpread(subtractFc.apply(mpd.getPrice(),mpd.getPriceBase()));
+                    mpd.setTotal(subtractFc.apply(mpd.getAmount(),mpd.getAmountBase()));
+                    mpd.setCertificate(e.getCertificate());
+                    mpd.setMaterialArriveNumber(e.getMaterialArriveNumber());
                     return mpd;
                  }
                 ).collect(Collectors.toList()));
             }
-            putOut();
+            /*每页合计*/
+            FormulaUtils.elementFindByKey(fdm,"key_14").ifPresent(fd->{
+               List<  List<MaterialPriceDifferential> > list =BaseUtils.splitList(dataList,capacity);
+               elementWriter.write(fd,list.stream().map(l->l.stream().map(MaterialPriceDifferential::getTotal).mapToDouble(Double::parseDouble).sum()).collect(Collectors.toList()));
+            });
+            putOut(MaterialPriceDifferential.class);
         }
     }
 

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaDaoImpl.java

@@ -96,7 +96,7 @@ public class FormulaDaoImpl implements IFormulaDao {
     @Override
     public Function<Long, List<Material>> getMaterialFormFc() {
         return contractId->{
-            String sql="select  b.material_name materialName,b.unit,a.price,b.price price_base,a.meter_amount meterAmount,meter_money sum,a.material_source source,material_conform  materialConform,a.storage_place storagePlace,a.storage_status storageStatus,a.storage_conform storageConform,a.remark,c.sort,c.id period_id from s_material_meter_form a left join s_contract_material b on a.contract_material_id = b.id join s_meter_period c  on a.meter_period_id=c.id where a.contract_id="+contractId+"  and a.is_deleted=0 and  a.approve_status=2";
+            String sql="select a.certificate,a.material_arrive_number,  b.material_name materialName,b.unit,a.price,b.price price_base,a.meter_amount meterAmount,meter_money sum,a.material_source source,material_conform  materialConform,a.storage_place storagePlace,a.storage_status storageStatus,a.storage_conform storageConform,a.remark,c.sort,c.id period_id from s_material_meter_form a left join s_contract_material b on a.contract_material_id = b.id join s_meter_period c  on a.meter_period_id=c.id where a.contract_id="+contractId+"  and a.is_deleted=0 and  a.approve_status=2";
             return  getEntityList(sql,Material.class);
         };
     }