Browse Source

按批次和单价结算船运

liyg 2 years ago
parent
commit
f9c8957b01

+ 1 - 1
pom.xml

@@ -111,7 +111,7 @@
                     <!--包名-->
                     <targetPackage>com.steerinfo.dil</targetPackage>
                     <tables>
-                        <param>BMSSHIP_FEE</param><!--运力-->
+                        <param>BMSSHIP_STATEMENT</param><!--运力-->
                     </tables>
                 </configuration>
                 <executions>

+ 9 - 5
src/main/java/com/steerinfo/dil/controller/BmsportHandlingFeeController.java

@@ -398,17 +398,21 @@ public class BmsportHandlingFeeController extends BaseRESTfulController {
      */
     @PostMapping("/addShipFeeStatement")
     RESTfulResult addShipFeeStatement(@RequestBody(required = false)Map<String, Object> map) throws Exception {
+        int i=0;
         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));
+            for(Map<String,Object> item:list){
+                item.put("statementStatus",map.get("statementStatus"));
+                if(item.get("statementId")==null || DataChange.dataToBigDecimal(item.get("statementId")).intValue()<=0){
+                    i+=bmsportHandlingFeeService.addShipFeeStatement(item);
+                }else{
+                    i+=bmsportHandlingFeeService.editShipFeeStatement(item);
+                }
             }
-
         }else{
             return failed("空对象!");
         }
+        return success(i);
     }
 
     /**

+ 105 - 0
src/main/java/com/steerinfo/dil/model/BmsshipStatement.java

@@ -110,6 +110,48 @@ public class BmsshipStatement implements IBasePO<BigDecimal> {
     @ApiModelProperty(value="已预开金额",required=false)
     private BigDecimal totalPreviewFee;
 
+    /**
+     * 单价ID(UNIT_PRICE_ID,DECIMAL,0)
+     */
+    @ApiModelProperty(value="单价ID",required=false)
+    private BigDecimal unitPriceId;
+
+    /**
+     * 水分检测费总和(TOTAL_WATER_FEE,DECIMAL,0)
+     */
+    @ApiModelProperty(value="水分检测费总和",required=false)
+    private BigDecimal totalWaterFee;
+
+    /**
+     * 总装船吨位(TOTAL_LOAD_TON,DECIMAL,0)
+     */
+    @ApiModelProperty(value="总装船吨位",required=false)
+    private BigDecimal totalLoadTon;
+
+    /**
+     * 总计装船比例(TOTAL_LOAD_PERCENT,DECIMAL,0)
+     */
+    @ApiModelProperty(value="总计装船比例",required=false)
+    private BigDecimal totalLoadPercent;
+
+    /**
+     * 总计结算吨位(TOTAL_BALANCE_TON,DECIMAL,0)
+     */
+    @ApiModelProperty(value="总计结算吨位",required=false)
+    private BigDecimal totalBalanceTon;
+
+    /**
+     * 离港日期(RESULT_OUT_PORT_TIME,VARCHAR,50)
+     */
+    @ApiModelProperty(value="离港日期",required=false)
+    private String resultOutPortTime;
+
+    /**
+     * 发票编号(BILL_NO,VARCHAR,50)
+     */
+    @ApiModelProperty(value="发票编号",required=false)
+    private String billNo;
+
     private static final long serialVersionUID = 1L;
 
     @Override
@@ -258,6 +300,62 @@ public class BmsshipStatement implements IBasePO<BigDecimal> {
         this.totalPreviewFee = totalPreviewFee;
     }
 
