Quellcode durchsuchen

开工预付款附件、计量期起止日期

yangyj vor 1 Jahr
Ursprung
Commit
40d528d58d

+ 6 - 1
blade-common/src/main/java/org/springblade/common/utils/BaseUtils.java

@@ -10,6 +10,8 @@ import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.math.RoundingMode;
 import java.security.MessageDigest;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -24,6 +26,7 @@ import static java.math.BigDecimal.*;
  * @description 基础工具类
  */
 public class BaseUtils {
+    public  static DateTimeFormatter chineseDateFm = DateTimeFormatter.ofPattern("yyyy年M月d日", Locale.CHINA);
 
     public static Pattern KM = Pattern.compile(RegexConstant.KM_REG);
 
@@ -530,7 +533,9 @@ public static List<Object> obj2List(Object obj) {
         return value - 1;
     }
 
-
+   public static  String toDateStr(LocalDate date){
+        return Optional.ofNullable(date).orElse(LocalDate.now()).format(chineseDateFm);
+   }
 
 
 }

+ 9 - 7
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/AdvancePaymentCertificate.java

@@ -9,15 +9,17 @@ import lombok.Data;
  * @description 开工预付款支付证书
  */
 @Data
-public class AdvancePaymentCertificate implements  DataModel{
-    public static final String ID="20280000000";
-    public static final String TBN="APayCert";
-    public static final String TBN_CH="开工预付款支付证书";
+public class AdvancePaymentCertificate implements  DataModel {
+    public static final String ID = "20280000000";
+    public static final String TBN = "APayCert";
+    public static final String TBN_CH = "开工预付款支付证书";
 
-    @JSONField(name = "key_1",label="上次开工预付款",ordinal = 1)
+    @JSONField(name = "key_1", label = "上次开工预付款", ordinal = 1)
     private String previousStayPay;
-    @JSONField(name = "key_2",label="本次申请预付开工预付款",ordinal = 2)
+    @JSONField(name = "key_2", label = "本次申请预付开工预付款", ordinal = 2)
     private String currentStayPay;
-    @JSONField(name = "key_3",label="累计预付开工预付款",ordinal = 3)
+    @JSONField(name = "key_3", label = "累计预付开工预付款", ordinal = 3)
     private String totalStayPay;
+    @JSONField(name = "key_5", label = "附件名称", ordinal = 5)
+    private String fileName;
 }

+ 13 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/MeterPeriodInfo.java

@@ -2,6 +2,7 @@ package org.springblade.manager.vo;
 
 import com.alibaba.fastjson.annotation.JSONField;
 import lombok.Data;
+import org.springblade.common.utils.BaseUtils;
 
 import java.time.LocalDate;
 
@@ -37,6 +38,10 @@ public class MeterPeriodInfo implements  DataModel{
     private String month;
     @JSONField(name = "key_15",label="月日",ordinal = 3)
     private String day;
+    @JSONField(name = "key_17",label="开始日期",ordinal = 3)
+    private String startDateStr;
+    @JSONField(name = "key_18",label="结束日期",ordinal = 3)
+    private String endDateStr;
     /**上期累计金额*/
     @JSONField(name = "key_4",label="上期累计金额",ordinal = 4)
     private String  preTotal;
@@ -73,6 +78,14 @@ public class MeterPeriodInfo implements  DataModel{
     /**结束日期*/
     private LocalDate endDate;
 
+    public String getStartDateStr() {
+        return BaseUtils.toDateStr(startDate);
+    }
+
+    public String getEndDateStr() {
+        return BaseUtils.toDateStr(endDate);
+    }
+
     public void init(){
         this.month= String.valueOf(formPrintDate.getMonthValue());
         this.year= String.valueOf(formPrintDate.getYear());

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

@@ -19,4 +19,6 @@ public class StartPayForm {
     private String meterMoney;
     /**计量期排序*/
     private Integer periodSort;
+    /**附件名称*/
+    private String fileName;
 }

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

@@ -255,6 +255,9 @@ public class ExecutorMeter extends FormulaExecutor {
                     currentD=current.stream().mapToDouble(s->Double.parseDouble(s.getMeterMoney())).sum();
                     elementWriter.write(fdm.get(AdvancePaymentCertificate.TBN+":key_2"),StringUtils.number2String(currentD,2));
                     currentStart=StringUtils.number2String(currentD,3);
+                    FormulaUtils.elementFindByKey(fdm,"key_5").ifPresent(t->{
+                        elementWriter.write(t,one.getFileName());
+                    });
                     /*上一期*/
                   Optional<Integer> op=startPayForms.stream().map(StartPayForm::getPeriodSort).filter(s->s<one.getPeriodSort()).max(Comparator.comparingInt(s->s));
                   if(op.isPresent()){

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

@@ -112,7 +112,7 @@ public class FormulaDaoImpl implements IFormulaDao {
     @Override
     public Function<Long, List<StartPayForm>> getStayPayFormFc() {
         return  contractId->{
-            String sql="select a.meter_money meterMoney ,b.id meterPeriodId,b.sort periodSort from s_start_pay_meter_form a join s_meter_period b on a.meter_period_id =b.id  where  a.is_deleted =0  and a.contract_id="+contractId;
+            String sql="select (SELECT GROUP_CONCAT(file_name SEPARATOR ',') FROM s_attachment_form WHERE master_id =a.id) file_name,  a.meter_money meterMoney ,b.id meterPeriodId,b.sort periodSort from s_start_pay_meter_form a join s_meter_period b on a.meter_period_id =b.id  where  a.is_deleted =0  and a.contract_id="+contractId;
             return getEntityList(sql,StartPayForm.class);
         };
     }
@@ -121,7 +121,7 @@ public class FormulaDaoImpl implements IFormulaDao {
     @Override
     public Function<Long, MeterPeriodInfo> getInterimMeterPeriodFc() {
         return certificateId->{
-            String sql="select a.id, a.period_number periodNumber,a.sort ,b.print_date formPrintDate ,b.pay_money curTotal from  s_contract_meter_period a join s_interim_pay_certificate b on a.id=b.contract_period_id where a.is_deleted=0 and b.id="+certificateId;
+            String sql="select a.id, a.period_number periodNumber,a.start_date,b.end_date,a.sort ,b.print_date formPrintDate ,b.pay_money curTotal from  s_contract_meter_period a join s_interim_pay_certificate b on a.id=b.contract_period_id where a.is_deleted=0 and b.id="+certificateId;
             return this.jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<>(MeterPeriodInfo.class));
         };
     }
@@ -129,7 +129,7 @@ public class FormulaDaoImpl implements IFormulaDao {
     @Override
     public Function<Long, List<MeterPeriodInfo>> getInterimMeterPeriodAllFc() {
           return contractId->{
-            String sql="select a.id,a.pay_number, a.period_number periodNumber,a.sort ,b.print_date formPrintDate ,b.pay_money curTotal,b.id reportId,b.start_date,b.end_date  from  s_contract_meter_period a join s_interim_pay_certificate b on a.id=b.contract_period_id where a.is_deleted=0 and  b.is_deleted=0 and b.contract_id="+contractId+" order by a.sort";
+            String sql="select a.id,a.pay_number,a.start_date,b.end_date, a.period_number periodNumber,a.sort ,b.print_date formPrintDate ,b.pay_money curTotal,b.id reportId,b.start_date,b.end_date  from  s_contract_meter_period a join s_interim_pay_certificate b on a.id=b.contract_period_id where a.is_deleted=0 and  b.is_deleted=0 and b.contract_id="+contractId+" order by a.sort";
             return   getEntityList(sql,MeterPeriodInfo.class);
         };
     }