zk 2 лет назад
Родитель
Сommit
39217e82f6

+ 8 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderMapper.java

@@ -101,6 +101,14 @@ public interface KwtWaybillOrderMapper extends BaseMapper<KwtWaybillOrder> {
      **/
     Map<String, Object> findStatisticsSumByDriver(Map<String, Object> params);
 
+    /**
+     * @param params {driverId 司机ID, month月份}
+     * @desc 统计司机任务数(任务数/委派量/装货量/卸货量/亏吨量/亏吨扣款)
+     * @author zk
+     * @date 2023/8/1
+     **/
+    Double deficitLossAmountByDriver(Map<String, Object> params);
+
     /**
      * @param params {driverId 司机ID}
      * @desc 查询司机任务列表-待接单

+ 4 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java

@@ -113,7 +113,10 @@ public class KwtWaybillOrderService {
      * @date 2023/8/1
      **/
     public Map<String, Object> findStatisticsSumByDriver(Map params) {
-        return waybillOrderDao.findStatisticsSumByDriver(params);
+        Map<String, Object> data = waybillOrderDao.findStatisticsSumByDriver(params);
+        Double deficitLossAmount = waybillOrderDao.deficitLossAmountByDriver(params);
+        data.put("deficitLossAmount", deficitLossAmount);
+        return data;
     }
 
     /**

+ 35 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

@@ -309,6 +309,41 @@
         </if>
     </select>
 
+    <select id="deficitLossAmountByDriver" resultType="java.lang.Double" parameterType="java.util.Map">
+        SELECT
+            FORMAT(sum(deficitLossAmount), 2) deficitLossAmount
+        from (
+            SELECT
+            ( deficitAmount - FORMAT((loadAmount * loss / lossUnit),2) ) deficitLossAmount
+            from (
+                SELECT
+                IFNULL(wo.deficit_amount, 0.0) deficitAmount,
+                IFNULL(lo.loss, 0.0) loss,
+                IFNULL(wo.load_amount, 0.0) loadAmount,
+                case when lo.loss_unit = 0 then 1000 when lo.loss_unit = 0 then 100 ELSE 0 end as lossUnit
+                from kwt_waybill_order wo
+                left join kwt_logistics_order lo on lo.id = wo.l_order_id
+                where wo.del_flag = 0 and lo.del_flag = 0
+                <if test="busStatus != null and busStatus == 4">
+                    and wo.status in (7, 8, 9, 10, 12, 13)
+                </if>
+                <if test="driverId != null and driverId != ''">
+                    and wo.driver_id = #{driverId, jdbcType=BIGINT}
+                </if>
+                <if test="month != null and month != ''">
+                    and LEFT(wo.create_time, 7) = #{month, jdbcType=TIMESTAMP}
+                </if>
+                <if test="startTime != null and startTime != ''">
+                    and DATE(wo.create_time) <![CDATA[ >= ]]> #{startTime,jdbcType=TIMESTAMP}
+                </if>
+                <if test="endTime != null and endTime != ''">
+                    and DATE(wo.create_time) <![CDATA[ <= ]]> #{endTime,jdbcType=TIMESTAMP}
+                </if>
+            ) tab
+        ) tab1
+    </select>
+
+
     <select id="findWaitWaybillOrderByDriver" resultType="com.sckw.transport.model.vo.WaybillOrderDriverVo"
             parameterType="java.util.Map">
         SELECT *