+    public BigDecimal getUnitPriceId() {
+        return unitPriceId;
+    }
+
+    public void setUnitPriceId(BigDecimal unitPriceId) {
+        this.unitPriceId = unitPriceId;
+    }
+
+    public BigDecimal getTotalWaterFee() {
+        return totalWaterFee;
+    }
+
+    public void setTotalWaterFee(BigDecimal totalWaterFee) {
+        this.totalWaterFee = totalWaterFee;
+    }
+
+    public BigDecimal getTotalLoadTon() {
+        return totalLoadTon;
+    }
+
+    public void setTotalLoadTon(BigDecimal totalLoadTon) {
+        this.totalLoadTon = totalLoadTon;
+    }
+
+    public BigDecimal getTotalLoadPercent() {
+        return totalLoadPercent;
+    }
+
+    public void setTotalLoadPercent(BigDecimal totalLoadPercent) {
+        this.totalLoadPercent = totalLoadPercent;
+    }
+
+    public BigDecimal getTotalBalanceTon() {
+        return totalBalanceTon;
+    }
+
+    public void setTotalBalanceTon(BigDecimal totalBalanceTon) {
+        this.totalBalanceTon = totalBalanceTon;
+    }
+
+    public String getResultOutPortTime() {
+        return resultOutPortTime;
+    }
+
+    public void setResultOutPortTime(String resultOutPortTime) {
+        this.resultOutPortTime = resultOutPortTime == null ? null : resultOutPortTime.trim();
+    }
+
+    public String getBillNo() {
+        return billNo;
+    }
+
+    public void setBillNo(String billNo) {
+        this.billNo = billNo == null ? null : billNo.trim();
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -281,6 +379,13 @@ public class BmsshipStatement implements IBasePO<BigDecimal> {
         sb.append(", statementStatus=").append(statementStatus);
         sb.append(", totalPreviewTon=").append(totalPreviewTon);
         sb.append(", totalPreviewFee=").append(totalPreviewFee);
+        sb.append(", unitPriceId=").append(unitPriceId);
+        sb.append(", totalWaterFee=").append(totalWaterFee);
+        sb.append(", totalLoadTon=").append(totalLoadTon);
+        sb.append(", totalLoadPercent=").append(totalLoadPercent);
+        sb.append(", totalBalanceTon=").append(totalBalanceTon);
+        sb.append(", resultOutPortTime=").append(resultOutPortTime);
+        sb.append(", billNo=").append(billNo);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();

+ 29 - 156
src/main/java/com/steerinfo/dil/service/impl/BmsportHandlingFeeServiceImpl.java

@@ -348,116 +348,25 @@ public class BmsportHandlingFeeServiceImpl implements IBmsportHandlingFeeService
     @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")));
+        BigDecimal statementId = bmsshipStatementMapper.selectMaxId();
+        bmsshipStatement.setStatementId(statementId);
+        bmsshipStatement.setStatementType("进口矿计费账单");
+        bmsshipStatement.setBatchId(DataChange.dataToBigDecimal(map.get("batchId")));
+        bmsshipStatement.setUnitPriceId(DataChange.dataToBigDecimal(map.get("unitPriceId")));
+        bmsshipStatement.setTotalLoadTon(DataChange.dataToBigDecimal(map.get("monthLoadTonnage")).setScale(2,BigDecimal.ROUND_HALF_UP));//月份装船吨位
+        bmsshipStatement.setTotalLoadPercent(DataChange.dataToBigDecimal(map.get("monthLoadingProportion")));//月份装船比例
+        bmsshipStatement.setTotalBalanceTon(DataChange.dataToBigDecimal(map.get("monthRealTonnage")).setScale(2,BigDecimal.ROUND_HALF_UP));//月份结算吨位
+        bmsshipStatement.setTotalWetTon(DataChange.dataToBigDecimal(map.get("monthMakeTonnage")).setScale(2,BigDecimal.ROUND_HALF_UP));//月份开票吨位
+        bmsshipStatement.setStatementTotalAmount(DataChange.dataToBigDecimal(map.get("statementTotalAmount")).setScale(2,BigDecimal.ROUND_HALF_UP));//开票金额
+        bmsshipStatement.setTotalPreviewTon(DataChange.dataToBigDecimal(map.get("totalPreviewTonnage")).setScale(2,BigDecimal.ROUND_HALF_UP));//预开总吨位
+        bmsshipStatement.setTotalPreviewFee(DataChange.dataToBigDecimal(map.get("totalPreviewFee")).setScale(2,BigDecimal.ROUND_HALF_UP));//预开总金额
+        bmsshipStatement.setResultOutPortTime(map.get("resultOutPortTime")+"");
+        bmsshipStatement.setTotalWaterFee(DataChange.dataToBigDecimal(map.get("inspectionsFee")).setScale(2,BigDecimal.ROUND_HALF_UP));
         bmsshipStatement.setStatementNo("BMSSF"+new Date().getTime());
         bmsshipStatement.setStatementStatus(DataChange.dataToBigDecimal(map.get("statementStatus")));
-        bmsshipStatement.setTotalPreviewTon(DataChange.dataToBigDecimal(map.get("totalPreviewTonnage")));
-        bmsshipStatement.setTotalPreviewFee(DataChange.dataToBigDecimal(map.get("totalPreviewFee")));
         bmsshipStatement.setInsertTime(new Date());
-        bmsshipStatement.setInsertUsername(personnelName);
-        for(Map<String,Object> temp : list) {
-            //生成费用详单
-            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("actuallyMoney"));
-                BigDecimal totalResultId=DataChange.dataToBigDecimal(temp.get("totalResultId"));
-                BigDecimal inspectionsFee=DataChange.dataToBigDecimal(temp.get("inspectionFees"));//税后水分质检费
-                //获取主键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.setInspectionsFee(inspectionsFee);
-                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("actuallyMoney"));
-                BigDecimal inspectionsFee=DataChange.dataToBigDecimal(temp.get("inspectionFees"));//税后水分质检费
-                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(temp.get("unitPriceId")));
-                bmsshipFee.setFee(DataChange.dataToBigDecimal(temp.get("fee")));
-                bmsshipFee.setInsertUpdateRemark((String) temp.get("resultRemarks"));
-                bmsshipFee.setLoadingProportion(DataChange.dataToBigDecimal(temp.get("loadingProportion")));
-                bmsshipFee.setInspectionsFee(inspectionsFee);
-                if (personnelName!=null) {
-                    bmsshipFee.setUpdateUsername(personnelName);
-                }else {
-                    bmsshipFee.setUpdateUsername(userId);
-                }
-                bmsshipFeeMapper.updateByPrimaryKeySelective(bmsshipFee);
-            }
-        }
         //新增
         return bmsshipStatementMapper.insertSelective(bmsshipStatement);
     }
@@ -465,59 +374,23 @@ public class BmsportHandlingFeeServiceImpl implements IBmsportHandlingFeeService
     @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);
