yangyj 1 年間 前
コミット
e0a99b769a

+ 2 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/MaterialsArrival.java

@@ -39,6 +39,8 @@ public class MaterialsArrival implements  DataModel{
     private String warrantyNumber;
     @JSONField(name = "key_11",label="监抽报告编号",ordinal = 1)
     private String ssr;
+    @JSONField(name = "key_13",label="页码",format="$2页,第$1页",ordinal = 101)
+    private String pageCount;
 
 
 }

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

@@ -17,6 +17,7 @@ import org.springblade.manager.formula.ElementWriter;
 import org.springblade.manager.vo.*;
 import org.springframework.beans.BeanUtils;
 
+
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.LocalDate;
@@ -122,6 +123,7 @@ public class ExecutorMeter extends FormulaExecutor {
             /*材料预付款支付申请表处理*/
             this.specialList.add(new MaterialCalc());
             this.specialList.add(new MaterialSp());
+            this.specialList.add(new MaterialsArrivalSp());
         }else if(MeterType.INTERIM.equals(tec.getMeterType())){
             this.specialList.add(new InterimPayCert());
             this.specialList.add(new InterimSum());
@@ -366,7 +368,7 @@ public class ExecutorMeter extends FormulaExecutor {
                         }
                 ).collect(Collectors.toList()));
             }
-            putOut();
+            putOut(MaterialsArrival.class);
         }
     }
 

+ 14 - 5
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -1132,10 +1132,14 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                             }
                             if(fd.getCoordsList().size()>1&&f.split("[/+\\-*]").length>1){
                                 LinkedHashMap<String,FormData> fdMap=step(ele);
-                                List<LocalVariable>  local= slice2Local(f,fdMap,tec);
-                                if(local.size()>0){
-                                    List<Object> values = FormulaUtils.slice(local,f);
-                                    FormulaUtils.write(fd,values, !fd.getTableName().equals(checkTable));
+                                if(fdMap!=null) {
+                                    List<LocalVariable> local = slice2Local(f, fdMap, tec);
+                                    if (local.size() > 0) {
+                                        List<Object> values = FormulaUtils.slice(local, f);
+                                        FormulaUtils.write(fd, values, !fd.getTableName().equals(checkTable));
+                                    }
+                                }else{
+                                    tec.getLog().put(FormulaLog.CALC,fd.getEName()+"存在依赖错位");
                                 }
                             }else{
                                 putEle(f,ele,currentMap,fd);
@@ -1168,7 +1172,12 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         if (maxFormData.getValues().size() != minFormData.getValues().size()) {
             int baseLength = maxFormData.getValues().size();
             for (FormData formData : ele) {
-                formData.setStep(baseLength / formData.getValues().size());
+                /*如果无法被整除,说明已经错位*/
+                if(baseLength % formData.getValues().size()==0) {
+                    formData.setStep(baseLength / formData.getValues().size());
+                }else{
+                    return null;
+                }
             }
         }
         ele.forEach(e->{