zx %!s(int64=2) %!d(string=hai) anos
pai
achega
2215184b68

+ 16 - 0
src/main/java/com/steerinfo/dil/controller/TmstrainLoadingResultController.java

@@ -229,6 +229,22 @@ public class TmstrainLoadingResultController extends BaseRESTfulController {
         return success(tmstrainLoadingResultService.addTrainLoadResultForConverted(map));
     }
 
+    //内转物流新增装车
+    @ApiOperation(value = "进口矿港存库出库")
+    @PostMapping(value = "/addWarehouseOutResult")
+    public RESTfulResult addWarehouseOutResult(@RequestBody(required = false) Map<String, Object> map) {
+        int result = tmstrainLoadingResultService.addWarehouseOutResult(map);
+        if (result==-1){
+            return failed("港存库实时库存不够");
+        }
+        return success();
+    }
+
+
+
+
+
+
     /**
      * 内转物流通过主键查询车皮装车作业信息
      *

+ 5 - 0
src/main/java/com/steerinfo/dil/feign/WmshBoundFeign.java

@@ -23,4 +23,9 @@ public interface WmshBoundFeign {
 
     @PostMapping("api/v1/wmsh/wmshoutboundresults/addResult")
     Map<String, Object> addResult(@RequestBody(required = false) Map<String,Object> map);
+
+
+
+    @PostMapping("api/v1/wmsh/wmshgridmaterials/clearWmshGridMaterial")
+    Map<String, Object> clearWmshGridMaterial(@RequestBody(required = false) Map<String,Object> map);
 }

+ 7 - 0
src/main/java/com/steerinfo/dil/mapper/TmstrainLoadingResultMapper.java

@@ -54,6 +54,9 @@ public interface TmstrainLoadingResultMapper extends IBaseMapper<TmstrainLoading
     //通过装车实绩主键查询关联的物资信息与车牌号
     List<Map<String, Object>> getMaterialAndCarByLoadingId(Map<String, Object> map);
 
+    //根据采购订单号查找批次id
+    List<Map<String,Object>> getBatchInfocatoryByNo(String purchaseNo);
+
     //通过汽运总实绩ID查询装车中间表
     Integer getTrainTruckIdByTruckTotalId(BigDecimal resultTotalId);
 
@@ -83,4 +86,8 @@ public interface TmstrainLoadingResultMapper extends IBaseMapper<TmstrainLoading
 
     //根据物资名或订单号和外轮船名查询采购订单号
     List<Map<String,Object>> getPurchaseOrderList(Map<String,Object> map);
+
+    BigDecimal getPortIdByPortName(String portName);
+
+    BigDecimal getGridIdByPortAndBatch(Map<String, Object> map);
 }

+ 2 - 0
src/main/java/com/steerinfo/dil/service/ITmstrainLoadingResultService.java

@@ -64,4 +64,6 @@ public interface ITmstrainLoadingResultService{
 
     //根据物资名和外轮船名查询采购订单号
     List<Map<String,Object>> getPurchaseOrderList(Map<String,Object> map);
+
+    int addWarehouseOutResult(Map<String, Object> map);
 }

+ 50 - 9
src/main/java/com/steerinfo/dil/service/impl/TmstrainLoadingResultServiceImpl.java

@@ -319,19 +319,30 @@ public class TmstrainLoadingResultServiceImpl implements ITmstrainLoadingResultS
 
     /**
      * 添加港存库出库实绩
-     * @param tmstrainLoadingResult
+     * @param map2
      * @param batchId
      */
