소스 검색

万盛计量更改存储方式redis->mysql

cr 4 주 전
부모
커밋
f2ce35c13f

+ 21 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/MeterFormNumberWs.java

@@ -0,0 +1,21 @@
+package org.springblade.manager.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class MeterFormNumberWs {
+    private Long id;
+    private Long periodId;
+    private String formNumber;
+    private BigDecimal nowMoney;
+    private BigDecimal nowTotal;
+    private BigDecimal nowEndMoney;
+    private BigDecimal nowEndTotal;
+    private Integer isDeleted;
+}

+ 18 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/MeterItemWs.java

@@ -0,0 +1,18 @@
+package org.springblade.manager.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class MeterItemWs {
+    private Long id;
+    private Long periodId;
+    private String meterItem;
+    private BigDecimal amount;
+    private Integer isDeleted;
+}

+ 7 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/MeterFormNumberWsMapper.java

@@ -0,0 +1,7 @@
+package org.springblade.manager.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.manager.entity.MeterFormNumberWs;
+
+public interface MeterFormNumberWsMapper extends BaseMapper<MeterFormNumberWs> {
+}

+ 23 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/MeterFormNumberWsMapper.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.manager.mapper.MeterFormNumberWsMapper">
+    <!-- 通用查询映射结果 -->
+    <resultMap id="MeterItemWsMap" type="org.springblade.manager.entity.MeterFormNumberWs">
+        <result column="id" property="id"/>
+        <result column="period_id" property="periodId"/>
+        <result column="form_number" property="formNumber"/>
+        <result column="now_money" property="nowMoney"/>
+        <result column="now_total" property="nowTotal"/>
+        <result column="now_end_money" property="nowEndMoney"/>
+        <result column="now_end_total" property="nowEndTotal"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+
+
+
+
+
+
+
+</mapper>

+ 8 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/MeterItemWsMapper.java

@@ -0,0 +1,8 @@
+package org.springblade.manager.mapper;
+
+
+import org.springblade.manager.entity.MeterItemWs;
+import org.springblade.manager.injector.EasyBaseMapper;
+
+public interface MeterItemWsMapper extends EasyBaseMapper<MeterItemWs> {
+}

+ 20 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/MeterItemWsMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.manager.mapper.MeterItemWsMapper">
+    <!-- 通用查询映射结果 -->
+    <resultMap id="MeterItemWsMap" type="org.springblade.manager.entity.MeterItemWs">
+        <result column="id" property="id"/>
+        <result column="period_id" property="periodId"/>
+        <result column="meter_item" property="meterItem"/>
+        <result column="amount" property="amount"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+
+
+
+
+
+
+
+</mapper>

+ 127 - 60
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -47,9 +47,7 @@ import org.springblade.manager.entity.*;
 import org.springblade.manager.enums.ExecuteType;
 import org.springblade.manager.formula.*;
 import org.springblade.manager.formula.impl.*;
-import org.springblade.manager.mapper.FormulaMapper;
-import org.springblade.manager.mapper.WbsTreeContractMapper;
-import org.springblade.manager.mapper.WbsTreePrivateMapper;
+import org.springblade.manager.mapper.*;
 import org.springblade.manager.service.*;
 import org.springblade.manager.utils.*;
 import org.springblade.manager.vo.*;
@@ -157,6 +155,10 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
     private IContractInventoryFormClient iContractInventoryFormClient;
     @Autowired
     private CollectionUtilsClient collectionUtilsClient;
+    @Autowired
+    private MeterItemWsMapper meterItemWsMapper;;
+    @Autowired
+    private MeterFormNumberWsMapper meterFormNumberWsMapper;
 
     @Override
     public void execute(TableElementConverter tec) {
@@ -2419,6 +2421,49 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         }
     }
 