+        bmsshipStatement.setStatementId(DataChange.dataToBigDecimal(map.get("statementId")));
+        bmsshipStatement.setStatementType("进口矿计费账单");
+        bmsshipStatement.setBatchId(DataChange.dataToBigDecimal(map.get("batchId")));
+        bmsshipStatement.setUnitPriceId(DataChange.dataToBigDecimal(map.get("unitPriceId")));
+        bmsshipStatement.setTotalLoadTon(DataChange.dataToBigDecimal(map.get("monthLoadTonnage")).setScale(2,BigDecimal.ROUND_HALF_UP));//月份装船吨位
+        bmsshipStatement.setTotalLoadPercent(DataChange.dataToBigDecimal(map.get("monthLoadingProportion")));//月份装船比例
+        bmsshipStatement.setTotalBalanceTon(DataChange.dataToBigDecimal(map.get("monthRealTonnage")).setScale(2,BigDecimal.ROUND_HALF_UP));//月份结算吨位
+        bmsshipStatement.setTotalWetTon(DataChange.dataToBigDecimal(map.get("monthMakeTonnage")).setScale(2,BigDecimal.ROUND_HALF_UP));//月份开票吨位
+        bmsshipStatement.setStatementTotalAmount(DataChange.dataToBigDecimal(map.get("statementTotalAmount")).setScale(2,BigDecimal.ROUND_HALF_UP));//开票金额
+        bmsshipStatement.setTotalPreviewTon(DataChange.dataToBigDecimal(map.get("totalPreviewTonnage")).setScale(2,BigDecimal.ROUND_HALF_UP));//预开总吨位
+        bmsshipStatement.setTotalPreviewFee(DataChange.dataToBigDecimal(map.get("totalPreviewFee")).setScale(2,BigDecimal.ROUND_HALF_UP));//预开总金额
+        bmsshipStatement.setStatementNo("BMSSF"+new Date().getTime());
+        bmsshipStatement.setResultOutPortTime(map.get("resultOutPortTime")+"");
+        bmsshipStatement.setTotalWaterFee(DataChange.dataToBigDecimal(map.get("inspectionsFee")).setScale(2,BigDecimal.ROUND_HALF_UP));
         bmsshipStatement.setStatementStatus(DataChange.dataToBigDecimal(map.get("statementStatus")));
-        bmsshipStatement.setTotalPreviewTon(DataChange.dataToBigDecimal(map.get("totalPreviewTonnage")));
-        bmsshipStatement.setTotalPreviewFee(DataChange.dataToBigDecimal(map.get("totalPreviewFee")));
-        for(Map<String,Object> temp : list) {
-            //更新费用详单
-            BmsshipFee bmsshipFee =new BmsshipFee();
-            bmsshipFee.setResultId(DataChange.dataToBigDecimal(temp.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("actuallyMoney"));
-            BigDecimal inspectionsFee=DataChange.dataToBigDecimal(temp.get("inspectionFees"));//税后水分质检费
-            bmsshipFee.setRealTonnage(tonnage);
-            bmsshipFee.setPreviewTonnage(previewTonnage);
-            bmsshipFee.setPreviewFee(previewFee);
-            bmsshipFee.setMakeTonnage(makeTonnage);
-            bmsshipFee.setFeeMake(makeFee);
-            bmsshipFee.setLoadWaterTonnage(loadWater);
-            bmsshipFee.setEnWaterTonnage(enFacotoryWater);
-            bmsshipFee.setImage((String) temp.get("image"));
-            bmsshipFee.setInsertTime(new Date());
-            bmsshipFee.setUnitPrice(unitPrice);
-            bmsshipFee.setUnitPriceId(DataChange.dataToBigDecimal(temp.get("unitPriceId")));
-            bmsshipFee.setFee(DataChange.dataToBigDecimal(temp.get("fee")));
-            bmsshipFee.setInspectionsFee(inspectionsFee);
-            bmsshipFee.setInsertUpdateRemark((String) map.get("resultRemarks"));
-            if (personnelName!=null) {
-                bmsshipFee.setUpdateUsername(personnelName);
-            }else {
-                bmsshipFee.setUpdateUsername(userId);
-            }
-            bmsshipFeeMapper.updateByPrimaryKeySelective(bmsshipFee);
-        }
+        bmsshipStatement.setUpdateTime(new Date());
         //修改
         return bmsshipStatementMapper.updateByPrimaryKeySelective(bmsshipStatement);
     }

+ 43 - 108
src/main/resources/com/steerinfo/dil/mapper/BmsportHandlingFeeMapper.xml

@@ -688,29 +688,17 @@
         SELECT DISTINCT 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",--装船日期
-        to_char(tlsr.RESULT_OUT_PORT_TIME,'yyyy-MM-dd')  "resultOutPortTime",--离港日期
+        LTT."resultOutPortTime"  "resultOutPortTime",--离港日期
         ADN.PORT_ID "sendPortId",--放货港口id
         rp.PORT_NAME "portName",--放货港口
         bcr.RESULT_ID "unitPriceId",--水运单价id
         BCR.UNIT_PRICE "unitPrice",--水运单价
-        tlsr.RESULT_ACTUAL_INSTALLATIONS "loadTonnage",--装船实装湿吨
         LTT."totalLoadTonnage" "monthLoadTonnage",--月份总装船吨位
         ROUND(LTT."totalLoadTonnage"/LT."totalLoadTonnage", 38) "monthLoadingProportion",--月份总装船比例
         0 "monthRealTonnage",--月份结算吨位
         LT."totalLoadTonnage",--装船总湿吨
