소스 검색

Merge branch 'master' of https://git.steerinfo.com/luobang/DIL-DAZHOU-WMS2

Tiroble 3 년 전
부모
커밋
07310f333f

+ 3 - 2
src/main/java/com/steerinfo/dil/controller/WmsInboundResultController.java

@@ -77,10 +77,10 @@ public class WmsInboundResultController extends BaseRESTfulController {
      * @param pageSize
      * @return
      */
-    @PostMapping("/getWmsInboundResult2")
+    @PostMapping("/getWmsInboundResult")
     @ApiOperation(value = "展示入库实绩信息")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "apiId", value = "90", required = false, dataType = "BigDecimal"),
+            @ApiImplicitParam(name = "apiId", value = "371", required = false, dataType = "BigDecimal"),
     })
     public RESTfulResult getWmsInboundResult(@RequestBody(required = false) Map<String, Object> mapValue,
                                              Integer apiId,
@@ -179,6 +179,7 @@ public class WmsInboundResultController extends BaseRESTfulController {
                 for (int i=0;i<mapList.size();i++){
 
                     Map<String,Object> item=mapList.get(i);
+
                     //获得一个默认的网格  解释:目前还没有设计出来网格的结构 没有做默认为 第一库、第一月台、第一垛位、第一行、第一列 \推送信息给行车工、让他们抢单代码备注了
                     BigDecimal houseGrid = rmsPwarehouseGridService.selectGrid(i+1, personnelWorkshopid);
                     //创建一个入库作业实绩

+ 3 - 28
src/main/java/com/steerinfo/dil/controller/WmspIvboundMakeResultController.java

@@ -91,7 +91,6 @@ public class WmspIvboundMakeResultController extends BaseRESTfulController {
      * @param pageNum
      * @param pageSize
      * @param apiId
-     * @param con
      * @return
      */
     @ApiImplicitParam("api:372")
@@ -99,34 +98,10 @@ public class WmspIvboundMakeResultController extends BaseRESTfulController {
     public RESTfulResult getIvboundMakeResultList(@RequestBody(required = false) Map<String, Object> mapVal,
                                                 Integer pageNum,
                                                 Integer pageSize,
-                                                Integer apiId,
-                                                String con) {
+                                                Integer apiId
+                                                ) {
 
-        if (con != null) {
-            if (!"undefined".equals(con)) {
-                String index = "get_ivbound_list";//设置要查询的索引名称
-                return success(esFeign.getConResult(mapVal, index, apiId, pageNum, pageSize, con));//获取查询结果
-            }
-        }
-
-        List<Map<String, Object>> libaryInBoundList = null;
-        if (mapVal.size() == 0) {
-            //将查询结果存入索引中
-            libaryInBoundList = wmspIvboundMakeResultService.getIvboundMakeResultList(mapVal);
-            Map<String, Object> map1 = new HashMap<>();
-            //添加索引
-            map1.put("index", "get_ivbound_list");
-            //添加id
-            map1.put("indexId", "resultId");
-            libaryInBoundList.add(map1);
-            //新建索引
-            esFeign.insertIndex(libaryInBoundList);
-            //删除
-            libaryInBoundList.remove(libaryInBoundList.size() - 1);
-        }
-        if (libaryInBoundList == null) {
-            libaryInBoundList = wmspIvboundMakeResultService.getIvboundMakeResultList(mapVal);
-        }
+        List<Map<String,Object>>libaryInBoundList = wmspIvboundMakeResultService.getIvboundMakeResultList(mapVal);
         PageHelper.startPage(pageNum, pageSize);
         List<Map<String, Object>> columnList = wmspIvboundMakeResultService.getIvboundMakeResultList(mapVal);
         PageListAdd pageList = columnDataUtil.tableColumnData(apiId, libaryInBoundList, columnList);

+ 1 - 3
src/main/java/com/steerinfo/dil/controller/WmspRestackMakeResultController.java

@@ -331,10 +331,8 @@ public class WmspRestackMakeResultController extends BaseRESTfulController {
 
     //PDA根据仓库id查找倒垛单
     @GetMapping("/selectRestackByWarehouseIds")
-    public  RESTfulResult selectRestackByWarehouseIds(@RequestParam(required = true) String warehouseid){
-
+    public  RESTfulResult selectRestackByWarehouseIds(@RequestParam(name = "warehouseid") String warehouseid){
         List<Map<String,Object>> list=wmspRestackMakeResultService.selectRestackByWarehouseIds( warehouseid);
-
         return  success(list);
     }
 

+ 12 - 0
src/main/java/com/steerinfo/dil/mapper/RmsPwarehouseGridMapper.java

@@ -2,10 +2,12 @@ package com.steerinfo.dil.mapper;
 
 import com.steerinfo.dil.model.RmsPwarehouseGrid;
 import com.steerinfo.framework.mapper.IBaseMapper;
+import io.swagger.models.auth.In;
 import org.apache.ibatis.annotations.MapKey;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.math.BigDecimal;
+import java.util.List;
 import java.util.Map;
 
 @Mapper
@@ -17,4 +19,14 @@ public interface RmsPwarehouseGridMapper extends IBaseMapper<RmsPwarehouseGrid,
     BigDecimal selectMaxId();
     BigDecimal selectGridId(Map<String, Object> map);
 
+    List<Map<String, Object>> getStackingId(Map<String,Object> map);
+
+    Integer getStackingStatus(BigDecimal stackingId);
+
+    Integer getCountMaterial(BigDecimal stackingId);
+
+    Integer getMaxStackingLayers(BigDecimal stackingId);
+
+    List<Map<String,Object>> getNullStackingId(Map<String,Object>map);
+
 }

+ 3 - 0
src/main/java/com/steerinfo/dil/service/IRmsPwarehouseGridService.java

@@ -26,6 +26,9 @@ public interface IRmsPwarehouseGridService {
     int updateByPrimaryKeySelective(RmsPwarehouseGrid rmsPwarehouseGrid);
     BigDecimal selectMaxId();
     BigDecimal getGridId(Map<String,Object>map);
+
+    //根据优先级和启用状态以及垛位上的物资ID来确定物资即将入库哪个垛位
+    Map<String, Object> getStackingId(Map<String, Object> map);
     //分配网格
     BigDecimal selectGrid(Integer size,BigDecimal warehouseId);
 }

+ 69 - 0
src/main/java/com/steerinfo/dil/service/impl/RmsPwarehouseGridServiceImpl.java

@@ -2,10 +2,12 @@ package com.steerinfo.dil.service.impl;
 import com.steerinfo.dil.mapper.RmsPwarehouseGridMapper;
 import com.steerinfo.dil.model.RmsPwarehouseGrid;
 import com.steerinfo.dil.service.IRmsPwarehouseGridService;
+import com.steerinfo.dil.util.DataChange;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import java.math.BigDecimal;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -56,6 +58,72 @@ public class RmsPwarehouseGridServiceImpl  implements IRmsPwarehouseGridService
        return rmsPwarehouseGridMapper.selectGridId(map);
     }
 
+    //根据优先级和启用状态以及垛位上的物资ID来确定物资即将入库哪个垛位
+    @Override
+    public Map<String,Object> getStackingId(Map<String, Object> map){
+        //获取入库的物资数量,物资编码
+        Integer materialNum = DataChange.dataToBigDecimal(map.get("materialNum")).intValue();
+        String materialCode = (String)map.get("materialCode");
+        Integer inboundSize = DataChange.dataToBigDecimal(map.get("materialSize")).intValue();
+        //获取入库的仓库
+        BigDecimal warehouseId = DataChange.dataToBigDecimal(map.get("warehouseId"));
+        //根据仓库ID和物资编码查询垛位,以及垛位的启用状态及优先级排序--->查询出垛位
+        List<Map<String,Object>> mapStackList = rmsPwarehouseGridMapper.getStackingId(map);
+        if(mapStackList.size() != 0){
+            int i = 0 ;
+            for (Map<String,Object>stackMap:mapStackList
+                 ) {
+                //获取垛位ID
+                BigDecimal stackingId = DataChange.dataToBigDecimal(stackMap.get("stackingId"));
+                //判断待入库的物资数量是否能放入该垛位-->根据实时库存判断该垛位装了多少物资,根据最大层数判断该垛位最大物资数
+                //已装物资数
+                Integer countMaterial = rmsPwarehouseGridMapper.getCountMaterial(stackingId);
+                //垛位最大层数
+                Integer maxStackingLayer = rmsPwarehouseGridMapper.getMaxStackingLayers(stackingId);
+                //待入库物资数与垛位已存在物资数比较,如果大于则跳出循环继续下一个
+                if((countMaterial + inboundSize)>(maxStackingLayer*24)){
+                    i++;
+                    continue;
+                }
+                Map<String, Object> mapStack = new HashMap<>();
+                mapStack.put("stackingId",stackingId);
+                return mapStack;
+            }
+            //如果i不等于0,则表明没有符合条件的垛位,则去寻找空垛位
+            if(i!=0){
+               return nullStackingId(map);
+            }
+        }
+        else{
+            nullStackingId(map);
+        }
+        return nullStackingId(map);
+    }
+
+    //查找空垛位
+    public Map<String,Object> nullStackingId(Map<String,Object>map){
+        //查找空垛位ID-->物资数量为0的垛位,根据实时库存来查找符合条件的
+        //查找这个仓库的所有垛位
+        List<Map<String,Object>>mapList = rmsPwarehouseGridMapper.getNullStackingId(map);
+        for (Map<String,Object>stackingMap:mapList
+             ) {
+            BigDecimal stackingId = DataChange.dataToBigDecimal(stackingMap.get("stackingId"));
+            //已装物资数
+            Integer countMaterial = rmsPwarehouseGridMapper.getCountMaterial(stackingId);
+            if(countMaterial!=0){
+                continue;
+            }
+            Map<String, Object> mapStack = new HashMap<>();
+            mapStack.put("stackingId",stackingId);
+            return mapStack;
+        }
+        Map<String, Object> nullMap = new HashMap<>();
+        nullMap.put("warn","没有符合条件的垛位");
+        return nullMap;
+    }
+
+
+
     @Override
     public BigDecimal selectGrid(Integer size,BigDecimal warehouseId) {
 
@@ -91,4 +159,5 @@ public class RmsPwarehouseGridServiceImpl  implements IRmsPwarehouseGridService
     }
 
 
+
 }

+ 1 - 25
src/main/java/com/steerinfo/dil/service/impl/RmsStackingServiceImpl.java

@@ -34,31 +34,6 @@ public class RmsStackingServiceImpl  implements IRmsStackingService {
 
     @Autowired
     IMFeign imFeign;
-
-
-//    /**
-//     * 查询垛位物资数/更新垛位
-//     * @return
-//     */
-////    @Scheduled(cron = "1 * * * * ?")
-//    @Override
-//    public Integer selectStacking() {
-//        Map<String, Integer>map1= rmsStackingMapper.selectStacking();
-//        HashMap<String, Integer> map2 = new HashMap<>();
-//        if (map1==null){
-//            map2.put("materialNumber",0);
-//            /*
-//            !!!剩余物资数不能写死
-//             */
-//            map2.put("remainNumber",192);
-//            return rmsStackingMapper.updateRmsStacking(map2);
-//        }
-//        else{
-//
-//            return  rmsStackingMapper.updateRmsStacking(map1);
-//        }
-//    }
-
     /**
      * 计算出放货的垛位
      * @param materialNumber
@@ -153,4 +128,5 @@ public class RmsStackingServiceImpl  implements IRmsStackingService {
       rmsStacking.setStackingStatus(stackingStatus);
       return rmsStackingMapper.updateByPrimaryKeySelective(rmsStacking);
     }
+
 }

+ 44 - 0
src/main/resources/com/steerinfo/dil/mapper/RmsPwarehouseGridMapper.xml

@@ -387,4 +387,48 @@
         </if>
       </where>
   </select>
+    <select id="getStackingId" resultType="java.util.LinkedHashMap">
+        select *
+        from (select distinct rpg.stacking_id "stackingId",rs.stacking_sequence
+          from rms_pwarehouse_grid rpg
+          left join wmsp_grid_material wgm
+            on wgm.grid_id = rpg.grid_id
+          left join rms_material_steel rms
+            on wgm.material_id = rms.material_steel_id
+          left join rms_material rm
+            on rm.material_id = rms.material_id
+          left join rms_stacking rs
+            on rs.stacking_id = rpg.stacking_id
+         where rpg.warehouse_id =  #{warehouseId}
+           and rm.material_code = #{materialCode}
+           and rs.stacking_status = 1
+         order by rs.stacking_sequence)
+ where rownum = 1
+    </select>
+  <select id="getStackingStatus" resultType="java.lang.Integer" parameterType="DECIMAL">
+        select rs.stacking_status
+        from rms_stacking rs
+        where rs.stacking_id = #{stackingId}
+  </select>
+  <select id="getCountMaterial" resultType="java.lang.Integer">
+        select count(*)
+        from wmsp_grid_material wgm
+        left join rms_pwarehouse_grid rpg
+        on rpg.grid_id = wgm.grid_id
+        where rpg.stacking_id = #{stackingId}
+        and wgm.deleted = 0
+  </select>
+  <select id="getMaxStackingLayers" resultType="java.lang.Integer">
+        select rs.stacking_max_layers
+        from rms_stacking rs
+        where rs.stacking_id = #{stackingId}
+  </select>
+  <select id="getNullStackingId" resultType="java.util.LinkedHashMap">
+        select distinct rs.stacking_id "stackingId", rs.stacking_sequence
+        from rms_pwarehouse_grid rpg
+        left join rms_stacking rs
+        on rs.stacking_id = rpg.stacking_id
+        where rpg.warehouse_id = #{warehouseId}
+        order by rs.stacking_sequence
+  </select>
 </mapper>

+ 1 - 1
src/main/resources/com/steerinfo/dil/mapper/RmsStackingMapper.xml

@@ -514,7 +514,7 @@
         set (rs.stacking_material_number, rs.stacking_remain_number)=
                 (select rs.stacking_material_number + 1,
                         rs.stacking_remain_number - 1
-                 from rms_stacking rs
+                 from rms_stackingrs
                  where rs.stacking_id = #{stackId})
         where rs.stacking_id = #{stackId}
     </update>

+ 8 - 4
src/main/resources/com/steerinfo/dil/mapper/WmspRestackMakeResultMapper.xml

@@ -1399,10 +1399,14 @@
            rw.WAREHOUSE_NAME "warehouseName"-- 当前下发的倒垛单的完成状态
           
            FROM WMSP_RESTACK_MAKE_RESULT wrme
-           LEFT JOIN WMSP_RESTACK_MAKE_MATERIAL wrmm ON wrmm.MAKE_RESULT_ID=wrme.RESULT_ID
-           LEFT JOIN RMS_STACKING rs ON rs.STACKING_ID=wrme.AFTER_STACKING_ID
-           LEFT JOIN RMS_STACKING rs2 ON rs2.STACKING_ID=wrme.AFTER_BEFORE_STACKING_ID
-           LEFT JOIN RMS_WAREHOUSE rw ON rw.WAREHOUSE_ID=wrme.AFTER_WAREHOUSE_ID
+           LEFT JOIN WMSP_RESTACK_MAKE_MATERIAL wrmm
+               ON wrmm.MAKE_RESULT_ID=wrme.RESULT_ID
+           LEFT JOIN RMS_STACKING rs
+               ON rs.STACKING_ID=wrme.AFTER_STACKING_ID
+           LEFT JOIN RMS_STACKING rs2
+               ON rs2.STACKING_ID=wrme.AFTER_BEFORE_STACKING_ID
+           LEFT JOIN RMS_WAREHOUSE rw
+               ON rw.WAREHOUSE_ID=wrme.AFTER_WAREHOUSE_ID
             WHERE wrme.DISTRIBUTIONSTATUS=1 and wrme.DELETED=0 and wrme.RESULT_STATUS=0 and wrme.AFTER_WAREHOUSE_ID=#{warehouseid}
     </select>
   <select id="getResultLoaderAudit" resultType="java.lang.Integer">