liyg пре 2 година
родитељ
комит
cafa806a48

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

@@ -327,9 +327,41 @@ public class BmsportHandlingFeeController extends BaseRESTfulController {
      * @param
      * @return
      */
-    @PostMapping("/findLoadByBatch/{batchId}")
-    public RESTfulResult findLoadByBatch(@PathVariable("batchId") BigDecimal batchId){
-        return success(bmsportHandlingFeeService.findLoadByBatch(batchId));
+    @PostMapping("/findLoadByBatch")
+    public RESTfulResult findLoadByBatch(@RequestBody(required = false) Map<String, Object> mapVal,
+                                              Integer pageNum,
+                                              Integer pageSize,
+                                              Integer apiId,
+                                              BigDecimal batchId){
+        if (mapVal == null) {
+            mapVal = new HashMap<>();
+        }
+        if(batchId==null)
+            return success(0);
+        mapVal.put("batchId",batchId);
+        PageHelper.startPage(pageNum, pageSize);
+        //分页查询数据
+        List<Map<String, Object>> columnList = bmsportHandlingFeeService.findLoadByBatch(mapVal);
+        PageListAdd data = columnDataUtil.tableColumnData(apiId, null, columnList);
+        //查询批次的总装船吨位计算月份装船比例
+        Map<BigDecimal, BigDecimal> totalMap= bmsportHandlingFeeService.findTotalTonnage();
+        List<Map<String, Object>> list= data.getList();
+        for(Map<String, Object> temp:list){
+            //查询批次的到场湿吨
+            BigDecimal enFactoryTonnage= bmsportHandlingFeeService.getEnFactoryTonnage(temp);
+            //总装船吨位
+            BigDecimal totalLoad=totalMap.get(DataChange.dataToBigDecimal(temp.get("batchId")));
+            if(totalLoad.intValue()>0){
+                //当月湿吨
+                BigDecimal realTonnage=enFactoryTonnage.multiply(
+                        DataChange.dataToBigDecimal(temp.get("realTonnage")).divide(totalLoad,3,BigDecimal.ROUND_DOWN)
+                );
+                temp.replace("realTonnage",realTonnage);
+            }else{
+                System.out.println("该批次没有到场湿吨:"+temp.get("batchId"));
+            }
+        }
+        return success(data);
     }
 
 }

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

@@ -60,4 +60,6 @@ public interface BmsportHandlingFeeMapper extends IBaseMapper<BmsportHandlingFee
     List<Map<String, Object>> getTruckDetailsByBatch(Map map);
 
     List<Map<String,Object>> findLoadByBatch(Map map);
+
+    List<Map<String,Object>> findTotalTonnage();
 }

+ 182 - 20
src/main/java/com/steerinfo/dil/model/BmsshipFee.java

@@ -6,63 +6,120 @@ import io.swagger.annotations.ApiModelProperty;
 import java.math.BigDecimal;
 import java.util.Date;
 