+    public BigDecimal getMeterItem(Long periodId,String meterItem){
+         String sql="SELECT IFNULL(\n" +
+                 "    (SELECT amount FROM meter_item_ws \n" +
+                 "     WHERE period_id = ? AND meter_item = ? AND is_deleted = 0 \n" +
+                 "     LIMIT 1),\n" +
+                 "    0\n" +
+                 ") AS amount;";
+        return  jdbcTemplate.queryForObject(sql, BigDecimal.class,periodId,meterItem);
+    }
+
+    public void saveMeterItem(Long periodId,String meterItem,BigDecimal amount){
+        if(amount!=null&&amount.compareTo(BigDecimal.ZERO)==0){
+            return;
+        }
+        MeterItemWs meterItemWs = new MeterItemWs(SnowFlakeUtil.getId(), periodId, meterItem, amount, 0);
+        String update="delete from meter_item_ws where period_id="+meterItemWs.getPeriodId()+" and meter_item='"+meterItemWs.getMeterItem()+"'";
+        jdbcTemplate.execute(update);
+        String insert="insert into meter_item_ws (id,period_id,meter_item,amount,is_deleted) values(?,?,?,?,?)";
+        meterItemWsMapper.insert(meterItemWs);
+    }
+
+    public BigDecimal getMeterFormNumber(Long periodId,String formNumber,String result){
+        String sql = "SELECT IFNULL((SELECT " + result + " FROM meter_form_number_ws WHERE period_id = ? AND form_number = ? AND is_deleted = 0 LIMIT 1), 0) AS result";
+        return jdbcTemplate.queryForObject(sql, BigDecimal.class,periodId,formNumber);
+    }
+
+    public void saveMeterFormNumber(Long periodId,String formNumber,String result,BigDecimal amount){
+        if(amount!=null&&amount.compareTo(BigDecimal.ZERO)==0){
+            return;
+        }
+        String sql="select * from meter_form_number_ws where period_id="+periodId+" and form_number='"+formNumber+"' and is_deleted=0  LIMIT 1";
+        List<MeterFormNumberWs> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(MeterFormNumberWs.class));
+        if(!list.isEmpty()){
+            MeterFormNumberWs meterFormNumberWs = list.get(0);
+            String update="update meter_form_number_ws set "+result+"='"+amount+"' where id="+meterFormNumberWs.getId();
+            jdbcTemplate.update(update);
+        }else {
+            String insert="insert into meter_form_number_ws (id,period_id,form_number,is_deleted,"+result+") values("+SnowFlakeUtil.getId()+","+periodId+",'"+formNumber+"',0,"+amount+")";
+            jdbcTemplate.execute(insert);
+        }
+    }
+
+
     @Override
     public List<ReportResult> execute4(Long reportId, Long contractId, Long periodId, Integer type, Long projectId) throws FileNotFoundException, IllegalAccessException {
         //获取当前合同段保证金比例
@@ -2948,9 +2993,10 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                     if (j > 0) {
                         String reportIdSql = "Select id from s_interim_pay_certificate where contract_period_id=" + list.get(j - 1).getId() + " and is_deleted=0";
                         Long cerid = jdbcTemplate.queryForObject(reportIdSql, Long.class);
-                        Object o = bladeRedis.get("repordId" + cerid + "elseEndMoney");
+                        //Object o = bladeRedis.get("repordId" + cerid + "elseEndMoney");
+                       BigDecimal o= getMeterItem(cerid,"其他费用");
                         if (o != null) {
-                            beforeEndMoney = (BigDecimal) o;
+                            beforeEndMoney = o;
                         }
                     }
                 }
@@ -2964,7 +3010,9 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                 }
             }
             endMoney = beforeEndMoney.add(nowMoney);
-            bladeRedis.set("repordId" + reportId + "elseEndMoney", endMoney);
+            //bladeRedis.set("repordId" + reportId + "elseEndMoney", endMoney);
+            saveMeterItem(periodId,"其他费用",endMoney);
+
 
             //------------------------------------------------------------项目总投资------------------------------------------------------------
             Cell b7 = getCellByAddress(sheet, "B7");
@@ -3199,9 +3247,10 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                     if (index.isPresent()) {
                         int j = index.getAsInt();
                         if (j > 0) {
-                            Object o = bladeRedis.get("periodId" + list.get(j - 1).getId() + "lastEndChangeMoneySum");
-                            if (o != null) {
-                                lastEndChangeMoney = (BigDecimal) o;
+                            //Object o = bladeRedis.get("periodId" + list.get(j - 1).getId() + "lastEndChangeMoneySum");
+                            BigDecimal amount=getMeterItem(list.get(j - 1).getId(),"本期末累计变更");
+                            if (amount != null) {
+                                lastEndChangeMoney = amount;
                             }
                         }
                     }
@@ -3260,7 +3309,8 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             BigDecimal lastEndChangeMoneySum = lastEndChangeMoney.add(changemoneySum);
             Cell g5 = getCellByAddress(sheet, "G5");
             g5.setCellValue(lastEndChangeMoneySum.toString());
-            bladeRedis.set("periodId" + periodId + "lastEndChangeMoneySum", lastEndChangeMoneySum);
+            //bladeRedis.set("periodId" + periodId + "lastEndChangeMoneySum", lastEndChangeMoneySum);
+            saveMeterItem(periodId,"本期末累计变更",lastEndChangeMoneySum);
             //------------------------------------------------------------变更后合同价------------------------------------------------------------
             Cell i5 = getCellByAddress(sheet, "I5");
             i5.setCellValue(changeMoneyNew.toString());
@@ -3439,13 +3489,17 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             }
             //---------------------------结果存储redis---------------------------------
             //上期末累计扣取保留金
