瀏覽代碼

明天环境

Tiroble 3 年之前
父節點
當前提交
5095354e67

+ 44 - 30
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);
         //如果最新的一条是自己的并且
@@ -145,13 +138,13 @@ public class WmsInboundResultController extends BaseRESTfulController {
         if ((conditionMap!=null&&conditionMap.get("userName").toString().equals(userName)&&conditionMap.get("resultStatus").toString().equals("1"))){
             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,7 +161,7 @@ public class WmsInboundResultController extends BaseRESTfulController {
                     int status2= wmsInboundResultServiceImpl.updateInboundStatus(new BigDecimal(conditionMap.get("distributeId").toString()));
                 }
             }
-                return success();
+                return success("下发成功");
         //第n批第一次提交
         }else{
             //需要判断是否已经提交过了 通过resultId判断物质是否已经下发过了跳出、多次下发的结果
@@ -177,25 +169,47 @@ public class WmsInboundResultController extends BaseRESTfulController {
            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());
+                    }
+                }
 
-                //创建实时库存
-                wmspGridMaterialService.initInsertWmspGridMaterial(item,houseGrid);
             }
-            return success(null);
+            return success("下发成功");
         }
 
     }

+ 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 - 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));
         //入库日期

+ 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}) or wisr.RESULT_STATUS_=1
     </select>
     <!--查询已经扫描但是没有下发的-->
     <select id="noIssueScanResult" resultMap="BaseResultMap">