-@ApiModel(value="null")
+@ApiModel(value="船运结算费用表")
 public class BmsshipFee implements IBasePO<BigDecimal> {
-    @ApiModelProperty(value="",required=true)
+    /**
+     * 主键(RESULT_ID,DECIMAL,38)
+     */
+    @ApiModelProperty(value="主键",required=true)
     private BigDecimal resultId;
 
-    @ApiModelProperty(value="",required=false)
+    /**
+     * 费用(FEE,DECIMAL,38)
+     */
+    @ApiModelProperty(value="费用",required=false)
     private BigDecimal fee;
 
-    @ApiModelProperty(value="",required=false)
+    /**
+     * 费用类型(1:二程船水运费;2:二程船装卸费;3:三程船水运费;4:三程船装卸费;5:水分质检费用;6:进口矿火运费;7:进口矿装卸费)(FEE_TYPE,DECIMAL,38)
+     */
+    @ApiModelProperty(value="费用类型(1:二程船水运费;2:二程船装卸费;3:三程船水运费;4:三程船装卸费;5:水分质检费用;6:进口矿火运费;7:进口矿装卸费)",required=false)
     private BigDecimal feeType;
 
-    @ApiModelProperty(value="",required=false)
+    /**
+     * 采购订单id(PURCHASE_ORDER_ID,DECIMAL,38)
+     */
+    @ApiModelProperty(value="采购订单id",required=false)
     private BigDecimal purchaseOrderId;
 
-    @ApiModelProperty(value="",required=false)
+    /**
+     * 批次id(BATCH_ID,DECIMAL,38)
+     */
+    @ApiModelProperty(value="批次id",required=false)
     private BigDecimal batchId;
 
-    @ApiModelProperty(value="",required=false)
+    /**
+     * 实装吨位(REAL_TONNAGE,DECIMAL,38)
+     */
+    @ApiModelProperty(value="实装吨位",required=false)
     private BigDecimal realTonnage;
 
-    @ApiModelProperty(value="",required=false)
+    /**
+     * 单价(UNIT_PRICE,DECIMAL,38)
+     */
+    @ApiModelProperty(value="单价",required=false)
     private BigDecimal unitPrice;
 
-    @ApiModelProperty(value="",required=false)
+    /**
+     * 单价id(UNIT_PRICE_ID,DECIMAL,38)
+     */
+    @ApiModelProperty(value="单价id",required=false)
     private BigDecimal unitPriceId;
 
-    @ApiModelProperty(value="",required=false)
+    /**
+     * 备注(RESULT_REMARKS,VARCHAR,100)
+     */
+    @ApiModelProperty(value="备注",required=false)
     private String resultRemarks;
 
-    @ApiModelProperty(value="",required=false)
+    /**
+     * 插入操作人(INSERT_USERNAME,VARCHAR,20)
+     */
+    @ApiModelProperty(value="插入操作人",required=false)
     private String insertUsername;
 
-    @ApiModelProperty(value="",required=false)
+    /**
+     * 插入操作时间(INSERT_TIME,TIMESTAMP,7)
+     */
+    @ApiModelProperty(value="插入操作时间",required=false)
     private Date insertTime;
 
-    @ApiModelProperty(value="",required=false)
+    /**
+     * 修改操作人(UPDATE_USERNAME,VARCHAR,20)
+     */
+    @ApiModelProperty(value="修改操作人",required=false)
     private String updateUsername;
 
-    @ApiModelProperty(value="",required=false)
+    /**
+     * 修改操作时间(UPDATE_TIME,TIMESTAMP,7)
+     */
+    @ApiModelProperty(value="修改操作时间",required=false)
     private Date updateTime;
 
-    @ApiModelProperty(value="",required=false)
+    /**
+     * 插入修改备注(INSERT_UPDATE_REMARK,VARCHAR,100)
+     */
+    @ApiModelProperty(value="插入修改备注",required=false)
     private String insertUpdateRemark;
 
-    @ApiModelProperty(value="",required=false)
+    /**
+     * 逻辑删除(DELETED,DECIMAL,38)
+     */
+    @ApiModelProperty(value="逻辑删除",required=false)
     private BigDecimal deleted;
 
-    @ApiModelProperty(value="",required=false)
+    /**
+     * 图片(IMAGE,VARCHAR,255)
+     */
+    @ApiModelProperty(value="图片",required=false)
     private String image;
 
-    @ApiModelProperty(value="",required=false)
+    /**
+     * 车皮数量(WAGON_NUMBER,DECIMAL,38)
+     */
+    @ApiModelProperty(value="车皮数量",required=false)
     private BigDecimal wagonNumber;
 
-    @ApiModelProperty(value="",required=false)
+    /**
+     * 开票日期(MAKE_TIME,TIMESTAMP,7)
+     */
+    @ApiModelProperty(value="开票日期",required=false)
     private Date makeTime;
 
-    @ApiModelProperty(value="",required=false)
+    /**
+     * 港口id(PORT_ID,DECIMAL,38)
+     */
+    @ApiModelProperty(value="港口id",required=false)
     private BigDecimal portId;
 
     /**
@@ -77,6 +134,48 @@ public class BmsshipFee implements IBasePO<BigDecimal> {
     @ApiModelProperty(value="船数",required=false)
     private BigDecimal shipNum;
 
+    /**
+     * 预开金额(PREVIEW_FEE,DECIMAL,38)
+     */
+    @ApiModelProperty(value="预开金额",required=false)
+    private BigDecimal previewFee;
+
+    /**
+     * 预开湿吨(PREVIEW_TONNAGE,DECIMAL,38)
+     */
+    @ApiModelProperty(value="预开湿吨",required=false)
+    private BigDecimal previewTonnage;
+
+    /**
+     * 开票金额(FEE_MAKE,DECIMAL,38)
+     */
+    @ApiModelProperty(value="开票金额",required=false)
+    private BigDecimal feeMake;
+
+    /**
+     * 开票湿吨(MAKE_TONNAGE,DECIMAL,38)
+     */
+    @ApiModelProperty(value="开票湿吨",required=false)
+    private BigDecimal makeTonnage;
+
+    /**
+     * 装船水分吨位(LOAD_WATER_TONNAGE,DECIMAL,38)
+     */
+    @ApiModelProperty(value="装船水分吨位",required=false)
+    private BigDecimal loadWaterTonnage;
+
+    /**
+     * 进厂水分吨位(EN_WATER_TONNAGE,DECIMAL,38)
+     */
+    @ApiModelProperty(value="进厂水分吨位",required=false)
+    private BigDecimal enWaterTonnage;
+
+    /**
+     * 总实绩id(TOTAL_RESULT_ID,DECIMAL,0)
+     */
+    @ApiModelProperty(value="总实绩id",required=false)
+    private BigDecimal totalResultId;
+
     private static final long serialVersionUID = 1L;
 
     @Override
@@ -257,6 +356,62 @@ public class BmsshipFee implements IBasePO<BigDecimal> {
         this.shipNum = shipNum;
     }
 
+    public BigDecimal getPreviewFee() {
+        return previewFee;
+    }
+
+    public void setPreviewFee(BigDecimal previewFee) {
+        this.previewFee = previewFee;
+    }
+
+    public BigDecimal getPreviewTonnage() {
+        return previewTonnage;
+    }
+
+    public void setPreviewTonnage(BigDecimal previewTonnage) {
+        this.previewTonnage = previewTonnage;
+    }
+
+    public BigDecimal getFeeMake() {
+        return feeMake;
+    }
+
+    public void setFeeMake(BigDecimal feeMake) {
+        this.feeMake = feeMake;
+    }
+
+    public BigDecimal getMakeTonnage() {
+        return makeTonnage;
+    }
+
+    public void setMakeTonnage(BigDecimal makeTonnage) {
+        this.makeTonnage = makeTonnage;
+    }
+
+    public BigDecimal getLoadWaterTonnage() {
+        return loadWaterTonnage;
+    }
+
+    public void setLoadWaterTonnage(BigDecimal loadWaterTonnage) {
+        this.loadWaterTonnage = loadWaterTonnage;
+    }
+
+    public BigDecimal getEnWaterTonnage() {
+        return enWaterTonnage;
+    }
+
+    public void setEnWaterTonnage(BigDecimal enWaterTonnage) {
+        this.enWaterTonnage = enWaterTonnage;
+    }
+
+    public BigDecimal getTotalResultId() {
+        return totalResultId;
+    }
+
+    public void setTotalResultId(BigDecimal totalResultId) {
+        this.totalResultId = totalResultId;
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -284,6 +439,13 @@ public class BmsshipFee implements IBasePO<BigDecimal> {
         sb.append(", portId=").append(portId);
         sb.append(", portNum=").append(portNum);
         sb.append(", shipNum=").append(shipNum);
+        sb.append(", previewFee=").append(previewFee);
+        sb.append(", previewTonnage=").append(previewTonnage);
+        sb.append(", feeMake=").append(feeMake);
+        sb.append(", makeTonnage=").append(makeTonnage);
+        sb.append(", loadWaterTonnage=").append(loadWaterTonnage);
+        sb.append(", enWaterTonnage=").append(enWaterTonnage);
+        sb.append(", totalResultId=").append(totalResultId);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();

+ 5 - 1
src/main/java/com/steerinfo/dil/service/IBmsportHandlingFeeService.java

@@ -86,5 +86,9 @@ public interface IBmsportHandlingFeeService {
 
     Map<String, Object> getTruckDetailsByBatch(BigDecimal batchId);
 
-    List<Map<String, Object>> findLoadByBatch(BigDecimal batchId);
+    List<Map<String, Object>> findLoadByBatch(Map<String, Object> map);
+
+    Map<BigDecimal, BigDecimal> findTotalTonnage();
+
+    BigDecimal getEnFactoryTonnage(Map<String,Object> map);
 }

+ 47 - 27
src/main/java/com/steerinfo/dil/service/impl/BmsportHandlingFeeServiceImpl.java

@@ -10,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.xml.crypto.Data;
 import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.util.Date;
@@ -84,6 +85,7 @@ public class BmsportHandlingFeeServiceImpl implements IBmsportHandlingFeeService
         bmsportHandlingFee.setFeeValue(feeValue);
         bmsportHandlingFee.setMaterialId(materialId);
         bmsportHandlingFee.setFeeForeignShipName(feeForeignShipName);
+
         // 设置常规字段
         bmsportHandlingFee.setInsertTime(new Date());
         bmsportHandlingFee.setInsertUsername("admin");
@@ -153,6 +155,15 @@ public class BmsportHandlingFeeServiceImpl implements IBmsportHandlingFeeService
         BigDecimal tonnage =DataChange.dataToBigDecimal(map.get("realTonnage"));
         BigDecimal batchId =DataChange.dataToBigDecimal(map.get("batchId"));
         BigDecimal purchaseOrderId =DataChange.dataToBigDecimal(map.get("purchaseOrderId"));
+        //三程船字段
+        BigDecimal portId=DataChange.dataToBigDecimal(map.get("portId"));
+        BigDecimal previewFee=DataChange.dataToBigDecimal(map.get("previewFee"));
+        BigDecimal previewTonnage=DataChange.dataToBigDecimal(map.get("previewTonnage"));
+        BigDecimal loadWater=DataChange.dataToBigDecimal(map.get("loadWater"));
+        BigDecimal enFacotoryWater=DataChange.dataToBigDecimal(map.get("enFacotoryWater"));
+        BigDecimal makeTonnage=DataChange.dataToBigDecimal(map.get("makeTonnage"));
+        BigDecimal makeFee=DataChange.dataToBigDecimal(map.get("makeTonnage"));
+        BigDecimal totalResultId=DataChange.dataToBigDecimal(map.get("totalResultId"));
         if(map.get("makeTime")!=null) {
              makeTime = (long) map.get("makeTime");
         }else {
@@ -168,6 +179,14 @@ public class BmsportHandlingFeeServiceImpl implements IBmsportHandlingFeeService
         bmsshipFee.setResultId(bmsshipFeeMapper.MaxId());
         bmsshipFee.setRealTonnage(tonnage);
         bmsshipFee.setFeeType(DataChange.dataToBigDecimal(map.get("feeType")));
+        bmsshipFee.setPreviewTonnage(previewTonnage);
+        bmsshipFee.setPreviewFee(previewFee);
+        bmsshipFee.setLoadWaterTonnage(loadWater);
+        bmsshipFee.setEnWaterTonnage(enFacotoryWater);
+        bmsshipFee.setMakeTonnage(makeTonnage);
+        bmsshipFee.setFeeMake(makeFee);
+        bmsshipFee.setPortId(portId);
+        bmsshipFee.setTotalResultId(totalResultId);
         bmsshipFee.setImage((String) map.get("image"));
         bmsshipFee.setInsertTime(new Date());
         bmsshipFee.setDeleted(new BigDecimal(0));
@@ -190,30 +209,6 @@ public class BmsportHandlingFeeServiceImpl implements IBmsportHandlingFeeService
             } else {
                throw new Exception("费用不一致");
             }
-        }else if(DataChange.dataToBigDecimal(map.get("feeType")).intValue() == 3){
-            //如果是三程船水运费,校验总费用和总吨位
-            List<Map<String,Object>>  mapList=(List<Map<String,Object>>)map.get("mapList");
-            BigDecimal totalFee=new BigDecimal("0");
-            BigDecimal totalWeight=new BigDecimal("0");
-            for(Map<String,Object> temp:mapList){
-                totalFee=totalFee.add(
-                        DataChange.dataToBigDecimal(temp.get("unitPrice")).multiply(
-                                DataChange.dataToBigDecimal(temp.get("resultActualInstallations"))
-                        )
-                );
-                totalWeight=totalWeight.add(DataChange.dataToBigDecimal(temp.get("resultActualInstallations")));
-            }
-            //保留两位小数比较
-            if(totalFee.setScale(2,BigDecimal.ROUND_HALF_UP).compareTo(DataChange.dataToBigDecimal(map.get("fee")).setScale(2,BigDecimal.ROUND_HALF_UP))==0){
-                bmsshipFee.setFee(totalFee);
-            }else{
-               throw new Exception("费用不一致");
-            }
-            if(totalWeight.setScale(2,BigDecimal.ROUND_HALF_UP).compareTo(tonnage.setScale(2,BigDecimal.ROUND_HALF_UP))==0){
-                bmsshipFee.setRealTonnage(totalWeight);
-            }else{
-               throw new Exception("总吨位不一致");
-            }
         }else {
             bmsshipFee.setFee(DataChange.dataToBigDecimal(map.get("fee")));
         }
@@ -332,9 +327,34 @@ public class BmsportHandlingFeeServiceImpl implements IBmsportHandlingFeeService
     }
 
     @Override
-    public List<Map<String, Object>> findLoadByBatch(BigDecimal batchId) {
-        Map<String,Object> map=new HashMap<>();
-        map.put("batchId",batchId);
+    public List<Map<String, Object>> findLoadByBatch(Map<String,Object> map) {
         return bmsportHandlingFeeMapper.findLoadByBatch(map);
     }
+
+    @Override
+    public Map<BigDecimal, BigDecimal> findTotalTonnage() {
+        List<Map<String, Object>> list= bmsportHandlingFeeMapper.findTotalTonnage();
+        Map<BigDecimal,BigDecimal> map=new HashMap();
+        for(Map<String,Object> temp:list){
+            BigDecimal batchId= DataChange.dataToBigDecimal(temp.get("batchId"));
+            BigDecimal totalTonnage=DataChange.dataToBigDecimal(temp.get("totalTonnage"));
+            map.put(batchId,totalTonnage);
+        }
+        return map;
+    }
+
+    @Override
+    public BigDecimal getEnFactoryTonnage(Map<String,Object> map) {
+        //获取进厂湿吨
+        List<Map<String, Object>> trainList=bmsportHandlingFeeMapper.getTrainDetailsByBatch(map);
+        List<Map<String, Object>> truckList=bmsportHandlingFeeMapper.getTruckDetailsByBatch(map);
+        BigDecimal train=new BigDecimal(0),truck=new BigDecimal(0);
+        if(trainList.size()>0){
+            train=DataChange.dataToBigDecimal(trainList.get(0).get("realWeight"));
+        }
+        if(truckList.size()>0){
+            truck=DataChange.dataToBigDecimal(truckList.get(0).get("realWeight"));
+        }
+        return truck.add(train);
+    }
 }

+ 112 - 65
src/main/resources/com/steerinfo/dil/mapper/BmsportHandlingFeeMapper.xml

@@ -491,29 +491,42 @@
         WHERE PRICE_TYPE = '港口装卸单价'
     </select>
 
-  <!--  展示结算列表-->
+    <!--  展示结算列表-->
     <select id="selectPortFeeSecondList" resultType="java.util.Map" parameterType="java.util.Map">
-        select BF.REAL_TONNAGE "realTonnage",
-               BF.UNIT_PRICE "unitPrice",
-               APO.PURCHASE_ORDER_NO "purchaseOrderNo",
-               BCP.CONTRACT_NO "contractNo",
-               DB.RESULT_FOREIGN_SHIP_NAME "resultForeignShipName",
-               RM.MATERIAL_NAME "materialName",
-               BF.PORT_NUM "portNum",
-               BF.SHIP_NUM "shipNum",
-               BF.FEE "fee",
-              (case
-               WHEN  BF.FEE_TYPE = 1 then '二程船水运费'
-               WHEN BF.FEE_TYPE = 2 THEN  '二程船装卸费'
-               WHEN BF.FEE_TYPE = 3 THEN '三程船水运费'
-               WHEN BF.FEE_TYPE = 4 THEN  '三程船装卸费'
-               WHEN BF.FEE_TYPE =5 THEN  '水分检测费'
-               WHEN BF.FEE_TYPE = 6 THEN '进口矿火运费'
-               WHEN  BF.FEE_TYPE = 7 THEN '国产矿火运费'
-               end) AS "feeType",
-               BF.RESULT_ID "resultId",
-               BF.MAKE_TIME "makeTime"
-
+        --三程船水运费查询
+        select BF.REAL_TONNAGE "realTonnage",--到厂湿吨
+        BF.UNIT_PRICE "unitPrice",
+        APO.PURCHASE_ORDER_NO "purchaseOrderNo",
+        BCP.CONTRACT_NO "contractNo",
+        BF.PREVIEW_TONNAGE "previewTonnage",--预开湿吨
+        BF.PREVIEW_FEE "previewFee",--预开金额
+        DB.RESULT_FOREIGN_SHIP_NAME "resultForeignShipName",
+        RM.MATERIAL_NAME "materialName",
+        BF.PORT_ID,
+        RP.PORT_NAME "portName",
+        BF.PORT_NUM "portNum",
+        BF.SHIP_NUM "shipNum",
+        BF.FEE "fee",--水运费
+        TLSR.RESULT_ACTUAL_INSTALLATIONS "loadTonnage",--装船湿吨
+        BF.LOAD_WATER_TONNAGE "loadWater",--装船水分吨位
+        100 * round( BF.LOAD_WATER_TONNAGE / TLSR.RESULT_ACTUAL_INSTALLATIONS, 4 ) || '%'  as "cuic",--水分
+        TLSR.RESULT_ACTUAL_INSTALLATIONS-BF.LOAD_WATER_TONNAGE "loadDry",--装船干吨
+        BF.EN_WATER_TONNAGE "enWater",--进厂水分吨位
+        BF.REAL_TONNAGE-BF.EN_WATER_TONNAGE "enDry",--进厂干吨
+        BF.MAKE_TONNAGE "makeTonnage",--开票湿吨
+        BF.FEE_MAKE "makeFee",--开票金额
+        TLSR.RESULT_OUT_PORT_TIME "resultOutPortTime",--离港日期
+        (case
+        WHEN  BF.FEE_TYPE = 1 then '二程船水运费'
+        WHEN BF.FEE_TYPE = 2 THEN  '二程船装卸费'
+        WHEN BF.FEE_TYPE = 3 THEN '三程船水运费'
+        WHEN BF.FEE_TYPE = 4 THEN  '三程船装卸费'
+        WHEN BF.FEE_TYPE =5 THEN  '水分检测费'
+        WHEN BF.FEE_TYPE = 6 THEN '进口矿火运费'
+        WHEN  BF.FEE_TYPE = 7 THEN '国产矿火运费'
+        end) AS "feeType",
+        BF.RESULT_ID "resultId",
+        BF.MAKE_TIME "makeTime"
         from BMSSHIP_FEE BF
         LEFT JOIN DIL_BATCH DB
         ON BF.BATCH_ID = DB.BATCH_ID
@@ -523,22 +536,28 @@
         ON BF.PURCHASE_ORDER_ID = APO.PURCHASE_ORDER_ID
         LEFT JOIN BMSSHIP_CONTRACT_PRICE BCP
         ON BF.UNIT_PRICE_ID = BCP.RESULT_ID
+        LEFT JOIN TMSSHIP_TOTAL_RESULT TTR
+        ON BF.TOTAL_RESULT_ID=TTR.RESULT_ID
+        LEFT JOIN TMSSHIP_LOAD_SHIP_RESULT TLSR
+        ON TLSR.TOTAL_RESULT_ID=TTR.RESULT_ID
+        LEFT JOIN RMS_PORT RP
+        ON RP.PORT_ID=BF.PORT_ID
         WHERE  BF.FEE_TYPE = #{feeType}
-          AND  BF.DELETED = 0
+        AND  BF.DELETED = 0
         <if test="startDate != null">
             and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;=    BF.MAKE_TIME
             and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >=  BF.MAKE_TIME
         </if>
         <if test="con!=null and con!=''.toString()">
             and (
-                APO.PURCHASE_ORDER_NO like concat('%',concat(#{con},'%'))
+            APO.PURCHASE_ORDER_NO like concat('%',concat(#{con},'%'))
             or BCP.CONTRACT_NO like concat('%',concat(#{con},'%'))
             or DB.RESULT_FOREIGN_SHIP_NAME like concat('%',concat(#{con},'%'))
             or RM.MATERIAL_NAME  like concat('%',concat(#{con},'%'))
             )
         </if>
     </select>
-<!--    -->
+    <!--    -->
     <select id="downloadBmsshipOrder" resultType="java.lang.String" parameterType="java.lang.Integer">
         select  BF.IMAGE "image"
         from BMSSHIP_FEE BF
@@ -555,36 +574,36 @@
                 bf.MAKE_TIME "makeTime",
                 bf.IMAGE "image",
                 bf.FEE "fee",
-               BF.BATCH_ID "batchId"
+                BF.BATCH_ID "batchId"
 
         from BMSSHIP_FEE BF
-        LEFT JOIN DIL_BATCH DB
-        ON BF.BATCH_ID = DB.BATCH_ID
-        left join RMS_MATERIAL rm
-         on rm.MATERIAL_ID = DB.MATERIAL_ID
-        left join BMSSHIP_CONTRACT_PRICE bcp
-        on bcp.RESULT_ID = BF.UNIT_PRICE_ID
-        LEFT JOIN AMS_PURCHASE_ORDER APO
-        ON APO.PURCHASE_ORDER_ID=BF.PURCHASE_ORDER_ID
+                 LEFT JOIN DIL_BATCH DB
+                           ON BF.BATCH_ID = DB.BATCH_ID
+                 left join RMS_MATERIAL rm
+                           on rm.MATERIAL_ID = DB.MATERIAL_ID
+                 left join BMSSHIP_CONTRACT_PRICE bcp
+                           on bcp.RESULT_ID = BF.UNIT_PRICE_ID
+                 LEFT JOIN AMS_PURCHASE_ORDER APO
+                           ON APO.PURCHASE_ORDER_ID=BF.PURCHASE_ORDER_ID
         WHERE  BF.RESULT_ID = #{id}
     </select>
 
     <select id="getTrainDetailsByBatch" resultType="java.util.Map" >
         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"--车皮数量
+        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
+        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
         <if test="batchId!=null and batchId!=0">
             HAVING TLR.BATCH_ID=#{batchId}
@@ -624,29 +643,57 @@
     </select>
 
     <select id="findLoadByBatch" resultType="java.util.Map">
+        --查询批次对应的装船及其单价等
         SELECT 	db.BATCH_ID "batchId",
-                  db.RESULT_FOREIGN_SHIP_NAME "resultForeignShipName",
-                  tlsr.RESULT_LOAD_SHIP_DATE  "resultLoadShipDate",
-                  tlsr.RESULT_OUT_PORT_TIME  "resultOutPortTime",
-                  SUM(tlsr.RESULT_ACTUAL_INSTALLATIONS) "resultActualInstallations"
+        apo.PURCHASE_ORDER_ID "purchaseOrderId",
+        db.RESULT_FOREIGN_SHIP_NAME "resultForeignShipName",
+        tlsr.RESULT_ACTUAL_INSTALLATIONS "realTonnage",
+        tlsr.RESULT_LOAD_SHIP_DATE  "resultLoadShipDate",
+        tlsr.RESULT_OUT_PORT_TIME  "resultOutPortTime",
+        rp.PORT_ID "portId",
+        rp.PORT_NAME "portName",
+        bcr.RESULT_ID "unitPriceId",
+        bcr.UNIT_PRICE "unitPrice",
+        ttr.RESULT_ID "totalResultId"
         FROM TMSSHIP_LOAD_SHIP_RESULT tlsr
-                 LEFT JOIN TMSSHIP_TOTAL_RESULT ttr
-                           ON ttr.RESULT_ID = tlsr.TOTAL_RESULT_ID
-                 LEFT JOIN OMSSHIP_INSTRUCTIONS_CAPACITY oic
-                           ON oic.INSTRUCTIONS_CAPACITY_ID = ttr.ORDER_ID
-                 LEFT JOIN OMSSHIP_SHIPMENT_INSTRUCTIONS osi
-                           ON osi.SHIPMENT_INSTRUCTIONS_ID = oic.INSTRUCTIONS_ID
-                 LEFT JOIN DIL_BATCH_INFACOTRY dbi
-                           ON dbi.BATCH_INFACOTRY_ID = osi.BATCH_ID
-                 LEFT JOIN DIL_BATCH db
-                           ON db.BATCH_ID = dbi.BATCH_ID
-                 LEFT JOIN TMSSHIP_WATER_QUALITY_RESULT twqr
-                           ON ttr.RESULT_ID = twqr.TOTAL_RESULT_ID
-        GROUP BY tlsr.RESULT_LOAD_SHIP_DATE ,tlsr.RESULT_OUT_PORT_TIME,db.RESULT_FOREIGN_SHIP_NAME,db.BATCH_ID
+        LEFT JOIN TMSSHIP_TOTAL_RESULT ttr
+        ON ttr.RESULT_ID = tlsr.TOTAL_RESULT_ID
+        LEFT JOIN OMSSHIP_INSTRUCTIONS_CAPACITY oic
+        ON oic.INSTRUCTIONS_CAPACITY_ID = ttr.ORDER_ID
+        LEFT JOIN OMSSHIP_SHIPMENT_INSTRUCTIONS osi
+        ON osi.SHIPMENT_INSTRUCTIONS_ID = oic.INSTRUCTIONS_ID
+        LEFT JOIN DIL_BATCH_INFACOTRY dbi
+        ON dbi.BATCH_INFACOTRY_ID = osi.BATCH_ID
+        LEFT JOIN DIL_BATCH db
+        ON db.BATCH_ID = dbi.BATCH_ID
+        LEFT JOIN TMSSHIP_WATER_QUALITY_RESULT twqr
+        ON ttr.RESULT_ID = twqr.TOTAL_RESULT_ID
+        LEFT JOIN AMSSHIP_DELIVERY_NOTICE adn
+        ON adn.BATCH_ID=dbi.BATCH_INFACOTRY_ID
+        LEFT JOIN RMS_PORT	rp
+        ON rp.PORT_ID=adn.PORT_ID
+        LEFT JOIN AMS_PURCHASE_ORDER apo
+        ON db.BATCH_ID=apo.BATCH_ID
+        LEFT JOIN BMSSHIP_CONTRACT_PRICE bcr
+        ON bcr.PORT_ID=rp.PORT_ID AND tlsr.RESULT_OUT_PORT_TIME >= bcr.START_TIME AND bcr.END_TIME >= tlsr.RESULT_OUT_PORT_TIME
+        WHERE tlsr.DELETED=0
         <if test="batchId!=null and batchId!=0">
-            HAVING  db.BATCH_ID=#{batchId}
+            AND  db.BATCH_ID=#{batchId}
         </if>
     </select>
 
+    <select id="findTotalTonnage" resultType="java.util.Map">
+        --查询批次id及其总实装吨位
+        select DB.BATCH_ID "batchId",
+               TLSR.DELETED,
+               SUM(TLSR.RESULT_ACTUAL_INSTALLATIONS) "totalTonnage"
+        from TMSSHIP_LOAD_SHIP_RESULT TLSR
+                 LEFT JOIN DIL_BATCH_INFACOTRY DBI
+                           ON TLSR.BATCH_ID=DBI.BATCH_INFACOTRY_ID
+                 LEFT JOIN DIL_BATCH DB
+                           ON DB.BATCH_ID=DBI.BATCH_ID
+        GROUP BY DB.BATCH_ID,TLSR.DELETED
+        HAVING TLSR.DELETED=0
+    </select>
 
 </mapper>

+ 221 - 44
src/main/resources/com/steerinfo/dil/mapper/BmsshipFeeMapper.xml

@@ -23,24 +23,33 @@
     <result column="PORT_ID" jdbcType="DECIMAL" property="portId" />
     <result column="PORT_NUM" jdbcType="DECIMAL" property="portNum" />
     <result column="SHIP_NUM" jdbcType="DECIMAL" property="shipNum" />
+    <result column="PREVIEW_FEE" jdbcType="DECIMAL" property="previewFee" />
+    <result column="PREVIEW_TONNAGE" jdbcType="DECIMAL" property="previewTonnage" />
+    <result column="FEE_MAKE" jdbcType="DECIMAL" property="feeMake" />
+    <result column="MAKE_TONNAGE" jdbcType="DECIMAL" property="makeTonnage" />
+    <result column="LOAD_WATER_TONNAGE" jdbcType="DECIMAL" property="loadWaterTonnage" />
+    <result column="EN_WATER_TONNAGE" jdbcType="DECIMAL" property="enWaterTonnage" />
+    <result column="TOTAL_RESULT_ID" jdbcType="DECIMAL" property="totalResultId" />
   </resultMap>
   <sql id="columns">
     RESULT_ID, FEE, FEE_TYPE, PURCHASE_ORDER_ID, BATCH_ID, REAL_TONNAGE, UNIT_PRICE,
     UNIT_PRICE_ID, RESULT_REMARKS, INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME,
     INSERT_UPDATE_REMARK, DELETED, IMAGE, WAGON_NUMBER, MAKE_TIME, PORT_ID, PORT_NUM,
-    SHIP_NUM
+    SHIP_NUM, PREVIEW_FEE, PREVIEW_TONNAGE, FEE_MAKE, MAKE_TONNAGE, LOAD_WATER_TONNAGE,
+    EN_WATER_TONNAGE, TOTAL_RESULT_ID
   </sql>
   <sql id="columns_alias">
     t.RESULT_ID, t.FEE, t.FEE_TYPE, t.PURCHASE_ORDER_ID, t.BATCH_ID, t.REAL_TONNAGE,
     t.UNIT_PRICE, t.UNIT_PRICE_ID, t.RESULT_REMARKS, t.INSERT_USERNAME, t.INSERT_TIME,
     t.UPDATE_USERNAME, t.UPDATE_TIME, t.INSERT_UPDATE_REMARK, t.DELETED, t.IMAGE, t.WAGON_NUMBER,
-    t.MAKE_TIME, t.PORT_ID, t.PORT_NUM, t.SHIP_NUM
+    t.MAKE_TIME, t.PORT_ID, t.PORT_NUM, t.SHIP_NUM, t.PREVIEW_FEE, t.PREVIEW_TONNAGE,
+    t.FEE_MAKE, t.MAKE_TONNAGE, t.LOAD_WATER_TONNAGE, t.EN_WATER_TONNAGE, t.TOTAL_RESULT_ID
   </sql>
   <sql id="select">
-    SELECT <include refid="columns" /> FROM BMSSHIP_FEE
+    SELECT <include refid="columns"/> FROM BMSSHIP_FEE
   </sql>
   <sql id="select_alias">
-    SELECT <include refid="columns_alias" /> FROM BMSSHIP_FEE t
+    SELECT <include refid="columns_alias"/> FROM BMSSHIP_FEE t
   </sql>
   <sql id="where">
     <where>
@@ -107,6 +116,27 @@
       <if test="shipNum != null">
         and SHIP_NUM = #{shipNum}
       </if>
+      <if test="previewFee != null">
+        and PREVIEW_FEE = #{previewFee}
+      </if>
+      <if test="previewTonnage != null">
+        and PREVIEW_TONNAGE = #{previewTonnage}
+      </if>
+      <if test="feeMake != null">
+        and FEE_MAKE = #{feeMake}
+      </if>
+      <if test="makeTonnage != null">
+        and MAKE_TONNAGE = #{makeTonnage}
+      </if>
+      <if test="loadWaterTonnage != null">
+        and LOAD_WATER_TONNAGE = #{loadWaterTonnage}
+      </if>
+      <if test="enWaterTonnage != null">
+        and EN_WATER_TONNAGE = #{enWaterTonnage}
+      </if>
+      <if test="totalResultId != null">
+        and TOTAL_RESULT_ID = #{totalResultId}
+      </if>
     </where>
   </sql>
   <sql id="whereLike">
@@ -174,9 +204,30 @@
       <if test="shipNum != null">
         and SHIP_NUM = #{shipNum}
       </if>
+      <if test="previewFee != null">
+        and PREVIEW_FEE = #{previewFee}
+      </if>
+      <if test="previewTonnage != null">
+        and PREVIEW_TONNAGE = #{previewTonnage}
+      </if>
+      <if test="feeMake != null">
+        and FEE_MAKE = #{feeMake}
+      </if>
+      <if test="makeTonnage != null">
+        and MAKE_TONNAGE = #{makeTonnage}
+      </if>
+      <if test="loadWaterTonnage != null">
+        and LOAD_WATER_TONNAGE = #{loadWaterTonnage}
+      </if>
+      <if test="enWaterTonnage != null">
+        and EN_WATER_TONNAGE = #{enWaterTonnage}
+      </if>
+      <if test="totalResultId != null">
+        and TOTAL_RESULT_ID = #{totalResultId}
+      </if>
     </where>
   </sql>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Short">
+  <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
     delete from BMSSHIP_FEE
     where RESULT_ID = #{resultId,jdbcType=DECIMAL}
   </delete>
@@ -243,6 +294,27 @@
     <if test="shipNum != null">
       or SHIP_NUM = #{shipNum}
     </if>
+    <if test="previewFee != null">
+      or PREVIEW_FEE = #{previewFee}
+    </if>
+    <if test="previewTonnage != null">
+      or PREVIEW_TONNAGE = #{previewTonnage}
+    </if>
+    <if test="feeMake != null">
+      or FEE_MAKE = #{feeMake}
+    </if>
+    <if test="makeTonnage != null">
+      or MAKE_TONNAGE = #{makeTonnage}
+    </if>
+    <if test="loadWaterTonnage != null">
+      or LOAD_WATER_TONNAGE = #{loadWaterTonnage}
+    </if>
+    <if test="enWaterTonnage != null">
+      or EN_WATER_TONNAGE = #{enWaterTonnage}
+    </if>
+    <if test="totalResultId != null">
+      or TOTAL_RESULT_ID = #{totalResultId}
+    </if>
   </delete>
   <insert id="insert" parameterType="com.steerinfo.dil.model.BmsshipFee">
     insert into BMSSHIP_FEE (RESULT_ID, FEE, FEE_TYPE,
@@ -251,16 +323,20 @@
                              INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME,
                              UPDATE_TIME, INSERT_UPDATE_REMARK, DELETED,
                              IMAGE, WAGON_NUMBER, MAKE_TIME,
-                             PORT_ID, PORT_NUM, SHIP_NUM
-    )
+                             PORT_ID, PORT_NUM, SHIP_NUM,
+                             PREVIEW_FEE, PREVIEW_TONNAGE, FEE_MAKE,
+                             MAKE_TONNAGE, LOAD_WATER_TONNAGE, EN_WATER_TONNAGE,
+                             TOTAL_RESULT_ID)
     values (#{resultId,jdbcType=DECIMAL}, #{fee,jdbcType=DECIMAL}, #{feeType,jdbcType=DECIMAL},
             #{purchaseOrderId,jdbcType=DECIMAL}, #{batchId,jdbcType=DECIMAL}, #{realTonnage,jdbcType=DECIMAL},
             #{unitPrice,jdbcType=DECIMAL}, #{unitPriceId,jdbcType=DECIMAL}, #{resultRemarks,jdbcType=VARCHAR},
             #{insertUsername,jdbcType=VARCHAR}, #{insertTime,jdbcType=TIMESTAMP}, #{updateUsername,jdbcType=VARCHAR},
             #{updateTime,jdbcType=TIMESTAMP}, #{insertUpdateRemark,jdbcType=VARCHAR}, #{deleted,jdbcType=DECIMAL},
             #{image,jdbcType=VARCHAR}, #{wagonNumber,jdbcType=DECIMAL}, #{makeTime,jdbcType=TIMESTAMP},
-            #{portId,jdbcType=DECIMAL}, #{portNum,jdbcType=DECIMAL}, #{shipNum,jdbcType=DECIMAL}
-           )
+            #{portId,jdbcType=DECIMAL}, #{portNum,jdbcType=DECIMAL}, #{shipNum,jdbcType=DECIMAL},
+            #{previewFee,jdbcType=DECIMAL}, #{previewTonnage,jdbcType=DECIMAL}, #{feeMake,jdbcType=DECIMAL},
+            #{makeTonnage,jdbcType=DECIMAL}, #{loadWaterTonnage,jdbcType=DECIMAL}, #{enWaterTonnage,jdbcType=DECIMAL},
+            #{totalResultId,jdbcType=DECIMAL})
   </insert>
   <insert id="insertSelective" parameterType="com.steerinfo.dil.model.BmsshipFee">
     insert into BMSSHIP_FEE
@@ -328,6 +404,27 @@
       <if test="shipNum != null">
         SHIP_NUM,
       </if>
+      <if test="previewFee != null">
+        PREVIEW_FEE,
+      </if>
+      <if test="previewTonnage != null">
+        PREVIEW_TONNAGE,
+      </if>
+      <if test="feeMake != null">
+        FEE_MAKE,
+      </if>
+      <if test="makeTonnage != null">
+        MAKE_TONNAGE,
+      </if>
+      <if test="loadWaterTonnage != null">
+        LOAD_WATER_TONNAGE,
+      </if>
+      <if test="enWaterTonnage != null">
+        EN_WATER_TONNAGE,
+      </if>
+      <if test="totalResultId != null">
+        TOTAL_RESULT_ID,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="resultId != null">
@@ -393,6 +490,27 @@
       <if test="shipNum != null">
         #{shipNum,jdbcType=DECIMAL},
       </if>
+      <if test="previewFee != null">
+        #{previewFee,jdbcType=DECIMAL},
+      </if>
+      <if test="previewTonnage != null">
+        #{previewTonnage,jdbcType=DECIMAL},
+      </if>
+      <if test="feeMake != null">
+        #{feeMake,jdbcType=DECIMAL},
+      </if>
+      <if test="makeTonnage != null">
+        #{makeTonnage,jdbcType=DECIMAL},
+      </if>
+      <if test="loadWaterTonnage != null">
+        #{loadWaterTonnage,jdbcType=DECIMAL},
+      </if>
+      <if test="enWaterTonnage != null">
+        #{enWaterTonnage,jdbcType=DECIMAL},
+      </if>
+      <if test="totalResultId != null">
+        #{totalResultId,jdbcType=DECIMAL},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.BmsshipFee">
@@ -416,7 +534,14 @@
         MAKE_TIME = #{makeTime,jdbcType=TIMESTAMP},
         PORT_ID = #{portId,jdbcType=DECIMAL},
         PORT_NUM = #{portNum,jdbcType=DECIMAL},
-        SHIP_NUM = #{shipNum,jdbcType=DECIMAL}
+        SHIP_NUM = #{shipNum,jdbcType=DECIMAL},
+        PREVIEW_FEE = #{previewFee,jdbcType=DECIMAL},
+        PREVIEW_TONNAGE = #{previewTonnage,jdbcType=DECIMAL},
+        FEE_MAKE = #{feeMake,jdbcType=DECIMAL},
+        MAKE_TONNAGE = #{makeTonnage,jdbcType=DECIMAL},
+        LOAD_WATER_TONNAGE = #{loadWaterTonnage,jdbcType=DECIMAL},
+        EN_WATER_TONNAGE = #{enWaterTonnage,jdbcType=DECIMAL},
+        TOTAL_RESULT_ID = #{totalResultId,jdbcType=DECIMAL}
     where RESULT_ID = #{resultId,jdbcType=DECIMAL}
   </update>
   <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.BmsshipFee">
@@ -482,20 +607,41 @@
       <if test="shipNum != null">
         SHIP_NUM = #{shipNum,jdbcType=DECIMAL},
       </if>
+      <if test="previewFee != null">
+        PREVIEW_FEE = #{previewFee,jdbcType=DECIMAL},
+      </if>
+      <if test="previewTonnage != null">
+        PREVIEW_TONNAGE = #{previewTonnage,jdbcType=DECIMAL},
+      </if>
+      <if test="feeMake != null">
+        FEE_MAKE = #{feeMake,jdbcType=DECIMAL},
+      </if>
+      <if test="makeTonnage != null">
+        MAKE_TONNAGE = #{makeTonnage,jdbcType=DECIMAL},
+      </if>
+      <if test="loadWaterTonnage != null">
+        LOAD_WATER_TONNAGE = #{loadWaterTonnage,jdbcType=DECIMAL},
+      </if>
+      <if test="enWaterTonnage != null">
+        EN_WATER_TONNAGE = #{enWaterTonnage,jdbcType=DECIMAL},
+      </if>
+      <if test="totalResultId != null">
+        TOTAL_RESULT_ID = #{totalResultId,jdbcType=DECIMAL},
+      </if>
     </set>
     where RESULT_ID = #{resultId,jdbcType=DECIMAL}
   </update>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Short" resultMap="BaseResultMap">
-    <include refid="select" />
+  <select id="selectByPrimaryKey" parameterType="java.math.BigDecimal" resultMap="BaseResultMap">
+    <include refid="select"/>
     where RESULT_ID = #{resultId,jdbcType=DECIMAL}
   </select>
   <select id="selectByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
-    <include refid="select" />
-    <include refid="where" />
+    <include refid="select"/>
+    <include refid="where"/>
   </select>
   <select id="selectLikeByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
-    <include refid="select" />
-    <include refid="whereLike" />
+    <include refid="select"/>
+    <include refid="whereLike"/>
   </select>
   <insert id="batchInsert" parameterType="java.util.List">
     insert into BMSSHIP_FEE
@@ -507,7 +653,10 @@
     UPDATE_TIME, INSERT_UPDATE_REMARK,
     DELETED, IMAGE, WAGON_NUMBER,
     MAKE_TIME, PORT_ID, PORT_NUM,
-    SHIP_NUM)
+    SHIP_NUM, PREVIEW_FEE, PREVIEW_TONNAGE,
+    FEE_MAKE, MAKE_TONNAGE, LOAD_WATER_TONNAGE,
+    EN_WATER_TONNAGE, TOTAL_RESULT_ID
+    )
     ( <foreach collection="list" item="item" separator="union all">
     select
     #{item.resultId,jdbcType=DECIMAL},
@@ -518,116 +667,144 @@
     #{item.updateTime,jdbcType=TIMESTAMP}, #{item.insertUpdateRemark,jdbcType=VARCHAR},
     #{item.deleted,jdbcType=DECIMAL}, #{item.image,jdbcType=VARCHAR}, #{item.wagonNumber,jdbcType=DECIMAL},
     #{item.makeTime,jdbcType=TIMESTAMP}, #{item.portId,jdbcType=DECIMAL}, #{item.portNum,jdbcType=DECIMAL},
-    #{item.shipNum,jdbcType=DECIMAL} from dual
+    #{item.shipNum,jdbcType=DECIMAL}, #{item.previewFee,jdbcType=DECIMAL}, #{item.previewTonnage,jdbcType=DECIMAL},
+    #{item.feeMake,jdbcType=DECIMAL}, #{item.makeTonnage,jdbcType=DECIMAL}, #{item.loadWaterTonnage,jdbcType=DECIMAL},
+    #{item.enWaterTonnage,jdbcType=DECIMAL}, #{item.totalResultId,jdbcType=DECIMAL}
+    from dual
   </foreach> )
   </insert>
   <update id="batchUpdate" parameterType="java.util.List">
     update BMSSHIP_FEE
     set
     RESULT_ID=
-    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.resultId,jdbcType=DECIMAL}
     </foreach>
     ,FEE=
-    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.fee,jdbcType=DECIMAL}
     </foreach>
     ,FEE_TYPE=
-    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.feeType,jdbcType=DECIMAL}
     </foreach>
     ,PURCHASE_ORDER_ID=
-    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.purchaseOrderId,jdbcType=DECIMAL}
     </foreach>
     ,BATCH_ID=
-    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.batchId,jdbcType=DECIMAL}
     </foreach>
     ,REAL_TONNAGE=
-    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.realTonnage,jdbcType=DECIMAL}
     </foreach>
     ,UNIT_PRICE=
-    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.unitPrice,jdbcType=DECIMAL}
     </foreach>
     ,UNIT_PRICE_ID=
-    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.unitPriceId,jdbcType=DECIMAL}
     </foreach>
     ,RESULT_REMARKS=
