liyg 2 anos atrás
pai
commit
1e76f49dad

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

@@ -144,6 +144,8 @@ public class BmsportHandlingFeeController extends BaseRESTfulController {
         int code1 = bmsportHandlingFeeService.addPortHandlingFeeSecond(map);
         if (code1==-2){
             return failed("费用不一致,请仔细核对数据是否更改");
+        }else if(code1==-3){
+            return failed("总吨位不一致,请仔细核对数据是否更改");
         }
         return success(code1);
     }
@@ -286,4 +288,45 @@ public class BmsportHandlingFeeController extends BaseRESTfulController {
         return success(list);
     }
 
+
+
+    /**
+     * 根据批次查火运湿吨详情
+     * @param batchId
+     * @return
+     */
+    @PostMapping("/getTrainDetailsByBatch/{batchId}")
+    public RESTfulResult getTrainDetailsByBatch(@PathVariable("batchId")BigDecimal batchId){
+        Map<String,Object> result=bmsportHandlingFeeService.getTrainDetailsByBatch(batchId);
+        if(result==null)
+            return failed("未查询到数据");
+        else
+            return  success(result);
+    }
+
+    /**
+     * 根据批次查汽运湿吨详情
+     * @param batchId
+     * @return
+     */
+    @PostMapping("/getTruckDetailsByBatch/{batchId}")
+    public RESTfulResult getTruckDetailsByBatch(@PathVariable("batchId")BigDecimal batchId){
+        Map<String,Object> result=bmsportHandlingFeeService.getTruckDetailsByBatch(batchId);
+        if(result==null)
+            return failed("未查询到数据");
+        else
+            return  success(result);
+    }
+
+
+    /**
+     * 根据批次查询装船作业
+     * @param
+     * @return
+     */
+    @PostMapping("/findLoadByBatch/{batchId}")
+    public RESTfulResult findLoadByBatch(@PathVariable("batchId") BigDecimal batchId){
+        return success(bmsportHandlingFeeService.findLoadByBatch(batchId));
+    }
+
 }

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

@@ -54,4 +54,10 @@ public interface BmsportHandlingFeeMapper extends IBaseMapper<BmsportHandlingFee
 
     //根据id渲染数据
     List<Map<String, Object>> getBmsshipFee(Integer id);
+
+    List<Map<String, Object>> getTrainDetailsByBatch(Map map);
+
+    List<Map<String, Object>> getTruckDetailsByBatch(Map map);
+
+    List<Map<String,Object>> findLoadByBatch(Map map);
 }

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

@@ -81,4 +81,10 @@ public interface IBmsportHandlingFeeService {
     int updatePortHandlingFee(Map<String, Object> map);
 
     int deletePortHandlingFeeSecond(BigDecimal feeId);
+
+    Map<String, Object> getTrainDetailsByBatch(BigDecimal batchId);
+
+    Map<String, Object> getTruckDetailsByBatch(BigDecimal batchId);
+
+    List<Map<String, Object>> findLoadByBatch(BigDecimal batchId);
 }

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

@@ -12,6 +12,7 @@ import org.springframework.stereotype.Service;
 import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -178,9 +179,31 @@ public class BmsportHandlingFeeServiceImpl implements IBmsportHandlingFeeService
             bmsshipFee.setUnitPriceId(DataChange.dataToBigDecimal(map.get("unitPriceId")));
             if (DataChange.dataToBigDecimal(map.get("fee")).compareTo(Fee) == 0) {
                 bmsshipFee.setFee(Fee);
-            } else {
+            }else {
+                return -2;
+            }
+        }else if(DataChange.dataToBigDecimal(map.get("feeType")).intValue() == 3){
+            List<Map<String,Object>>  mapList=(List<Map<String,Object>>)map.get("mapList");
+            BigDecimal totalFee=new BigDecimal("0");
+            BigDecimal totalWeight=new BigDecimal("0");
+            for(Map<String,Object> temp:mapList){
+                totalFee=totalFee.add(
+                        DataChange.dataToBigDecimal(temp.get("unitPrice")).multiply(
+                                DataChange.dataToBigDecimal(temp.get("resultActualInstallations"))
+                        )
+                );
+                totalWeight=totalWeight.add(DataChange.dataToBigDecimal(temp.get("resultActualInstallations")));
+            }
+            if(totalFee.setScale(2,BigDecimal.ROUND_HALF_UP).compareTo(DataChange.dataToBigDecimal(map.get("fee")).setScale(2,BigDecimal.ROUND_HALF_UP))==0){
+                bmsshipFee.setFee(totalFee);
+            }else{
                 return -2;
             }
+            if(totalWeight.setScale(2,BigDecimal.ROUND_HALF_UP).compareTo(tonnage.setScale(2,BigDecimal.ROUND_HALF_UP))==0){
+                bmsshipFee.setRealTonnage(totalWeight);
+            }else{
+                return -3;
+            }
         }else {
             bmsshipFee.setFee(DataChange.dataToBigDecimal(map.get("fee")));
         }
