liyg 3 years ago
parent
commit
7eb045784b

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

@@ -19,6 +19,7 @@ import org.springframework.web.multipart.MultipartFile;
 import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -364,4 +365,83 @@ public class BmsportHandlingFeeController extends BaseRESTfulController {
         return success(data);
     }
 
+    /**
+     * 查询三程船水运费及其账单
+     * @param
+     * @return
+     */
+    @PostMapping("/getShipFeeStatement")
+    RESTfulResult getShipFeeStatement(@RequestBody(required = false)Map<String, Object> map) throws Exception {
+        String startTime=map.get("startTime")+"";
+        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);
+    }
+
+    /**
+     * 新增三程船水运费及其账单
+     * @param
+     * @return
+     */
+    @PostMapping("/addShipFeeStatement")
+    RESTfulResult addShipFeeStatement(@RequestBody(required = false)Map<String, Object> map) throws Exception {
+        if(map!=null &&  map.get("list")!=null){
+            List<Map<String,Object>> list= (List<Map<String, Object>>) map.get("list");
+            if(list.get(0).get("statementId")==null){
+                return success(bmsportHandlingFeeService.addShipFeeStatement(map));
+            }else{
+                return success(bmsportHandlingFeeService.editShipFeeStatement(map));
+            }
+
+        }else{
+            return failed("空对象!");
+        }
+    }
+
+    /**
+     * 新增三程船水运费及其账单
+     * @param
+     * @return
+     */
+    @PostMapping("/editShipFeeStatement")
+    RESTfulResult editShipFeeStatement(@RequestBody(required = false)Map<String, Object> map) throws Exception {
+        return success(bmsportHandlingFeeService.editShipFeeStatement(map));
+    }
 }

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

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

+ 47 - 17
src/main/java/com/steerinfo/dil/model/BmsshipFee.java