-        ROUND(tlsr.RESULT_ACTUAL_INSTALLATIONS/LT."totalLoadTonnage", 38) "loadingProportion",--装船比例
-        0 "realTonnage",--结算湿吨
-        0 "fee",--水运费
-        BF.RESULT_ID "feeId",--水运费Id
-        0 "previewTonnage",--预开湿吨
-        0 "previewFee",--预开金额
-        0 "actuallyMoney",--开票金额
-        0 "makeTonnage",--开票湿吨
-        ttr.RESULT_ID "totalResultId",--装船总实绩id
         BS.STATEMENT_ID "statementId",--账单id
         (
         case
@@ -727,11 +715,18 @@
         BS.STATEMENT_TOTAL_AMOUNT "stateMentTotalAmount",--账单总金额
         BS.STATEMENT_SHIPPER_ID "stateMentShipperId",--结算单位id
         RS.SHIPPER_NAME "shipperName",--结算单位名
-        ADN.INSERT_TIME "noticeTime",
-        (case
-        when BF.result_id is not null then BF.INSPECTIONS_FEE
-        when BF.result_id is null then ROUND(TWQR.RESULT_INSPECTION_FEES/1.06*1.09,2)
-        end) "inspectionFees"
+        LTT."inspectionsFee" "inspectionsFee"
+        FROM   AMSSHIP_DELIVERY_NOTICE adn
+        LEFT JOIN DIL_BATCH_INFACOTRY dbi
+        ON adn.BATCH_ID=dbi.BATCH_INFACOTRY_ID
+        LEFT JOIN DIL_BATCH db
+        ON db.BATCH_ID = dbi.BATCH_ID
+        LEFT JOIN RMS_MATERIAL RM
+        ON RM.MATERIAL_ID=DB.MATERIAL_ID
+        LEFT JOIN
+        (SELECT DISTINCT
+        TWQR.UNIT_PRICE_ID "unitPriceId",
+        DB.BATCH_ID "batchId"
         FROM TMSSHIP_LOAD_SHIP_RESULT tlsr
         LEFT JOIN TMSSHIP_TOTAL_RESULT ttr
         ON ttr.RESULT_ID = tlsr.TOTAL_RESULT_ID
@@ -741,26 +736,16 @@
         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
+        WHERE TWQR.UNIT_PRICE_ID!=0) BU
+        ON BU."batchId"=DB.BATCH_ID
+        LEFT JOIN BMSSHIP_CONTRACT_PRICE BCR
+        ON BU."unitPriceId"=BCR.RESULT_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
+        ON BS.BATCH_ID=DB.BATCH_ID AND BS.UNIT_PRICE_ID=BU."unitPriceId"
         LEFT JOIN RMS_SHIPPER RS
         ON RS.SHIPPER_ID=BS.STATEMENT_ID
         LEFT JOIN AMSSHIP_DELIVERY_ATTORNEY ada
@@ -846,7 +831,9 @@
         LEFT JOIN
         (SELECT dbi.BATCH_ID "batchId",
         TWQR.UNIT_PRICE_ID "unitPriceId",
-        SUM(tlsr.RESULT_ACTUAL_INSTALLATIONS) "totalLoadTonnage"
+        SUM(tlsr.RESULT_ACTUAL_INSTALLATIONS) "totalLoadTonnage",
+        TO_CHAR(MIN(tlsr.RESULT_OUT_PORT_TIME),'MM.dd') || '-' || TO_CHAR(MAX(tlsr.RESULT_OUT_PORT_TIME),'MM.dd') "resultOutPortTime",
+        ROUND(SUM(TWQR.RESULT_INSPECTION_FEES)/1.06*1.09 , 2) "inspectionsFee"
         FROM TMSSHIP_LOAD_SHIP_RESULT tlsr
         LEFT JOIN TMSSHIP_TOTAL_RESULT ttr
         ON ttr.RESULT_ID = tlsr.TOTAL_RESULT_ID
@@ -856,13 +843,12 @@
         ON dbi.BATCH_INFACOTRY_ID = tlsr.BATCH_ID
         where TLSR.DELETED=0
         GROUP BY dbi.BATCH_ID,TWQR.UNIT_PRICE_ID)
-        LTT ON db.BATCH_ID = LTT."batchId" and twqr.UNIT_PRICE_ID=LTT."unitPriceId"
-        WHERE tlsr.DELETED=0 AND adn.DELETED=0
+        LTT ON BU."batchId" = LTT."batchId" and BU."unitPriceId"=LTT."unitPriceId"
+        WHERE adn.DELETED=0 AND ada.DELETED=0
         and (BS.STATEMENT_ID is null or BS.STATEMENT_STATUS=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},'%'))
             )
@@ -871,7 +857,7 @@
             and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= tlsr.RESULT_OUT_PORT_TIME
             and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= tlsr.RESULT_OUT_PORT_TIME
         </if>
-        ) ORDER BY "noticeTime" DESC,"unitPriceId" DESC,"statementId" ASC
+        ) ORDER  BY "batchId" ASC,"unitPriceId" ASC
     </select>
 
     <select id="findTotalTonnage" resultType="java.util.Map">