-    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.resultRemarks,jdbcType=VARCHAR}
     </foreach>
     ,INSERT_USERNAME=
-    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.insertUsername,jdbcType=VARCHAR}
     </foreach>
     ,INSERT_TIME=
-    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.insertTime,jdbcType=TIMESTAMP}
     </foreach>
     ,UPDATE_USERNAME=
-    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.updateUsername,jdbcType=VARCHAR}
     </foreach>
     ,UPDATE_TIME=
-    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.updateTime,jdbcType=TIMESTAMP}
     </foreach>
     ,INSERT_UPDATE_REMARK=
-    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.insertUpdateRemark,jdbcType=VARCHAR}
     </foreach>
     ,DELETED=
-    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.deleted,jdbcType=DECIMAL}
     </foreach>
     ,IMAGE=
-    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.image,jdbcType=VARCHAR}
     </foreach>
     ,WAGON_NUMBER=
-    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.wagonNumber,jdbcType=DECIMAL}
     </foreach>
     ,MAKE_TIME=
-    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.makeTime,jdbcType=TIMESTAMP}
     </foreach>
     ,PORT_ID=
-    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.portId,jdbcType=DECIMAL}
     </foreach>
     ,PORT_NUM=
-    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.portNum,jdbcType=DECIMAL}
     </foreach>
     ,SHIP_NUM=