@@ -276,5 +299,32 @@ public class BmsportHandlingFeeServiceImpl implements IBmsportHandlingFeeService
         return bmsshipFeeMapper.updateByPrimaryKeySelective(bmsshipFee);
     }
 
+    @Override
+    public Map<String, Object> getTrainDetailsByBatch(BigDecimal batchId) {
+        Map<String,Object> map=new HashMap<>();
+        map.put("batchId",batchId);
+        List<Map<String,Object>> list=bmsportHandlingFeeMapper.getTrainDetailsByBatch(map);
+        if(list!=null && list.size()>0)
+            return list.get(0);
+        else
+            return null;
+    }
+
+    @Override
+    public Map<String, Object> getTruckDetailsByBatch(BigDecimal batchId) {
+        Map<String,Object> map=new HashMap<>();
+        map.put("batchId",batchId);
+        List<Map<String,Object>> list=bmsportHandlingFeeMapper.getTruckDetailsByBatch(map);
+        if(list!=null && list.size()>0)
+            return list.get(0);
+        else
+            return null;
+    }
 
+    @Override
+    public List<Map<String, Object>> findLoadByBatch(BigDecimal batchId) {
+        Map<String,Object> map=new HashMap<>();
+        map.put("batchId",batchId);
+        return bmsportHandlingFeeMapper.findLoadByBatch(map);
+    }
 }

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

@@ -557,4 +557,85 @@
         ON APO.PURCHASE_ORDER_ID=BF.PURCHASE_ORDER_ID
         WHERE  BF.RESULT_ID = #{id}
     </select>
