liyg 2 년 전
부모
커밋
177ae00e00

+ 15 - 2
src/main/java/com/steerinfo/dil/controller/BmsportHandlingFeeController.java

@@ -392,7 +392,7 @@ public class BmsportHandlingFeeController extends BaseRESTfulController {
         return success(list);
     }
     /**
-     * 新增三程船水运费及其账单
+     * 新增三程船计费账单
      * @param
      * @return
      */
@@ -416,7 +416,7 @@ public class BmsportHandlingFeeController extends BaseRESTfulController {
     }
 
     /**
-     * 新增三程船水运费及其账单
+     * 新增三程船计费账单
      * @param
      * @return
      */
@@ -424,4 +424,17 @@ public class BmsportHandlingFeeController extends BaseRESTfulController {
     RESTfulResult editShipFeeStatement(@RequestBody(required = false)Map<String, Object> map) throws Exception {
         return success(bmsportHandlingFeeService.editShipFeeStatement(map));
     }
+
+    /**
+     * 查询干湿明细
+     * @param
+     * @return
+     */
+    @PostMapping("/getWetDryDetails")
+    RESTfulResult getWetDryDetails(@RequestBody(required = false)Map<String, Object> map){
+        String startTime=map.get("startTime")+"";
+        String endTime=map.get("endTime")+"";
+        DataChange.queryDataByDateTime(startTime, endTime, map, sdfDateTime);
+        return success(bmsportHandlingFeeService.getWetDryDetails(map));
+    }
 }

+ 2 - 0
src/main/java/com/steerinfo/dil/mapper/BmsportHandlingFeeMapper.java

@@ -66,4 +66,6 @@ public interface BmsportHandlingFeeMapper extends IBaseMapper<BmsportHandlingFee
     List<Map<String,Object>> getShipFeeStatement(Map map);
 
     List<Map<String,Object>> getShipFeeStatemented(Map map);
+
+    List<Map<String,Object>> getWetDryDetails(Map map);
 }

+ 2 - 0
src/main/java/com/steerinfo/dil/service/IBmsportHandlingFeeService.java

@@ -99,4 +99,6 @@ public interface IBmsportHandlingFeeService {
     int addShipFeeStatement(Map<String,Object> map) throws Exception;
 
     int editShipFeeStatement(Map<String,Object> map) throws Exception;
+
+    List<Map<String,Object>>  getWetDryDetails(Map<String,Object> map);
 }

+ 8 - 1
src/main/java/com/steerinfo/dil/service/impl/BmsportHandlingFeeServiceImpl.java

@@ -367,6 +367,9 @@ public class BmsportHandlingFeeServiceImpl implements IBmsportHandlingFeeService
         bmsshipStatement.setStatementNo("BMSSF"+new Date().getTime());
         bmsshipStatement.setStatementStatus(DataChange.dataToBigDecimal(map.get("statementStatus")));
         bmsshipStatement.setInsertTime(new Date());
+        if(bmsshipStatement.getStatementStatus().intValue()==1){
+            bmsshipStatement.setUpdateTime(new Date());//结算日期
+        }
         //新增
         return bmsshipStatementMapper.insertSelective(bmsshipStatement);
     }
@@ -395,7 +398,6 @@ public class BmsportHandlingFeeServiceImpl implements IBmsportHandlingFeeService
         return bmsshipStatementMapper.updateByPrimaryKeySelective(bmsshipStatement);
     }
 
-
     @Override
     public Map<BigDecimal, BigDecimal> findTotalTonnage() {
         List<Map<String, Object>> list= bmsportHandlingFeeMapper.findTotalTonnage();
@@ -422,4 +424,9 @@ public class BmsportHandlingFeeServiceImpl implements IBmsportHandlingFeeService
         }
         return truck.add(train);
     }
+
+    @Override
+    public List<Map<String,Object>>  getWetDryDetails(Map<String, Object> map) {
+        return bmsportHandlingFeeMapper.getWetDryDetails(map);
+    }
 }

+ 147 - 0
src/main/resources/com/steerinfo/dil/mapper/BmsportHandlingFeeMapper.xml

@@ -927,5 +927,152 @@
         </if>
         ) ORDER  BY "batchId"
     </select>