-    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.shipNum,jdbcType=DECIMAL}
     </foreach>
+    ,PREVIEW_FEE=
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.previewFee,jdbcType=DECIMAL}
+    </foreach>
+    ,PREVIEW_TONNAGE=
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.previewTonnage,jdbcType=DECIMAL}
+    </foreach>
+    ,FEE_MAKE=
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.feeMake,jdbcType=DECIMAL}
+    </foreach>
+    ,MAKE_TONNAGE=
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.makeTonnage,jdbcType=DECIMAL}
+    </foreach>
+    ,LOAD_WATER_TONNAGE=
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.loadWaterTonnage,jdbcType=DECIMAL}
+    </foreach>
+    ,EN_WATER_TONNAGE=
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.enWaterTonnage,jdbcType=DECIMAL}
+    </foreach>
+    ,TOTAL_RESULT_ID=
+    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.totalResultId,jdbcType=DECIMAL}
+    </foreach>
     where RESULT_ID in
-    <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
+    <foreach collection="list" index="index" item="item" separator="," open="(" close=")">
       #{item.resultId,jdbcType=DECIMAL}
     </foreach>
   </update>
   <delete id="batchDelete" parameterType="java.util.List">
     delete from BMSSHIP_FEE
     where RESULT_ID in
-    <foreach close=")" collection="list" item="id" open="(" separator=",">
+    <foreach collection="list" item="id" open="(" close=")" separator=",">
       #{id}
     </foreach>
   </delete>
   <!-- 友情提示!!!-->
   <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
-  <!--  根据userId查找用户名-->
   <select id="getPersonnelNameByUserId" resultType="java.lang.String" parameterType="java.lang.String">
     select RP.PERSONNEL_NAME "personnelName"
     from RMS_PERSONNEL RP
     WHERE  RP.PERSONNEL_SSO_ID =#{userId}
   </select>
-
-
 </mapper>