@@ -896,84 +882,33 @@
     <select id="getShipFeeStatemented" resultType="java.util.Map">
         --查询计费详单及其计费账单信息
         select  * from(
-        SELECT
-        DISTINCT db.BATCH_ID "batchId",--批次id
-        apo.PURCHASE_ORDER_ID "purchaseOrderId",--采购订单id
+        --采购船运计费账单已结算
+        SELECT DISTINCT db.BATCH_ID "batchId",--批次id
         RM.MATERIAL_NAME "materialName",--物资名
-        RC.CAPACITY_NUMBER "capacityNumber",--江船船名
+        rp.PORT_NAME "portName",--起运港
         db.RESULT_FOREIGN_SHIP_NAME "resultForeignShipName",--外轮船名
-        RCR.PORT_NAME "carrierName",--承运单位
-        tlsr.RESULT_LOAD_SHIP_DATE  "resultLoadShipDate",--装船日期
-        to_char(tlsr.RESULT_OUT_PORT_TIME,'yyyy-MM-dd')  "resultOutPortTime",--离港日期
-        ADN.PORT_ID "sendPortId",--放货港口id
-        rp.PORT_NAME "portName",--放货港口
+        BS.RESULT_OUT_PORT_TIME  "resultOutPortTime",--离港日期
         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.TOTAL_WET_TON "monthMakeTonnage",--月份开票吨位
+        BS.STATEMENT_TOTAL_AMOUNT "statementTotalAmount",--月份开票总金额
         BS.STATEMENT_ID "statementId",--账单id
-        BS.TOTAL_WET_TON "totalEnTonnage",--开票湿吨
-        BS.STATEMENT_TOTAL_AMOUNT "statementTotalAmount",--账单总金额
-        BS.TOTAL_PREVIEW_TON "totalPreviewTonnage",
-        BS.TOTAL_PREVIEW_FEE "totalPreviewFee",
+        BS.TOTAL_PREVIEW_TON "totalPreviewTonnage",--预开总吨位
+        BS.TOTAL_PREVIEW_FEE	"totalPreviewFee",--月份预开票总金额
+        BS.TOTAL_LOAD_TON "monthLoadTonnage",--月份总装船吨位
+        ROUND(BS.TOTAL_LOAD_PERCENT, 4) "monthLoadingProportion",--月份总装船比例
+        BS.TOTAL_BALANCE_TON "monthRealTonnage",--月份结算吨位
         BS.STATEMENT_SHIPPER_ID "stateMentShipperId",--结算单位id
-        RS.SHIPPER_NAME "shipperName",--结算单位名
-        ADN.INSERT_TIME "noticeTime",
-        BF.INSPECTIONS_FEE "inspectionFees",
-        (SELECT SUM(BF_TEMP.MAKE_TONNAGE)
-        FROM BMSSHIP_FEE BF_TEMP
-        WHERE BF_TEMP.STATEMENT_ID=BS.STATEMENT_ID) "makeTonnageTotal"
-        FROM
-        BMSSHIP_STATEMENT BS
-        LEFT JOIN BMSSHIP_FEE BF
-        ON BF.STATEMENT_ID=BS.STATEMENT_ID
-        LEFT JOIN TMSSHIP_TOTAL_RESULT ttr
-        ON BF.TOTAL_RESULT_ID=TTR.RESULT_ID
-        LEFT JOIN TMSSHIP_LOAD_SHIP_RESULT tlsr
-        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_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 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 AND adn.DELETED=0 and BS.STATEMENT_STATUS=1
+        BS.TOTAL_WATER_FEE "inspectionsFee"
+        from BMSSHIP_STATEMENT BS
+        LEFT JOIN DIL_BATCH DB ON DB.BATCH_ID=BS.BATCH_ID
+        LEFT JOIN RMS_MATERIAL RM ON RM.MATERIAL_ID=DB.MATERIAL_ID
+        LEFT JOIN BMSSHIP_CONTRACT_PRICE BCR ON BS.UNIT_PRICE_ID=BCR.RESULT_ID
+        LEFT JOIN RMS_PORT RP ON  RP.PORT_ID=BCR.PORT_ID
+        WHERE BS.STATEMENT_STATUS=1
         <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},'%'))
             )
@@ -982,7 +917,7 @@
             and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= tlsr.RESULT_OUT_PORT_TIME
             and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= tlsr.RESULT_OUT_PORT_TIME
         </if>
-        ) ORDER BY "noticeTime" DESC,"statementId" ASC
+        ) ORDER  BY "batchId"
     </select>
 
 </mapper>

+ 196 - 15
src/main/resources/com/steerinfo/dil/mapper/BmsshipStatementMapper.xml

@@ -19,18 +19,28 @@
         <result column="STATEMENT_STATUS" jdbcType="DECIMAL" property="statementStatus" />
         <result column="TOTAL_PREVIEW_TON" jdbcType="DECIMAL" property="totalPreviewTon" />
         <result column="TOTAL_PREVIEW_FEE" jdbcType="DECIMAL" property="totalPreviewFee" />
+        <result column="UNIT_PRICE_ID" jdbcType="DECIMAL" property="unitPriceId" />
+        <result column="TOTAL_WATER_FEE" jdbcType="DECIMAL" property="totalWaterFee" />
+        <result column="TOTAL_LOAD_TON" jdbcType="DECIMAL" property="totalLoadTon" />
+        <result column="TOTAL_LOAD_PERCENT" jdbcType="DECIMAL" property="totalLoadPercent" />
+        <result column="TOTAL_BALANCE_TON" jdbcType="DECIMAL" property="totalBalanceTon" />
+        <result column="RESULT_OUT_PORT_TIME" jdbcType="VARCHAR" property="resultOutPortTime" />
+        <result column="BILL_NO" jdbcType="VARCHAR" property="billNo" />
     </resultMap>
     <sql id="columns">