-            redisTemplate.opsForValue().set(MeasurementStorage.PRE_END_RESERVE_MONEY + redisId, lastEndDeduct.toString());
+            //redisTemplate.opsForValue().set(MeasurementStorage.PRE_END_RESERVE_MONEY + redisId, lastEndDeduct.toString());
+            saveMeterItem(periodId,"上期末累计扣取保留金",lastEndDeduct);
             //本期扣取保留金
-            redisTemplate.opsForValue().set(MeasurementStorage.CUR_END_RESERVE_MONEY + redisId, deductionMoney.toString());
+            //redisTemplate.opsForValue().set(MeasurementStorage.CUR_END_RESERVE_MONEY + redisId, deductionMoney.toString());
+            saveMeterItem(periodId,"本期扣取保留金",deductionMoney);
             //本期末累计扣取保留金
-            redisTemplate.opsForValue().set(MeasurementStorage.CUR_END_RESERVE_MONEY_SUM + redisId, endDeductionMoney.toString());
+            //redisTemplate.opsForValue().set(MeasurementStorage.CUR_END_RESERVE_MONEY_SUM + redisId, endDeductionMoney.toString());
+            saveMeterItem(periodId,"本期末累计扣取保留金",endDeductionMoney);
             //本期计量
-            redisTemplate.opsForValue().set(MeasurementStorage.CUR_MEASUREMENT + redisId, AllcurrentMeterTotal.toString());
+            //redisTemplate.opsForValue().set(MeasurementStorage.CUR_MEASUREMENT + redisId, AllcurrentMeterTotal.toString());
+            saveMeterItem(periodId,"本期计量",AllcurrentMeterTotal);
 
             String file_path = FileUtils.getSysLocalFileUrl();
             String locationFile = file_path + SnowFlakeUtil.getId() + ".xlsx";
@@ -3465,10 +3519,10 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         reportResult.setPdfPath(bladeFile.getPdfUrl());
         reportResult.setName("中间支付审核表");
         return reportResult;
-
     }
 
 
