Pārlūkot izejas kodu

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

胡半仙 3 gadi atpakaļ
vecāks
revīzija
66b52f2cc6

+ 74 - 0
src/main/java/com/steerinfo/dil/controller/WmsInboundResultController.java

@@ -168,6 +168,7 @@ public class WmsInboundResultController extends BaseRESTfulController {
         PageListAdd pageList = columnDataUtil.tableColumnData(apiId,inboundResultList,columnList);
         return success(pageList);
     }
+
     /**
      * 新增入库实绩
      *
@@ -178,6 +179,79 @@ 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) {
+
+            //遗留 查询批次、以及状态
+            int batch=0;
+            //需要判断是否已经提交过了 通过resultId判断物质是否已经下发过了跳出、多次下发的结果
+            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++){
+
+                    Map<String,Object> item=mapList.get(i);
+
+                    //获得一个默认的网格  解释:目前还没有设计出来网格的结构 没有做默认为 第一库、第一月台、第一垛位、第一行、第一列 \推送信息给行车工、让他们抢单代码备注了
+                    BigDecimal houseGrid = rmsPwarehouseGridService.selectGrid(mapList.size()-(i+1), personnelWorkshopid,new BigDecimal(item.get("materialId").toString()));
+                    //创建一个入库作业实绩
+                    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);
+                    //改为扫一次添加得代码
+                    //当都完成的时候就要去改变这一批的状态改为下发状态
+                    if(mapList.size()==i+1){
+                        int status2= wmsInboundResultServiceImpl.updateInboundStatus(wmspInboundDistribute.getDistributeId());
+                    }
+
+                }
+                //改为扫一次添加得代码
+                int status3= wmspInboundDistributeService.updateDistributeStatus(wmspInboundDistribute.getDistributeId().toString());
+            }else {
+                //如果是线材直接结束
+                //将下面的订单都录入这个批次里面
+                for (int i=0;i<mapList.size();i++) {
+                    Map<String, Object> item = mapList.get(i);
+                    //获得高线库
+                    HashMap<String, Object> map3 = new HashMap<>();
+                    map3.put("warehouseId",3);
+                    BigDecimal houseGrid=rmsPwarehouseGridService.getGridId(map3);;
+                    //创建一个入库作业实绩
+                    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());
+                // wmspSendReceiveService.addInBoundSendReceive();
+            }
+            return success("下发成功");
+
+
+    }
+    /**
+     * 新增入库实绩
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation("新增入库实绩")
+    @PostMapping("/insertInboundResult3")
+    @Transactional
+    public  RESTfulResult addInvoice3(@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);
         //如果最新的一条是自己的并且

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

@@ -443,6 +443,12 @@ public class WmspOutboundResultController extends BaseRESTfulController {
     @PostMapping("/outbountResultToSuccess")
     public RESTfulResult sureOutbount(@RequestParam BigDecimal resultId){
         int result = wmspOutboundResultService.sureOutbount(resultId);
+        if(result == 1){
+            return success(1,"该类型已出库");
+        }
+        if(result == 2){
+            return success(2,"该订单已出库");
+        }
         return success();
     }
     @ApiOperation(value = "出库(非0:成功,0:失败)")

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

@@ -82,7 +82,7 @@ public class WmspSendReceiveController extends BaseRESTfulController {
     }*/
 
     @PostMapping("addSendReceive")
-    @Scheduled(cron =  "0 30 23 * * ? ")
+    @Scheduled(cron =  "0 45 23 * * ? ")
     public RESTfulResult addSendReceive(){
         int result = iWmspSendReceiveService.addSendReceive();
         return success(result);

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

@@ -435,6 +435,8 @@ public class WmspOutboundResultServiceImpl  implements IWmspOutboundResultServic
             for (OutBoundTypeDetailedInfo typeDetailedInfo :outBoundTypeDetailedInfos){
                 //这一个类型的物资
                 List<OutBoundMaterialDetailedInfo> thisMaterialDetailedInfos=new  ArrayList<>();
+
+                //获得当前类型的已扫描数量
                 int count=0;
                 for (OutBoundMaterialDetailedInfo outBoundMaterialDetailedInfo: outBoundMaterialDetailedInfos){
                     if (typeDetailedInfo.getMaterialId().equals(outBoundMaterialDetailedInfo.getMaterialId())){
@@ -444,17 +446,21 @@ public class WmspOutboundResultServiceImpl  implements IWmspOutboundResultServic
                 }
                 //统计完数量赋值
                 typeDetailedInfo.setScanCodeNumber(count);
+
                 //统计,并且判断是否有某种物资已经扫满了
                 if (typeDetailedInfo.getNumber()==typeDetailedInfo.getScanCodeNumber()){
                     //如果有某一种物资扫满了,需要将这一类物资,在实时库存删除,并且修改出库物资类型状态,发送计量委托
                     int cunt= wmspGridMaterialService.deleteGridMaterial(thisMaterialDetailedInfos);
                     cunt2=wmspOutboundResultMaterialService.updateStatus(typeDetailedInfo.getResultMaterialId());
+                    //表示一项完成
+                    return 1;
                 }
                 //如果所以物资都已经结束,需要改变提货单状态
                 if (outBoundTypeDetailedInfos==null||outBoundTypeDetailedInfos.size()-cunt2==0){
                     int cunt3=wmspOutboundResultMapper.updateStatus(resultId);
                     //返回结果
-                    return cunt3;
+                    //表示全部完成
+                    return 2;
                 }
             }
             outBoundDetailed.setOutBoundMaterialDetailedInfos(outBoundMaterialDetailedInfos);

+ 1 - 1
src/main/resources/bootstrap.yml

@@ -1,7 +1,7 @@
 api.version: api/v1/wms
 spring:
   profiles:
-    include: ${SPRING_PROFILES:dev}
+    include: ${SPRING_PROFILES:prod}
   jackson:
     date-format: yyyy-MM-dd HH:mm:ss
     time-zone: GMT+8

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

@@ -1349,6 +1349,7 @@
     <update id="updateStatusByMaterilaId">
        update WMSP_INBOUND_RESULT set INBOUND_ISCOMPLETE = 1 where MATERIAL_ID=#{materialId}
     </update>
+<!--    and  wir.insert_time between sysdate and trunc(sysdate + 1, 'dd')-->
     <update id="updateStatusByMaterialId">
         update wmsp_inbound_result set INBOUND_ISCOMPLETE=2 where inbound_id in
           (
@@ -1356,9 +1357,14 @@
               select inbound_id from WMSP_INBOUND_RESULT wir
               left join rms_material_steel rms
               on wir.material_id = rms.material_steel_id
-              where rms.material_id=(select distinct material_id from rms_material_steel where material_steel_id =#{materialId} ) and INBOUND_ISCOMPLETE='1' and Rownum='1' and rms.UPDATE_TIME is null
+              left join WMSP_GRID_MATERIAL wgm
+              on wgm.MATERIAL_ID = rms.material_steel_id
+              where rms.material_id=(
+                  select distinct rms2.material_id from rms_material_steel rms2
+                  where material_steel_id =#{materialId}
+                ) and INBOUND_ISCOMPLETE='1'  and wgm.deleted ='0' and  wir.insert_time between sysdate and trunc(sysdate + 1, 'dd')
               order by wir.insert_time desc
-          )
+          ) where  Rownum='1'
         )
         
     </update>