Tiroble 3 years ago
parent
commit
2b1a5ace89

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

@@ -253,6 +253,77 @@ public class WmsInboundResultController extends BaseRESTfulController {
         return success(pageList);
     }
 
+
+    /**
+     * 新增入库实绩
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation("新增入库实绩")
+    @PostMapping("/insertInboundResult4")
+    @Transactional
+    public  RESTfulResult addInvoice2(@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);
+        //判断物质是否是线材
+
+
+        //将下面的订单都录入这个批次里面
+        for (int i=0;i<mapList.size();i++){
+            BigDecimal count = wmsInboundScanResultService.selectMaterialTypeByMaterialId(new BigDecimal(mapList.get(0).get("materialId").toString()));
+            if (count!=null){
+                Map<String,Object> item=mapList.get(i);
+                // BigDecimal houseGrid = rmsPwarehouseGridService.selectGrid(mapList.size()-(i+1), personnelWorkshopid,new BigDecimal(item.get("materialId").toString()));
+                BigDecimal houseGrid = null;
+                if (personnelWorkshopid.compareTo(new BigDecimal(1))==0){
+                    houseGrid = new BigDecimal("12335");
+                }else if (personnelWorkshopid.compareTo(new BigDecimal(2))==0){
+                    houseGrid = new BigDecimal("24472");
+                }
+                //创建一个入库作业实绩
+                WmspInboundResult wmspInboundResult = wmsInboundResultServiceImpl.initAndWmspInboundResult(1,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());
+                }
+            }else {
+                //如果是线材直接结束
+                //将下面的订单都录入这个批次里面
+                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());
+        }
+        return success("下发成功");
+    }
     /**
      * 新增入库实绩
      *

+ 34 - 2
src/main/java/com/steerinfo/dil/controller/WmsInboundScanResultController.java

@@ -64,7 +64,7 @@ public class WmsInboundScanResultController extends BaseRESTfulController {
     @ApiOperation(value = "新增扫描吊牌实绩")
     @PostMapping("/insertResult")
     @Transactional
-    public  synchronized RESTfulResult insertScanResult(@RequestBody(required = false)Map<String,Object>map) throws ParseException {
+    public  synchronized RESTfulResult insertResult(@RequestBody(required = false)Map<String,Object>map) throws ParseException {
         //这里需要的参数包括 扫码人账号 userId、二维码信息 resultMaterial
         //首先判断二维码是否已经被扫过了
         //判断条件是查询扫描实绩判断是否已经存在改唯一标识码并且扫码人是否是自己
@@ -89,6 +89,38 @@ public class WmsInboundScanResultController extends BaseRESTfulController {
         return success(mapList);
     }
 
+    /**
+     * 1.新增扫描吊牌实绩!!!此时入库实绩未生成
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "新增扫描吊牌实绩")
+    @PostMapping("/insertScanResultGroup")
+    @Transactional
+    public  synchronized RESTfulResult insertScanResultGroup(@RequestBody(required = false)Map<String,Object>map) throws ParseException {
+        //这里需要的参数包括 扫码人账号 userId、二维码信息 resultMaterial
+        //首先判断二维码是否已经被扫过了
+        int isExist= wmsInboundScanResultService.isExistInboundScanResult(map.get("resultMaterial").toString().substring(0,map.get("resultMaterial").toString().length()-1));
+        //通过用户ID查询、当前扫描没有下发的物质、最终展示的集合
+        List<Map<String,Object>>mapList= wmsInboundScanResultService.noIssueScanResultList(map.get("userName").toString());
+        if (isExist>0){
+            //如果已经被少扫过了返回扫码实绩集合
+            //返回结果显示
+            return failed(mapList);
+        }else {
+            //如果没有被扫
+            //创建一个扫码实绩
+            Map<String, Object>  wmspInboundScanResult =wmsInboundScanResultService.createInboundScanResultByResultMaterial(mapList.size(),map.get("userName").toString(),map.get("resultMaterial").toString());
+            //判断是否创建成功、成功在添加
+//            if (wmspInboundScanResult!=null){
+//                mapList.add(wmspInboundScanResult);
+//            }
+            mapList= wmsInboundScanResultService.noIssueScanResultList(map.get("userName").toString());
+        }
+
+        return success(mapList);
+    }
+
 
 
     /**
@@ -99,7 +131,7 @@ public class WmsInboundScanResultController extends BaseRESTfulController {
     @ApiOperation(value = "新增扫描吊牌实绩")
     @PostMapping("/insertResult2")
     @Transactional
-    public  synchronized RESTfulResult insertResult(@RequestBody(required = false)Map<String,Object>map) throws ParseException {
+    public  synchronized RESTfulResult insertResult2(@RequestBody(required = false)Map<String,Object>map) throws ParseException {
         int i=0;
         WmspInboundScanResult wmspInboundScanResult = new WmspInboundScanResult();
         //获取工号查找id

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

@@ -183,7 +183,7 @@ public class WmspOutboundResultController extends BaseRESTfulController {
     @Transactional
     @PostMapping(value = "/insertwmspOutboundScanResult")
     public synchronized RESTfulResult insertwmspOutboundScanResult(@RequestBody(required = false) Map<String, Object> map) throws ParseException {
-        //判断物资是否满足要求,目前下三种不做处理的判断
+        //判断物资是否满足要求,目前下三种不做处理的判断
         //获取装卸工扫描吊牌结果   HRB400-14-21706854-9-3049-280-20211001015115-7a63cd87a4095e7f-08010103010100003-4
         String subResultMaterial = map.get("resultMaterial").toString().substring(0,map.get("resultMaterial").toString().length() - 1);
         //获取出库单号
@@ -197,11 +197,11 @@ public class WmspOutboundResultController extends BaseRESTfulController {
         //根据物资id查询相对应的入库实绩ID,并将其赋值给相对应的入库扫描实绩表,判断是否入库
         List<Map<String, Object>> list = wmspInboundScanResultMapper.getInboundResultIdByMaterial(subResultMaterial);
         if (list==null||list.size()==0){
-            Map<String, Object> inboundScanResultByResultMaterial = wmsInboundScanResultService.createInboundScanResultByResultMaterial(1, map.get("personnelJobNumber").toString(), map.get("resultMaterial").toString());
-            if (inboundScanResultByResultMaterial==null){
+            //Map<String, Object> inboundScanResultByResultMaterial = wmsInboundScanResultService.createInboundScanResultByResultMaterial(1, map.get("personnelJobNumber").toString(), map.get("resultMaterial").toString());
+           // if (inboundScanResultByResultMaterial==null){
                 //没有入库
                 return failed(-2);
-            }
+           // }
 
         }
         //判断物资是否是需要出库的物资类型,需要出库物资数量不等于0,通过物资唯一编码和出库实绩

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

@@ -131,4 +131,7 @@ public interface WmspInboundScanResultMapper extends IBaseMapper<WmspInboundScan
     List<Map<String, Object>> noIssueScanResultList2(String userName);
 //    根据物资Id查询相对应的入库实绩ID
     List<Map<String, Object>> getInboundResultIdByMaterial(String subResultMaterial);
+
+    int isExistInboundScanResult(String resultMaterial);
+    int isExistInboundTwo(String resultMaterial);
 }

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

@@ -131,4 +131,7 @@ public interface IWmsInboundScanResultService {
      List<Map<String, Object>> noIssueScanResultList2(String userName);
     //创建只扫一次的扫描实绩
     Map<String, Object> createInboundScanResultByResultMaterial2(int size, String userName, String resultMaterial) throws ParseException;
+
+    int isExistInboundScanResult(String substring);
+
 }

+ 6 - 0
src/main/java/com/steerinfo/dil/service/impl/WmsInboundScanResultServiceImpl.java

@@ -389,6 +389,12 @@ public class WmsInboundScanResultServiceImpl implements IWmsInboundScanResultSer
         return null;
     }
 
+    @Override
+    public int isExistInboundScanResult(String resultMaterial) {
+        int isExist = wmspInboundScanResultMapper.isExistInboundScanResult(resultMaterial);
+        return isExist;
+    }
+
     @Override
     public List<Map<String, Object>> noIssueScanResultList2(String userName) {
         return wmspInboundScanResultMapper.noIssueScanResultList2(userName);

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

@@ -462,11 +462,11 @@ public class WmspOutboundResultServiceImpl  implements IWmspOutboundResultServic
                     if (outBoundTypeDetailedInfos==null||outBoundTypeDetailedInfos.size()-cunt2==0){
                         int cunt3=wmspOutboundResultMapper.updateStatus(resultId);
                         //表示全部完成
-                        finishLoadResult(outBoundMaterialDetailedInfos.get(0), resultId);
+                        //finishLoadResult(outBoundMaterialDetailedInfos.get(0), resultId);
                         return 2;
                     }
                     //表示一项完成
-                    finishLoadResult(outBoundMaterialDetailedInfos.get(0), resultId);
+                    //finishLoadResult(outBoundMaterialDetailedInfos.get(0), resultId);
                     return cunt2;
                 }
 

+ 1 - 0
src/main/java/com/steerinfo/dil/vo/OutBoundMaterialDetailedInfo.java

@@ -8,6 +8,7 @@ public class OutBoundMaterialDetailedInfo {
 
     private String materialSteelId;
     private String onlyCode;
+    private String furnaceNumber;
     private String materialId;
     private String materialCode;
     private String materialName;

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

@@ -1078,6 +1078,19 @@ where wisr.result_id = #{stackResultId}
         on wisr.material_id=wgm.material_id
         where wgm.deleted=0 and wisr.RESULT_MATERIAL = #{subResultMaterial}
     </select>
+    <!--查询已经扫描但是没有下发的物质数量-->
+    <select id="isExistInboundScanResult" resultType="java.lang.Integer">
+        select count(*) from  WMSP_INBOUND_SCAN_RESULT wisr
+        where wisr.result_material=#{resultMaterial}
+    </select>
+    <select id="isExistInboundTwo" resultType="java.lang.Integer">
+        select count(*) from  WMSP_INBOUND_SCAN_RESULT wisr
+        left join RMS_MATERIAL_STEEL rms
+        on wisr.MATERIAL_ID=rms.MATERIAL_STEEL_ID
+        left join WMSP_GRID_MATERIAL wgm
+        on rms.MATERIAL_STEEL_ID=wgm.MATERIAL_ID
+        where wisr.result_material=#{resultMaterial} and (wgm.DELETED is null or wgm.DELETED='0')
+    </select>
 
 
 </mapper>

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

@@ -476,6 +476,7 @@
      distinct
       rms.MATERIAL_STEEL_ID "materialSteelId",
       rms.MATERIAL_ONLY_CODE "onlyCode",
+      rms.MATERIAL_FURNACE_NUMBER "furnaceNumber",
       RM.material_Id "materialId",
       RM.MATERIAL_CODE "materialCode",
       RM.MATERIAL_NAME "materialName",