+    <select id="getWetDryDetails" resultType="java.util.Map">
+    SELECT * FROM
+    (
+        SELECT
+        TO_CHAR((SELECT MAX(UPDATE_TIME)
+        FROM BMSSHIP_STATEMENT
+        where STATEMENT_STATUS=1 and BATCH_ID=DB.BATCH_ID),'YYYY') "balanceYear",
+        TO_CHAR((SELECT MAX(UPDATE_TIME)
+        FROM BMSSHIP_STATEMENT
+        where STATEMENT_STATUS=1 and BATCH_ID=DB.BATCH_ID),'MM') || '月' "balanceMonth",
+        (SELECT MAX(UPDATE_TIME)
+        FROM BMSSHIP_STATEMENT
+        where STATEMENT_STATUS=1 and BATCH_ID=DB.BATCH_ID) "balanceTime",
+        TO_CHAR(ADN.NOTICE_DELIVERY_TIME,'YYYY') "noticeYear",
+        TO_CHAR(ADN.NOTICE_DELIVERY_TIME,'MM-DD') "noticeTime",
+        RP.PORT_NAME "portName",
+        ADN.NOTICE_COMMERCE_METHOD "commerceMethod",
+        RM.MATERIAL_NAME "materialName",
+        DB.RESULT_FOREIGN_SHIP_NAME "foreignShipName",
+        QT."wagonNumber" "wagonNumber",--火车数量
+        QT."totalTrainTon" "totalTrainTon",--计费吨位
+        LT."loadTon" "loadWetTon",--装船湿吨
+        LT."loadWaterTon"	"loadWaterTon",--装船水分
+        LT."loadTon"-LT."loadWaterTon" "loadDryTon",--装船干吨
+        ROUND(LT."loadWaterTon"/LT."loadTon",4) "loadWaterRate",	--装船含水率
+        LT."loadTon"-BS."totalEnTon" "diff",--湿吨差值
+        BS."totalEnTon"	"totalEnTonWet",--到厂湿吨
+        QT."totalDeduct",--到厂扣杂
+        QT."totalWaterTon",--到厂水分
+        BS."totalEnTon"-QT."totalDeduct"-QT."totalWaterTon" "totalEnTonDry",--到厂干吨
+        ROUND(QT."totalWaterTon"/BS."totalEnTon",4) "enWaterRate",--到厂含水率
+        ROUND(1-(BS."totalEnTon"/LT."loadTon"), 4) "lossWet",--湿吨途损
+        ROUND(1-((BS."totalEnTon"-QT."totalDeduct"-QT."totalWaterTon")/(LT."loadTon"-LT."loadWaterTon")), 4) "lossDry"--干吨途损
+        FROM AMSSHIP_DELIVERY_NOTICE ADN
+        LEFT JOIN AMSSHIP_DELIVERY_ATTORNEY ADA ON ADN.BATCH_ID=ADA.BATCH_ID
+        LEFT JOIN DIL_BATCH_INFACOTRY DBI ON ADN.BATCH_ID=DBI.BATCH_INFACOTRY_ID
+        LEFT JOIN DIL_BATCH DB ON DB.BATCH_ID=DBI.BATCH_ID
+        LEFT JOIN RMS_MATERIAL RM ON RM.MATERIAL_ID=DB.MATERIAL_ID
+        LEFT JOIN RMS_PORT RP ON ADN.PORT_ID=RP.PORT_ID
+        LEFT JOIN (--查询结算明细
+        SELECT
+        BATCH_ID "batchId",
+        SUM(TOTAL_BALANCE_TON) "totalEnTon" --结算总吨位(到场湿吨)
+        FROM BMSSHIP_STATEMENT
+        WHERE STATEMENT_STATUS=1
+        GROUP BY BATCH_ID
+        ) BS ON BS."batchId"=DB.BATCH_ID
+        LEFT JOIN (--查询装船总吨位,装船水分总吨位
+        SELECT dbi.BATCH_ID "batchId",
+        SUM(tlsr.RESULT_ACTUAL_INSTALLATIONS) "loadTon",
+        SUM(TWQR.RESULT_WATER_TONNAGE) "loadWaterTon"
+        FROM TMSSHIP_LOAD_SHIP_RESULT tlsr
+        LEFT JOIN TMSSHIP_TOTAL_RESULT ttr
+        ON ttr.RESULT_ID = tlsr.TOTAL_RESULT_ID
+        LEFT JOIN TMSSHIP_WATER_QUALITY_RESULT TWQR
+        ON TWQR.TOTAL_RESULT_ID=TTR.RESULT_ID
+        LEFT JOIN DIL_BATCH_INFACOTRY dbi
+        ON dbi.BATCH_INFACOTRY_ID = tlsr.BATCH_ID
+        LEFT JOIN AMSSHIP_DELIVERY_NOTICE ADN
+        ON ADN.BATCH_ID=tlsr.BATCH_ID
+        where TLSR.DELETED=0 AND ADN.DELETED=0
+        GROUP BY dbi.BATCH_ID
+        ) LT ON db.BATCH_ID = LT."batchId"
+        LEFT JOIN (--质检总实绩
+        SELECT  TRAINQ."batchId" "batchId",
+        TRAINQ."wagonNumber" "wagonNumber",
+        TRAINQ."totalTrainTon"	"totalTrainTon",
+        case
+        when TRAINQ."totalDeduct" is not null and TRUCKQ."totalDeduct" is not null
+        then TRAINQ."totalDeduct"+TRUCKQ."totalDeduct"
+        when TRAINQ."totalDeduct" is null and TRUCKQ."totalDeduct" is not null
+        then TRUCKQ."totalDeduct"
+        when TRAINQ."totalDeduct" is not null and TRUCKQ."totalDeduct" is null
+        then TRAINQ."totalDeduct"
+        when TRAINQ."totalDeduct" is null and TRUCKQ."totalDeduct" is null
+        then 0
+        end "totalDeduct",
+        case
+        when TRAINQ."totalWaterTon" is not null and TRUCKQ."totalWaterTon" is not null
+        then TRAINQ."totalWaterTon"+TRUCKQ."totalWaterTon"
+        when TRAINQ."totalWaterTon" is null and TRUCKQ."totalWaterTon" is not null
+        then TRUCKQ."totalWaterTon"
+        when TRAINQ."totalWaterTon" is not null and TRUCKQ."totalWaterTon" is null
+        then TRAINQ."totalWaterTon"
+        when TRAINQ."totalWaterTon" is null and TRUCKQ."totalWaterTon" is null
+        then 0
+        end "totalWaterTon"
+        FROM
+        (--火运质检
+        SELECT DB.BATCH_ID "batchId",--批次id
+        COUNT(TLT.RESULT_ID) "wagonNumber",--总计车数
+        SUM(TLT.RESULT_BILLABLE_TONNAGE) "totalTrainTon",--计费吨位
+        SUM(TQR.DEDUCT_NUMBER) "totalDeduct",--扣杂
+        SUM(TQR.ELEMENT_VALUE) "totalWaterTon"--水分吨位
+        from TMSTRAIN_LOADING_RESULT TLR
+        LEFT JOIN TMSTRAIN_TOTAL_RESULT TTR ON TTR.LOADING_ID=TLR.RESULT_ID
+        LEFT JOIN TMSTRAIN_QUALITY_RESULT TQR ON TTR.TOTAL_RESULT_ID=TQR.RESULT_TOTAL_ID
+        LEFT JOIN DIL_BATCH DB ON DB.BATCH_ID=TLR.BATCH_ID
+        LEFT JOIN TMSTRAIN_LOADING_TEMP TLT ON TLT.RESULT_ID=TLR.TEMP_RESULT_ID
+        GROUP BY DB.BATCH_ID
+        )TRAINQ
+        LEFT JOIN
+        (--汽运质检
+        SELECT DB.BATCH_ID "batchId",
+        SUM(TQR.RESULT_DEDUCTION) "totalDeduct",--扣杂
+        SUM(TQR.ELEMENT_VALUE) "totalWaterTon"--水分吨位
+        from TMSTRUCK_QUALITY_RESULT TQR --汽运质检
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR --汽运总实绩
+        ON  TQR.TOTAL_RESULT_ID=TTR.RESULT_TOTAL_ID
+        LEFT JOIN OMSTRUCK_ORDER OO --运输订单
+        ON OO.ORDER_ID=TTR.ORDER_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 AMS_PURCHASE_ORDER APO
+        ON APO.PURCHASE_ORDER_ID = AIR.PURCHASE_ORDER_ID
+        LEFT JOIN DIL_BATCH DB
+        ON APO.BATCH_ID=DB.BATCH_ID
+        WHERE DB.RESULT_FOREIGN_SHIP_NAME IS NOT NULL
+        AND DB.BATCH_ID IS NOT NULL
+        GROUP BY DB.BATCH_ID
+        ) TRUCKQ ON TRUCKQ."batchId"=TRAINQ."batchId"
+        ) QT ON QT."batchId"=DB.BATCH_ID
+        WHERE ADN.DELETED=0
+--         AND DB.BATCH_ID IN (
+--         SELECT BATCH_ID
+--         FROM BMSSHIP_STATEMENT
+--         WHERE STATEMENT_STATUS=1)
+    )
+    <where>
+        <if test="con != null and con != ''.toString()">
+            "materialName" like  CONCAT('%',CONCAT(#{con},'%'))
+        </if>
+        <if test="startDate == null">
+            and "balanceYear" = TO_CHAR( SYSDATE, 'YYYY')
+            --or "noticeYear" = TO_CHAR( SYSDATE, 'YYYY')
+        </if>
+        <if test="startDate != null">
+            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= "balanceTime"
+            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= "balanceTime"
+        </if>
+    </where>
+    order by "balanceTime"
+    </select>
 
 </mapper>