@@ -9,49 +9,49 @@ import java.util.Date;
 @ApiModel(value="船运结算费用表")
 public class BmsshipFee implements IBasePO<BigDecimal> {
     /**
-     * 主键(RESULT_ID,DECIMAL,38)
+     * 主键(RESULT_ID,DECIMAL,0)
      */
     @ApiModelProperty(value="主键",required=true)
     private BigDecimal resultId;
 
     /**
-     * 费用(FEE,DECIMAL,38)
+     * 费用(FEE,DECIMAL,0)
      */
     @ApiModelProperty(value="费用",required=false)
     private BigDecimal fee;
 
     /**
-     * 费用类型(1:二程船水运费;2:二程船装卸费;3:三程船水运费;4:三程船装卸费;5:水分质检费用;6:进口矿火运费;7:进口矿装卸费)(FEE_TYPE,DECIMAL,38)
+     * 费用类型(1:二程船水运费;2:二程船装卸费;3:三程船水运费;4:三程船装卸费;5:水分质检费用;6:进口矿火运费;7:进口矿装卸费)(FEE_TYPE,DECIMAL,0)
      */
     @ApiModelProperty(value="费用类型(1:二程船水运费;2:二程船装卸费;3:三程船水运费;4:三程船装卸费;5:水分质检费用;6:进口矿火运费;7:进口矿装卸费)",required=false)
     private BigDecimal feeType;
 
     /**
-     * 采购订单id(PURCHASE_ORDER_ID,DECIMAL,38)
+     * 采购订单id(PURCHASE_ORDER_ID,DECIMAL,0)
      */
     @ApiModelProperty(value="采购订单id",required=false)
     private BigDecimal purchaseOrderId;
 
     /**
-     * 批次id(BATCH_ID,DECIMAL,38)
+     * 批次id(BATCH_ID,DECIMAL,0)
      */
     @ApiModelProperty(value="批次id",required=false)
     private BigDecimal batchId;
 
     /**
-     * 实装吨位(REAL_TONNAGE,DECIMAL,38)
+     * 实装吨位(REAL_TONNAGE,DECIMAL,0)
      */
     @ApiModelProperty(value="实装吨位",required=false)
     private BigDecimal realTonnage;
 
     /**
-     * 单价(UNIT_PRICE,DECIMAL,38)
+     * 单价(UNIT_PRICE,DECIMAL,0)
      */
     @ApiModelProperty(value="单价",required=false)
     private BigDecimal unitPrice;
 
     /**
-     * 单价id(UNIT_PRICE_ID,DECIMAL,38)
+     * 单价id(UNIT_PRICE_ID,DECIMAL,0)
      */
     @ApiModelProperty(value="单价id",required=false)
     private BigDecimal unitPriceId;
@@ -93,7 +93,7 @@ public class BmsshipFee implements IBasePO<BigDecimal> {
     private String insertUpdateRemark;
 
     /**
-     * 逻辑删除(DELETED,DECIMAL,38)
+     * 逻辑删除(DELETED,DECIMAL,0)
      */
     @ApiModelProperty(value="逻辑删除",required=false)
     private BigDecimal deleted;
@@ -105,7 +105,7 @@ public class BmsshipFee implements IBasePO<BigDecimal> {
     private String image;
 
     /**
-     * 车皮数量(WAGON_NUMBER,DECIMAL,38)
+     * 车皮数量(WAGON_NUMBER,DECIMAL,0)
      */
     @ApiModelProperty(value="车皮数量",required=false)
     private BigDecimal wagonNumber;
@@ -117,7 +117,7 @@ public class BmsshipFee implements IBasePO<BigDecimal> {
     private Date makeTime;
 
     /**
-     * 港口id(PORT_ID,DECIMAL,38)
+     * 港口id(PORT_ID,DECIMAL,0)
      */
     @ApiModelProperty(value="港口id",required=false)
     private BigDecimal portId;
@@ -135,37 +135,37 @@ public class BmsshipFee implements IBasePO<BigDecimal> {
     private BigDecimal shipNum;
 
     /**
-     * 预开金额(PREVIEW_FEE,DECIMAL,38)
+     * 预开金额(PREVIEW_FEE,DECIMAL,0)
      */
     @ApiModelProperty(value="预开金额",required=false)
     private BigDecimal previewFee;
 
     /**
-     * 预开湿吨(PREVIEW_TONNAGE,DECIMAL,38)
+     * 预开湿吨(PREVIEW_TONNAGE,DECIMAL,0)
      */
     @ApiModelProperty(value="预开湿吨",required=false)
     private BigDecimal previewTonnage;
 
     /**
-     * 开票金额(FEE_MAKE,DECIMAL,38)
+     * 开票金额(FEE_MAKE,DECIMAL,0)
      */
     @ApiModelProperty(value="开票金额",required=false)
     private BigDecimal feeMake;
 
     /**
-     * 开票湿吨(MAKE_TONNAGE,DECIMAL,38)
+     * 开票湿吨(MAKE_TONNAGE,DECIMAL,0)
      */
     @ApiModelProperty(value="开票湿吨",required=false)
     private BigDecimal makeTonnage;
 
     /**
-     * 装船水分吨位(LOAD_WATER_TONNAGE,DECIMAL,38)
+     * 装船水分吨位(LOAD_WATER_TONNAGE,DECIMAL,0)
      */
     @ApiModelProperty(value="装船水分吨位",required=false)
     private BigDecimal loadWaterTonnage;
 
     /**
-     * 进厂水分吨位(EN_WATER_TONNAGE,DECIMAL,38)
+     * 进厂水分吨位(EN_WATER_TONNAGE,DECIMAL,0)
      */
     @ApiModelProperty(value="进厂水分吨位",required=false)
     private BigDecimal enWaterTonnage;
@@ -176,6 +176,18 @@ public class BmsshipFee implements IBasePO<BigDecimal> {
     @ApiModelProperty(value="总实绩id",required=false)
     private BigDecimal totalResultId;
 
+    /**
+     * 账单ID(STATEMENT_ID,DECIMAL,0)
+     */
+    @ApiModelProperty(value="账单ID",required=false)
+    private BigDecimal statementId;
+
+    /**
+     * 装船比例(保留4位小数)(LOADING_PROPORTION,DECIMAL,0)
+     */
+    @ApiModelProperty(value="装船比例(保留4位小数)",required=false)
+    private BigDecimal loadingProportion;
+
     private static final long serialVersionUID = 1L;
 
     @Override
@@ -412,6 +424,22 @@ public class BmsshipFee implements IBasePO<BigDecimal> {
         this.totalResultId = totalResultId;
     }
 
+    public BigDecimal getStatementId() {
+        return statementId;
+    }
+
+    public void setStatementId(BigDecimal statementId) {
+        this.statementId = statementId;
+    }
+
+    public BigDecimal getLoadingProportion() {
+        return loadingProportion;
+    }
+
+    public void setLoadingProportion(BigDecimal loadingProportion) {
+        this.loadingProportion = loadingProportion;
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -446,6 +474,8 @@ public class BmsshipFee implements IBasePO<BigDecimal> {
         sb.append(", loadWaterTonnage=").append(loadWaterTonnage);
         sb.append(", enWaterTonnage=").append(enWaterTonnage);
         sb.append(", totalResultId=").append(totalResultId);
+        sb.append(", statementId=").append(statementId);
+        sb.append(", loadingProportion=").append(loadingProportion);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();

+ 50 - 5
src/main/java/com/steerinfo/dil/model/BmsshipStatement.java

@@ -9,19 +9,19 @@ import java.util.Date;
 @ApiModel(value="船运计费账单")
 public class BmsshipStatement implements IBasePO<BigDecimal> {
     /**
-     * 主键ID(STATEMENT_ID,DECIMAL,38)
+     * 主键ID(STATEMENT_ID,DECIMAL,0)
      */
     @ApiModelProperty(value="主键ID",required=true)
     private BigDecimal statementId;
 
     /**
-     * 账单编号(STATEMENT_NO,VARCHAR,20)
+     * 账单编号(STATEMENT_NO,VARCHAR,200)
      */
     @ApiModelProperty(value="账单编号",required=false)
     private String statementNo;
 
     /**
-     * 支付单位ID(STATEMENT_SHIPPER_ID,DECIMAL,38)
+     * 支付单位ID(STATEMENT_SHIPPER_ID,DECIMAL,0)
      */
     @ApiModelProperty(value="支付单位ID",required=false)
     private BigDecimal statementShipperId;
@@ -69,11 +69,29 @@ public class BmsshipStatement implements IBasePO<BigDecimal> {
     private String insertUpdateRemark;
 
     /**
-     * 费用类型:水运费,途损费,水分检测费(STATEMENT_TYPE,VARCHAR,20)
+     * 费用类型(1:二程船水运费;2:二程船装卸费;3:三程船水运费;4:三程船装卸费;5:水分质检费用;6:进口矿火运费;7:进口矿装卸费)(STATEMENT_TYPE,VARCHAR,20)
      */
-    @ApiModelProperty(value="费用类型:水运费,途损费,水分检测费",required=false)
+    @ApiModelProperty(value="费用类型(1:二程船水运费;2:二程船装卸费;3:三程船水运费;4:三程船装卸费;5:水分质检费用;6:进口矿火运费;7:进口矿装卸费)",required=false)
     private String statementType;
 
+    /**
+     * 批次ID(BATCH_ID,DECIMAL,0)
+     */
+    @ApiModelProperty(value="批次ID",required=false)
+    private BigDecimal batchId;
+
+    /**
+     * 金蝶核准金额(EAS_AMOUNT,DECIMAL,0)
+     */
+    @ApiModelProperty(value="金蝶核准金额",required=false)
+    private BigDecimal easAmount;
+
+    /**
+     * 到厂湿吨(TOTAL_WET_TON,DECIMAL,0)
+     */
+    @ApiModelProperty(value="到厂湿吨",required=false)
+    private BigDecimal totalWetTon;
+
     private static final long serialVersionUID = 1L;
 
     @Override
@@ -174,6 +192,30 @@ public class BmsshipStatement implements IBasePO<BigDecimal> {
         this.statementType = statementType == null ? null : statementType.trim();
     }
 
+    public BigDecimal getBatchId() {
+        return batchId;
+    }
+
+    public void setBatchId(BigDecimal batchId) {
+        this.batchId = batchId;
+    }
+
+    public BigDecimal getEasAmount() {
+        return easAmount;
+    }
+
+    public void setEasAmount(BigDecimal easAmount) {
+        this.easAmount = easAmount;
+    }
+
+    public BigDecimal getTotalWetTon() {
+        return totalWetTon;
+    }
+
+    public void setTotalWetTon(BigDecimal totalWetTon) {
+        this.totalWetTon = totalWetTon;
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -191,6 +233,9 @@ public class BmsshipStatement implements IBasePO<BigDecimal> {
         sb.append(", updateTime=").append(updateTime);
         sb.append(", insertUpdateRemark=").append(insertUpdateRemark);
         sb.append(", statementType=").append(statementType);
+        sb.append(", batchId=").append(batchId);
+        sb.append(", easAmount=").append(easAmount);
+        sb.append(", totalWetTon=").append(totalWetTon);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();

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

@@ -88,7 +88,13 @@ public interface IBmsportHandlingFeeService {
 
     List<Map<String, Object>> findLoadByBatch(Map<String, Object> map);
 
+    List<Map<String,Object>> getShipFeeStatement(Map<String, Object> map);
+
     Map<BigDecimal, BigDecimal> findTotalTonnage();
 
     BigDecimal getEnFactoryTonnage(Map<String,Object> map);
+
+    int addShipFeeStatement(Map<String,Object> map) throws Exception;
+
+    int editShipFeeStatement(Map<String,Object> map) throws Exception;
 }

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

@@ -2,8 +2,10 @@ package com.steerinfo.dil.service.impl;
 
 import com.steerinfo.dil.mapper.BmsportHandlingFeeMapper;
 import com.steerinfo.dil.mapper.BmsshipFeeMapper;
+import com.steerinfo.dil.mapper.BmsshipStatementMapper;
 import com.steerinfo.dil.model.BmsportHandlingFee;
 import com.steerinfo.dil.model.BmsshipFee;
+import com.steerinfo.dil.model.BmsshipStatement;
 import com.steerinfo.dil.service.IBmsportHandlingFeeService;
 import com.steerinfo.dil.util.DataChange;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -33,6 +35,8 @@ public class BmsportHandlingFeeServiceImpl implements IBmsportHandlingFeeService
     BmstruckFormulaServiceImpl bmstruckFormulaService;
     @Autowired
     BmsshipFeeMapper bmsshipFeeMapper;
+    @Autowired
+    BmsshipStatementMapper bmsshipStatementMapper;
 
     /**
      * 修改港口装卸费结算
@@ -162,7 +166,7 @@ public class BmsportHandlingFeeServiceImpl implements IBmsportHandlingFeeService
         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 makeFee=DataChange.dataToBigDecimal(map.get("feeMake"));
         BigDecimal totalResultId=DataChange.dataToBigDecimal(map.get("totalResultId"));
         if(map.get("makeTime")!=null) {
              makeTime = (long) map.get("makeTime");
@@ -331,6 +335,177 @@ public class BmsportHandlingFeeServiceImpl implements IBmsportHandlingFeeService
         return bmsportHandlingFeeMapper.findLoadByBatch(map);
     }
 
+    @Override
+    public List<Map<String, Object>> getShipFeeStatement(Map<String,Object> map) {
+        return bmsportHandlingFeeMapper.getShipFeeStatement(map);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int addShipFeeStatement(Map<String, Object> map) throws Exception {
+        System.out.println("新增:"+map);
+        List<Map<String,Object>> list= (List<Map<String, Object>>) map.get("list");
+        if(list==null || list.size()<=0)
+            throw new Exception("结算列表为空!");
+        //获取userId
+        String userId = (String) map.get("userID");
+        String personnelName=userId;
+        //根据userId查找姓名
+        if(userId!=null)
+            personnelName = bmsshipFeeMapper.getPersonnelNameByUserId(userId);
+        //生成账单
+        BmsshipStatement bmsshipStatement=new BmsshipStatement();
+        BigDecimal stateMentId = bmsshipStatementMapper.selectMaxId();
+        bmsshipStatement.setStatementId(stateMentId);
+        bmsshipStatement.setStatementType(map.get("statementType")+"");
+        bmsshipStatement.setBatchId(DataChange.dataToBigDecimal(list.get(0).get("batchId")));
+        bmsshipStatement.setStatementTotalAmount(DataChange.dataToBigDecimal(map.get("stateMentTotalAmount")));
+        bmsshipStatement.setTotalWetTon(DataChange.dataToBigDecimal(map.get("totalEnTonnage")));
+        bmsshipStatement.setStatementNo("BMSSF"+new Date().getTime());
+        bmsshipStatement.setInsertTime(new Date());
+        bmsshipStatement.setInsertUsername(personnelName);
+        for(Map<String,Object> temp : list) {
+            //生成费用详单
+            BmsshipFee bmsshipFee =new BmsshipFee();
+            if(temp.get("feeId")==null || DataChange.dataToBigDecimal(temp.get("feeId")).intValue()<=0){
+                //新增
+                bmsshipFee.setStatementId(stateMentId);
+                BigDecimal unitPrice = DataChange.dataToBigDecimal(temp.get("unitPrice"));
+                BigDecimal tonnage =DataChange.dataToBigDecimal(temp.get("realTonnage"));
+                BigDecimal batchId =DataChange.dataToBigDecimal(temp.get("batchId"));
+                BigDecimal purchaseOrderId =DataChange.dataToBigDecimal(temp.get("purchaseOrderId"));
+                BigDecimal portId=DataChange.dataToBigDecimal(temp.get("portId"));
+                BigDecimal previewFee=DataChange.dataToBigDecimal(temp.get("previewFee"));
+                BigDecimal previewTonnage=DataChange.dataToBigDecimal(temp.get("previewTonnage"));
+                BigDecimal loadWater=DataChange.dataToBigDecimal(temp.get("loadWater"));
+                BigDecimal enFacotoryWater=DataChange.dataToBigDecimal(temp.get("enFacotoryWater"));
+                BigDecimal makeTonnage=DataChange.dataToBigDecimal(temp.get("makeTonnage"));
+                BigDecimal makeFee=DataChange.dataToBigDecimal(temp.get("feeMake"));
+                BigDecimal totalResultId=DataChange.dataToBigDecimal(temp.get("totalResultId"));
+                //获取主键id
+                bmsshipFee.setResultId(bmsshipFeeMapper.MaxId());
+                bmsshipFee.setStatementId(stateMentId);
+                //bmsshipFee.setFeeType(DataChange.dataToBigDecimal(map.get("feeType")));
+                bmsshipFee.setFeeType(new BigDecimal(3));//写死为三程船水运费
+                bmsshipFee.setRealTonnage(tonnage);
+                bmsshipFee.setPreviewTonnage(previewTonnage);
+                bmsshipFee.setPreviewFee(previewFee);
+                bmsshipFee.setMakeTonnage(makeTonnage);
+                bmsshipFee.setFeeMake(makeFee);
+                bmsshipFee.setLoadWaterTonnage(loadWater);
+                bmsshipFee.setEnWaterTonnage(enFacotoryWater);
+                bmsshipFee.setPortId(portId);
+                bmsshipFee.setTotalResultId(totalResultId);
+                bmsshipFee.setImage((String) map.get("image"));
+                bmsshipFee.setInsertTime(new Date());
+                bmsshipFee.setDeleted(new BigDecimal(0));
+                if (personnelName!=null) {
+                    bmsshipFee.setInsertUsername(personnelName);
+                }else {
+                    bmsshipFee.setInsertUsername(userId);
+                }
+                bmsshipFee.setBatchId(batchId);
+                bmsshipFee.setPurchaseOrderId(purchaseOrderId);
+                bmsshipFee.setUnitPrice(unitPrice);
+                bmsshipFee.setUnitPriceId(DataChange.dataToBigDecimal(temp.get("unitPriceId")));
+                bmsshipFee.setFee(DataChange.dataToBigDecimal(temp.get("fee")));
+                bmsshipFee.setInsertUpdateRemark((String) temp.get("resultRemarks"));
+                bmsshipFee.setLoadingProportion(DataChange.dataToBigDecimal(temp.get("loadingProportion")));
+                bmsshipFeeMapper.insertSelective(bmsshipFee);
+            }else{
+                //更新
+                bmsshipFee.setResultId(DataChange.dataToBigDecimal(map.get("feeId")));
+                bmsshipFee.setStatementId(stateMentId);
+                BigDecimal unitPrice = DataChange.dataToBigDecimal(temp.get("unitPrice"));
+                BigDecimal tonnage =DataChange.dataToBigDecimal(temp.get("realTonnage"));
+                BigDecimal previewFee=DataChange.dataToBigDecimal(temp.get("previewFee"));
+                BigDecimal previewTonnage=DataChange.dataToBigDecimal(temp.get("previewTonnage"));
+                BigDecimal loadWater=DataChange.dataToBigDecimal(temp.get("loadWater"));
+                BigDecimal enFacotoryWater=DataChange.dataToBigDecimal(temp.get("enFacotoryWater"));
+                BigDecimal makeTonnage=DataChange.dataToBigDecimal(temp.get("makeTonnage"));
+                BigDecimal makeFee=DataChange.dataToBigDecimal(temp.get("makeTonnage"));
+                bmsshipFee.setRealTonnage(tonnage);
+                bmsshipFee.setPreviewTonnage(previewTonnage);
+                bmsshipFee.setPreviewFee(previewFee);
+                bmsshipFee.setMakeTonnage(makeTonnage);
+                bmsshipFee.setFeeMake(makeFee);
+                bmsshipFee.setLoadWaterTonnage(loadWater);
+                bmsshipFee.setEnWaterTonnage(enFacotoryWater);
+                bmsshipFee.setImage((String) map.get("image"));
+                bmsshipFee.setInsertTime(new Date());
+                bmsshipFee.setUnitPrice(unitPrice);
+                bmsshipFee.setUnitPriceId(DataChange.dataToBigDecimal(map.get("unitPriceId")));
+                bmsshipFee.setFee(DataChange.dataToBigDecimal(map.get("fee")));
+                bmsshipFee.setInsertUpdateRemark((String) map.get("resultRemarks"));
+                bmsshipFee.setLoadingProportion(DataChange.dataToBigDecimal(temp.get("loadingProportion")));
+                if (personnelName!=null) {
+                    bmsshipFee.setInsertUsername(personnelName);
+                }else {
+                    bmsshipFee.setInsertUsername(userId);
+                }
+                bmsshipFeeMapper.updateByPrimaryKeySelective(bmsshipFee);
+            }
+        }
+        //新增
+        return bmsshipStatementMapper.insertSelective(bmsshipStatement);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int editShipFeeStatement(Map<String, Object> map) throws Exception {
+        System.out.println("修改:"+map);
+        List<Map<String,Object>> list= (List<Map<String, Object>>) map.get("list");
+        if(list==null || list.size()<=0)
+            throw new Exception("结算列表为空!");
+        //获取userId
+        String userId = (String) map.get("userID");
+        //根据userId查找姓名
+        String personnelName = bmsshipFeeMapper.getPersonnelNameByUserId(userId);
+        //更新账单
+        BmsshipStatement bmsshipStatement=new BmsshipStatement();
+        BigDecimal stateMentId = DataChange.dataToBigDecimal(list.get(0).get("statementId"));
+        bmsshipStatement.setStatementId(stateMentId);
+        bmsshipStatement.setStatementTotalAmount(DataChange.dataToBigDecimal(map.get("stateMentTotalAmount")));
+        bmsshipStatement.setTotalWetTon(DataChange.dataToBigDecimal(map.get("totalEnTonnage")));
+        bmsshipStatement.setUpdateTime(new Date());
+        bmsshipStatement.setUpdateUsername(personnelName);
+        for(Map<String,Object> temp : list) {
+            //更新费用详单
+            BmsshipFee bmsshipFee =new BmsshipFee();
+            bmsshipFee.setResultId(DataChange.dataToBigDecimal(map.get("feeId")));
+            BigDecimal unitPrice = DataChange.dataToBigDecimal(temp.get("unitPrice"));
+            BigDecimal tonnage =DataChange.dataToBigDecimal(temp.get("realTonnage"));
+            BigDecimal previewFee=DataChange.dataToBigDecimal(temp.get("previewFee"));
+            BigDecimal previewTonnage=DataChange.dataToBigDecimal(temp.get("previewTonnage"));
+            BigDecimal loadWater=DataChange.dataToBigDecimal(temp.get("loadWater"));
+            BigDecimal enFacotoryWater=DataChange.dataToBigDecimal(temp.get("enFacotoryWater"));
+            BigDecimal makeTonnage=DataChange.dataToBigDecimal(temp.get("makeTonnage"));
+            BigDecimal makeFee=DataChange.dataToBigDecimal(temp.get("makeTonnage"));
+            bmsshipFee.setRealTonnage(tonnage);
+            bmsshipFee.setPreviewTonnage(previewTonnage);
+            bmsshipFee.setPreviewFee(previewFee);
+            bmsshipFee.setMakeTonnage(makeTonnage);
+            bmsshipFee.setFeeMake(makeFee);
+            bmsshipFee.setLoadWaterTonnage(loadWater);
+            bmsshipFee.setEnWaterTonnage(enFacotoryWater);
+            bmsshipFee.setImage((String) map.get("image"));
+            bmsshipFee.setInsertTime(new Date());
+            bmsshipFee.setUnitPrice(unitPrice);
+            bmsshipFee.setUnitPriceId(DataChange.dataToBigDecimal(map.get("unitPriceId")));
+            bmsshipFee.setFee(DataChange.dataToBigDecimal(map.get("fee")));
+            bmsshipFee.setInsertUpdateRemark((String) map.get("resultRemarks"));
+            if (personnelName!=null) {
+                bmsshipFee.setInsertUsername(personnelName);
+            }else {
+                bmsshipFee.setInsertUsername(userId);
+            }
+            bmsshipFeeMapper.updateByPrimaryKeySelective(bmsshipFee);
+        }
+        //修改
+        return bmsshipStatementMapper.updateByPrimaryKeySelective(bmsshipStatement);
+    }
+
+
     @Override
     public Map<BigDecimal, BigDecimal> findTotalTonnage() {
         List<Map<String, Object>> list= bmsportHandlingFeeMapper.findTotalTonnage();

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

@@ -682,6 +682,87 @@
         </if>
     </select>
 
+    <select id="getShipFeeStatement" resultType="java.util.Map">
+        --查询计费详单及其计费账单信息
+        SELECT 	db.BATCH_ID "batchId",--批次id
+        apo.PURCHASE_ORDER_ID "purchaseOrderId",--采购订单id
+        RM.MATERIAL_NAME "materialName",--物资名
+        RC.CAPACITY_NUMBER "capacityNumber",--江船船名
+        db.RESULT_FOREIGN_SHIP_NAME "resultForeignShipName",--外轮船名
+        RCR.PORT_NAME "carrierName",--承运单位
+        tlsr.RESULT_LOAD_SHIP_DATE  "resultLoadShipDate",--装船日期
+        tlsr.RESULT_OUT_PORT_TIME  "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",--水运费
+        BF.RESULT_ID "feeId",--水运费Id
+        BF.PREVIEW_TONNAGE "previewTonnage",--预开湿吨
+        BF.PREVIEW_FEE "previewFee",--预开金额
+        BF.FEE_MAKE "feeMake",--开票金额
+        BF.MAKE_TONNAGE "makeTonnage",--开票湿吨
+        BF.MAKE_TIME "makeTime",--开票日期
+        ttr.RESULT_ID "totalResultId",--装船总实绩id
+        BS.STATEMENT_ID "statementId",--账单id
+        BS.TOTAL_WET_TON "totalEnTonnage",--到场湿吨
+        BS.STATEMENT_TOTAL_AMOUNT "stateMentTotalAmount",--账单总金额
+        BS.STATEMENT_SHIPPER_ID "stateMentShipperId",--结算单位id
+        RS.SHIPPER_NAME "shipperName"--结算单位名
+        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 DIL_BATCH db
+        ON db.BATCH_ID = dbi.BATCH_ID
+        LEFT JOIN RMS_MATERIAL RM
+        ON RM.MATERIAL_ID=DB.MATERIAL_ID
+        LEFT JOIN BMSSHIP_FEE BF
+        ON BF.TOTAL_RESULT_ID=TTR.RESULT_ID
+        LEFT JOIN BMSSHIP_CONTRACT_PRICE bcr
+        ON TWQR.UNIT_PRICE_ID=BCR.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 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 RMS_CAPACITY RC
+        ON RC.CAPACITY_ID=OIC.CAPACITY_ID
+        LEFT JOIN BMSSHIP_STATEMENT BS
+        ON BF.STATEMENT_ID=BS.STATEMENT_ID
+        LEFT JOIN RMS_SHIPPER RS
+        ON RS.SHIPPER_ID=BS.STATEMENT_ID
+        LEFT JOIN AMSSHIP_DELIVERY_ATTORNEY ada
+        on ada.BATCH_ID=dbi.BATCH_INFACOTRY_ID
+        LEFT JOIN RMS_PORT RCR
+        on ada.CARRIER_ID=RCR.PORT_ID
+        WHERE tlsr.DELETED=0
+        <if test="con!=null and con!=''.toString()">
+         and (
+            RM.MATERIAL_NAME like concat('%',concat(#{con},'%'))
+             or  RC.CAPACITY_NUMBER like concat('%',concat(#{con},'%'))
+             or db.RESULT_FOREIGN_SHIP_NAME like concat('%',concat(#{con},'%'))
+             or rp.PORT_NAME like concat('%',concat(#{con},'%'))
+            )
+        </if>
+        <if test="startDate != null">
+            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 tlsr.RESULT_OUT_PORT_TIME DESC,db.BATCH_ID,BS.STATEMENT_ID DESC
+    </select>
+
     <select id="findTotalTonnage" resultType="java.util.Map">
         --查询批次id及其总实装吨位
         select DB.BATCH_ID "batchId",
@@ -692,6 +773,12 @@
                            ON TLSR.BATCH_ID=DBI.BATCH_INFACOTRY_ID
                  LEFT JOIN DIL_BATCH DB
                            ON DB.BATCH_ID=DBI.BATCH_ID
+        <where>
+            <if test="startDate != null">
+                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>
+        </where>
         GROUP BY DB.BATCH_ID,TLSR.DELETED
         HAVING TLSR.DELETED=0
     </select>

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

@@ -30,26 +30,29 @@
     <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" />
+    <result column="STATEMENT_ID" jdbcType="DECIMAL" property="statementId" />
+    <result column="LOADING_PROPORTION" jdbcType="DECIMAL" property="loadingProportion" />
   </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, PREVIEW_FEE, PREVIEW_TONNAGE, FEE_MAKE, MAKE_TONNAGE, LOAD_WATER_TONNAGE,
-    EN_WATER_TONNAGE, TOTAL_RESULT_ID
+    EN_WATER_TONNAGE, TOTAL_RESULT_ID, STATEMENT_ID, LOADING_PROPORTION
   </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.PREVIEW_FEE, t.PREVIEW_TONNAGE,
-    t.FEE_MAKE, t.MAKE_TONNAGE, t.LOAD_WATER_TONNAGE, t.EN_WATER_TONNAGE, t.TOTAL_RESULT_ID
+    t.FEE_MAKE, t.MAKE_TONNAGE, t.LOAD_WATER_TONNAGE, t.EN_WATER_TONNAGE, t.TOTAL_RESULT_ID,
+    t.STATEMENT_ID, t.LOADING_PROPORTION
   </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>
@@ -137,6 +140,12 @@
       <if test="totalResultId != null">
         and TOTAL_RESULT_ID = #{totalResultId}
       </if>
+      <if test="statementId != null">
+        and STATEMENT_ID = #{statementId}
+      </if>
+      <if test="loadingProportion != null">
+        and LOADING_PROPORTION = #{loadingProportion}
+      </if>
     </where>
   </sql>
   <sql id="whereLike">
@@ -225,6 +234,12 @@
       <if test="totalResultId != null">
         and TOTAL_RESULT_ID = #{totalResultId}
       </if>
+      <if test="statementId != null">
+        and STATEMENT_ID = #{statementId}
+      </if>
+      <if test="loadingProportion != null">
+        and LOADING_PROPORTION = #{loadingProportion}
+      </if>
     </where>
   </sql>
   <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
@@ -315,6 +330,12 @@
     <if test="totalResultId != null">
       or TOTAL_RESULT_ID = #{totalResultId}
     </if>
+    <if test="statementId != null">
+      or STATEMENT_ID = #{statementId}
+    </if>
+    <if test="loadingProportion != null">
+      or LOADING_PROPORTION = #{loadingProportion}
+    </if>
   </delete>
   <insert id="insert" parameterType="com.steerinfo.dil.model.BmsshipFee">
     insert into BMSSHIP_FEE (RESULT_ID, FEE, FEE_TYPE,
@@ -326,7 +347,8 @@
                              PORT_ID, PORT_NUM, SHIP_NUM,
                              PREVIEW_FEE, PREVIEW_TONNAGE, FEE_MAKE,
                              MAKE_TONNAGE, LOAD_WATER_TONNAGE, EN_WATER_TONNAGE,
-                             TOTAL_RESULT_ID)
+                             TOTAL_RESULT_ID, STATEMENT_ID, LOADING_PROPORTION
+    )
     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},
@@ -336,7 +358,8 @@
             #{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})
+            #{totalResultId,jdbcType=DECIMAL}, #{statementId,jdbcType=DECIMAL}, #{loadingProportion,jdbcType=DECIMAL}
+           )
   </insert>
   <insert id="insertSelective" parameterType="com.steerinfo.dil.model.BmsshipFee">
     insert into BMSSHIP_FEE
@@ -425,6 +448,12 @@
       <if test="totalResultId != null">
         TOTAL_RESULT_ID,
       </if>
+      <if test="statementId != null">
+        STATEMENT_ID,
+      </if>
+      <if test="loadingProportion != null">
+        LOADING_PROPORTION,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="resultId != null">
@@ -511,6 +540,12 @@
       <if test="totalResultId != null">
         #{totalResultId,jdbcType=DECIMAL},
       </if>
+      <if test="statementId != null">
+        #{statementId,jdbcType=DECIMAL},
+      </if>
+      <if test="loadingProportion != null">
+        #{loadingProportion,jdbcType=DECIMAL},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.BmsshipFee">
@@ -541,7 +576,9 @@
         MAKE_TONNAGE = #{makeTonnage,jdbcType=DECIMAL},
         LOAD_WATER_TONNAGE = #{loadWaterTonnage,jdbcType=DECIMAL},
         EN_WATER_TONNAGE = #{enWaterTonnage,jdbcType=DECIMAL},
-        TOTAL_RESULT_ID = #{totalResultId,jdbcType=DECIMAL}
+        TOTAL_RESULT_ID = #{totalResultId,jdbcType=DECIMAL},
+        STATEMENT_ID = #{statementId,jdbcType=DECIMAL},
+        LOADING_PROPORTION = #{loadingProportion,jdbcType=DECIMAL}
     where RESULT_ID = #{resultId,jdbcType=DECIMAL}
   </update>
   <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.BmsshipFee">
@@ -628,20 +665,26 @@
       <if test="totalResultId != null">
         TOTAL_RESULT_ID = #{totalResultId,jdbcType=DECIMAL},
       </if>
+      <if test="statementId != null">
+        STATEMENT_ID = #{statementId,jdbcType=DECIMAL},
+      </if>
+      <if test="loadingProportion != null">
+        LOADING_PROPORTION = #{loadingProportion,jdbcType=DECIMAL},
+      </if>
     </set>
     where RESULT_ID = #{resultId,jdbcType=DECIMAL}
   </update>
   <select id="selectByPrimaryKey" parameterType="java.math.BigDecimal" resultMap="BaseResultMap">
-    <include refid="select"/>
+    <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
@@ -655,7 +698,8 @@
     MAKE_TIME, PORT_ID, PORT_NUM,
     SHIP_NUM, PREVIEW_FEE, PREVIEW_TONNAGE,
     FEE_MAKE, MAKE_TONNAGE, LOAD_WATER_TONNAGE,
-    EN_WATER_TONNAGE, TOTAL_RESULT_ID
+    EN_WATER_TONNAGE, TOTAL_RESULT_ID,
+    STATEMENT_ID, LOADING_PROPORTION
     )
     ( <foreach collection="list" item="item" separator="union all">
     select
@@ -669,7 +713,8 @@
     #{item.makeTime,jdbcType=TIMESTAMP}, #{item.portId,jdbcType=DECIMAL}, #{item.portNum,jdbcType=DECIMAL},
     #{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}
+    #{item.enWaterTonnage,jdbcType=DECIMAL}, #{item.totalResultId,jdbcType=DECIMAL},
+    #{item.statementId,jdbcType=DECIMAL}, #{item.loadingProportion,jdbcType=DECIMAL}
     from dual
   </foreach> )
   </insert>
@@ -677,126 +722,134 @@
     update BMSSHIP_FEE
     set
     RESULT_ID=
-    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.resultId,jdbcType=DECIMAL}
     </foreach>
     ,FEE=
-    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.fee,jdbcType=DECIMAL}
     </foreach>
     ,FEE_TYPE=
-    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.feeType,jdbcType=DECIMAL}
     </foreach>
     ,PURCHASE_ORDER_ID=
-    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.purchaseOrderId,jdbcType=DECIMAL}
     </foreach>
     ,BATCH_ID=
-    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.batchId,jdbcType=DECIMAL}
     </foreach>
     ,REAL_TONNAGE=
-    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.realTonnage,jdbcType=DECIMAL}
     </foreach>
     ,UNIT_PRICE=
-    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.unitPrice,jdbcType=DECIMAL}
     </foreach>
     ,UNIT_PRICE_ID=
-    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.unitPriceId,jdbcType=DECIMAL}
     </foreach>
     ,RESULT_REMARKS=
-    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.resultRemarks,jdbcType=VARCHAR}
     </foreach>
     ,INSERT_USERNAME=
-    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.insertUsername,jdbcType=VARCHAR}
     </foreach>
     ,INSERT_TIME=
-    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.insertTime,jdbcType=TIMESTAMP}
     </foreach>
     ,UPDATE_USERNAME=
-    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.updateUsername,jdbcType=VARCHAR}
     </foreach>
     ,UPDATE_TIME=
-    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.updateTime,jdbcType=TIMESTAMP}
     </foreach>
     ,INSERT_UPDATE_REMARK=
-    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.insertUpdateRemark,jdbcType=VARCHAR}
     </foreach>
     ,DELETED=
-    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.deleted,jdbcType=DECIMAL}
     </foreach>
     ,IMAGE=
-    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.image,jdbcType=VARCHAR}
     </foreach>
     ,WAGON_NUMBER=
-    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.wagonNumber,jdbcType=DECIMAL}
     </foreach>
     ,MAKE_TIME=
-    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.makeTime,jdbcType=TIMESTAMP}
     </foreach>
     ,PORT_ID=
-    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.portId,jdbcType=DECIMAL}
     </foreach>
     ,PORT_NUM=
-    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.portNum,jdbcType=DECIMAL}
     </foreach>
     ,SHIP_NUM=
-    <foreach collection="list" item="item" index="index" separator=" " open="case RESULT_ID" close="end">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       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">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       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">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       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">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       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">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       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">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       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">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       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">
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
       when #{item.resultId,jdbcType=DECIMAL} then #{item.totalResultId,jdbcType=DECIMAL}
     </foreach>
+    ,STATEMENT_ID=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.statementId,jdbcType=DECIMAL}
+    </foreach>
+    ,LOADING_PROPORTION=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
+      when #{item.resultId,jdbcType=DECIMAL} then #{item.loadingProportion,jdbcType=DECIMAL}
+    </foreach>
     where RESULT_ID in
-    <foreach collection="list" index="index" item="item" separator="," open="(" close=")">
+    <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
       #{item.resultId,jdbcType=DECIMAL}
     </foreach>
   </update>
   <delete id="batchDelete" parameterType="java.util.List">
     delete from BMSSHIP_FEE
     where RESULT_ID in
-    <foreach collection="list" item="id" open="(" close=")" separator=",">
+    <foreach close=")" collection="list" item="id" open="(" separator=",">
       #{id}
     </foreach>
   </delete>

+ 132 - 63
src/main/resources/com/steerinfo/dil/mapper/BmsshipStatementMapper.xml

@@ -2,37 +2,36 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.steerinfo.dil.mapper.BmsshipStatementMapper">
     <resultMap id="BaseResultMap" type="com.steerinfo.dil.model.BmsshipStatement">
-        <id column="STATEMENT_ID" jdbcType="DECIMAL" property="statementId"/>
-        <result column="STATEMENT_NO" jdbcType="VARCHAR" property="statementNo"/>
-        <result column="STATEMENT_SHIPPER_ID" jdbcType="DECIMAL" property="statementShipperId"/>
-        <result column="STATEMENT_TOTAL_AMOUNT" jdbcType="DECIMAL" property="statementTotalAmount"/>
-        <result column="STATEMENT_DATE" jdbcType="TIMESTAMP" property="statementDate"/>
-        <result column="INSERT_USERNAME" jdbcType="VARCHAR" property="insertUsername"/>
-        <result column="INSERT_TIME" jdbcType="TIMESTAMP" property="insertTime"/>
-        <result column="UPDATE_USERNAME" jdbcType="VARCHAR" property="updateUsername"/>
-        <result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime"/>
-        <result column="INSERT_UPDATE_REMARK" jdbcType="VARCHAR" property="insertUpdateRemark"/>
-        <result column="STATEMENT_TYPE" jdbcType="VARCHAR" property="statementType"/>
+        <id column="STATEMENT_ID" jdbcType="DECIMAL" property="statementId" />
+        <result column="STATEMENT_NO" jdbcType="VARCHAR" property="statementNo" />
+        <result column="STATEMENT_SHIPPER_ID" jdbcType="DECIMAL" property="statementShipperId" />
+        <result column="STATEMENT_TOTAL_AMOUNT" jdbcType="DECIMAL" property="statementTotalAmount" />
+        <result column="STATEMENT_DATE" jdbcType="TIMESTAMP" property="statementDate" />
+        <result column="INSERT_USERNAME" jdbcType="VARCHAR" property="insertUsername" />
+        <result column="INSERT_TIME" jdbcType="TIMESTAMP" property="insertTime" />
+        <result column="UPDATE_USERNAME" jdbcType="VARCHAR" property="updateUsername" />
+        <result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime" />
+        <result column="INSERT_UPDATE_REMARK" jdbcType="VARCHAR" property="insertUpdateRemark" />
+        <result column="STATEMENT_TYPE" jdbcType="VARCHAR" property="statementType" />
+        <result column="BATCH_ID" jdbcType="DECIMAL" property="batchId" />
+        <result column="EAS_AMOUNT" jdbcType="DECIMAL" property="easAmount" />
+        <result column="TOTAL_WET_TON" jdbcType="DECIMAL" property="totalWetTon" />
     </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
+        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
     </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.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
     </sql>
     <sql id="select">
-        SELECT
-        <include refid="columns"/>
-        FROM BMSSHIP_STATEMENT
+        SELECT <include refid="columns" /> FROM BMSSHIP_STATEMENT
     </sql>
     <sql id="select_alias">
-        SELECT
-        <include refid="columns_alias"/>
-        FROM BMSSHIP_STATEMENT t
+        SELECT <include refid="columns_alias" /> FROM BMSSHIP_STATEMENT t
     </sql>
     <sql id="where">
         <where>
@@ -69,6 +68,15 @@
             <if test="statementType != null and statementType != ''">
                 and STATEMENT_TYPE = #{statementType}
             </if>
+            <if test="batchId != null">
+                and BATCH_ID = #{batchId}
+            </if>
+            <if test="easAmount != null">
+                and EAS_AMOUNT = #{easAmount}
+            </if>
+            <if test="totalWetTon != null">
+                and TOTAL_WET_TON = #{totalWetTon}
+            </if>
         </where>
     </sql>
     <sql id="whereLike">
@@ -106,11 +114,19 @@
             <if test="statementType != null and statementType != ''">
                 and STATEMENT_TYPE LIKE '%${statementType}%'
             </if>
+            <if test="batchId != null">
+                and BATCH_ID = #{batchId}
+            </if>
+            <if test="easAmount != null">
+                and EAS_AMOUNT = #{easAmount}
+            </if>
+            <if test="totalWetTon != null">
+                and TOTAL_WET_TON = #{totalWetTon}
+            </if>
         </where>
     </sql>
     <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
-        delete
-        from BMSSHIP_STATEMENT
+        delete from BMSSHIP_STATEMENT
         where STATEMENT_ID = #{statementId,jdbcType=DECIMAL}
     </delete>
     <delete id="deleteBySelectiveElement" parameterType="java.util.HashMap">
@@ -146,19 +162,29 @@
         <if test="statementType != null and statementType != ''">
             or STATEMENT_TYPE = #{statementType}
         </if>
+        <if test="batchId != null">
+            or BATCH_ID = #{batchId}
+        </if>
+        <if test="easAmount != null">
+            or EAS_AMOUNT = #{easAmount}
+        </if>
+        <if test="totalWetTon != null">
+            or TOTAL_WET_TON = #{totalWetTon}
+        </if>
     </delete>
     <insert id="insert" parameterType="com.steerinfo.dil.model.BmsshipStatement">
         insert into BMSSHIP_STATEMENT (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)
-        values (#{statementId,jdbcType=DECIMAL}, #{statementNo,jdbcType=VARCHAR},
-                #{statementShipperId,jdbcType=DECIMAL},
+                                       UPDATE_TIME, INSERT_UPDATE_REMARK, STATEMENT_TYPE,
+                                       BATCH_ID, EAS_AMOUNT, TOTAL_WET_TON
+        )
+        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})
+                #{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}
+               )
     </insert>
     <insert id="insertSelective" parameterType="com.steerinfo.dil.model.BmsshipStatement">
         insert into BMSSHIP_STATEMENT
@@ -196,6 +222,15 @@
             <if test="statementType != null">
                 STATEMENT_TYPE,
             </if>
+            <if test="batchId != null">
+                BATCH_ID,
+            </if>
+            <if test="easAmount != null">
+                EAS_AMOUNT,
+            </if>
+            <if test="totalWetTon != null">
+                TOTAL_WET_TON,
+            </if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="statementId != null">
@@ -231,20 +266,32 @@
             <if test="statementType != null">
                 #{statementType,jdbcType=VARCHAR},
             </if>
+            <if test="batchId != null">
+                #{batchId,jdbcType=DECIMAL},
+            </if>
+            <if test="easAmount != null">
+                #{easAmount,jdbcType=DECIMAL},
+            </if>
+            <if test="totalWetTon != null">
+                #{totalWetTon,jdbcType=DECIMAL},
+            </if>
         </trim>
     </insert>
     <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.BmsshipStatement">
         update BMSSHIP_STATEMENT
-        set STATEMENT_NO           = #{statementNo,jdbcType=VARCHAR},
-            STATEMENT_SHIPPER_ID   = #{statementShipperId,jdbcType=DECIMAL},
+        set STATEMENT_NO = #{statementNo,jdbcType=VARCHAR},
+            STATEMENT_SHIPPER_ID = #{statementShipperId,jdbcType=DECIMAL},
             STATEMENT_TOTAL_AMOUNT = #{statementTotalAmount,jdbcType=DECIMAL},
-            STATEMENT_DATE         = #{statementDate,jdbcType=TIMESTAMP},
-            INSERT_USERNAME        = #{insertUsername,jdbcType=VARCHAR},
-            INSERT_TIME            = #{insertTime,jdbcType=TIMESTAMP},
-            UPDATE_USERNAME        = #{updateUsername,jdbcType=VARCHAR},
-            UPDATE_TIME            = #{updateTime,jdbcType=TIMESTAMP},
-            INSERT_UPDATE_REMARK   = #{insertUpdateRemark,jdbcType=VARCHAR},
-            STATEMENT_TYPE         = #{statementType,jdbcType=VARCHAR}
+            STATEMENT_DATE = #{statementDate,jdbcType=TIMESTAMP},
+            INSERT_USERNAME = #{insertUsername,jdbcType=VARCHAR},
+            INSERT_TIME = #{insertTime,jdbcType=TIMESTAMP},
+            UPDATE_USERNAME = #{updateUsername,jdbcType=VARCHAR},
+            UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},
+            INSERT_UPDATE_REMARK = #{insertUpdateRemark,jdbcType=VARCHAR},
+            STATEMENT_TYPE = #{statementType,jdbcType=VARCHAR},
+            BATCH_ID = #{batchId,jdbcType=DECIMAL},
+            EAS_AMOUNT = #{easAmount,jdbcType=DECIMAL},
+            TOTAL_WET_TON = #{totalWetTon,jdbcType=DECIMAL}
         where STATEMENT_ID = #{statementId,jdbcType=DECIMAL}
     </update>
     <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.BmsshipStatement">
@@ -280,20 +327,29 @@
             <if test="statementType != null">
                 STATEMENT_TYPE = #{statementType,jdbcType=VARCHAR},
             </if>
+            <if test="batchId != null">
+                BATCH_ID = #{batchId,jdbcType=DECIMAL},
+            </if>
+            <if test="easAmount != null">
+                EAS_AMOUNT = #{easAmount,jdbcType=DECIMAL},
+            </if>
+            <if test="totalWetTon != null">
+                TOTAL_WET_TON = #{totalWetTon,jdbcType=DECIMAL},
+            </if>
         </set>
         where STATEMENT_ID = #{statementId,jdbcType=DECIMAL}
     </update>
     <select id="selectByPrimaryKey" parameterType="java.math.BigDecimal" resultMap="BaseResultMap">
-        <include refid="select"/>
+        <include refid="select" />
         where STATEMENT_ID = #{statementId,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_STATEMENT
@@ -302,7 +358,8 @@
         STATEMENT_TOTAL_AMOUNT, STATEMENT_DATE,
         INSERT_USERNAME, INSERT_TIME,
         UPDATE_USERNAME, UPDATE_TIME,
-        INSERT_UPDATE_REMARK, STATEMENT_TYPE
+        INSERT_UPDATE_REMARK, STATEMENT_TYPE,
+        BATCH_ID, EAS_AMOUNT, TOTAL_WET_TON
         )
         ( <foreach collection="list" item="item" separator="union all">
         select
@@ -311,7 +368,8 @@
         #{item.statementTotalAmount,jdbcType=DECIMAL}, #{item.statementDate,jdbcType=TIMESTAMP},
         #{item.insertUsername,jdbcType=VARCHAR}, #{item.insertTime,jdbcType=TIMESTAMP},
         #{item.updateUsername,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=TIMESTAMP},
-        #{item.insertUpdateRemark,jdbcType=VARCHAR}, #{item.statementType,jdbcType=VARCHAR}
+        #{item.insertUpdateRemark,jdbcType=VARCHAR}, #{item.statementType,jdbcType=VARCHAR},
+        #{item.batchId,jdbcType=DECIMAL}, #{item.easAmount,jdbcType=DECIMAL}, #{item.totalWetTon,jdbcType=DECIMAL}
         from dual
     </foreach> )
     </insert>
@@ -319,66 +377,77 @@
         update BMSSHIP_STATEMENT
         set
         STATEMENT_ID=
-        <foreach collection="list" item="item" index="index" separator=" " open="case STATEMENT_ID" close="end">
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
             when #{item.statementId,jdbcType=DECIMAL} then #{item.statementId,jdbcType=DECIMAL}
         </foreach>
         ,STATEMENT_NO=
-        <foreach collection="list" item="item" index="index" separator=" " open="case STATEMENT_ID" close="end">
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
             when #{item.statementId,jdbcType=DECIMAL} then #{item.statementNo,jdbcType=VARCHAR}
         </foreach>
         ,STATEMENT_SHIPPER_ID=
-        <foreach collection="list" item="item" index="index" separator=" " open="case STATEMENT_ID" close="end">
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
             when #{item.statementId,jdbcType=DECIMAL} then #{item.statementShipperId,jdbcType=DECIMAL}
         </foreach>
         ,STATEMENT_TOTAL_AMOUNT=
-        <foreach collection="list" item="item" index="index" separator=" " open="case STATEMENT_ID" close="end">
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
             when #{item.statementId,jdbcType=DECIMAL} then #{item.statementTotalAmount,jdbcType=DECIMAL}
         </foreach>
         ,STATEMENT_DATE=
-        <foreach collection="list" item="item" index="index" separator=" " open="case STATEMENT_ID" close="end">
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
             when #{item.statementId,jdbcType=DECIMAL} then #{item.statementDate,jdbcType=TIMESTAMP}
         </foreach>
         ,INSERT_USERNAME=
-        <foreach collection="list" item="item" index="index" separator=" " open="case STATEMENT_ID" close="end">
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
             when #{item.statementId,jdbcType=DECIMAL} then #{item.insertUsername,jdbcType=VARCHAR}
         </foreach>
         ,INSERT_TIME=
-        <foreach collection="list" item="item" index="index" separator=" " open="case STATEMENT_ID" close="end">
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
             when #{item.statementId,jdbcType=DECIMAL} then #{item.insertTime,jdbcType=TIMESTAMP}
         </foreach>
         ,UPDATE_USERNAME=
-        <foreach collection="list" item="item" index="index" separator=" " open="case STATEMENT_ID" close="end">
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
             when #{item.statementId,jdbcType=DECIMAL} then #{item.updateUsername,jdbcType=VARCHAR}
         </foreach>
         ,UPDATE_TIME=
-        <foreach collection="list" item="item" index="index" separator=" " open="case STATEMENT_ID" close="end">
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
             when #{item.statementId,jdbcType=DECIMAL} then #{item.updateTime,jdbcType=TIMESTAMP}
         </foreach>
         ,INSERT_UPDATE_REMARK=
-        <foreach collection="list" item="item" index="index" separator=" " open="case STATEMENT_ID" close="end">
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
             when #{item.statementId,jdbcType=DECIMAL} then #{item.insertUpdateRemark,jdbcType=VARCHAR}
         </foreach>
         ,STATEMENT_TYPE=
-        <foreach collection="list" item="item" index="index" separator=" " open="case STATEMENT_ID" close="end">
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
             when #{item.statementId,jdbcType=DECIMAL} then #{item.statementType,jdbcType=VARCHAR}
         </foreach>
+        ,BATCH_ID=
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.batchId,jdbcType=DECIMAL}
+        </foreach>
+        ,EAS_AMOUNT=
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.easAmount,jdbcType=DECIMAL}
+        </foreach>
+        ,TOTAL_WET_TON=
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.totalWetTon,jdbcType=DECIMAL}
+        </foreach>
         where STATEMENT_ID in
-        <foreach collection="list" index="index" item="item" separator="," open="(" close=")">
+        <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
             #{item.statementId,jdbcType=DECIMAL}
         </foreach>
     </update>
     <delete id="batchDelete" parameterType="java.util.List">
         delete from BMSSHIP_STATEMENT
         where STATEMENT_ID in
-        <foreach collection="list" item="id" open="(" close=")" separator=",">
+        <foreach close=")" collection="list" item="id" open="(" separator=",">
             #{id}
         </foreach>
     </delete>
     <!-- 友情提示!!!-->
     <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
     <select id="selectMaxId" resultType="DECIMAL">
-        SELECT MAX(STATEMENT_ID)
-        FROM BMSSHIP_STATEMENT
+        select seq_bmsship_statement.nextval from dual
     </select>
 
     <!-- 展示账单列表 -->