+
     /**
      * 获取上期末的数据
      *
@@ -3593,12 +3647,9 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             //根据坐标获取单元格
             Cell c = getCellByAddress(sheet, "E6");
             //本期计量
-            Object o = bladeRedis.get("periodId:" + periodId + "nowMoney");
-            BigDecimal value = new BigDecimal(0);
-            if (ObjectUtil.isNotEmpty(o) && o instanceof BigDecimal) {
-                value = (BigDecimal) o;
-            }
-            c.setCellValue(value.toString());
+            //Object o = bladeRedis.get("periodId:" + periodId + "nowMoney");
+             BigDecimal amount= getMeterItem(periodId,"本期实际支付");
+            c.setCellValue(amount.toString());
             if (periodId.equals(1867838908899852290L)) {
                 Cell f22 = getCellByAddress(sheet, "F22");
                 f22.setCellValue("2024年10月30日");
@@ -3685,10 +3736,11 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                     int j = index.getAsInt();
                     if (j > 0) {
                         //根据期数ID,章节号获取
-                        Object o = bladeRedis.get("periodId:" + list.get(j - 1).getId() + "formNumber:" + key + "nowEndMoney");
-                        if (ObjectUtil.isNotEmpty(o)) {
-                            beforeEndMoney = beforeEndMoney.add((BigDecimal) o);
-                        }
+                        //Object o = bladeRedis.get("periodId:" + list.get(j - 1).getId() + "formNumber:" + key + "nowEndMoney");
+                         BigDecimal o=  getMeterFormNumber(list.get(j - 1).getId(),key,"now_end_money");
+                         if(o!=null){
+                             beforeEndMoney = beforeEndMoney.add(o);
+                         }
                         if (!beforeEndMoney.equals(BigDecimal.ZERO)) {
                             //到上期末完成
                             monthlyReport.setBeforeEndMoney(beforeEndMoney);
@@ -3703,9 +3755,10 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                 }
             }
             //本期完成,计算清单支付表时存在redis里的值。期数ID+章编号
-            Object o = bladeRedis.get("periodId:" + periodId + "formNumber:" + key + "nowMoney");
+            //Object o = bladeRedis.get("periodId:" + periodId + "formNumber:" + key + "nowMoney");
+            BigDecimal o=getMeterFormNumber(periodId,key,"now_money");
             if (ObjectUtil.isNotEmpty(o)) {
-                monthlyReport.setNowMoney((BigDecimal) o);
+                monthlyReport.setNowMoney(o);
                 BigDecimal percentage = monthlyReport.getNowMoney().divide(monthlyReport.getAfterCurrentMeterMoney(), 10, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"));
                 percentage = percentage.setScale(2, BigDecimal.ROUND_HALF_UP); // 设置小数位数为2
                 if (percentage.compareTo(BigDecimal.ZERO) != 0) {
@@ -3735,7 +3788,8 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
 
             }
             //到本期末完成 本期ID+章节号
-            bladeRedis.set("periodId:" + periodId + "formNumber:" + key + "nowEndMoney", monthlyReport.getNowEndMoney());
+            //bladeRedis.set("periodId:" + periodId + "formNumber:" + key + "nowEndMoney", monthlyReport.getNowEndMoney());
+            saveMeterFormNumber(periodId,key,"now_end_money",monthlyReport.getNowMoney());
             values.add(monthlyReport);
         }
         //处理跨期 到上期末完成金额和工程量
@@ -3752,9 +3806,10 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                             List<ContractMeterPeriod> list2 = list.subList(0, j);
                             BigDecimal money = new BigDecimal("0");
                             for (ContractMeterPeriod period : list2) {
-                                Object o = bladeRedis.get("periodId:" + period.getId() + "formNumber:" + vo1.getChapterSeq() + "nowMoney");
+                                //Object o = bladeRedis.get("periodId:" + period.getId() + "formNumber:" + vo1.getChapterSeq() + "nowMoney");
+                               BigDecimal o= getMeterFormNumber(period.getId(),vo1.getChapterSeq(),"now_money");
                                 if (o != null) {
-                                    BigDecimal money1 = (BigDecimal) o;
+                                    BigDecimal money1 = o;
                                     money = money.add(money1);
                                 }
                             }
@@ -3765,7 +3820,8 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                                 vo1.setNowEndMoney(money);
                             }
                             if (vo1.getNowEndMoney().compareTo(BigDecimal.ZERO) != 0) {
-                                bladeRedis.set("periodId:" + periodId + "formNumber:" + vo1.getChapterSeq() + "nowEndMoney", vo1.getNowEndMoney());
+                                //bladeRedis.set("periodId:" + periodId + "formNumber:" + vo1.getChapterSeq() + "nowEndMoney", vo1.getNowEndMoney());
+                                saveMeterFormNumber(periodId,vo1.getChapterSeq(),"now_end_money",vo1.getNowEndMoney());
                             }
                         }
                     }
@@ -3885,13 +3941,16 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
 
         MonthlyReportVo m13 = new MonthlyReportVo();
         m13.setFormName("保留金");
-        //上期末扣取保留金
-        String s = redisTemplate.opsForValue().get(MeasurementStorage.PRE_END_RESERVE_MONEY + redisId);
-        if (StringUtil.isNotBlank(s)) {
-            m13.setBeforeEndMoney(new BigDecimal(s));
-        }
-        m13.setNowMoney(new BigDecimal(redisTemplate.opsForValue().get(MeasurementStorage.CUR_END_RESERVE_MONEY + redisId)));
-        m13.setNowEndMoney(new BigDecimal(redisTemplate.opsForValue().get(MeasurementStorage.CUR_END_RESERVE_MONEY_SUM + redisId)));
+        //上期末累计扣取保留金
+        //String s = redisTemplate.opsForValue().get(MeasurementStorage.PRE_END_RESERVE_MONEY + redisId);
+        BigDecimal s=getMeterItem(periodId,"上期末累计扣取保留金");
+        if (s!=null) {
+            m13.setBeforeEndMoney(s);
+        }
+        //m13.setNowMoney(new BigDecimal(redisTemplate.opsForValue().get(MeasurementStorage.CUR_END_RESERVE_MONEY + redisId)));
+        m13.setNowMoney(getMeterItem(periodId,"本期扣取保留金"));
+        //m13.setNowEndMoney(new BigDecimal(redisTemplate.opsForValue().get(MeasurementStorage.CUR_END_RESERVE_MONEY_SUM + redisId)));
+        m13.setNowEndMoney(getMeterItem(periodId,"本期末累计扣取保留金"));
         values.add(m13);
 
         MonthlyReportVo m14 = new MonthlyReportVo();
@@ -4002,7 +4061,8 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             m19.setNowEndC(percentage6 + "%");
         }
         //本期实际支付金额
-        bladeRedis.set("periodId:" + periodId + "nowMoney", m19.getNowMoney());
+        //bladeRedis.set("periodId:" + periodId + "nowMoney", m19.getNowMoney());
+        saveMeterItem(periodId,"本期实际支付",m19.getNowMoney());
         values.add(m19);
         setZeroBigDecimalFieldsToNullInList(values);
         List<MonthlyReportVo> vos = new ArrayList<>(values);
@@ -4229,8 +4289,11 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             vo.setNowTotal(detailVO.getAllMeterTotal());
             //本期完成金额
             vo.setNowMoney(detailVO.getAllMeterTotal().multiply(detailVO.getCurrentPrice()).setScale(0, RoundingMode.HALF_UP));
-            bladeRedis.set("periodId:" + periodId + "formNumber:" + vo.getFormNumber() + "nowTotal", vo.getNowTotal());
-            bladeRedis.set("periodId:" + periodId + "formNumber:" + vo.getFormNumber() + "nowMoney", vo.getNowMoney());
+            //bladeRedis.set("periodId:" + periodId + "formNumber:" + vo.getFormNumber() + "nowTotal", vo.getNowTotal());
+            saveMeterFormNumber(periodId,vo.getFormNumber(),"now_total",vo.getNowTotal());
+            //bladeRedis.set("periodId:" + periodId + "formNumber:" + vo.getFormNumber() + "nowMoney", vo.getNowMoney());
+            saveMeterFormNumber(periodId,vo.getFormNumber(),"now_money",vo.getNowMoney());
+
 
             //大于0表示有上期的 需要添加上期末数据
             if (changeFormDetailMap.size() > 0) {
@@ -4239,8 +4302,10 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                 for (Map.Entry<String, List<MeterInventoryDetailVO>> entry : changeFormDetailMap.entrySet()) {
                     for (MeterInventoryDetailVO changevo : entry.getValue()) {
                         if (changevo.getFormNumber().equals(vo.getFormNumber())) {
-                            b1 = bladeRedis.get("periodId:" + entry.getKey() + "formNumber:" + vo.getFormNumber() + "detailsTotal");
-                            b2 = bladeRedis.get("periodId:" + entry.getKey() + "formNumber:" + vo.getFormNumber() + "detailsMoney");
+                            //b1 = bladeRedis.get("periodId:" + entry.getKey() + "formNumber:" + vo.getFormNumber() + "detailsTotal");
+                            b1=getMeterFormNumber(Long.parseLong(entry.getKey()),vo.getFormNumber(),"now_end_total");
+                            //b2 = bladeRedis.get("periodId:" + entry.getKey() + "formNumber:" + vo.getFormNumber() + "detailsMoney");
+                            b2=getMeterFormNumber(Long.parseLong(entry.getKey()),vo.getFormNumber(),"now_end_money");
                             break;
                         }
                     }
@@ -4265,12 +4330,13 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                 vo.setNowEndMoney(vo.getNowMoney().setScale(0, RoundingMode.HALF_UP));
             }
             if (ObjectUtil.isNotEmpty(vo.getNowEndTotal()) && !vo.getNowEndTotal().equals(BigDecimal.ZERO)) {
-                bladeRedis.set("periodId:" + periodId + "formNumber:" + vo.getFormNumber() + "detailsTotal", vo.getNowEndTotal());
+                //bladeRedis.set("periodId:" + periodId + "formNumber:" + vo.getFormNumber() + "detailsTotal", vo.getNowEndTotal());
+                saveMeterFormNumber(periodId,vo.getFormNumber(),"now_end_total",vo.getNowEndTotal());
             }
             if (ObjectUtil.isNotEmpty(vo.getNowEndMoney()) && !vo.getNowEndMoney().equals(BigDecimal.ZERO)) {
-                bladeRedis.set("periodId:" + periodId + "formNumber:" + vo.getFormNumber() + "detailsMoney", vo.getNowEndMoney());
+                //bladeRedis.set("periodId:" + periodId + "formNumber:" + vo.getFormNumber() + "detailsMoney", vo.getNowEndMoney());
+                saveMeterFormNumber(periodId,vo.getFormNumber(),"now_end_money",vo.getNowEndMoney());
             }
-
             list1.add(vo);
         }
         list1 = list1.stream().sorted(Comparator.comparing(MeterInventoryVO1::getSort)).collect(Collectors.toList());
@@ -4289,16 +4355,12 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                             BigDecimal total = new BigDecimal("0");
                             BigDecimal money = new BigDecimal("0");
                             for (ContractMeterPeriod period : list2) {
-                                Object o = bladeRedis.get("periodId:" + period.getId() + "formNumber:" + vo1.getFormNumber() + "nowMoney");
-                                Object o1 = bladeRedis.get("periodId:" + period.getId() + "formNumber:" + vo1.getFormNumber() + "nowTotal");
-                                if (o != null) {
-                                    BigDecimal money1 = (BigDecimal) o;
-                                    money = money.add(money1);
-                                }
-                                if (o1 != null) {
-                                    BigDecimal total1 = (BigDecimal) o1;
-                                    total = total.add(total1);
-                                }
+                                //Object o = bladeRedis.get("periodId:" + period.getId() + "formNumber:" + vo1.getFormNumber() + "nowMoney");
+                                BigDecimal money1=getMeterFormNumber(period.getId(),vo1.getFormNumber(),"now_money");
+                                //Object o1 = bladeRedis.get("periodId:" + period.getId() + "formNumber:" + vo1.getFormNumber() + "nowTotal");
+                                BigDecimal total1=getMeterFormNumber(period.getId(),vo1.getFormNumber(),"now_total");
+                                money = money.add(money1);
+                                total = total.add(total1);
                             }
                             vo1.setBeforeEndMoney(money);
                             vo1.setBeforeEndTotal(total);
@@ -4309,10 +4371,13 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                                 vo1.setNowEndTotal(total.add(vo1.getNowTotal()));
                             }
                             if (ObjectUtil.isNotEmpty(vo1.getNowEndTotal()) && vo1.getNowEndTotal().compareTo(BigDecimal.ZERO) != 0) {
-                                bladeRedis.set("periodId:" + periodId + "formNumber:" + vo1.getFormNumber() + "detailsTotal", vo1.getNowEndTotal());
+                                //bladeRedis.set("periodId:" + periodId + "formNumber:" + vo1.getFormNumber() + "detailsTotal", vo1.getNowEndTotal());
+                                saveMeterFormNumber(periodId,vo1.getFormNumber(),"now_end_total",vo1.getNowEndTotal());
                             }
                             if (ObjectUtil.isNotEmpty(vo1.getNowEndMoney()) && vo1.getNowEndMoney().compareTo(BigDecimal.ZERO) != 0) {
-                                bladeRedis.set("periodId:" + periodId + "formNumber:" + vo1.getFormNumber() + "detailsMoney", vo1.getNowEndMoney());
+                                //bladeRedis.set("periodId:" + periodId + "formNumber:" + vo1.getFormNumber() + "detailsMoney", vo1.getNowEndMoney());
+                                saveMeterFormNumber(periodId,vo1.getFormNumber(),"now_end_money",vo1.getNowEndMoney());
+
                             }
 
                         }
@@ -4518,9 +4583,11 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                     listUrl.add(bladeFile.getPdfUrl());
                 }
                 //本期末完成金额 本期ID+章节号
-                bladeRedis.set("periodId:" + periodId + "formNumber:" + listEntry.getKey() + "nowEndMoney", totalNowEndMoney);
+                //bladeRedis.set("periodId:" + periodId + "formNumber:" + listEntry.getKey() + "nowEndMoney", totalNowEndMoney);
+                saveMeterFormNumber(periodId, listEntry.getKey(), "now_end_money", totalNowEndMoney);
                 //本期完成金额 本期ID+章节号
-                bladeRedis.set("periodId:" + periodId + "formNumber:" + listEntry.getKey() + "nowMoney", totalNowMoney);
+                //bladeRedis.set("periodId:" + periodId + "formNumber:" + listEntry.getKey() + "nowMoney", totalNowMoney);
+                saveMeterFormNumber(periodId, listEntry.getKey(), "now_money", totalNowMoney);
 
             }
             collectionUtilsClient.mergePdfPublicMethods(listUrl, localImgUrl);