瀏覽代碼

万盛计量bug

cr 4 周之前
父節點
當前提交
b22921e65d

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

@@ -1,7 +1,10 @@
 package org.springblade.manager.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 import org.springblade.manager.entity.MeterFormNumberWs;
 
 public interface MeterFormNumberWsMapper extends BaseMapper<MeterFormNumberWs> {
+    MeterFormNumberWs selectMeterFormNumber(@Param("periodId") Long periodId, @Param("formNumber") String formNumber);
+
 }

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

@@ -12,12 +12,13 @@
         <result column="now_end_total" property="nowEndTotal"/>
         <result column="is_deleted" property="isDeleted"/>
     </resultMap>
-
-
-
-
-
-
+    <select id="selectMeterFormNumber" resultType="org.springblade.manager.entity.MeterFormNumberWs">
+        select * from meter_form_number_ws where period_id=#{periodId}
+        <if test="formNumber != null and formNumber !=''">
+            and form_number=#{formNumber}
+        </if>
+        and is_deleted=0 limit 1
+    </select>
 
 
 </mapper>

+ 19 - 8
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -2443,7 +2443,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
     }
 
     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";
+        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);
     }
 
@@ -2451,15 +2451,26 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         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);
+        MeterFormNumberWs meterFormNumberWs= meterFormNumberWsMapper.selectMeterFormNumber(periodId,formNumber);
+        if(meterFormNumberWs!=null){
             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);
+            MeterFormNumberWs ws = new MeterFormNumberWs();
+            ws.setId(SnowFlakeUtil.getId());
+            ws.setPeriodId(periodId);
+            ws.setFormNumber(formNumber);
+            ws.setIsDeleted(0);
+            if("now_money".equals(result)){
+                ws.setNowMoney(amount);
+            } else if ("now_total".equals(result)) {
+                ws.setNowTotal( amount);
+            } else if ("now_end_money".equals(result)) {
+                ws.setNowEndMoney( amount);
+            }else if("now_end_total".equals( result)){
+                ws.setNowEndTotal( amount);
+            }
+            meterFormNumberWsMapper.insert(ws);
         }
     }
 
@@ -3789,7 +3800,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             }
             //到本期末完成 本期ID+章节号
             //bladeRedis.set("periodId:" + periodId + "formNumber:" + key + "nowEndMoney", monthlyReport.getNowEndMoney());
-            saveMeterFormNumber(periodId,key,"now_end_money",monthlyReport.getNowMoney());
+            saveMeterFormNumber(periodId,key,"now_end_money",monthlyReport.getNowEndMoney());
             values.add(monthlyReport);
         }
         //处理跨期 到上期末完成金额和工程量