Browse Source

更新倒垛

hujh 3 years ago
parent
commit
ece619dc15

+ 48 - 32
src/main/java/com/steerinfo/dil/controller/WmsInboundResultController.java

@@ -66,7 +66,8 @@ public class WmsInboundResultController extends BaseRESTfulController {
 
     @Autowired
     ICommonService commonService;
-
+    @Autowired
+    WmsInboundScanResultServiceImpl wmsInboundScanResultService;
 
     /**
      * 展示入库实绩
@@ -128,14 +129,6 @@ public class WmsInboundResultController extends BaseRESTfulController {
     @PostMapping("/insertInboundResult")
     @Transactional
     public  RESTfulResult addInvoice(@RequestParam("userName") String userName,@RequestParam("groupId") BigDecimal groupId,@RequestParam("personnelWorkshopid") BigDecimal personnelWorkshopid, @RequestBody(required = false) List<Map<String, Object>> mapList) {
-        //首先做的判断处理
-        //由于钢材是分批次、一批四件的(有特殊情况不是一批四件)
-        //所以需要设置他们批次不能跨越一个应该是相连的,如果批次跨过两个说明有一个多按了一次,或者是有了一个人少按了一次,所以需要少下发的和多下发的对齐。
-        //使两个人批次相同
-
-        //查询当前分组下次最新的一次下发、
-        // 第一、判断库状态是否是下发中的
-        // 第二、判断自己上一组是否完成,如果上一组已经完成则开始下一组、没有完成给一点提示
         //查询当前组最新得一条入库实绩、判断是否是自己创建得、状态是否是带下发状态
         Map<String,Object> conditionMap=wmsInboundResultServiceImpl.selectInboundResultByGroupId(groupId);
         //如果最新的一条是自己的并且
@@ -143,15 +136,15 @@ public class WmsInboundResultController extends BaseRESTfulController {
         int batch=0;
         //此条件成了说明他提交之后、另外一个还没提交交
         if ((conditionMap!=null&&conditionMap.get("userName").toString().equals(userName)&&conditionMap.get("resultStatus").toString().equals("1"))){
-            return success("请勿重复提交");
+            return success("等待提交");
         }
+
         //此条件成了说明第二个人开始提交了
         if (conditionMap!=null&&!conditionMap.get("userName").toString().equals(userName)&&conditionMap.get("resultStatus").toString().equals("1")){
-                //获得第一个人的批次
             //将下面的订单都录入这个批次里面
             for (int i=0;i<mapList.size();i++){
                 Map<String,Object> item=mapList.get(i);
-                //二、获得同一批的第i个的网格  解释:目前还没有设计出来网格的结构 没有做默认为 第一库、第一月台、第一垛位、第一行、第一列 \推送信息给行车工、让他们抢单代码备注了
+                //获得同一批的第i个的网格  解释:目前还没有设计出来网格的结构 没有做默认为 第一库、第一月台、第一垛位、第一行、第一列 \推送信息给行车工、让他们抢单代码备注了
                 BigDecimal houseGrid = wmsInboundResultServiceImpl.getGrid(conditionMap.get("distributeId").toString(), i+1);
                 //如果差不多、说明上一个人少扫了一次
                 if (houseGrid==null){
@@ -159,9 +152,8 @@ public class WmsInboundResultController extends BaseRESTfulController {
                     //创建实时库存
                     wmspGridMaterialService.initInsertWmspGridMaterial(item,houseGrid);
                 }
-                //遗留 批次、网格
-                //三、创建一个入库作业实绩
-                WmspInboundResult wmspInboundResult = wmsInboundResultServiceImpl.initAndWmspInboundResult(i+1,personnelWorkshopid,groupId,userName,new BigDecimal(conditionMap.get("distributeId").toString()),houseGrid,item);
+                //创建一个入库作业实绩
+                WmspInboundResult wmspInboundResult = wmsInboundResultServiceImpl.initAndWmspInboundResult(0,i+1,personnelWorkshopid,groupId,userName,new BigDecimal(conditionMap.get("distributeId").toString()),houseGrid,item);
                 //改变扫码实绩里面的状态
                 int status= wmsInboundScanResultServiceImpl.updateInboundScanStatus(new BigDecimal(item.get("resultId").toString()),wmspInboundResult.getInboundId());
                 //当都完成的时候就要去改变这一批的状态改为下发状态
@@ -169,33 +161,57 @@ public class WmsInboundResultController extends BaseRESTfulController {
                     int status2= wmsInboundResultServiceImpl.updateInboundStatus(new BigDecimal(conditionMap.get("distributeId").toString()));
                 }
             }
-                return success();
+               int status3= wmspInboundDistributeService.updateDistributeStatus(conditionMap.get("distributeId").toString());
+                return success("下发成功");
         //第n批第一次提交
         }else{
             //需要判断是否已经提交过了 通过resultId判断物质是否已经下发过了跳出、多次下发的结果
-            Integer resultStatus= wmsInboundScanResultServiceImpl.getResultStatusByResultId(mapList.get(0).get("resultId").toString());
+            int resultStatus= wmsInboundScanResultServiceImpl.getResultStatusByResultId(mapList.get(0).get("resultId").toString());
            if(resultStatus==1){
                return success("请勿重复下发");
            }
-            //第一、创建批次
+            //、创建批次
             WmspInboundDistribute  wmspInboundDistribute=wmspInboundDistributeService.initAndCreateInboundDistribute(personnelWorkshopid,groupId,userName,batch);
+            //判断物质是否是线材
+            BigDecimal count = wmsInboundScanResultService.selectMaterialTypeByMaterialId(new BigDecimal(mapList.get(0).get("materialId").toString()));
+            if (count!=null){
+                //将下面的订单都录入这个批次里面
+                for (int i=0;i<mapList.size();i++){
 
-           //将下面的订单都录入这个批次里面
-            for (int i=0;i<mapList.size();i++){
-                Map<String,Object> item=mapList.get(i);
-                //二、智能的设置好这批钢材的位置、网格图
-                //二、查询一个默认的网格  解释:目前还没有设计出来网格的结构 没有做默认为 第一库、第一月台、第一垛位、第一行、第一列 \推送信息给行车工、让他们抢单代码备注了
-                BigDecimal houseGrid = rmsPwarehouseGridService.selectGrid(mapList.size()-1, personnelWorkshopid);
-                //遗留 批次、网格
-                //三、创建一个入库作业实绩
-                WmspInboundResult wmspInboundResult = wmsInboundResultServiceImpl.initAndWmspInboundResult(i+1,personnelWorkshopid,groupId,userName,wmspInboundDistribute.getDistributeId(),houseGrid,item);
-                //改变扫码实绩里面的状态
-                int status= wmsInboundScanResultServiceImpl.updateInboundScanStatus(new BigDecimal(item.get("resultId").toString()),wmspInboundResult.getInboundId());
+                    Map<String,Object> item=mapList.get(i);
+                    //获得一个默认的网格  解释:目前还没有设计出来网格的结构 没有做默认为 第一库、第一月台、第一垛位、第一行、第一列 \推送信息给行车工、让他们抢单代码备注了
+                    BigDecimal houseGrid = rmsPwarehouseGridService.selectGrid(mapList.size()-1, personnelWorkshopid);
+                    //创建一个入库作业实绩
+                    WmspInboundResult wmspInboundResult = wmsInboundResultServiceImpl.initAndWmspInboundResult(0,i+1,personnelWorkshopid,groupId,userName,wmspInboundDistribute.getDistributeId(),houseGrid,item);
+                    //改变扫码实绩里面的状态
+                    int status= wmsInboundScanResultServiceImpl.updateInboundScanStatus(new BigDecimal(item.get("resultId").toString()),wmspInboundResult.getInboundId());
+                    //创建实时库存
+                    wmspGridMaterialService.initInsertWmspGridMaterial(item,houseGrid);
+
+                }
+            }else {
+                //如果是线材直接结束
+                //将下面的订单都录入这个批次里面
+                for (int i=0;i<mapList.size();i++) {
+
+                    Map<String, Object> item = mapList.get(i);
+                    //获得一个默认的网格  解释:目前还没有设计出来网格的结构 没有做默认为 第一库、第一月台、第一垛位、第一行、第一列 \推送信息给行车工、让他们抢单代码备注了
+                    BigDecimal houseGrid = rmsPwarehouseGridService.selectGrid(mapList.size() - 1, personnelWorkshopid);
+                    //创建一个入库作业实绩
+                    WmspInboundResult wmspInboundResult = wmsInboundResultServiceImpl.initAndWmspInboundResult(1, i + 1, personnelWorkshopid, new BigDecimal(0), userName, wmspInboundDistribute.getDistributeId(), houseGrid, item);
+                    //改变扫码实绩里面的状态
+                    int status = wmsInboundScanResultServiceImpl.updateInboundScanStatus(new BigDecimal(item.get("resultId").toString()), wmspInboundResult.getInboundId());
+                    //创建实时库存
+                    wmspGridMaterialService.initInsertWmspGridMaterial(item, houseGrid);
+                    //当都完成的时候就要去改变这一批的状态改为下发状态
+                    if(mapList.size()==i+1){
+                        int status2= wmsInboundResultServiceImpl.updateInboundStatus(wmspInboundDistribute.getDistributeId());
+                    }
+                }
+                int status3= wmspInboundDistributeService.updateDistributeStatus(wmspInboundDistribute.getDistributeId().toString());
 
-                //创建实时库存
-                wmspGridMaterialService.initInsertWmspGridMaterial(item,houseGrid);
             }
-            return success(null);
+            return success("下发成功");
         }
 
     }

+ 4 - 3
src/main/java/com/steerinfo/dil/controller/WmsInboundScanResultController.java

@@ -84,9 +84,10 @@ public class WmsInboundScanResultController extends BaseRESTfulController {
             //创建一个扫码实绩
             Map<String, Object>  wmspInboundScanResult =wmsInboundScanResultService.createInboundScanResultByResultMaterial(mapList.size(),map.get("userName").toString(),map.get("resultMaterial").toString());
             //判断是否创建成功、成功在添加
-            if (wmspInboundScanResult!=null){
-                mapList.add(wmspInboundScanResult);
-            }
+//            if (wmspInboundScanResult!=null){
+//                mapList.add(wmspInboundScanResult);
+//            }
+            mapList= wmsInboundScanResultService.noIssueScanResultList(map.get("userName").toString());
         }
 
         return success(mapList);

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

@@ -143,17 +143,17 @@ public class WmspOutboundResultController extends BaseRESTfulController {
             //通过装卸工工号查询装卸工名称
             //String personnelName = wmspOutboundResultService.getPersonnelNameByJobnumber(personnelJobNumber);
 
-            //拿到还没装货的物资id的第一条
-            BigDecimal materialId = (BigDecimal) orderList.get(0).get("materialId");
-            /**根据运输订单ID和物资id查询出库单(没有逻辑删除)
-             *          若orderNum大于0,则不是第一次扫描,已经新增出库单,返回详情信息
-             *          若orderNum等于0,则是第一次扫描,需要增加出库单,再返回详情信息
-             * */
-            Map<String,Object> map = new HashMap<>();
-            map.put("orderId",orderId);
-            map.put("materialId",materialId);
-            //初始化出库单详情信息
-            Map<String, Object> outBoundDetailedInfo=null;
+        //拿到还没装货的物资id的第一条
+        BigDecimal materialId = (BigDecimal) orderList.get(0).get("materialId");
+        /**根据运输订单ID和物资id查询出库单(没有逻辑删除)
+         *          若orderNum大于0,则不是第一次扫描,已经新增出库单,返回详情信息
+         *          若orderNum等于0,则是第一次扫描,需要增加出库单,再返回详情信息
+         * */
+        Map<String,Object> map = new HashMap<>();
+        map.put("orderId",orderId);
+        map.put("materialId",materialId);
+        //初始化出库单详情信息
+        Map<String, Object> outBoundDetailedInfo=null;
             int orderNum = wmspOutboundResultService.ExistWmspOutboundResult(map);
             if(orderNum == 0){
                 /**创建出库单实体*/

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

@@ -311,7 +311,7 @@ public class WmspRestackMakeResultController extends BaseRESTfulController {
     @ApiOperation(value = "创建倒垛单",notes = "管理员创建一个垛位倒另一个垛位的倒垛单,其中包括原来朵唯信息和物质类型")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "keeperId" ,dataType = "BigDecimal",value = "库管员ID"),
-            @ApiImplicitParam(name = "beforeLevel" ,dataType = "BigDecimal ",value = "倒垛层"),
+            @ApiImplicitParam(name = "beforeLevel" ,dataType = "String ",value = "倒垛层"),
             @ApiImplicitParam(name = "afterStackingId" ,dataType = "BigDecimal",value = "倒垛后垛位id"),
             @ApiImplicitParam(name = "afterWarehouseId" ,dataType = "BigDecimal",value = "仓库id"),
             @ApiImplicitParam(name = "afterBeforeStackingId" ,dataType = "BigDecimal",value = "倒垛前的垛位"),

+ 2 - 0
src/main/java/com/steerinfo/dil/mapper/WmspInboundDistributeMapper.java

@@ -14,4 +14,6 @@ public interface WmspInboundDistributeMapper extends IBaseMapper<WmspInboundDist
     Integer getDistributeStatus(Object distributeId);
 
     Integer grabDistribute(Map<String, Object> mapValue);
+
+    int updateDistributeStatus(String distributeId);
 }

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

@@ -57,7 +57,7 @@ public interface IWmsInboundResultService {
 
     String selectWarehouseName(BigDecimal bigDecimal);
 
-    WmspInboundResult initAndWmspInboundResult(Integer resultNumber,BigDecimal personnelWorkshopid,BigDecimal inboundGroupId,String userName, BigDecimal distributeId, BigDecimal gridId, Map<String, Object> item);
+    WmspInboundResult initAndWmspInboundResult(Integer complete, Integer resultNumber,BigDecimal personnelWorkshopid,BigDecimal inboundGroupId,String userName, BigDecimal distributeId, BigDecimal gridId, Map<String, Object> item);
 
     Map<String,Object> selectInboundResultByGroupId(BigDecimal groupId);
 

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

@@ -30,4 +30,6 @@ public interface IWmspInboundDistributeService extends IBaseService<WmspInboundD
 
     //    对展示的list集合进行处理
     List<Map<String ,Object>> getInboundList(List<Map<String ,Object>> list);
+
+    int updateDistributeStatus(String distributeId);
 }

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

@@ -168,7 +168,7 @@ public class RmsMaterialSteelServiceImpl implements IRmsMaterialSteelService {
         //设置物资主键ID
         rmsMaterialSteel.setMaterialSteelId(rmsMaterialSteelMapper.getCount());
         //设置物资id
-        rmsMaterialSteel.setMaterialId(new BigDecimal(mi.get("materialTypeId").toString()));
+        rmsMaterialSteel.setMaterialId(new BigDecimal(mi.get("materialId").toString()));
         //设置物资唯一编码
         rmsMaterialSteel.setMaterialOnlyCode(MaterialOnlyCode);
         //设置炉号

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

@@ -121,7 +121,7 @@ public class WmsInboundResultServiceImpl implements IWmsInboundResultService {
     }
 
     @Override
-    public WmspInboundResult initAndWmspInboundResult(Integer resultNumber,BigDecimal personnelWorkshopid,BigDecimal inboundGroupId,String userName, BigDecimal distributeId, BigDecimal gridId, Map<String, Object> item) {
+    public WmspInboundResult initAndWmspInboundResult(Integer complete, Integer resultNumber,BigDecimal personnelWorkshopid,BigDecimal inboundGroupId,String userName, BigDecimal distributeId, BigDecimal gridId, Map<String, Object> item) {
         WmspInboundResult wmspInboundResult=new WmspInboundResult();
         //1、给实绩属性赋值
         int orderNumber = count();
@@ -145,7 +145,7 @@ public class WmsInboundResultServiceImpl implements IWmsInboundResultService {
         //仓库id
         wmspInboundResult.setPersonnelWorkshopid(personnelWorkshopid);
         //入库是否完成(0:未完成,1:已完成)
-        wmspInboundResult.setInboundIscomplete(new BigDecimal(0));
+        wmspInboundResult.setInboundIscomplete(new BigDecimal(complete));
         //逻辑删除:1:删除;0:未删除
         wmspInboundResult.setResultDeleted(new BigDecimal(0));
         //入库日期

+ 6 - 1
src/main/java/com/steerinfo/dil/service/impl/WmspInboundDistributeServiceImpl.java

@@ -84,7 +84,7 @@ public class WmspInboundDistributeServiceImpl extends BaseServiceImpl<WmspInboun
         //判断这一批是否被其他人抢了
         Integer status= wmspInboundDistributeMapper.getDistributeStatus(mapValue.get("distributeId"));
         //如果没有被抢就设置位当前用户得单
-        if (status==1){
+        if (status==2){
             return wmspInboundDistributeMapper.grabDistribute(mapValue);
         }
         return 0;
@@ -148,4 +148,9 @@ public class WmspInboundDistributeServiceImpl extends BaseServiceImpl<WmspInboun
 //        返回过滤之后的list
         return result2;
     }
+
+    @Override
+    public int updateDistributeStatus(String distributeId) {
+        return wmspInboundDistributeMapper.updateDistributeStatus(distributeId);
+    }
 }

+ 10 - 0
src/main/java/com/steerinfo/dil/service/impl/WmspRestackMakeResultServiceImpl.java

@@ -264,6 +264,16 @@ public class WmspRestackMakeResultServiceImpl  implements IWmspRestackMakeResult
         }
         if (map.get("DistrubtionStatus").equals(1)){
             mapList = wmspRestackMakeResultMapper.selectRestackForPc2(map);
+//            将获取到的mapList中的完成状态用中文表示
+            for (Map<String, Object> map1: mapList){
+                BigDecimal resultStatus =(BigDecimal)map1.get("resultStatus");
+                if (resultStatus.equals(0)){
+                    map1.put("resultStatus","未完成");
+                }
+                if (resultStatus.equals(1)){
+                    map1.put("resultStatus","已完成");
+                }
+            }
         }
         return mapList;
     }

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

@@ -436,6 +436,7 @@ select rm.material_id "id",
 
   <select id="getMaterialId2" resultType="java.util.Map">
      select
+     rm.material_id "materialId",
      rm.MATERIAL_TYPE_ID "materialTypeId",
      rm.UNIT_OF_MEASURE_ID "unitOfMeasureId",
      rm.MATERIAL_CODE "materialCode",

+ 6 - 2
src/main/resources/com/steerinfo/dil/mapper/WmspInboundDistributeMapper.xml

@@ -410,13 +410,17 @@
   left join rms_material_steel rms on rms.MATERIAL_STEEL_ID=wir.material_Id
   left join rms_material rm on rm.material_Id=rms.material_Id
    where wir.INBOUND_DISTRIBUTE_ID in(  select * from(
-           select DISTRIBUTE_ID  from  WMSP_INBOUND_DISTRIBUTE where  RESULT_STATUS=1  and PERSONNEL_WORKSHOPID=#{personnelWorkshopid} order by insert_time asc
+           select DISTRIBUTE_ID  from  WMSP_INBOUND_DISTRIBUTE where  RESULT_STATUS=2  and PERSONNEL_WORKSHOPID=#{personnelWorkshopid} order by insert_time asc
     ) where rownum=1)
   </select>
   <select id="getDistributeStatus" resultType="java.lang.Integer">
        select RESULT_STATUS  from  WMSP_INBOUND_DISTRIBUTE where DISTRIBUTE_ID=#{distributeId}
   </select>
   <update id="grabDistribute">
-    update WMSP_INBOUND_DISTRIBUTE set DRIVING_ID=#{drivingId} , RESULT_STATUS='2' where DISTRIBUTE_ID=#{distributeId}
+    update WMSP_INBOUND_DISTRIBUTE set DRIVING_ID=#{drivingId} , RESULT_STATUS='3' where DISTRIBUTE_ID=#{distributeId}
+  </update>
+  <update id="updateDistributeStatus">
+     update WMSP_INBOUND_DISTRIBUTE
+        set RESULT_STATUS=2 where DISTRIBUTE_ID=#{distributeId}
   </update>
 </mapper>

+ 2 - 2
src/main/resources/com/steerinfo/dil/mapper/WmspInboundScanResultMapper.xml

@@ -1000,8 +1000,8 @@ where wisr.result_id = #{stackResultId}
         select count(*) from  WMSP_INBOUND_SCAN_RESULT wisr
         left join  WMSP_INBOUND_GROUP wig
         on wisr.inbound_Group_Id=wig.inbound_Group_Id
-        where (wig.USER_NAME_ONE ='${userName}' or wig.USER_NAME_TWO ='${userName}') and wig.state=1 and wisr.INSERT_USERNAME=#{userName}
-        and wisr.result_material=#{resultMaterial}
+        where ((wig.USER_NAME_ONE ='${userName}' or wig.USER_NAME_TWO ='${userName}') and wig.state=1 and wisr.INSERT_USERNAME=#{userName}
+        and wisr.result_material=#{resultMaterial} )
     </select>
     <!--查询已经扫描但是没有下发的-->
     <select id="noIssueScanResult" resultMap="BaseResultMap">

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

@@ -762,7 +762,7 @@
             join WMSP_INBOUND_RESULT wir
             on wisr.INBOUND_RESULT_ID = wir.INBOUND_ID
     where  (wir.RESULT_DELETED = 0 or  wor.RESULT_STATUS = 1)
-          or wosr.RESULT_MATERIAL = #{resultMaterial}
+          and wosr.RESULT_MATERIAL = #{resultMaterial}
   </select>
 
   <!--  通过物资物资唯一编码查询钢材物资表的物资Id-->