فهرست منبع

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

zhouzh 3 سال پیش
والد
کامیت
c9efef7dbd

+ 11 - 4
src/main/java/com/steerinfo/dil/controller/WmspGridMaterialController.java

@@ -303,14 +303,21 @@ public class WmspGridMaterialController extends BaseRESTfulController {
             @ApiImplicitParam(name = "apiId", value = "443", required = false, dataType = "BigDecimal"),
     })
     @PostMapping("/getSteelMaterialModelList")
-    public  RESTfulResult getSteelMaterialModelList(Integer pageNum,
+    public  RESTfulResult getSteelMaterialModelList(@RequestBody(required = false) Map<String, Object> mapValue,
+                                                    Integer pageNum,
                                                    Integer pageSize,
                                                    Integer apiId,
                                                     Integer warehouseId,
-                                                    Integer status){
-        List<Map<String,Object>> columnList=wmspGridMaterialService.getSteelMaterialModelList(warehouseId,status);
+                                                    Integer status,
+                                                    String con){
+        mapValue.put("warehouseId",warehouseId);
+        mapValue.put("status",status);
+//        进行对钢材物资名称的模糊查询
+        String cons = "%"+con+"%";
+        mapValue.put("con",cons);
+        List<Map<String,Object>> columnList=wmspGridMaterialService.getSteelMaterialModelList(mapValue);
         PageHelper.startPage(pageNum,pageSize);
-        List<Map<String,Object>> mapList=wmspGridMaterialService.getSteelMaterialModelList(warehouseId,status);
+        List<Map<String,Object>> mapList=wmspGridMaterialService.getSteelMaterialModelList(mapValue);
         PageListAdd pageList = columnDataUtil.tableColumnData(apiId,columnList,mapList);
         return success(pageList);
     }

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

@@ -320,6 +320,18 @@ public class WmspRestackMakeResultController extends BaseRESTfulController {
                                                   @RequestParam("afterBeforeStackingId") BigDecimal afterBeforeStackingId,
                                                   @RequestParam("resultRemark")String resultRemark,
                                                   @RequestBody(required = false) List<Map<String,Object>> mps){
+
+//        判断当前用户填写的倒垛单的物资总件数是否超过了这个垛位的物资最大件数
+        Integer quantity = (Integer)mps.get(0).get("quantity");
+        HashMap<String,Object> map = new HashMap<>();
+        map.put("afterBeforeStackingId",afterBeforeStackingId);
+        map.put("afterWarehouseId",afterWarehouseId);
+        map.put("beforeLevel",beforeLevel);
+        Integer realQuantity = wmspRestackMakeResultService.getStackingMaxNumber(map);
+        if (quantity > realQuantity){
+//            当用户填写的垛位的数量超过了库存实际数量,则直接返回fail
+            return failed("物资件数填写不正确");
+        }
         //创建倒垛单和倒垛单类型
         WmspRestackMakeResult wmspRestackMakeResult= wmspRestackMakeResultService.createRestackMakeResult(keeperId,beforeLevel,afterStackingId,afterWarehouseId,afterBeforeStackingId,resultRemark,mps);
         return success(wmspRestackMakeResult);
@@ -329,7 +341,26 @@ public class WmspRestackMakeResultController extends BaseRESTfulController {
     @GetMapping("/selectRestackByWarehouseIds")
     public  RESTfulResult selectRestackByWarehouseIds(@RequestParam(name = "warehouseid") String warehouseid){
         List<Map<String,Object>> list=wmspRestackMakeResultService.selectRestackByWarehouseIds( warehouseid);
-        return  success(list);
+        List<Map<String ,Object>> newList = new ArrayList<>();
+        for (Map<String ,Object> map:list){
+            BigDecimal quantity = (BigDecimal) map.get("quantity");
+            BigDecimal totalQuantity = (BigDecimal) map.get("totalQuantity");
+            BigDecimal count = (BigDecimal) map.get("count");
+            if (totalQuantity.subtract(quantity).compareTo(count)!=0){
+//                当当前订单的总数量与剩余数量不符合的时候,将订单的状态进行改变
+//                创建倒垛实绩类
+                WmspRestackMakeResult wmspRestackMakeResult = new WmspRestackMakeResult();
+                wmspRestackMakeResult.setResultId((BigDecimal) map.get("resultId"));
+                wmspRestackMakeResult.setQuantity(new BigDecimal(0));
+                wmspRestackMakeResult.setResultStatus(new BigDecimal(1));
+                wmspRestackMakeResultService.changeRestackStatus(wmspRestackMakeResult);
+                //            清除当前map中的数据
+                map.clear();
+                continue;
+            }
+            newList.add(map);
+        }
+        return  success(newList);
     }
 
     //    改变当前订单中已经稽核的吊牌

+ 1 - 1
src/main/java/com/steerinfo/dil/mapper/WmspCheckWarehouseMapper.java

@@ -17,5 +17,5 @@ public interface WmspCheckWarehouseMapper extends IBaseMapper<WmspCheckWarehouse
 //    查找钢材物资信息
     List<Map<String, Object>> getSteelMaterialList(Map<String,Object> map);
     //    查找钢材物资规格型号信息以及当前仓储在今天的最大预留量
-    List<Map<String, Object>> getSteelMaterialModelList(Integer warehouseId,Integer status);
+    List<Map<String, Object>> getSteelMaterialModelList(Map<String, Object> map);
 }

+ 3 - 0
src/main/java/com/steerinfo/dil/mapper/WmspRestackMakeResultMapper.java

@@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
 import java.math.BigDecimal;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -63,4 +64,6 @@ public interface WmspRestackMakeResultMapper extends IBaseMapper<WmspRestackMake
     BigDecimal getQuantity(String restackMake);
 //    根据倒垛单查询这个倒垛下的所有已经扫描并且稽核成功的吊牌
     List<Map<String, Object>> getScanResultList(String restackMake);
+
+    Integer getStackingMaxNumber(HashMap<String, Object> map);
 }

+ 1 - 1
src/main/java/com/steerinfo/dil/service/IWmspGridMaterialService.java

@@ -59,7 +59,7 @@ public interface IWmspGridMaterialService  {
 
     int deleteGridMaterial(List<OutBoundMaterialDetailedInfo> thisMaterialDetailedInfos);
 
-    List<Map<String, Object>> getSteelMaterialModelList(Integer warehouseId,Integer status);
+    List<Map<String, Object>> getSteelMaterialModelList(Map<String,Object> map);
 //    新增入库转预留
     int insertReserved(String warehouseId, String materialCode, String materialSpecification, String materialModel, Integer quantity);
 //    新增预留转入库

+ 5 - 0
src/main/java/com/steerinfo/dil/service/IWmspRestackMakeResultService.java

@@ -3,6 +3,7 @@ package com.steerinfo.dil.service;
 import com.steerinfo.dil.model.WmspRestackMakeResult;
 
 import java.math.BigDecimal;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -55,4 +56,8 @@ public interface IWmspRestackMakeResultService {
     List<Map<String, Object>> selectRestackByWarehouseIds(String warehouseid);
 
     int changeRestackMakeResult(String restackMake);
+
+    Integer getStackingMaxNumber(HashMap<String, Object> map);
+
+    int changeRestackStatus(WmspRestackMakeResult wmspRestackMakeResult);
 }

+ 4 - 0
src/main/java/com/steerinfo/dil/service/impl/WmsInboundResultServiceImpl.java

@@ -42,6 +42,10 @@ public class WmsInboundResultServiceImpl implements IWmsInboundResultService {
     @Override
     public List<Map<String, Object>> getWmsInboundResultStatistics(Map<String, Object> mapValue, Integer warehouseId) {
         mapValue.put("warehouseId",warehouseId);
+        if(mapValue.size()==2){
+            mapValue.put("orderType","desc");
+            mapValue.put("orderField","newtime");
+        }
         List<Map<String, Object>> maps = wmspInboundResultMapper.getWmsInboundResultStatistics(mapValue);
         return maps;
     }

+ 13 - 10
src/main/java/com/steerinfo/dil/service/impl/WmspGridMaterialServiceImpl.java

@@ -341,8 +341,8 @@ public class WmspGridMaterialServiceImpl  implements IWmspGridMaterialService {
     }
 
     @Override
-    public List<Map<String, Object>> getSteelMaterialModelList(Integer warehouseId,Integer status) {
-        return wmspCheckWarehouseMapper.getSteelMaterialModelList(warehouseId,status);
+    public List<Map<String, Object>> getSteelMaterialModelList(Map<String,Object> map) {
+        return wmspCheckWarehouseMapper.getSteelMaterialModelList(map);
     }
     @Override
     public int deleteGridMaterial(List<OutBoundMaterialDetailedInfo> thisMaterialDetailedInfos) {
@@ -418,7 +418,8 @@ public class WmspGridMaterialServiceImpl  implements IWmspGridMaterialService {
         int CX=0;
         int i =0;
 //        遍历物资
-        for(Map<String, Object> map:list){
+        for(int j= 0; j<list.size();){
+            Map<String ,Object> map = list.get(j);
 //            2.计算物资在新垛位的目标层序
             BigDecimal stackingId = (BigDecimal) map.get("stackingId");
             //根据最新的垛位
@@ -435,9 +436,10 @@ public class WmspGridMaterialServiceImpl  implements IWmspGridMaterialService {
 //            创建仓储网格实体类
             RmsPwarehouseGrid rmsPwarehouseGrid = new RmsPwarehouseGrid();
             rmsPwarehouseGrid.setGridId((BigDecimal) map.get("gridId"));
+            rmsPwarehouseGrid.setStackingId(stackingId);
             rmsPwarehouseGrid.setGridGradationNumber(new BigDecimal(CC));
             rmsPwarehouseGrid.setGridSequenceNumber(new BigDecimal(CX));
-            i+= rmsPwarehouseGridMapper.updateByPrimaryKeySelective(rmsPwarehouseGrid);
+            rmsPwarehouseGridMapper.updateByPrimaryKeySelective(rmsPwarehouseGrid);
 
 //            3.修改倒垛单的数量
 //            创建倒垛实绩表
@@ -446,12 +448,12 @@ public class WmspGridMaterialServiceImpl  implements IWmspGridMaterialService {
             BigDecimal quantity = quantitys.subtract(new BigDecimal(1));
             wmspRestackMakeResult.setQuantity(quantity);
             wmspRestackMakeResult.setResultId((BigDecimal) map.get("restackId"));
-            i+= wmspRestackMakeResultMapper.updateByPrimaryKeySelective(wmspRestackMakeResult);
+            wmspRestackMakeResultMapper.updateByPrimaryKeySelective(wmspRestackMakeResult);
 //            4.判断当前倒垛单剩余数量是否小于等于0(小于则修改所有的符合条件的倒垛单状态),并且逻辑删除当前倒垛单
 
-            if (quantity.compareTo(new BigDecimal(0))==-1){
+            if (quantity.compareTo(new BigDecimal(0))==0){
 //                  当数量小于零的时候,将所有的入库扫描的实绩状态都变成已倒垛
-//                  查询该订单下的所有未倒垛的的订单
+//                  查询该订单下的所有未倒垛的的物资
                 List<Map<String,Object>> list1 = wmspRestackScanResultMapper.getResultId((BigDecimal) map.get("restackId"));
 //                  创建入库扫描实体类
                 for (Map<String,Object> map2:list1){
@@ -459,16 +461,17 @@ public class WmspGridMaterialServiceImpl  implements IWmspGridMaterialService {
                     WmspRestackScanResult wmspRestackScanResult = new WmspRestackScanResult();
                     wmspRestackScanResult.setResultId(resultId);
                     wmspRestackMakeResult.setResultStatus(new BigDecimal(1));
-                    i+=wmspRestackScanResultMapper.updateByPrimaryKeySelective(wmspRestackScanResult);
+                    wmspRestackScanResultMapper.updateByPrimaryKeySelective(wmspRestackScanResult);
                 }
 
 //                将该订单的状态变为已完成
                 WmspRestackMakeResult wmspRestackMakeResult1 = new WmspRestackMakeResult();
                 wmspRestackMakeResult1.setResultId((BigDecimal) map.get("restackId"));
                 wmspRestackMakeResult1.setResultStatus(new BigDecimal(1));
-                i+= wmspRestackMakeResultMapper.updateByPrimaryKeySelective(wmspRestackMakeResult1);
+                wmspRestackMakeResultMapper.updateByPrimaryKeySelective(wmspRestackMakeResult1);
             }
-            return i;
+            i++;
+            j++;
         }
         return i;
     }

+ 11 - 5
src/main/java/com/steerinfo/dil/service/impl/WmspRestackMakeResultServiceImpl.java

@@ -285,11 +285,7 @@ public class WmspRestackMakeResultServiceImpl  implements IWmspRestackMakeResult
     public List<Map<String, Object>> selectRestackForPc2(Integer DistrubtionStatus) {
         List<Map<String, Object>> mapList = new ArrayList<>();
         Map<String, Object> map =new HashMap<>();
-//        判断当前用户想要获取的是未下发或已下发的数据
-        if (DistrubtionStatus==0){
-            map.put("DistrubtionStatus",0);
-            mapList = wmspRestackMakeResultMapper.selectRestackForPc(map);
-        }
+
         if (DistrubtionStatus==1){
             map.put("DistrubtionStatus",1);
             mapList = wmspRestackMakeResultMapper.selectRestackForPc2(map);
@@ -383,4 +379,14 @@ public class WmspRestackMakeResultServiceImpl  implements IWmspRestackMakeResult
 
         return wmspGridMaterialService.updateWmspGridMaterials(materialScanTagMap,restackMake);
     }
+//    获取当前垛位的最大物资数量
+    @Override
+    public Integer getStackingMaxNumber(HashMap<String, Object> map) {
+        return wmspRestackMakeResultMapper.getStackingMaxNumber(map);
+    }
+//    修改倒垛单状态
+    @Override
+    public int changeRestackStatus(WmspRestackMakeResult wmspRestackMakeResult) {
+        return wmspRestackMakeResultMapper.updateByPrimaryKeySelective(wmspRestackMakeResult);
+    }
 }

+ 12 - 0
src/main/resources/com/steerinfo/dil/mapper/WmspCheckWarehouseMapper.xml

@@ -450,5 +450,17 @@
       ) table1
                        ON table1.code = RM.MATERIAL_CODE
       WHERE RPG.WAREHOUSE_ID = #{warehouseId} AND RM.MATERIAL_NAME IS NOT NULL
+      <if test="con!=null">
+        AND RM.MATERIAL_NAME LIKE (#{con})
+      </if>
+      <include refid="orderBy"></include>
     </select>
+    <sql id="orderBy">
+      <if test="orderField != null and orderField != ''">
+        order by "${orderField}"
+        <if test="orderType != null and orderType != ''">
+          ${orderType}
+        </if>
+      </if>
+    </sql>
 </mapper>

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

@@ -1568,6 +1568,8 @@
         table2.weight "weight",
         --                         炉号生产的第一件钢材时间
         table3.onetime "onetime",
+--         炉号生产的最新钢材时间
+        table3.newtime "newtime",
         --                         生产物资型号
         RM.MATERIAL_NAME || RM.MATERIAL_SPECIFICATION || '(' ||
         RM.MATERIAL_MODEL || ')' "materialName",
@@ -1627,6 +1629,7 @@
         LEFT JOIN(
         SELECT
         MIN(WIR4.INSERT_TIME) onetime,
+        MAX(WIR4.INSERT_TIME) newtime,
         MATERIAL_FURNACE_NUMBER  "furnaceNumber3"
         FROM
         WMSP_INBOUND_RESULT WIR4
@@ -1652,7 +1655,39 @@
             AND to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= WIR.INBOUND_TIME
             AND to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= WIR.INBOUND_TIME
         </if>
-        AND WIR.RESULT_DELETED = 0 ORDER BY table3.onetime ASC
+        AND WIR.RESULT_DELETED = 0
+        <where>
+            <if test="count != null">
+                and "count" in
+                <foreach collection="count" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="weight != null">
+                and "weight" in
+                <foreach collection="weight" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="onetime != null">
+                and "onetime" in
+                <foreach collection="onetime" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="materialName != null">
+                and "materialName" in
+                <foreach collection="materialName" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="furnaceNumber1 != null">
+                and "furnaceNumber1" in
+                <foreach collection="furnaceNumber1" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
         <include refid="orderBy"></include>
     </select>
 

+ 46 - 10
src/main/resources/com/steerinfo/dil/mapper/WmspRestackMakeResultMapper.xml

@@ -1412,15 +1412,30 @@
     <include refid="orderByInsertTime"></include>
   </select>
     <select id="selectRestackByWarehouseIds" resultType="java.util.Map">
-         SELECT wrme.RESULT_ID "resultId", -- 倒垛编号
-          wrme.RESULT_STACK_NUMBER "resultStackNumber", -- 倒垛单创建时间
-          wrme.INSERT_TIME "insertTime", -- 倒垛单下发时间
-          wrme.RESULT_KEEPER_ISSUE_TIME "resultKeeperIssueTime", -- 总件数
-          wrme.QUANTITY "quantity", -- 原层次
-          wrme.BEFORE_LEVEL "beforeLevel", -- 新垛位
-          rs.STACKING_NO "afterStackingNo", -- 原垛位
-          rs2.STACKING_NO "beforeStackingNo", -- 仓库名称
-           rw.WAREHOUSE_NAME "warehouseName"-- 当前下发的倒垛单的完成状态
+         SELECT
+                wrme.RESULT_ID "resultId",
+                -- 倒垛编号
+          wrme.RESULT_STACK_NUMBER "resultStackNumber",
+                -- 倒垛单创建时间
+          wrme.INSERT_TIME "insertTime",
+                -- 倒垛单下发时间
+          wrme.RESULT_KEEPER_ISSUE_TIME "resultKeeperIssueTime",
+                -- 剩余件数
+          wrme.QUANTITY "quantity",
+--                 总件数
+          wrme.TOTAL_QUANTITY "totalQuantity",
+                -- 原层次
+          wrme.BEFORE_LEVEL "beforeLevel",
+                -- 新垛位
+          rs.STACKING_NO "afterStackingNo",
+                -- 原垛位
+          rs2.STACKING_NO "beforeStackingNo",
+                -- 仓库名称
+           rw.WAREHOUSE_NAME "warehouseName",
+           -- 当前下发的倒垛单的完成状态
+           wrme.RESULT_STATUS "resultStatus",
+--                 该订单下已经稽核的数量但未完成的数量
+            table1.count "count"
           
            FROM WMSP_RESTACK_MAKE_RESULT wrme
            LEFT JOIN WMSP_RESTACK_MAKE_MATERIAL wrmm
@@ -1431,6 +1446,16 @@
                ON rs2.STACKING_ID=wrme.AFTER_BEFORE_STACKING_ID
            LEFT JOIN RMS_WAREHOUSE rw
                ON rw.WAREHOUSE_ID=wrme.AFTER_WAREHOUSE_ID
+            LEFT JOIN (
+             SELECT COUNT(WRSR.RESULT_ID) count,
+                    WRSR.RESULT_RESTACK_ID restackId
+             FROM WMSP_RESTACK_SCAN_RESULT WRSR
+                    LEFT JOIN WMSP_RESTACK_MAKE_RESULT WRMR2
+                              ON WRSR.RESULT_RESTACK_ID = WRMR2.RESULT_ID
+             WHERE WRSR.RESULT_LOADER_AUDIT = 1
+             GROUP BY WRSR.RESULT_RESTACK_ID
+             ) table1
+                ON wrme.RESULT_ID = table1.restackId
             WHERE wrme.DISTRIBUTIONSTATUS=1 and wrme.DELETED=0 and wrme.RESULT_STATUS=0 and wrme.QUANTITY>0 and wrme.AFTER_WAREHOUSE_ID=#{warehouseid}
     </select>
   <select id="getResultLoaderAudit" resultType="java.lang.Integer">
@@ -1470,7 +1495,18 @@
     ON WRMR.RESULT_ID = WRCR.RESULT_RESTACK_ID
     WHERE WRCR.RESULT_LOADER_AUDIT =1 AND WRCR.STATUS =1 AND WRMR.RESULT_STACK_NUMBER = #{restackMake}
   </select>
-  <!--  根据物资唯一id,逻辑删除对应的餐厨网格状态-->
+    <select id="getStackingMaxNumber" resultType="java.lang.Integer">
+        SELECT COUNT(*)
+        FROM RMS_PWAREHOUSE_GRID RPG
+--         关联仓储网格
+        LEFT JOIN WMSP_GRID_MATERIAL WGM
+        ON RPG.GRID_ID = WGM.GRID_ID
+        WHERE WGM.UPDATE_TIME IS NULL AND WGM.DELETED = 0  AND RPG.STACKING_ID =#{afterBeforeStackingId} AND RPG.WAREHOUSE_ID =#{afterWarehouseId}
+        <if test="beforeLevel!=null">
+            AND RPG.GRID_GRADATION_NUMBER = #{beforeLevel}
+        </if>
+    </select>
+    <!--  根据物资唯一id,逻辑删除对应的餐厨网格状态-->
   <update id="changeMaterialGrid">
     UPDATE WMSP_GRID_MATERIAL WGM SET WGM.DELETED = 1
     WHERE WGM.GRID_ID = #{gridId}

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

@@ -323,6 +323,7 @@
       rm.MATERIAL_MODEL "materialMode",
       rm.MATERIAL_LENGTH "materialLength",
       wrmr.QUANTITY "quantity",
+      wrmr.TOTAL_QUANTITY "totalQuantity",
       coun.num "count"
     from WMSP_RESTACK_MAKE_TYPE_RESULT  wrmtr
            left join rms_material rm