-        STATEMENT_ID, STATEMENT_NO, STATEMENT_SHIPPER_ID, STATEMENT_TOTAL_AMOUNT, STATEMENT_DATE, 
-    INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK, 
-    STATEMENT_TYPE, BATCH_ID, EAS_AMOUNT, TOTAL_WET_TON, STATEMENT_STATUS, TOTAL_PREVIEW_TON, 
-    TOTAL_PREVIEW_FEE
+        STATEMENT_ID, STATEMENT_NO, STATEMENT_SHIPPER_ID, STATEMENT_TOTAL_AMOUNT, STATEMENT_DATE,
+    INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK,
+    STATEMENT_TYPE, BATCH_ID, EAS_AMOUNT, TOTAL_WET_TON, STATEMENT_STATUS, TOTAL_PREVIEW_TON,
+    TOTAL_PREVIEW_FEE, UNIT_PRICE_ID, TOTAL_WATER_FEE, TOTAL_LOAD_TON, TOTAL_LOAD_PERCENT,
+    TOTAL_BALANCE_TON, RESULT_OUT_PORT_TIME, BILL_NO
     </sql>
     <sql id="columns_alias">
-        t.STATEMENT_ID, t.STATEMENT_NO, t.STATEMENT_SHIPPER_ID, t.STATEMENT_TOTAL_AMOUNT, 
-    t.STATEMENT_DATE, t.INSERT_USERNAME, t.INSERT_TIME, t.UPDATE_USERNAME, t.UPDATE_TIME, 
-    t.INSERT_UPDATE_REMARK, t.STATEMENT_TYPE, t.BATCH_ID, t.EAS_AMOUNT, t.TOTAL_WET_TON, 
-    t.STATEMENT_STATUS, t.TOTAL_PREVIEW_TON, t.TOTAL_PREVIEW_FEE
+        t.STATEMENT_ID, t.STATEMENT_NO, t.STATEMENT_SHIPPER_ID, t.STATEMENT_TOTAL_AMOUNT,
+    t.STATEMENT_DATE, t.INSERT_USERNAME, t.INSERT_TIME, t.UPDATE_USERNAME, t.UPDATE_TIME,
+    t.INSERT_UPDATE_REMARK, t.STATEMENT_TYPE, t.BATCH_ID, t.EAS_AMOUNT, t.TOTAL_WET_TON,
+    t.STATEMENT_STATUS, t.TOTAL_PREVIEW_TON, t.TOTAL_PREVIEW_FEE, t.UNIT_PRICE_ID, t.TOTAL_WATER_FEE,
+    t.TOTAL_LOAD_TON, t.TOTAL_LOAD_PERCENT, t.TOTAL_BALANCE_TON, t.RESULT_OUT_PORT_TIME,
+    t.BILL_NO
     </sql>
     <sql id="select">
         SELECT <include refid="columns" /> FROM BMSSHIP_STATEMENT
@@ -91,6 +101,27 @@
             <if test="totalPreviewFee != null">
                 and TOTAL_PREVIEW_FEE = #{totalPreviewFee}
             </if>
+            <if test="unitPriceId != null">
+                and UNIT_PRICE_ID = #{unitPriceId}
+            </if>
+            <if test="totalWaterFee != null">
+                and TOTAL_WATER_FEE = #{totalWaterFee}
+            </if>
+            <if test="totalLoadTon != null">
+                and TOTAL_LOAD_TON = #{totalLoadTon}
+            </if>
+            <if test="totalLoadPercent != null">
+                and TOTAL_LOAD_PERCENT = #{totalLoadPercent}
+            </if>
+            <if test="totalBalanceTon != null">
+                and TOTAL_BALANCE_TON = #{totalBalanceTon}
+            </if>
+            <if test="resultOutPortTime != null and resultOutPortTime != ''">
+                and RESULT_OUT_PORT_TIME = #{resultOutPortTime}
+            </if>
+            <if test="billNo != null and billNo != ''">
+                and BILL_NO = #{billNo}
+            </if>
         </where>
     </sql>
     <sql id="whereLike">
@@ -146,6 +177,27 @@
             <if test="totalPreviewFee != null">
                 and TOTAL_PREVIEW_FEE = #{totalPreviewFee}
             </if>
+            <if test="unitPriceId != null">
+                and UNIT_PRICE_ID = #{unitPriceId}
+            </if>
+            <if test="totalWaterFee != null">
+                and TOTAL_WATER_FEE = #{totalWaterFee}
+            </if>
+            <if test="totalLoadTon != null">
+                and TOTAL_LOAD_TON = #{totalLoadTon}
+            </if>
+            <if test="totalLoadPercent != null">
+                and TOTAL_LOAD_PERCENT = #{totalLoadPercent}
+            </if>
+            <if test="totalBalanceTon != null">
+                and TOTAL_BALANCE_TON = #{totalBalanceTon}
+            </if>
+            <if test="resultOutPortTime != null and resultOutPortTime != ''">
+                and RESULT_OUT_PORT_TIME LIKE '%${resultOutPortTime}%'
+            </if>
+            <if test="billNo != null and billNo != ''">
+                and BILL_NO LIKE '%${billNo}%'
+            </if>
         </where>
     </sql>
     <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
@@ -203,6 +255,27 @@
         <if test="totalPreviewFee != null">
             or TOTAL_PREVIEW_FEE = #{totalPreviewFee}
         </if>
