luobang 2 éve
szülő
commit
2d8e18bf58

+ 3 - 1
src/main/java/com/steerinfo/dil/controller/BmstruckDetailsOrderController.java

@@ -413,7 +413,9 @@ public class BmstruckDetailsOrderController extends BaseRESTfulController {
         int i=0;
         for (Map<String, Object> columnData : columnDataList) {
             //每个表头字段的过滤条件
-            columnData.put("filters", setListMap(columnList,columnData.get("prop").toString()));
+            if (DataChange.dataToBigDecimal(columnData.get("isFilter")).intValue() != 0) {
+                columnData.put("filters", setListMap(columnList,columnData.get("prop").toString()));
+            }
             if (i==1){
                 columnData.put("min-width","83");
             }else if (i==2){

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

@@ -285,6 +285,39 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
         return calSufExpr(s);
     }
 
+    public BigDecimal updateSteelAmounts(Map<String,Object> map) throws Exception {
+        BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
+        BigDecimal weightTaskResultId = DataChange.dataToBigDecimal(map.get("weightTaskResultId"));
+        BigDecimal orderType = bmstruckDetailsOrderMapper.getOrderType(orderId);
+        BigDecimal priceId = DataChange.dataToBigDecimal(map.get("priceId"));
+        BigDecimal priceValue = getPriceValue(priceId);
+        BigDecimal netWeight = getNetWeight(weightTaskResultId);
+        // 得到计费公式
+        String formula_string = null;
+        if (orderType.intValue() >= 1 && orderType.intValue() <= 3) {
+//            BigDecimal distance = new BigDecimal(101);
+            // 得到销售汽运计费公式
+//            if (distance.intValue() >= 91 || distance.intValue() <= 109) {
+            // 得到销售10km差距内的汽运计费公式
+            formula_string = bmstruckFormulaService.getTruckFormula(new BigDecimal(10));
+            // 替换采购汽运运计算公式
+            formula_string = formula_string.replace("运输单价",priceValue.toString())
+                    .replace("物资净重",netWeight.toString());
+//            }
+//            else {
+//                // 得到销售10km差距外的汽运计费公式
+//                formula_string = bmstruckFormulaService.getTruckFormula(new BigDecimal(11));
+//                // 替换采购汽运运计算公式
+//                formula_string = formula_string.replace("运输单价",priceValue.toString())
+//                        .replace("运输距离",distance.toString())
+//                        .replace("物资净重",netWeight.toString());
+//            }
+        }
+        String s = toSufExpr(formula_string);
+        return calSufExpr(s);
+    }
+
+
     /**
      * 中缀转换后缀表达式
      */
@@ -501,6 +534,10 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
         }
         BigDecimal priceId = DataChange.dataToBigDecimal(mapValue.get("priceId"));
         //根据运输订单id查询计费详单id
+        OmstruckOrder omstruckOrder = new OmstruckOrder();
+        omstruckOrder.setOrderId(orderId);
+        omstruckOrder.setPriceId(priceId);
+        omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
         List<BigDecimal> detailIds = bmstruckDetailsOrderMapper.getDetailIds(orderId);
         int result = 0;
         for (BigDecimal detailsId : detailIds) {
@@ -510,9 +547,13 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
             bmstruckDetailsOrder.setPriceids(priceId1+","+priceId);
             bmstruckDetailsOrder.setPriceId(priceId);
             BigDecimal weightTaskResultId = bmstruckDetailsOrder.getWeightTaskResultId();
+            Map<String,Object> map = new HashMap<>();
+            map.put("orderId",orderId);
+            map.put("weightTaskResultId",weightTaskResultId);
+            map.put("priceId",priceId);
             try {
                 // 计算出新的详单金额
-                BigDecimal newAmount = generateTruckFees(orderId,weightTaskResultId);
+                BigDecimal newAmount = updateSteelAmounts(map);
                 bmstruckDetailsOrder.setDetailsAmount(newAmount);
                 //修改计量表的历史时间
                 omstruckOrderMapper.modifyOldTime(priceId,new Date());
@@ -526,15 +567,11 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
         } catch (Exception e) {
             e.printStackTrace();
         }
-        OmstruckOrder omstruckOrder = new OmstruckOrder();
-        omstruckOrder.setOrderId(orderId);
-        omstruckOrder.setPriceId(priceId);
-        omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
         if(DataChange.dataToBigDecimal(mapValue.get("updatePlace")).intValue() == 1) {
             //修改地址
             bmstruckDetailsOrderMapper.updatePlace(mapValue);
         }
-        //BigDecimal detailsId = DataChange.dataToBigDecimal(mapValue.get("detailsId"));
+
         return result;
     }