luobang 2 年之前
父节点
当前提交
6c90606cea

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

@@ -177,4 +177,9 @@ public interface BmstruckDetailsOrderMapper extends IBaseMapper<BmstruckDetailsO
     List<Map<String, Object>> getInwardCountDetailsOrder(Map<String, Object> mapValue);
     //查询该订单是否是计重且计时
     String selectWeightAndTimeByOrderId(BigDecimal orderId);
+
+    int getIsHaveDetailsOrder(BigDecimal weightTaskResultId);
+
+    List<Map<String, Object>> getSteelWeightTaskResultId(BigDecimal orderId);
+
 }

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

@@ -83,7 +83,7 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
      */
     @Override
     public int insertSelective(BigDecimal orderId) throws Exception {
-        List<Map<String,Object>> weightTaskResultIdList = bmstruckDetailsOrderMapper.getWeightTaskResultId(orderId);
+        List<Map<String,Object>> weightTaskResultIdList = bmstruckDetailsOrderMapper.getSteelWeightTaskResultId(orderId);
         Map<String,Object> priceMap = getPriceId(orderId);
         if (priceMap == null || priceMap.size() == 0) {
             return 0;
@@ -95,6 +95,10 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
         int result = 0;
         for (Map<String, Object> map : weightTaskResultIdList) {
             BigDecimal weightTaskResultId = DataChange.dataToBigDecimal(map.get("weightTaskResultId"));
+            //判断该计量实绩有没有结算数据
+            if(bmstruckDetailsOrderMapper.getIsHaveDetailsOrder(weightTaskResultId) > 0 ){
+                continue;
+            }
             BigDecimal detailsAmountOld = generateTruckFees(orderId, weightTaskResultId);
             Double amount = detailsAmountOld.doubleValue();
             DecimalFormat df = new DecimalFormat("0.00");
@@ -114,6 +118,7 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
             String detailsNo = noUtil.setResultNo("QYXD", detailsId);
             bmstruckDetailsOrder.setDetailsId(detailsId);
             bmstruckDetailsOrder.setWeightTaskResultId(weightTaskResultId);
+            bmstruckDetailsOrder.setOrderId(orderId);
             bmstruckDetailsOrder.setDetailsNo(detailsNo);
             bmstruckDetailsOrder.setPriceId(priceId);
             bmstruckDetailsOrder.setDetailsAmount(detailsAmount);

+ 1 - 1
src/main/resources/application-prod.yml

@@ -10,7 +10,7 @@ spring:
 #feign设置
 openfeign:
   ColumnDataFeign:
-    url: ${COLUMNDATAFEIGN_URL:172.16.33.166:8083}
+    url: ${COLUMNDATAFEIGN_URL:172.16.33.161:8083}
   OmsFeign:
     url: ${OMSFEIGN_URL:172.16.33.166:8095}
 

+ 31 - 11
src/main/resources/com/steerinfo/dil/mapper/BmstruckDetailsOrderMapper.xml

@@ -884,7 +884,17 @@
             order by "insertTime" desc
         </if>
     </sql>
-
+    <sql id="orderBySteel">
+        <if test="orderField != null and orderField != ''">
+            order by "${orderField}"
+            <if test="orderType != null and orderType != ''">
+                ${orderType}
+            </if>
+        </if>
+        <if test="orderField == null  ">
+            order by "orderId" desc
+        </if>
+    </sql>
     <!-- 根据运单id查询运单类型 -->
     <select id="getOrderType" parameterType="DECIMAL" resultType="DECIMAL">
         SELECT ORDER_TYPE
@@ -2044,11 +2054,11 @@
                              and RC2.CARRIER_ID = #{carrierId}
                          </if>
                         <if test="oneDate != null">
-                            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= bdo.INSERT_TIME
+                            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= twr.RESULT_GROSS_WEIGHT_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
+                            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= twr.RESULT_GROSS_WEIGHT_TIME
+                            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= twr.RESULT_GROSS_WEIGHT_TIME
                         </if>
                         order by oo.order_id desc
             )
@@ -2156,14 +2166,8 @@
                         "receiveMoneyCus" like '%${item}%'
                     </foreach>
                 </if>
-                <if test="orderissuetime!= null">
-                    and
-                    <foreach collection="orderissuetime" item="item" open="(" separator="or" close=")">
-                        "orderissuetime" like '%${item}%'
-                    </foreach>
-                </if>
             </where>
-        <include refid="orderBy"></include>
+        <include refid="orderBySteel"></include>
     </select>
     <select id="selectDetailsByOrder" resultType="java.lang.Integer" parameterType="decimal">
         SELECT count(BDO.DETAILS_ID) FROM BMSTRUCK_DETAILS_ORDER BDO
@@ -2290,4 +2294,20 @@
                                  ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
                                  where oo.ORDER_ID = #{orderId}
     </select>
+    <select id="getIsHaveDetailsOrder" resultType="java.lang.Integer" parameterType="java.math.BigDecimal">
+       SELECT COUNT(BDO.DETAILS_ID)  FROM BMSTRUCK_DETAILS_ORDER BDO
+        WHERE BDO.WEIGHT_TASK_RESULT_ID = #{weightTaskResultId}
+    </select>
+    <select id="getSteelWeightTaskResultId" resultType="java.util.Map">
+        SELECT
+            TWR.WEIGHT_TASK_RESULT_ID AS "weightTaskResultId",
+            TWR.RESULT_NET_WEIGHT     AS "netWeight"
+        FROM OMSTRUCK_ORDER OO
+                 LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+                           ON TTR.ORDER_ID = OO.ORDER_ID
+                 LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+                           ON TTR.RESULT_TOTAL_ID = TWR.RESULT_TOTAL_ID
+        WHERE OO.ORDER_ID = #{orderId}
+        order by twr.GROSS_SEGMENT_SQE desc
+    </select>
 </mapper>