+        <if test="unitPriceId != null">
+            or UNIT_PRICE_ID = #{unitPriceId}
+        </if>
+        <if test="totalWaterFee != null">
+            or TOTAL_WATER_FEE = #{totalWaterFee}
+        </if>
+        <if test="totalLoadTon != null">
+            or TOTAL_LOAD_TON = #{totalLoadTon}
+        </if>
+        <if test="totalLoadPercent != null">
+            or TOTAL_LOAD_PERCENT = #{totalLoadPercent}
+        </if>
+        <if test="totalBalanceTon != null">
+            or TOTAL_BALANCE_TON = #{totalBalanceTon}
+        </if>
+        <if test="resultOutPortTime != null and resultOutPortTime != ''">
+            or RESULT_OUT_PORT_TIME = #{resultOutPortTime}
+        </if>
+        <if test="billNo != null and billNo != ''">
+            or BILL_NO = #{billNo}
+        </if>
     </delete>
     <insert id="insert" parameterType="com.steerinfo.dil.model.BmsshipStatement">
         insert into BMSSHIP_STATEMENT (STATEMENT_ID, STATEMENT_NO, STATEMENT_SHIPPER_ID,
@@ -210,15 +283,19 @@
                                        INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME,
                                        UPDATE_TIME, INSERT_UPDATE_REMARK, STATEMENT_TYPE,
                                        BATCH_ID, EAS_AMOUNT, TOTAL_WET_TON,
-                                       STATEMENT_STATUS, TOTAL_PREVIEW_TON, TOTAL_PREVIEW_FEE
-        )
+                                       STATEMENT_STATUS, TOTAL_PREVIEW_TON, TOTAL_PREVIEW_FEE,
+                                       UNIT_PRICE_ID, TOTAL_WATER_FEE, TOTAL_LOAD_TON,
+                                       TOTAL_LOAD_PERCENT, TOTAL_BALANCE_TON, RESULT_OUT_PORT_TIME,
+                                       BILL_NO)
         values (#{statementId,jdbcType=DECIMAL}, #{statementNo,jdbcType=VARCHAR}, #{statementShipperId,jdbcType=DECIMAL},
                 #{statementTotalAmount,jdbcType=DECIMAL}, #{statementDate,jdbcType=TIMESTAMP},
                 #{insertUsername,jdbcType=VARCHAR}, #{insertTime,jdbcType=TIMESTAMP}, #{updateUsername,jdbcType=VARCHAR},
                 #{updateTime,jdbcType=TIMESTAMP}, #{insertUpdateRemark,jdbcType=VARCHAR}, #{statementType,jdbcType=VARCHAR},
                 #{batchId,jdbcType=DECIMAL}, #{easAmount,jdbcType=DECIMAL}, #{totalWetTon,jdbcType=DECIMAL},
-                #{statementStatus,jdbcType=DECIMAL}, #{totalPreviewTon,jdbcType=DECIMAL}, #{totalPreviewFee,jdbcType=DECIMAL}
-               )
+                #{statementStatus,jdbcType=DECIMAL}, #{totalPreviewTon,jdbcType=DECIMAL}, #{totalPreviewFee,jdbcType=DECIMAL},
+                #{unitPriceId,jdbcType=DECIMAL}, #{totalWaterFee,jdbcType=DECIMAL}, #{totalLoadTon,jdbcType=DECIMAL},
+                #{totalLoadPercent,jdbcType=DECIMAL}, #{totalBalanceTon,jdbcType=DECIMAL}, #{resultOutPortTime,jdbcType=VARCHAR},
+                #{billNo,jdbcType=VARCHAR})
     </insert>
     <insert id="insertSelective" parameterType="com.steerinfo.dil.model.BmsshipStatement">
         insert into BMSSHIP_STATEMENT
@@ -274,6 +351,27 @@
             <if test="totalPreviewFee != null">
                 TOTAL_PREVIEW_FEE,
             </if>
+            <if test="unitPriceId != null">
+                UNIT_PRICE_ID,
+            </if>
+            <if test="totalWaterFee != null">
+                TOTAL_WATER_FEE,
+            </if>
+            <if test="totalLoadTon != null">
+                TOTAL_LOAD_TON,
+            </if>
+            <if test="totalLoadPercent != null">
+                TOTAL_LOAD_PERCENT,
+            </if>
+            <if test="totalBalanceTon != null">
+                TOTAL_BALANCE_TON,
+            </if>
+            <if test="resultOutPortTime != null">
+                RESULT_OUT_PORT_TIME,
+            </if>
+            <if test="billNo != null">
+                BILL_NO,
+            </if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="statementId != null">
@@ -327,6 +425,27 @@
             <if test="totalPreviewFee != null">
                 #{totalPreviewFee,jdbcType=DECIMAL},
             </if>
+            <if test="unitPriceId != null">
+                #{unitPriceId,jdbcType=DECIMAL},
+            </if>
+            <if test="totalWaterFee != null">
+                #{totalWaterFee,jdbcType=DECIMAL},
+            </if>
+            <if test="totalLoadTon != null">
+                #{totalLoadTon,jdbcType=DECIMAL},
+            </if>
+            <if test="totalLoadPercent != null">
+                #{totalLoadPercent,jdbcType=DECIMAL},
+            </if>
+            <if test="totalBalanceTon != null">
+                #{totalBalanceTon,jdbcType=DECIMAL},
+            </if>
+            <if test="resultOutPortTime != null">
+                #{resultOutPortTime,jdbcType=VARCHAR},
+            </if>
+            <if test="billNo != null">
+                #{billNo,jdbcType=VARCHAR},
+            </if>
         </trim>
     </insert>
     <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.BmsshipStatement">
@@ -346,7 +465,14 @@
             TOTAL_WET_TON = #{totalWetTon,jdbcType=DECIMAL},
             STATEMENT_STATUS = #{statementStatus,jdbcType=DECIMAL},
             TOTAL_PREVIEW_TON = #{totalPreviewTon,jdbcType=DECIMAL},
