yangyj 4 månader sedan
förälder
incheckning
e1ac6a638b

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

@@ -53,6 +53,8 @@ public class BaseInfo  implements  DataModel{
     /**动员总额*/
     @JSONField(name = "key_17",label="动员总额",ordinal = 13)
     private BigDecimal dyTotalAmount;
+    @JSONField(name = "key_31",label="全额扣回点",ordinal = 13)
+    private String deductPoint;
     /**农工资帐号名称*/
     @JSONField(name = "key_8",label="农工资帐号名称",ordinal = 8)
     private String  laborerAccountName  =UNKNOWN;

+ 15 - 2
blade-service/blade-manager/src/main/java/com/mixsmart/utils/FormulaUtils.java

@@ -1412,13 +1412,26 @@ public class FormulaUtils {
         plot.setBackgroundPaint(Color.WHITE);
 
         XYItemRenderer renderer = new XYSplineRenderer();
-        renderer.setSeriesPaint(0, Color.BLUE);
-        renderer.setSeriesPaint(1, Color.GREEN);
+        // 设置第一个系列为实线
+        renderer.setSeriesPaint(0, Color.BLUE); // 设置颜色
+        renderer.setSeriesStroke(0, new BasicStroke(2.0f)); // 设置实线
+
+        // 设置第二个系列为虚线
+        renderer.setSeriesPaint(1, Color.GREEN); // 设置颜色
+        renderer.setSeriesStroke(1, new BasicStroke(
+                0f,                          // 线宽
+                BasicStroke.CAP_ROUND,         // 端点样式
+                BasicStroke.JOIN_ROUND,        // 连接点样式
+                0.0f,                          // 斜接长度
+                new float[]{10.0f, 10f},      // 虚线模式:10像素线,6像素空白
+                0.0f                           // 偏移量
+        ));
         plot.setRenderer(renderer);
 
         // 设置 DateAxis
         DateAxis monthAxis = (DateAxis) plot.getDomainAxis();
         monthAxis.setDateFormatOverride(new SimpleDateFormat("yyyy年MM月"));
+        monthAxis.setTickLabelsVisible(false); // 禁用标签
         monthAxis.setTickLabelFont(font);
         monthAxis.setLabelFont(font);
         monthAxis.setLowerBound(startDate);

+ 10 - 23
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorMeter.java

@@ -695,22 +695,6 @@ public class ExecutorMeter extends FormulaExecutor {
                         }
                     }
                 }
-              /*  if("实际支付金额".equals(k)){
-                    sc.setCurrentAmount(currentStart);
-                    sc.setPeriodEndAmount(sumStart);
-                    if(dy.compareTo(BigDecimal.ZERO)>0){
-                        if(StringUtils.isNotEmpty(currentStart)&&!currentStart.contains("-")) {
-                            sc.setPreviousEndAmount(subtractFc.apply(sumStart, currentStart));
-                            sc.setPreviousEndRatio(ratioFc.apply(sc.getPreviousEndAmount(),dy.toPlainString()));
-                        }
-                        if(StringUtils.isNotEmpty(currentStart)) {
-                            sc.setCurrentRatio(ratioFc.apply(currentStart,dy.toPlainString()));
-                        }
-                        if(StringUtils.isNotEmpty(sumStart)) {
-                            sc.setPeriodEndRatio(ratioFc.apply(sumStart,dy.toPlainString()));
-                        }
-                    }
-                }*/
                 dataList.add(sc);
             });
             /*分行合计列,合计的时候需要计入手填部分*/
