liyg 2 年之前
父节点
当前提交
eecd55b69e

+ 0 - 35
src/main/java/com/steerinfo/dil/controller/BmsportHandlingFeeController.java

@@ -376,42 +376,7 @@ public class BmsportHandlingFeeController extends BaseRESTfulController {
         String endTime=map.get("endTime")+"";
         if(!startTime.equals("") && !endTime.equals(""))
             DataChange.queryDataByDateTime(startTime,endTime, map, sdfDateTime);//根据时间段查询数据
-        else
-            throw new Exception("请输入日期区间!");
         List<Map<String,Object>> list=bmsportHandlingFeeService.getShipFeeStatement(map);
-        //计算装船总吨位、到场湿吨
-        Map<BigDecimal, BigDecimal> totalMap=new HashMap<>();
-        for(Map<String,Object> temp:list){
-            if(temp.get("totalEnTonnage")==null || DataChange.dataToBigDecimal(temp.get("totalEnTonnage")).intValue()<=0){
-                temp.put("totalEnTonnage",bmsportHandlingFeeService.getEnFactoryTonnage(temp));//到场湿吨
-            }
-            //计算总吨位
-            BigDecimal batchId = DataChange.dataToBigDecimal(temp.get("batchId"));
-            BigDecimal loadTonnage = DataChange.dataToBigDecimal(temp.get("loadTonnage"));
-            if(!totalMap.containsKey(batchId))
-                totalMap.put(batchId,loadTonnage);
-            else
-                totalMap.put(batchId,totalMap.get(batchId).add(loadTonnage));
-        }
-        //计算装船比例和结算湿吨
-        for(Map<String,Object> temp:list){
-            if(temp.get("realTonnage")!=null && temp.get("loadingProportion")!=null){
-                //已结算则不计算
-                continue;
-            }
-            //计算总吨位
-            BigDecimal batchId = DataChange.dataToBigDecimal(temp.get("batchId"));
-            BigDecimal loadTonnage = DataChange.dataToBigDecimal(temp.get("loadTonnage"));
-            BigDecimal totalLoadTonnage = totalMap.get(batchId);
-            BigDecimal totalEnTonnage = DataChange.dataToBigDecimal(temp.get("totalEnTonnage"));
-            if(totalLoadTonnage.compareTo(new BigDecimal(0))!=0){
-                BigDecimal loadingProportion = loadTonnage.divide(totalLoadTonnage,4,BigDecimal.ROUND_HALF_UP);
-                temp.put("loadingProportion",loadingProportion);//装船比例
-                temp.put("realTonnage",totalEnTonnage.multiply(loadingProportion));//结算湿吨
-            }else{
-                throw new Exception("装船总吨位为0,无法计算装船比例:"+temp.get("resultForeignShipName"));
-            }
-        }
         return success(list);
     }
 

+ 34 - 4
src/main/java/com/steerinfo/dil/model/BmsshipStatement.java