+
+    <select id="getTrainDetailsByBatch" resultType="java.util.Map" >
+        select TLR.BATCH_ID "batchId",--批次id
+               RM.MATERIAL_NAME "materialName",--物资名
+               DB.RESULT_FOREIGN_SHIP_NAME "resultForeignShipName",--外轮船名
+               SUM(TWR.RESULT_NET_WEIGHT) "realWeight",--到厂净重之和
+               SUM(TLR.RESULT_BILLABLE_TONNAGE) "totalWeight",--总计费吨位
+               COUNT(*) "wagonNum"--车皮数量
+        from TMSTRAIN_LOADING_RESULT TLR
+                 LEFT JOIN DIL_BATCH DB
+                           ON TLR.BATCH_ID=DB.BATCH_ID
+                 LEFT JOIN RMS_MATERIAL RM
+                           ON DB.MATERIAL_ID=RM.MATERIAL_ID
+                 LEFT JOIN TMSTRAIN_TOTAL_RESULT TTR
+                           ON TLR.RESULT_ID=TTR.LOADING_ID
+                 LEFT JOIN TMSTRAIN_WEIGHT_RESULT TWR
+                           ON TWR.RESULT_TOTAL_ID=TTR.TOTAL_RESULT_ID
+        GROUP BY TLR.BATCH_ID,DB.RESULT_FOREIGN_SHIP_NAME ,RM.MATERIAL_NAME
+        <if test="batchId!=null and batchId!=0">
+            HAVING TLR.BATCH_ID=#{batchId}
+        </if>
+    </select>
+
+    <select id="getTruckDetailsByBatch" resultType="java.util.Map">
+        select DB.BATCH_ID "batchId",
+        RM.MATERIAL_NAME "materialName",
+        DB.RESULT_FOREIGN_SHIP_NAME "resultForeignShipName",
+        SUM(TWR.RESULT_NET_WEIGHT) "realWeight",
+        COUNT(*) "carNum"
+        from TMSTRUCK_WEIGHT_RESULT TWR --汽运计量
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR --汽运总实绩
+        ON  TWR.RESULT_TOTAL_ID=TTR.RESULT_TOTAL_ID
+        LEFT JOIN OMSTRUCK_ORDER OO --运输订单
+        ON OO.ORDER_ID=TTR.ORDER_ID
+        LEFT JOIN AMSTRUCK_INWARD_PLAN AIP--内转运输计划
+        ON AIP.PLAN_ID = OO.ORDER_PLAN_ID
+        LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP--需求计划中间表
+        ON ARP.PLAN_ID = AIP.PLAN_ID
+        LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR
+        ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
+        LEFT JOIN AMS_PURCHASE_ORDER APO --采购订单号
+        ON APO.PURCHASE_ORDER_ID = AIR.PURCHASE_ORDER_ID
+        LEFT JOIN DIL_BATCH DB --批次表
+        ON APO.BATCH_ID=DB.BATCH_ID
+        LEFT JOIN RMS_MATERIAL RM --物资表
+        ON DB.MATERIAL_ID=RM.MATERIAL_ID
+        WHERE DB.RESULT_FOREIGN_SHIP_NAME IS NOT NULL
+        AND DB.BATCH_ID IS NOT NULL
+        AND RM.MATERIAL_NAME IS NOT NULL
+        GROUP BY DB.BATCH_ID,RM.MATERIAL_NAME,DB.RESULT_FOREIGN_SHIP_NAME
+        <if test="batchId!=null and batchId!=0">
+            HAVING DB.BATCH_ID=#{batchId}
+        </if>
+    </select>
+
+    <select id="findLoadByBatch" resultType="java.util.Map">
+        SELECT 	db.BATCH_ID "batchId",
+                  db.RESULT_FOREIGN_SHIP_NAME "resultForeignShipName",
+                  tlsr.RESULT_LOAD_SHIP_DATE  "resultLoadShipDate",
+                  tlsr.RESULT_OUT_PORT_TIME  "resultOutPortTime",
+                  SUM(tlsr.RESULT_ACTUAL_INSTALLATIONS) "resultActualInstallations"
+        FROM TMSSHIP_LOAD_SHIP_RESULT tlsr
+                 LEFT JOIN TMSSHIP_TOTAL_RESULT ttr
+                           ON ttr.RESULT_ID = tlsr.TOTAL_RESULT_ID
+                 LEFT JOIN OMSSHIP_INSTRUCTIONS_CAPACITY oic
+                           ON oic.INSTRUCTIONS_CAPACITY_ID = ttr.ORDER_ID
+                 LEFT JOIN OMSSHIP_SHIPMENT_INSTRUCTIONS osi
+                           ON osi.SHIPMENT_INSTRUCTIONS_ID = oic.INSTRUCTIONS_ID
+                 LEFT JOIN DIL_BATCH_INFACOTRY dbi
+                           ON dbi.BATCH_INFACOTRY_ID = osi.BATCH_ID
+                 LEFT JOIN DIL_BATCH db
+                           ON db.BATCH_ID = dbi.BATCH_ID
+                 LEFT JOIN TMSSHIP_WATER_QUALITY_RESULT twqr
+                           ON ttr.RESULT_ID = twqr.TOTAL_RESULT_ID
+        GROUP BY tlsr.RESULT_LOAD_SHIP_DATE ,tlsr.RESULT_OUT_PORT_TIME,db.RESULT_FOREIGN_SHIP_NAME,db.BATCH_ID
+        <if test="batchId!=null and batchId!=0">
+            HAVING  db.BATCH_ID=#{batchId}
+        </if>
+    </select>
+
+
 </mapper>