@@ -941,12 +925,16 @@ public class ExecutorMeter extends FormulaExecutor {
              List<InterimPayCertificateItem> itemList = tec.meterInfo.getInterimPayCertificateItems();
              itemList.clear();
             InterimPaymentCertificate blj=null;
+            /*合同工程清单*/
+            tec.meterInfo.getBaseInfo().setBOQAmount(tec.meterInfo.getInventoryForms().stream().map(e->BaseUtils.str2BigDecimal(e.getChangeMoney())).reduce(BigDecimal.ZERO,BigDecimal::add).toPlainString());
              if(Func.isNotEmpty(midPayItemList)){
                  /*暂定金编号,纠正*/
                  chapters.stream().filter(e->e.getFormName().contains("暂")).findFirst().ifPresent(t->{
                      midPayItemList.stream().filter(e->e.getPayName().contains("暂")).findFirst().ifPresent(k->{
                          k.setPayNumber(t.getFormNumber());
                          tec.meterInfo.getBaseInfo().setProvisionalSum(paymentCertificateMap.get(t.getFormNumber()).getContractAmount());
+                         BigDecimal BOQAmount= tec.meterInfo.getInventoryForms().stream().filter(e->!t.getFormNumber().equals(e.getFormNumber())).map(e->BaseUtils.str2BigDecimal(e.getChangeMoney())).reduce(BigDecimal.ZERO,BigDecimal::add);
+                         tec.meterInfo.getBaseInfo().setBOQAmount(BOQAmount.toPlainString());
                      });
                  });
                  /*合计后回显*/
@@ -1648,18 +1636,17 @@ public class ExecutorMeter extends FormulaExecutor {
                 /*已过去*/
                 String passDay=CustomFunction.join(CustomFunction.daysPassed(baseInfo.getStartDate(), LocalDate.now()),"").toString();
 
-                BigDecimal provisionalSum=tec.meterInfo.getInventoryForms().stream().filter(e->"ZLJE".equals(e.getFormNumber())).map(e->BaseUtils.str2BigDecimal(e.getBidPrice())).reduce(BigDecimal.ZERO,BigDecimal::add);
-                BigDecimal BOQAmount=tec.meterInfo.getInventoryForms().stream().filter(e->!"ZLJE".equals(e.getFormNumber())).map(e->BaseUtils.str2BigDecimal(e.getBidPrice())).reduce(BigDecimal.ZERO,BigDecimal::add);
-                baseInfo.setProvisionalSum(provisionalSum.toPlainString());
-                baseInfo.setBOQAmount(BOQAmount.toPlainString());
-                BigDecimal changeTokenTotal=tec.meterInfo.getChangeTokenListMap().values().stream().flatMap(Collection::stream).map(ChangeToken::getTotalChangeMoney).reduce(BigDecimal.ZERO,BigDecimal::add);
-                double totalMoney = BaseUtils.obj2DoubleZero(baseInfo.getProvisionalSum())+BaseUtils.obj2DoubleZero(baseInfo.getBOQAmount())+BaseUtils.obj2DoubleZero(changeTokenTotal);
+                String provisionalSum=tec.meterInfo.getBaseInfo().getProvisionalSum();
+                String BOQAmount=tec.meterInfo.getBaseInfo().getBOQAmount();
+                BigDecimal contractTotal=tec.meterInfo.getInventoryForms().stream().map(e->BaseUtils.str2BigDecimal(e.getContractMoney())).reduce(BigDecimal.ZERO,BigDecimal::add);
+                BigDecimal changeTotal=tec.meterInfo.getInventoryForms().stream().map(e->BaseUtils.str2BigDecimal(e.getChangeMoney())).reduce(BigDecimal.ZERO,BigDecimal::add);
+                String totalMoney = addFc.apply(provisionalSum,BOQAmount);
                 String brief="开工日期:"+baseInfo.getStartDatePlan()+" 始算工期日:"+baseInfo.getStartDate()
                         +" 合同完成日期:"+baseInfo.getEndDatePlan()+" 合同期限"+contractDay+"天 时间延长"+extended+"天 修改后合同期限"+ totalDay
                         +"天(即至"+baseInfo.getEndDate()+")"
                         + "\n 合同总价"+CustomFunction.xN(baseInfo.getContractAmount(),0.0001)+"万元、暂定金"
                         +CustomFunction.xN(baseInfo.getProvisionalSum(),0.0001)+"万元、工程量清单金额"
-                        +CustomFunction.xN(baseInfo.getBOQAmount(),0.0001)+"万元、工程量变更("+CustomFunction.xN(changeTokenTotal,0.0001)+")万元、估计最终金额"+CustomFunction.xN(totalMoney,0.0001)+"万元,时间已过"
+                        +CustomFunction.xN(baseInfo.getBOQAmount(),0.0001)+"万元、工程量变更("+CustomFunction.xN(subtractFc.apply(changeTotal.toEngineeringString(),contractTotal.toPlainString()),0.0001)+")万元、估计最终金额"+CustomFunction.xN(totalMoney,0.0001)+"万元,时间已过"
                         +passDay+"天,占合同工期"+StringUtils.number2String(ratioFc.apply(passDay,totalDay),2)+"%";
                 elementWriter.write(t,brief);
             });

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

@@ -66,6 +66,7 @@ public class FormulaDaoImpl implements IFormulaDao {
                 baseInfo.setBankAccountName(StringUtils.handleNull(map.getOrDefault("bank_account_name","")));
                 baseInfo.setBankAccount(StringUtils.handleNull(map.getOrDefault("bank_account_number","")));
                 baseInfo.setBankName(StringUtils.handleNull(map.getOrDefault("bank_of_deposit","")));
+                baseInfo.setDeductPoint(StringUtils.handleNull(map.getOrDefault("dy_full_deduct_point","")));
             }
             baseInfo.setProjectName(projectInfo.getProjectName());
             if(info.getContractType()==2){