hejiahui 2 anos atrás
pai
commit
1ef151a10f

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

@@ -173,5 +173,8 @@ public interface BmstruckDetailsOrderMapper extends IBaseMapper<BmstruckDetailsO
     List<BigDecimal> getDetailsIdByOrderId(Integer orderId);
 
     BigDecimal selectNetWeight(BigDecimal orderId);
-
+    //内转计次结算
+    List<Map<String, Object>> getInwardCountDetailsOrder(Map<String, Object> mapValue);
+    //查询该订单是否是计重且计时
+    String selectWeightAndTimeByOrderId(BigDecimal orderId);
 }

+ 21 - 7
src/main/java/com/steerinfo/dil/service/impl/BmstruckDetailsOrderServiceImpl.java

@@ -558,6 +558,8 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
                 return bmstruckDetailsOrderMapper.getInwardTimeDetailsOrder(mapValue);
             case 11:
                 return bmstruckDetailsOrderMapper.getAllInwardWeight(mapValue);
+            case 26:
+                return bmstruckDetailsOrderMapper.getInwardCountDetailsOrder(mapValue);
             default:
                 break;
         }
@@ -618,8 +620,8 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
                 return -1;
             }
         }
-        if(orderType.intValue() == 21){
-            //计时
+        if(orderType.intValue() == 21 || orderType.intValue()==26){
+            //计时/计次
             priceAmountList.add(mapVal);
         }
         //获取单价ID
@@ -633,7 +635,13 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
         int result = 0;
         for (Map<String, Object> map : priceAmountList) {
             BmstruckDetailsOrder bmstruckDetailsOrder = new BmstruckDetailsOrder();
-            if(inwardTypeList.contains(orderType.intValue())){
+            //查询计重且计时
+            String s = bmstruckDetailsOrderMapper.selectWeightAndTimeByOrderId(orderId);
+            int num=0;
+            if (s!=null && s.contains("计时且过计量")){
+                num=21;
+            }
+            if(inwardTypeList.contains(orderType.intValue()) && num==0){
                 BigDecimal weightTaskResultId = DataChange.dataToBigDecimal(map.get("weightTaskResultId"));
                 BigDecimal netWeight = null;
                 if(mapVal.get("netWeight") != null) {
@@ -655,20 +663,26 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
                 }
             }
             //内转计时结算
-            if(orderType.intValue() == 21){
+            if(orderType.intValue() == 21 || num==21){
                 BigDecimal resultTime = DataChange.dataToBigDecimal(map.get("Time1"));
                 //保留两位小数
                 DecimalFormat df = new DecimalFormat("0.00");
                 BigDecimal settleTime  = new BigDecimal(df.format((float)resultTime.doubleValue()/60.00));
-                if(settleTime.doubleValue()<1.00){
-                    BigDecimal detailsAmount = new BigDecimal(priceValue.doubleValue());
+                if(settleTime.doubleValue()<2.00){
+                    BigDecimal detailsAmount = new BigDecimal(priceValue.doubleValue()*2);
                     bmstruckDetailsOrder.setDetailsAmount(new BigDecimal(df.format(detailsAmount)));
-
                 }else{
                     BigDecimal detailsAmount = new BigDecimal(priceValue.doubleValue()*settleTime.doubleValue());
                     bmstruckDetailsOrder.setDetailsAmount(new BigDecimal(df.format(detailsAmount)));
                 }
             }
+            //内转计次结算
+            if(orderType.intValue() == 26){
+                //保留两位小数
+                DecimalFormat df = new DecimalFormat("0.00");
+                BigDecimal detailsAmount = new BigDecimal(priceValue.doubleValue());
+                bmstruckDetailsOrder.setDetailsAmount(new BigDecimal(df.format(detailsAmount)));
+            }
             bmstruckDetailsOrder.setPriceId(priceId);
             bmstruckDetailsOrder.setInsertUpdateRemark("单价存在");
             // 得到最大id

+ 95 - 2
src/main/resources/com/steerinfo/dil/mapper/BmstruckDetailsOrderMapper.xml

@@ -1447,7 +1447,7 @@
                      rw.warehouse_name  "unloadName",
                      rw2.warehouse_name "loadName",
                      rm.material_name   "materialName",
-                     tttr.RESULT_VALUE   "resultTime",
+                     TTTR.result_balance_time   "resultTime",
                      actp.price_value   "priceValue",
                      bdo.details_time   "detailsTime",
                      bdo.details_amount "detailsAmount",
@@ -1486,7 +1486,7 @@
                                  ON RCT.CAPACITY_TYPE_ID = RC.CAPACITY_TYPE_ID
                        LEFT JOIN AMS_CONTRACT_TRANSPORT_PRICE ACTP
                                  ON ACTP.PRICE_ID = BDO.PRICE_ID
-              WHERE OO.ORDER_TYPE = 21
+              WHERE OO.ORDER_TYPE in (21,11)
                 AND TTTR.RESULT_TIME_TYPE = 3
                 AND bdo.WETHER_TO_STATEMENT = #{detailStatus}
                 <if test="userId != null" >
@@ -2178,4 +2178,97 @@
         left join RMS_RECEIVE_ADDRESS RRA
         on RRA.ADDRESS_ID=RRP.ADDRESS_ID
     </select>
+
+    <select id="getInwardCountDetailsOrder" resultType="java.util.Map">
+        select *
+        from (select RC.CAPACITY_NUMBER "capacityNum",
+        rs.shipper_name    "shipperName",
+        rw.warehouse_name  "unloadName",
+        rw2.warehouse_name "loadName",
+        rm.material_name   "materialName",
+        TTTR.result_balance_time   "resultTime",
+        actp.price_value   "priceValue",
+        bdo.details_time   "detailsTime",
+        bdo.details_amount "detailsAmount",
+        oo.order_number    "orderNumber",
+        bdo.details_no     "detailsNo",
+        bdo.INSERT_TIME    "insertTime",
+        bdo.DETAILS_ID     "detailsId"
+        from bmstruck_details_order bdo
+        left join OMSTRUCK_ORDER OO
+        ON OO.ORDER_ID = BDO.ORDER_ID
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.ORDER_ID = OO.ORDER_ID
+        LEFT JOIN TMSTRUCK_TIME_TASK_RESULT TTTR
+        ON TTTR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        LEFT JOIN AMSTRUCK_INWARD_PLAN AIP
+        ON AIP.PLAN_ID = OO.ORDER_PLAN_ID
+        LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP
+        ON ARP.PLAN_ID = AIP.PLAN_ID
+        LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR
+        ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
+        LEFT JOIN AMSTRUCK_REQUIREMENT_MATERIAL ARM
+        ON ARM.REQUIREMENT_ID = AIR.REQUIREMENT_ID
+        LEFT JOIN RMS_WAREHOUSE RW
+        ON ARM.REQUIREMENT_UNLOAD_UNIT_ID = RW.WAREHOUSE_ID
+        LEFT JOIN RMS_WAREHOUSE RW2
+        ON RW2.WAREHOUSE_ID = ARM.REQUIREMENT_PLATFORM_ID
+        LEFT JOIN RMS_MATERIAL RM
+        ON RM.MATERIAL_ID = ARM.MATERIAL_ID
+        LEFT JOIN RMS_SHIPPER RS
+        ON RS.SHIPPER_ID = AIR.REQUIREMENT_SHIPPER_ID
+        LEFT JOIN RMS_UNIT_OF_MEASURE RUOM
+        ON TTTR.RESULT_UOM_ID = RUOM.UNIT_OF_MEASURE_ID
+        LEFT JOIN RMS_CAPACITY RC
+        ON RC.CAPACITY_ID = OO.CAPACITY_ID
+        LEFT JOIN RMS_CAPACITY_TYPE RCT
+        ON RCT.CAPACITY_TYPE_ID = RC.CAPACITY_TYPE_ID
+        LEFT JOIN AMS_CONTRACT_TRANSPORT_PRICE ACTP
+        ON ACTP.PRICE_ID = BDO.PRICE_ID
+        WHERE OO.ORDER_TYPE = 26
+        AND TTTR.RESULT_TIME_TYPE = 3
+        AND bdo.WETHER_TO_STATEMENT = #{detailStatus}
+        <if test="userId != null" >
+            AND AIR.INSERT_USERNAME LIKE #{userId}
+        </if>
+        <if test="oneDate != null">
+            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= bdo.INSERT_TIME
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= bdo.INSERT_TIME
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= bdo.INSERT_TIME
+        </if>)
+        <where>
+            <if test="capacityNo!= null">
+                and
+                <foreach collection="capacityNo" item="item" open="(" separator="," close=")">
+                    "capacityNo" in #{item}
+                </foreach>
+            </if>
+            <if test="materialName!= null">
+                and
+                <foreach collection="materialName" item="item" open="(" separator="," close=")">
+                    "materialName" in #{item}
+                </foreach>
+            </if>
+            <if test="shipperName!= null">
+                and
+                <foreach collection="shipperName" item="item" open="(" separator="," close=")">
+                    "shipperName" in #{item}
+                </foreach>
+            </if>
+        </where>
+        <include refid="orderBy"></include>
+    </select>
+
+    <select id="selectWeightAndTimeByOrderId" resultType="java.lang.String">
+            select AIR.insert_update_remark from OMSTRUCK_ORDER oo
+                        LEFT JOIN AMSTRUCK_INWARD_PLAN AIP
+                                 ON AIP.PLAN_ID = OO.ORDER_PLAN_ID
+                       LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP
+                                 ON ARP.PLAN_ID = AIP.PLAN_ID
+                       LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR
+                                 ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
+                                 where oo.ORDER_ID = #{orderId}
+    </select>
 </mapper>