-    public void addOutWarehouse(TmstrainLoadingResult tmstrainLoadingResult, BigDecimal batchId){
+    public int addOutWarehouse(Map<String,Object> map2, BigDecimal batchId){
         Map<String, Object> map = new HashMap<>();
-        map.put("isClean",tmstrainLoadingResult.getResultIsclear());
-        map.put("resultTonnage", tmstrainLoadingResult.getResultBillableTonnage());
+        map.put("isClean",map2.get("isClean"));
+        map.put("resultMaterialNumber",map2.get("resultTonnage"));
         map.put("batchId", batchId);
-        //通过发站查询发站的所属港口
-        BigDecimal portId = tmstrainLoadingResultMapper.getPortIdBySendStationId(tmstrainLoadingResult.getSendStationId());
-        map.put("downSwimPortId", portId);
-        map.put("port", portId);
-        wmshBoundFeign.addResult(map);
+        //通过港口名称查找港口id
+        BigDecimal portId = tmstrainLoadingResultMapper.getPortIdByPortName((String) map2.get("portName"));
+        map.put("portId", portId);
+        //根据港口和批次查找唯一的港存库id
+        BigDecimal gridId = tmstrainLoadingResultMapper.getGridIdByPortAndBatch(map);
+        map.put("gmId",gridId);
+        if (map2.get("isClean").equals("清场")){
+            wmshBoundFeign.clearWmshGridMaterial(map);
+        }
+        else {
+            Map<String, Object> stringObjectMap = wmshBoundFeign.addResult(map);
+            if (!stringObjectMap.equals("")||stringObjectMap!=null){
+               return  -1;
+            }
+        }
+        return  1;
     }
 
     /**
@@ -579,4 +590,34 @@ public class TmstrainLoadingResultServiceImpl implements ITmstrainLoadingResultS
     public List<Map<String, Object>> getPurchaseOrderList(Map<String, Object> map) {
         return tmstrainLoadingResultMapper.getPurchaseOrderList(map);
     }
+
+
+    //万州港出库
+    @Override
+    @Transactional
+    public int addWarehouseOutResult(Map<String, Object> map) {
+        //根据车皮号计算标重
+        BigDecimal resultType =DataChange.dataToBigDecimal(map.get("resultType"));
+        List<Map<String,Object>> wagonList =(List<Map<String, Object>>) map.get("wagonList");
+        for (Map<String,Object> wagon:wagonList){
+            //根据车皮号计算车皮标重
+            String wagonNo =(String) wagon.get("wagonNo");
+            //根据采购订单号查找批次
+            String purchaseNo =(String) map.get("purchaseNo");
+            BigDecimal batchId=null;
+            List<Map<String, Object>> batchInfocatoryByNo = tmstrainLoadingResultMapper.getBatchInfocatoryByNo(purchaseNo);
+            if (batchInfocatoryByNo.size() >= 1){
+                Map<String, Object> map1 = batchInfocatoryByNo.get(0);
+                 batchId =DataChange.dataToBigDecimal(map1.get("batchId"));
+            }
+            int wagonWeight = calculateWagonWeight(wagonNo);
+            map.put("resultTonnage",wagonWeight);
+            //如果订单类型为采购进口矿火运(万州港---达州 || 万州港--老区轨道衡) 添加总车皮标重传输给港存库
+            if(resultType.intValue() == 1){
+                int i = addOutWarehouse(map, batchId);
+                return i;
+            }
+        }
+        return 0;
+    }
 }

+ 21 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstrainLoadingResultMapper.xml

@@ -1210,6 +1210,17 @@
     where APO.PURCHASE_ORDER_NO = #{purchaseOrderNo}
   </select>
 
+
+  <select id="getBatchInfocatoryByNo" parameterType="java.lang.String" resultType="java.util.Map">
+     select  DBI.BATCH_INFACOTRY_ID "batchId"
+     from AMS_PURCHASE_ORDER APO
+     LEFT JOIN DIL_BATCH DB
+     ON APO.BATCH_ID=DB.BATCH_ID
+     LEFT JOIN DIL_BATCH_INFACOTRY DBI
+     ON DB.BATCH_ID=DBI.BATCH_ID
+     WHERE  APO.PURCHASE_ORDER_NO = #{purchaseNo}
+  </select>
+
   <!-- 通过订单No查询订单Id -->
   <select id="getPurchaseOrderIdByPurOrderNo" resultType="java.math.BigDecimal">
     select APO.PURCHASE_ORDER_ID
@@ -1366,4 +1377,14 @@
     </if>
     )
   </select>
+  <select id="getPortIdByPortName" resultType="java.math.BigDecimal" parameterType="java.lang.String">
+    select  RP.PORT_ID "portId"
+    from RMS_PORT RP
+    WHERE  RP.PORT_NAME = #{portName}
+  </select>
+  <select id="getGridIdByPortAndBatch" resultType="java.math.BigDecimal" parameterType="java.util.Map">
+    select WGM.GM_ID "gmId"
+    from WMSH_GRID_MATERIAL WGM
+   WHERE  WGM.PORT_ID=#{portId} AND WGM.BATCH_ID = #{batchId}
+  </select>
 </mapper>