Explorar o código

计费详单问题修改

shxiaoc hai 1 ano
pai
achega
4b02f6b5dc

+ 4 - 0
src/main/java/com/steerinfo/dil/mapper/BmstruckDetailsOrderMapper.java

@@ -244,4 +244,8 @@ public interface BmstruckDetailsOrderMapper extends IBaseMapper<BmstruckDetailsO
 
     BigDecimal getDetailsIdByBatchId(BigDecimal weightBatchId);
 
+    int updateDetailsStatusByBatchId(BigDecimal weightBatchId);
+
+    List<BigDecimal> getDetailIdsByWeightBatchId(@Param("batchIdList") List<Map<String, Object>> batchIdList);
+
 }

+ 6 - 1
src/main/java/com/steerinfo/dil/service/impl/BmstruckDetailsOrderServiceImpl.java

@@ -270,6 +270,7 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
                 BigDecimal weightBatchId = DataChange.dataToBigDecimal(map.get("weightBatchId"));
                 //判断该批次有没有结算数据
                 if(bmstruckDetailsOrderMapper.getIsHaveDetailsOrderByBatch(weightBatchId) > 0 ){
+//                    bmstruckDetailsOrderMapper.updateDetailsStatusByBatchId(weightBatchId);
                     continue;
                 }
                 try {
@@ -904,7 +905,10 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
         }catch (Exception e){
             System.out.println("e"+e.getMessage());
         }
-        List<BigDecimal> detailIds = bmstruckDetailsOrderMapper.getDetailIds(orderId);
+//        List<BigDecimal> detailIds = bmstruckDetailsOrderMapper.getDetailIds(orderId);
+        List<Map<String,Object>> batchIdList = bmstruckDetailsOrderMapper.getWeightBatchIds(orderId);
+        //根据批次id去查询计费详单id
+        List<BigDecimal> detailIds = bmstruckDetailsOrderMapper.getDetailIdsByWeightBatchId(batchIdList);
         omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
         int result = 0;
         for (BigDecimal detailsId : detailIds) {
@@ -914,6 +918,7 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
             BigDecimal priceId1 = bmstruckDetailsOrder.getPriceId();
             bmstruckDetailsOrder.setPriceids(priceId1+","+priceId);
             bmstruckDetailsOrder.setPriceId(priceId);
+            bmstruckDetailsOrder.setOrderId(orderId);
             bmstruckDetailsOrder.setPriceValue(priceValue);
             BigDecimal weightTaskResultId = bmstruckDetailsOrder.getWeightTaskResultId();
             BigDecimal weightBatchId = bmstruckDetailsOrder.getWeightBatchId();

+ 20 - 4
src/main/resources/com/steerinfo/dil/mapper/BmstruckDetailsOrderMapper.xml

@@ -2669,11 +2669,7 @@
                            ON TWR.SALE_MATERIAL_ID = ASM.SALE_MATERIAL_ID
                  LEFT JOIN TMSTRUCK_WEIGHT_BATCH TWB
                            ON TWB .WEIGHT_BATCH_ID = ASM .WEIGHT_BATCH_ID
-        WHERE OO.ORDER_NUMBER =
-              (
-                  SELECT ORDER_NUMBER FROM OMSTRUCK_ORDER
                   WHERE ORDER_ID = #{orderId}
-              )
     </select>
     <select id="getWeightBatchNetWeight" resultType="java.math.BigDecimal" parameterType="decimal">
         SELECT SUM(BATCH_NET_WEIGHT) FROM TMSTRUCK_WEIGHT_BATCH
@@ -2683,4 +2679,24 @@
         SELECT BDO.DETAILS_ID  FROM BMSTRUCK_DETAILS_ORDER BDO
         WHERE BDO.WEIGHT_BATCH_ID = #{weightBatchId}
     </select>
+    <update id="updateDetailsStatusByBatchId">
+        update BMSTRUCK_DETAILS_ORDER
+        SET wether_to_statement = 3
+        where weight_batch_id = #{weightBatchId}
+    </update>
+    <select id="getDetailIdsByWeightBatchId" resultType="java.math.BigDecimal">
+        SELECT bdo.details_id FROM BMSTRUCK_DETAILS_ORDER BDO
+        where 1 != 1
+        <if test="batchIdList != null and batchIdList.size > 0">
+            or bdo.weight_batch_id in
+        <foreach collection="batchIdList" close=")" index="index" item="item" open="(" separator=",">
+            <if test="item != null">
+                #{item.weightBatchId}
+            </if>
+        </foreach>
+        </if>
+
+    </select>
+
+
 </mapper>