@@ -87,17 +87,29 @@ public class BmsshipStatement implements IBasePO<BigDecimal> {
     private BigDecimal easAmount;
 
     /**
-     * 到厂湿吨(TOTAL_WET_TON,DECIMAL,0)
+     * 吨位,如果是预开状态则是预开吨位,如果是结算状态则是开票吨位(TOTAL_WET_TON,DECIMAL,0)
      */
-    @ApiModelProperty(value="到厂湿吨",required=false)
+    @ApiModelProperty(value="吨位,如果是预开状态则是预开吨位,如果是结算状态则是开票吨位",required=false)
     private BigDecimal totalWetTon;
 
     /**
-     * 结算状态(0:未结算;1:已结算)(STATEMENT_STATUS,DECIMAL,0)
+     * 结算状态(0:已预开;1:已结算)(STATEMENT_STATUS,DECIMAL,0)
      */
-    @ApiModelProperty(value="结算状态(0:未结算;1:已结算)",required=false)
+    @ApiModelProperty(value="结算状态(0:已预开;1:已结算)",required=false)
     private BigDecimal statementStatus;
 
+    /**
+     * 已预开吨位(TOTAL_PREVIEW_TON,DECIMAL,0)
+     */
+    @ApiModelProperty(value="已预开吨位",required=false)
+    private BigDecimal totalPreviewTon;
+
+    /**
+     * 已预开金额(TOTAL_PREVIEW_FEE,DECIMAL,0)
+     */
+    @ApiModelProperty(value="已预开金额",required=false)
+    private BigDecimal totalPreviewFee;
+
     private static final long serialVersionUID = 1L;
 
     @Override
@@ -230,6 +242,22 @@ public class BmsshipStatement implements IBasePO<BigDecimal> {
         this.statementStatus = statementStatus;
     }
 
+    public BigDecimal getTotalPreviewTon() {
+        return totalPreviewTon;
+    }
+
+    public void setTotalPreviewTon(BigDecimal totalPreviewTon) {
+        this.totalPreviewTon = totalPreviewTon;
+    }
+
+    public BigDecimal getTotalPreviewFee() {
+        return totalPreviewFee;
+    }
+
+    public void setTotalPreviewFee(BigDecimal totalPreviewFee) {
+        this.totalPreviewFee = totalPreviewFee;
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -251,6 +279,8 @@ public class BmsshipStatement implements IBasePO<BigDecimal> {
         sb.append(", easAmount=").append(easAmount);
         sb.append(", totalWetTon=").append(totalWetTon);
         sb.append(", statementStatus=").append(statementStatus);
+        sb.append(", totalPreviewTon=").append(totalPreviewTon);
+        sb.append(", totalPreviewFee=").append(totalPreviewFee);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();

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

@@ -367,7 +367,9 @@ public class BmsportHandlingFeeServiceImpl implements IBmsportHandlingFeeService
         bmsshipStatement.setStatementTotalAmount(DataChange.dataToBigDecimal(map.get("statementTotalAmount")));
         bmsshipStatement.setTotalWetTon(DataChange.dataToBigDecimal(map.get("totalEnTonnage")));
         bmsshipStatement.setStatementNo("BMSSF"+new Date().getTime());
-        bmsshipStatement.setStatementStatus(new BigDecimal(0));
+        bmsshipStatement.setStatementStatus(DataChange.dataToBigDecimal(map.get("statementStatus")));
+        bmsshipStatement.setTotalPreviewTon(DataChange.dataToBigDecimal(map.get("totalPreviewTonnage")));
+        bmsshipStatement.setTotalPreviewFee(DataChange.dataToBigDecimal(map.get("totalPreviewFee")));
         bmsshipStatement.setInsertTime(new Date());
         bmsshipStatement.setInsertUsername(personnelName);
         for(Map<String,Object> temp : list) {

+ 122 - 15
src/main/resources/com/steerinfo/dil/mapper/BmsportHandlingFeeMapper.xml

@@ -692,31 +692,45 @@
         db.RESULT_FOREIGN_SHIP_NAME "resultForeignShipName",--外轮船名
         RCR.PORT_NAME "carrierName",--承运单位
         tlsr.RESULT_LOAD_SHIP_DATE  "resultLoadShipDate",--装船日期
-        to_char(tlsr.RESULT_OUT_PORT_TIME,'yyyy-MM-dd') || '(' || RC.CAPACITY_NUMBER  || ')'  "resultOutPortTime",--离港日期
+        to_char(tlsr.RESULT_OUT_PORT_TIME,'yyyy-MM-dd')  "resultOutPortTime",--离港日期
         ADN.PORT_ID "sendPortId",--放货港口id
         rp.PORT_NAME "portName",--放货港口
         bcr.RESULT_ID "unitPriceId",--水运单价id
         BCR.UNIT_PRICE "unitPrice",--水运单价
         tlsr.RESULT_ACTUAL_INSTALLATIONS "loadTonnage",--装船实装湿吨
-        BF.LOADING_PROPORTION "loadingProportion",--装船比例
-        BF.REAL_TONNAGE "realTonnage",--结算湿吨
-        BF.FEE "fee",--水运费
+        LTT."totalLoadTonnage" "monthLoadTonnage",--月份总装船吨位
+        ROUND(LTT."totalLoadTonnage"/LT."totalLoadTonnage", 38) "monthLoadingProportion",--月份总装船比例
+        0 "monthRealTonnage",--月份结算吨位
+        LT."totalLoadTonnage",--装船总湿吨
+        ROUND(tlsr.RESULT_ACTUAL_INSTALLATIONS/LT."totalLoadTonnage", 38) "loadingProportion",--装船比例
+        0 "realTonnage",--结算湿吨
+        0 "fee",--水运费
         BF.RESULT_ID "feeId",--水运费Id
-        BF.PREVIEW_TONNAGE "previewTonnage",--预开湿吨
-        BF.PREVIEW_FEE "previewFee",--预开金额
-        BF.FEE_MAKE "actuallyMoney",--开票金额
-        BF.MAKE_TONNAGE "makeTonnage",--开票湿吨
-        BF.MAKE_TIME "makeTime",--开票日期
+        0 "previewTonnage",--预开湿吨
+        0 "previewFee",--预开金额
+        0 "actuallyMoney",--开票金额
+        0 "makeTonnage",--开票湿吨
         ttr.RESULT_ID "totalResultId",--装船总实绩id
         BS.STATEMENT_ID "statementId",--账单id
-        BS.TOTAL_WET_TON "totalEnTonnage",--到场湿吨
+        (
+        case
+        when ET."totalEnTonnage" is null then 0
+        when ET."totalEnTonnage" is not null then ET."totalEnTonnage"
+        end
+        ) "totalEnTonnage",--到场湿吨
+        (
+        case
+        when BS.TOTAL_WET_TON is null then 0
+        when BS.TOTAL_WET_TON is not null then  ROUND(BS.TOTAL_WET_TON,2)
+        end
+        ) "totalPreviewTonnage",--预开总吨位
         BS.STATEMENT_TOTAL_AMOUNT "stateMentTotalAmount",--账单总金额
         BS.STATEMENT_SHIPPER_ID "stateMentShipperId",--结算单位id
         RS.SHIPPER_NAME "shipperName",--结算单位名
         ADN.INSERT_TIME "noticeTime",
         (case
-            when BF.result_id is not null then BF.INSPECTIONS_FEE
-            when BF.result_id is null then ROUND(TWQR.RESULT_INSPECTION_FEES/1.06*1.09,2)
+        when BF.result_id is not null then BF.INSPECTIONS_FEE
+        when BF.result_id is null then ROUND(TWQR.RESULT_INSPECTION_FEES/1.06*1.09,2)
         end) "inspectionFees"
         FROM TMSSHIP_LOAD_SHIP_RESULT tlsr
         LEFT JOIN TMSSHIP_TOTAL_RESULT ttr
@@ -753,6 +767,96 @@
         on ada.BATCH_ID=dbi.BATCH_INFACOTRY_ID
         LEFT JOIN RMS_PORT RCR
         on ada.CARRIER_ID=RCR.PORT_ID
+        LEFT JOIN
+        (SELECT dbi.BATCH_ID "batchId",
+        SUM(tlsr.RESULT_ACTUAL_INSTALLATIONS) "totalLoadTonnage"
+        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
+        WHERE tlsr.DELETED=0
+        GROUP BY dbi.BATCH_ID)
+        LT ON db.BATCH_ID = LT."batchId"
+        LEFT JOIN (
+        select SHIP."batchId",
+        SHIP."resultForeignShipName",
+        SHIP."realWeight" "trainWeight",
+        TRUCK."realWeight" "truckWeight",
+        (case
+        when SHIP."realWeight" is not null and TRUCK."realWeight" is not null
+        then SHIP."realWeight"+ TRUCK."realWeight"
+        when SHIP."realWeight" is not null and TRUCK."realWeight" is null
+        then SHIP."realWeight"
+        when SHIP."realWeight" is null and TRUCK."realWeight" is not null
+        then TRUCK."realWeight"
+        when SHIP."realWeight" is null and TRUCK."realWeight" is  null
+        then 0
+        end ) "totalEnTonnage"
+        from
+        (select
+        TLR.BATCH_ID "batchId",--批次id
+        RM.MATERIAL_NAME "materialName",--物资名
+        DB.RESULT_FOREIGN_SHIP_NAME "resultForeignShipName",--外轮船名
+        SUM(TWR.RESULT_NET_WEIGHT) "realWeight",--到厂净重之和
+        SUM(TLR.RESULT_BILLABLE_TONNAGE) "totalWeight",--总计费吨位
+        COUNT(*) "wagonNum"--车皮数量
+        from TMSTRAIN_LOADING_RESULT TLR
+        LEFT JOIN DIL_BATCH DB
+        ON TLR.BATCH_ID=DB.BATCH_ID
+        LEFT JOIN RMS_MATERIAL RM
+        ON DB.MATERIAL_ID=RM.MATERIAL_ID
+        LEFT JOIN TMSTRAIN_TOTAL_RESULT TTR
+        ON TLR.RESULT_ID=TTR.LOADING_ID
+        LEFT JOIN TMSTRAIN_WEIGHT_RESULT TWR
+        ON TWR.RESULT_TOTAL_ID=TTR.TOTAL_RESULT_ID
+        GROUP BY TLR.BATCH_ID,DB.RESULT_FOREIGN_SHIP_NAME ,RM.MATERIAL_NAME) SHIP
+        LEFT JOIN
+        (	select
+        DB.BATCH_ID "batchId",
+        RM.MATERIAL_NAME "materialName",
+        DB.RESULT_FOREIGN_SHIP_NAME "resultForeignShipName",
+        SUM(TWR.RESULT_NET_WEIGHT) "realWeight",
+        COUNT(*) "carNum"
+        from TMSTRUCK_WEIGHT_RESULT TWR --汽运计量
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR --汽运总实绩
+        ON  TWR.RESULT_TOTAL_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
+        LEFT JOIN RMS_MATERIAL RM
+        ON DB.MATERIAL_ID=RM.MATERIAL_ID
+        WHERE DB.RESULT_FOREIGN_SHIP_NAME IS NOT NULL
+        AND DB.BATCH_ID IS NOT NULL
+        AND RM.MATERIAL_NAME IS NOT NULL
+        GROUP BY DB.BATCH_ID,RM.MATERIAL_NAME,DB.RESULT_FOREIGN_SHIP_NAME
+        ) TRUCK ON SHIP."batchId"=TRUCK."batchId")
+        ET ON ET."batchId"=DB.BATCH_ID
+        LEFT JOIN
+        (SELECT dbi.BATCH_ID "batchId",
+        TWQR.UNIT_PRICE_ID "unitPriceId",
+        SUM(tlsr.RESULT_ACTUAL_INSTALLATIONS) "totalLoadTonnage"
+        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
+        where TLSR.DELETED=0
+        GROUP BY dbi.BATCH_ID,TWQR.UNIT_PRICE_ID)
+        LTT ON db.BATCH_ID = LTT."batchId" and twqr.UNIT_PRICE_ID=LTT."unitPriceId"
         WHERE tlsr.DELETED=0 AND adn.DELETED=0
         and (BS.STATEMENT_ID is null or BS.STATEMENT_STATUS=0)
         <if test="con!=null and con!=''.toString()">
@@ -767,7 +871,7 @@
             and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= tlsr.RESULT_OUT_PORT_TIME
             and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= tlsr.RESULT_OUT_PORT_TIME
         </if>
-        ) ORDER BY "noticeTime" DESC,"statementId" ASC
+        ) ORDER BY "noticeTime" DESC,"unitPriceId" DESC,"statementId" ASC
     </select>
 
     <select id="findTotalTonnage" resultType="java.util.Map">
@@ -800,11 +904,12 @@
         db.RESULT_FOREIGN_SHIP_NAME "resultForeignShipName",--外轮船名
         RCR.PORT_NAME "carrierName",--承运单位
         tlsr.RESULT_LOAD_SHIP_DATE  "resultLoadShipDate",--装船日期
-        to_char(tlsr.RESULT_OUT_PORT_TIME,'yyyy-MM-dd') || '(' || RC.CAPACITY_NUMBER  || ')'  "resultOutPortTime",--离港日期
+        to_char(tlsr.RESULT_OUT_PORT_TIME,'yyyy-MM-dd')  "resultOutPortTime",--离港日期
         ADN.PORT_ID "sendPortId",--放货港口id
         rp.PORT_NAME "portName",--放货港口
         bcr.RESULT_ID "unitPriceId",--水运单价id
         BCR.UNIT_PRICE "unitPrice",--水运单价
+
         tlsr.RESULT_ACTUAL_INSTALLATIONS "loadTonnage",--装船实装湿吨
         BF.LOADING_PROPORTION "loadingProportion",--装船比例
         BF.REAL_TONNAGE "realTonnage",--结算湿吨
@@ -817,8 +922,10 @@
         BF.MAKE_TIME "makeTime",--开票日期
         ttr.RESULT_ID "totalResultId",--装船总实绩id
         BS.STATEMENT_ID "statementId",--账单id
-        BS.TOTAL_WET_TON "totalEnTonnage",--到场湿吨
+        BS.TOTAL_WET_TON "totalEnTonnage",--开票湿吨
         BS.STATEMENT_TOTAL_AMOUNT "statementTotalAmount",--账单总金额
+        BS.TOTAL_PREVIEW_TON "totalPreviewTonnage",
+        BS.TOTAL_PREVIEW_FEE "totalPreviewFee",
         BS.STATEMENT_SHIPPER_ID "stateMentShipperId",--结算单位id
         RS.SHIPPER_NAME "shipperName",--结算单位名
         ADN.INSERT_TIME "noticeTime",

+ 65 - 12
src/main/resources/com/steerinfo/dil/mapper/BmsshipStatementMapper.xml

@@ -17,17 +17,20 @@
         <result column="EAS_AMOUNT" jdbcType="DECIMAL" property="easAmount" />
         <result column="TOTAL_WET_TON" jdbcType="DECIMAL" property="totalWetTon" />
         <result column="STATEMENT_STATUS" jdbcType="DECIMAL" property="statementStatus" />
+        <result column="TOTAL_PREVIEW_TON" jdbcType="DECIMAL" property="totalPreviewTon" />
+        <result column="TOTAL_PREVIEW_FEE" jdbcType="DECIMAL" property="totalPreviewFee" />
     </resultMap>
     <sql id="columns">
-        STATEMENT_ID, STATEMENT_NO, STATEMENT_SHIPPER_ID, STATEMENT_TOTAL_AMOUNT, STATEMENT_DATE,
-    INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK,
-    STATEMENT_TYPE, BATCH_ID, EAS_AMOUNT, TOTAL_WET_TON, STATEMENT_STATUS
+        STATEMENT_ID, STATEMENT_NO, STATEMENT_SHIPPER_ID, STATEMENT_TOTAL_AMOUNT, STATEMENT_DATE, 
+    INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK, 
+    STATEMENT_TYPE, BATCH_ID, EAS_AMOUNT, TOTAL_WET_TON, STATEMENT_STATUS, TOTAL_PREVIEW_TON, 
+    TOTAL_PREVIEW_FEE
     </sql>
     <sql id="columns_alias">
-        t.STATEMENT_ID, t.STATEMENT_NO, t.STATEMENT_SHIPPER_ID, t.STATEMENT_TOTAL_AMOUNT,
-    t.STATEMENT_DATE, t.INSERT_USERNAME, t.INSERT_TIME, t.UPDATE_USERNAME, t.UPDATE_TIME,
-    t.INSERT_UPDATE_REMARK, t.STATEMENT_TYPE, t.BATCH_ID, t.EAS_AMOUNT, t.TOTAL_WET_TON,
-    t.STATEMENT_STATUS
+        t.STATEMENT_ID, t.STATEMENT_NO, t.STATEMENT_SHIPPER_ID, t.STATEMENT_TOTAL_AMOUNT, 
+    t.STATEMENT_DATE, t.INSERT_USERNAME, t.INSERT_TIME, t.UPDATE_USERNAME, t.UPDATE_TIME, 
+    t.INSERT_UPDATE_REMARK, t.STATEMENT_TYPE, t.BATCH_ID, t.EAS_AMOUNT, t.TOTAL_WET_TON, 
+    t.STATEMENT_STATUS, t.TOTAL_PREVIEW_TON, t.TOTAL_PREVIEW_FEE
     </sql>
     <sql id="select">
         SELECT <include refid="columns" /> FROM BMSSHIP_STATEMENT
@@ -82,6 +85,12 @@
             <if test="statementStatus != null">
                 and STATEMENT_STATUS = #{statementStatus}
             </if>
+            <if test="totalPreviewTon != null">
+                and TOTAL_PREVIEW_TON = #{totalPreviewTon}
+            </if>
+            <if test="totalPreviewFee != null">
+                and TOTAL_PREVIEW_FEE = #{totalPreviewFee}
+            </if>
         </where>
     </sql>
     <sql id="whereLike">
@@ -131,6 +140,12 @@
             <if test="statementStatus != null">
                 and STATEMENT_STATUS = #{statementStatus}
             </if>
+            <if test="totalPreviewTon != null">
+                and TOTAL_PREVIEW_TON = #{totalPreviewTon}
+            </if>
+            <if test="totalPreviewFee != null">
+                and TOTAL_PREVIEW_FEE = #{totalPreviewFee}
+            </if>
         </where>
     </sql>
     <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
@@ -182,6 +197,12 @@
         <if test="statementStatus != null">
             or STATEMENT_STATUS = #{statementStatus}
         </if>
+        <if test="totalPreviewTon != null">
+            or TOTAL_PREVIEW_TON = #{totalPreviewTon}
+        </if>
+        <if test="totalPreviewFee != null">
+            or TOTAL_PREVIEW_FEE = #{totalPreviewFee}
+        </if>
     </delete>
     <insert id="insert" parameterType="com.steerinfo.dil.model.BmsshipStatement">
         insert into BMSSHIP_STATEMENT (STATEMENT_ID, STATEMENT_NO, STATEMENT_SHIPPER_ID,
@@ -189,13 +210,15 @@
                                        INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME,
                                        UPDATE_TIME, INSERT_UPDATE_REMARK, STATEMENT_TYPE,
                                        BATCH_ID, EAS_AMOUNT, TOTAL_WET_TON,
-                                       STATEMENT_STATUS)
+                                       STATEMENT_STATUS, TOTAL_PREVIEW_TON, TOTAL_PREVIEW_FEE
+        )
         values (#{statementId,jdbcType=DECIMAL}, #{statementNo,jdbcType=VARCHAR}, #{statementShipperId,jdbcType=DECIMAL},
                 #{statementTotalAmount,jdbcType=DECIMAL}, #{statementDate,jdbcType=TIMESTAMP},
                 #{insertUsername,jdbcType=VARCHAR}, #{insertTime,jdbcType=TIMESTAMP}, #{updateUsername,jdbcType=VARCHAR},
                 #{updateTime,jdbcType=TIMESTAMP}, #{insertUpdateRemark,jdbcType=VARCHAR}, #{statementType,jdbcType=VARCHAR},
                 #{batchId,jdbcType=DECIMAL}, #{easAmount,jdbcType=DECIMAL}, #{totalWetTon,jdbcType=DECIMAL},
-                #{statementStatus,jdbcType=DECIMAL})
+                #{statementStatus,jdbcType=DECIMAL}, #{totalPreviewTon,jdbcType=DECIMAL}, #{totalPreviewFee,jdbcType=DECIMAL}
+               )
     </insert>
     <insert id="insertSelective" parameterType="com.steerinfo.dil.model.BmsshipStatement">
         insert into BMSSHIP_STATEMENT
@@ -245,6 +268,12 @@
             <if test="statementStatus != null">
                 STATEMENT_STATUS,
             </if>
+            <if test="totalPreviewTon != null">
+                TOTAL_PREVIEW_TON,
+            </if>
+            <if test="totalPreviewFee != null">
+                TOTAL_PREVIEW_FEE,
+            </if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="statementId != null">
@@ -292,6 +321,12 @@
             <if test="statementStatus != null">
                 #{statementStatus,jdbcType=DECIMAL},
             </if>
+            <if test="totalPreviewTon != null">
+                #{totalPreviewTon,jdbcType=DECIMAL},
+            </if>
+            <if test="totalPreviewFee != null">
+                #{totalPreviewFee,jdbcType=DECIMAL},
+            </if>
         </trim>
     </insert>
     <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.BmsshipStatement">
@@ -309,7 +344,9 @@
             BATCH_ID = #{batchId,jdbcType=DECIMAL},
             EAS_AMOUNT = #{easAmount,jdbcType=DECIMAL},
             TOTAL_WET_TON = #{totalWetTon,jdbcType=DECIMAL},
-            STATEMENT_STATUS = #{statementStatus,jdbcType=DECIMAL}
+            STATEMENT_STATUS = #{statementStatus,jdbcType=DECIMAL},
+            TOTAL_PREVIEW_TON = #{totalPreviewTon,jdbcType=DECIMAL},
+            TOTAL_PREVIEW_FEE = #{totalPreviewFee,jdbcType=DECIMAL}
         where STATEMENT_ID = #{statementId,jdbcType=DECIMAL}
     </update>
     <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.BmsshipStatement">
@@ -357,6 +394,12 @@
             <if test="statementStatus != null">
                 STATEMENT_STATUS = #{statementStatus,jdbcType=DECIMAL},
             </if>
+            <if test="totalPreviewTon != null">
+                TOTAL_PREVIEW_TON = #{totalPreviewTon,jdbcType=DECIMAL},
+            </if>
+            <if test="totalPreviewFee != null">
+                TOTAL_PREVIEW_FEE = #{totalPreviewFee,jdbcType=DECIMAL},
+            </if>
         </set>
         where STATEMENT_ID = #{statementId,jdbcType=DECIMAL}
     </update>
@@ -381,7 +424,8 @@
         UPDATE_USERNAME, UPDATE_TIME,
         INSERT_UPDATE_REMARK, STATEMENT_TYPE,
         BATCH_ID, EAS_AMOUNT, TOTAL_WET_TON,
-        STATEMENT_STATUS)
+        STATEMENT_STATUS, TOTAL_PREVIEW_TON,
+        TOTAL_PREVIEW_FEE)
         ( <foreach collection="list" item="item" separator="union all">
         select
         #{item.statementId,jdbcType=DECIMAL},
@@ -391,7 +435,8 @@
         #{item.updateUsername,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=TIMESTAMP},
         #{item.insertUpdateRemark,jdbcType=VARCHAR}, #{item.statementType,jdbcType=VARCHAR},
         #{item.batchId,jdbcType=DECIMAL}, #{item.easAmount,jdbcType=DECIMAL}, #{item.totalWetTon,jdbcType=DECIMAL},
-        #{item.statementStatus,jdbcType=DECIMAL} from dual
+        #{item.statementStatus,jdbcType=DECIMAL}, #{item.totalPreviewTon,jdbcType=DECIMAL},
+        #{item.totalPreviewFee,jdbcType=DECIMAL} from dual
     </foreach> )
     </insert>
     <update id="batchUpdate" parameterType="java.util.List">
@@ -457,6 +502,14 @@
         <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
             when #{item.statementId,jdbcType=DECIMAL} then #{item.statementStatus,jdbcType=DECIMAL}
         </foreach>
+        ,TOTAL_PREVIEW_TON=
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.totalPreviewTon,jdbcType=DECIMAL}
+        </foreach>
+        ,TOTAL_PREVIEW_FEE=
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.totalPreviewFee,jdbcType=DECIMAL}
+        </foreach>
         where STATEMENT_ID in
         <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
             #{item.statementId,jdbcType=DECIMAL}