-            TOTAL_PREVIEW_FEE = #{totalPreviewFee,jdbcType=DECIMAL}
+            TOTAL_PREVIEW_FEE = #{totalPreviewFee,jdbcType=DECIMAL},
+            UNIT_PRICE_ID = #{unitPriceId,jdbcType=DECIMAL},
+            TOTAL_WATER_FEE = #{totalWaterFee,jdbcType=DECIMAL},
+            TOTAL_LOAD_TON = #{totalLoadTon,jdbcType=DECIMAL},
+            TOTAL_LOAD_PERCENT = #{totalLoadPercent,jdbcType=DECIMAL},
+            TOTAL_BALANCE_TON = #{totalBalanceTon,jdbcType=DECIMAL},
+            RESULT_OUT_PORT_TIME = #{resultOutPortTime,jdbcType=VARCHAR},
+            BILL_NO = #{billNo,jdbcType=VARCHAR}
         where STATEMENT_ID = #{statementId,jdbcType=DECIMAL}
     </update>
     <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.BmsshipStatement">
@@ -400,6 +526,27 @@
             <if test="totalPreviewFee != null">
                 TOTAL_PREVIEW_FEE = #{totalPreviewFee,jdbcType=DECIMAL},
             </if>
+            <if test="unitPriceId != null">
+                UNIT_PRICE_ID = #{unitPriceId,jdbcType=DECIMAL},
+            </if>
+            <if test="totalWaterFee != null">
+                TOTAL_WATER_FEE = #{totalWaterFee,jdbcType=DECIMAL},
+            </if>
+            <if test="totalLoadTon != null">
+                TOTAL_LOAD_TON = #{totalLoadTon,jdbcType=DECIMAL},
+            </if>
+            <if test="totalLoadPercent != null">
+                TOTAL_LOAD_PERCENT = #{totalLoadPercent,jdbcType=DECIMAL},
+            </if>
+            <if test="totalBalanceTon != null">
+                TOTAL_BALANCE_TON = #{totalBalanceTon,jdbcType=DECIMAL},
+            </if>
+            <if test="resultOutPortTime != null">
+                RESULT_OUT_PORT_TIME = #{resultOutPortTime,jdbcType=VARCHAR},
+            </if>
+            <if test="billNo != null">
+                BILL_NO = #{billNo,jdbcType=VARCHAR},
+            </if>
         </set>
         where STATEMENT_ID = #{statementId,jdbcType=DECIMAL}
     </update>
@@ -425,7 +572,10 @@
         INSERT_UPDATE_REMARK, STATEMENT_TYPE,
         BATCH_ID, EAS_AMOUNT, TOTAL_WET_TON,
         STATEMENT_STATUS, TOTAL_PREVIEW_TON,
-        TOTAL_PREVIEW_FEE)
+        TOTAL_PREVIEW_FEE, UNIT_PRICE_ID,
+        TOTAL_WATER_FEE, TOTAL_LOAD_TON,
+        TOTAL_LOAD_PERCENT, TOTAL_BALANCE_TON,
+        RESULT_OUT_PORT_TIME, BILL_NO)
         ( <foreach collection="list" item="item" separator="union all">
         select
         #{item.statementId,jdbcType=DECIMAL},
@@ -436,7 +586,10 @@
         #{item.insertUpdateRemark,jdbcType=VARCHAR}, #{item.statementType,jdbcType=VARCHAR},
         #{item.batchId,jdbcType=DECIMAL}, #{item.easAmount,jdbcType=DECIMAL}, #{item.totalWetTon,jdbcType=DECIMAL},
         #{item.statementStatus,jdbcType=DECIMAL}, #{item.totalPreviewTon,jdbcType=DECIMAL},
-        #{item.totalPreviewFee,jdbcType=DECIMAL} from dual
+        #{item.totalPreviewFee,jdbcType=DECIMAL}, #{item.unitPriceId,jdbcType=DECIMAL},
+        #{item.totalWaterFee,jdbcType=DECIMAL}, #{item.totalLoadTon,jdbcType=DECIMAL},
+        #{item.totalLoadPercent,jdbcType=DECIMAL}, #{item.totalBalanceTon,jdbcType=DECIMAL},
+        #{item.resultOutPortTime,jdbcType=VARCHAR}, #{item.billNo,jdbcType=VARCHAR} from dual
     </foreach> )
     </insert>
     <update id="batchUpdate" parameterType="java.util.List">
@@ -510,6 +663,34 @@
         <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
             when #{item.statementId,jdbcType=DECIMAL} then #{item.totalPreviewFee,jdbcType=DECIMAL}
         </foreach>
+        ,UNIT_PRICE_ID=
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.unitPriceId,jdbcType=DECIMAL}
+        </foreach>
+        ,TOTAL_WATER_FEE=
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.totalWaterFee,jdbcType=DECIMAL}
+        </foreach>
+        ,TOTAL_LOAD_TON=
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.totalLoadTon,jdbcType=DECIMAL}
+        </foreach>
+        ,TOTAL_LOAD_PERCENT=
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.totalLoadPercent,jdbcType=DECIMAL}
+        </foreach>
+        ,TOTAL_BALANCE_TON=
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.totalBalanceTon,jdbcType=DECIMAL}
+        </foreach>
+        ,RESULT_OUT_PORT_TIME=
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.resultOutPortTime,jdbcType=VARCHAR}
+        </foreach>
+        ,BILL_NO=
+        <foreach close="end" collection="list" index="index" item="item" open="case STATEMENT_ID" separator=" ">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.billNo,jdbcType=VARCHAR}
+        </foreach>
         where STATEMENT_ID in
         <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
             #{item.statementId,jdbcType=DECIMAL}