Browse Source

出库更改

Tiroble 3 years ago
parent
commit
3b25433245

+ 3 - 0
src/main/java/com/steerinfo/dil/controller/RmsMaterialController.java

@@ -9,6 +9,9 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.awt.*;
+import java.util.LinkedList;
+
 /**
  * @author luobang
  * @create 2021-10-10 17:59

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

@@ -156,6 +156,8 @@ public class WmsInboundResultController extends BaseRESTfulController {
                 //如果差不多、说明上一个人少扫了一次
                 if (houseGrid==null){
                     houseGrid = rmsPwarehouseGridService.selectGrid(mapList.size()-1, personnelWorkshopid);
+                    //创建实时库存
+                    wmspGridMaterialService.initInsertWmspGridMaterial(item,houseGrid);
                 }
                 //遗留 批次、网格
                 //三、创建一个入库作业实绩
@@ -177,7 +179,8 @@ public class WmsInboundResultController extends BaseRESTfulController {
            }
             //第一、创建批次
             WmspInboundDistribute  wmspInboundDistribute=wmspInboundDistributeService.initAndCreateInboundDistribute(personnelWorkshopid,groupId,userName,batch);
-            //将下面的订单都录入这个批次里面
+
+           //将下面的订单都录入这个批次里面
             for (int i=0;i<mapList.size();i++){
                 Map<String,Object> item=mapList.get(i);
                 //二、智能的设置好这批钢材的位置、网格图
@@ -188,6 +191,10 @@ public class WmsInboundResultController extends BaseRESTfulController {
                 WmspInboundResult wmspInboundResult = wmsInboundResultServiceImpl.initAndWmspInboundResult(i+1,personnelWorkshopid,groupId,userName,wmspInboundDistribute.getDistributeId(),houseGrid,item);
                 //改变扫码实绩里面的状态
                 int status= wmsInboundScanResultServiceImpl.updateInboundScanStatus(new BigDecimal(item.get("resultId").toString()));
+                //创建实时库存
+                wmspGridMaterialService.initInsertWmspGridMaterial(item,houseGrid);
+
+
             }
             return success(null);
         }

+ 52 - 0
src/main/java/com/steerinfo/dil/controller/WmsInboundScanResultController.java

@@ -91,6 +91,9 @@ public class WmsInboundScanResultController extends BaseRESTfulController {
 
         return success(mapList);
     }
+
+
+
     /**
      * 1.新增扫描吊牌实绩!!!此时入库实绩未生成
      * @param
@@ -291,4 +294,53 @@ public class WmsInboundScanResultController extends BaseRESTfulController {
         int result =wmsInboundScanResultService.changeInboundIscomplete(stackResultId);
         return success(result);
     }
+
+
+
+
+    /**
+     * 1.新增退货扫描吊牌实绩!!!此时入库实绩未生成
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "新增扫描吊牌实绩")
+    @PostMapping("/insertReboundScanResult")
+    @Transactional
+    public  synchronized RESTfulResult insertReboundScanResult(@RequestBody(required = false)Map<String,Object>map) throws ParseException {
+
+        //判断自己是否已经扫过了、并且没有出库过
+        int isExist= wmsInboundScanResultService.isExist2(map.get("userName").toString(),map.get("resultMaterial").toString().substring(0,map.get("resultMaterial").toString().length()-1));
+        //通过用户ID查询、当前扫描没有下发的物质、最终展示的集合
+        List<Map<String,Object>>mapList= wmsInboundScanResultService.noIssueScanResultList2(map.get("userName").toString());
+        if (isExist>0){
+            //如果已经被少扫过了返回扫码实绩集合
+            //返回结果显示
+            return failed(mapList);
+        }else {
+            //如果没有被扫
+            //创建一个扫码实绩
+            Map<String, Object>  wmspInboundScanResult =wmsInboundScanResultService.createInboundScanResultByResultMaterial2(mapList.size(),map.get("userName").toString(),map.get("resultMaterial").toString());
+            //判断是否创建成功、成功在添加
+            if (wmspInboundScanResult!=null){
+                mapList.add(wmspInboundScanResult);
+            }
+        }
+
+        return success(mapList);
+    }
+
+    /**
+     * 1.查看实时库存物质在实时库存里面没有出库的物质!!!
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "新增扫描吊牌实绩")
+    @PostMapping("/getReboundScanResultByResultMaterial")
+    @Transactional
+    public  synchronized RESTfulResult getReboundScanResultByResultMaterial(@RequestBody(required = false)Map<String,Object>map) throws ParseException {
+        //查询是否未出库
+        //如果没有出库就需要这件钢材放到未出库钢材集合里面
+        //返回回显给用户
+        return null;
+    }
 }

+ 8 - 0
src/main/java/com/steerinfo/dil/controller/WmsReboundResultController.java

@@ -102,4 +102,12 @@ public class WmsReboundResultController extends BaseRESTfulController {
         return success(a);
     }
 
+    //新增退库实绩
+    @PostMapping("/getReIssuedResult")
+    public RESTfulResult getReIssuedResult(@RequestBody Map<String, Object> map){
+
+        //新增退库扫描实绩
+        return success(map);
+    }
+
 }

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

@@ -125,4 +125,8 @@ public interface WmspInboundScanResultMapper extends IBaseMapper<WmspInboundScan
     int updataStatusByResultId(BigDecimal resultId);
 
     Integer getResultStatusByResultId(String resultId);
+
+    int isExist2(String userName, String resultMaterial);
+
+    List<Map<String, Object>> noIssueScanResultList2(String userName);
 }

+ 1 - 1
src/main/java/com/steerinfo/dil/model/WmspInboundScanResult.java

@@ -29,7 +29,7 @@ public class WmspInboundScanResult implements IBasePO<BigDecimal> {
     private BigDecimal loadId;
 
     /**
-     * 分组 ID(LOAD_ID,DECIMAL,0)
+     * 分组 ID(LOAD_ID,DECIMAL,0) 如果分组为空说明可能是退回、不需要扫两次的
      */
     @ApiModelProperty(value="分组 ID",required=false)
     private BigDecimal inboundGroupId;

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

@@ -125,4 +125,10 @@ public interface IWmsInboundScanResultService {
      int updateInboundScanStatus(BigDecimal resultId);
 
     Integer getResultStatusByResultId(String resultId);
+    //判断只扫一次的是否已经被扫过了
+    int isExist2(String userName, String substring);
+    //通过用户明查询只扫一次的集合
+     List<Map<String, Object>> noIssueScanResultList2(String userName);
+    //创建只扫一次的扫描实绩
+    Map<String, Object> createInboundScanResultByResultMaterial2(int size, String userName, String resultMaterial) throws ParseException;
 }

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

@@ -44,4 +44,6 @@ public interface IWmspGridMaterialService  {
 
    //修改物资钢材表的质量是否合格字段和逻辑删除
    int updateRmsMaterialSteelDemotion(Map<String, Object> map);
+
+    void initInsertWmspGridMaterial(Map<String, Object> item, BigDecimal houseGrid);
 }

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

@@ -333,4 +333,57 @@ public class WmsInboundScanResultServiceImpl implements IWmsInboundScanResultSer
     public Integer getResultStatusByResultId(String resultId) {
         return wmspInboundScanResultMapper.getResultStatusByResultId(resultId);
     }
+
+    @Override
+    public int isExist2(String userName, String resultMaterial) {
+        return wmspInboundScanResultMapper.isExist2(userName,resultMaterial);
+    }
+
+    @Override
+    public Map<String, Object> createInboundScanResultByResultMaterial2(int scanedCount, String userName, String resultMaterial) throws ParseException {
+        //创建入库扫描实绩、并且给对象赋值
+        WmspInboundScanResult wmspInboundScanResult=new WmspInboundScanResult();
+        //设置主键自增,这里需要修改
+        wmspInboundScanResult.setId(count());
+
+        //分组 只需要扫一次没有分组信息
+        //根据用户名和分组状态查询到分组信息
+//        BigDecimal groupId= wmspInboundGroupService.getGroupIdByUserName(userName);
+//        wmspInboundScanResult.setInboundGroupId(groupId);
+        //吊钢工扫描吊牌结果
+        wmspInboundScanResult.setResultMaterial(resultMaterial);
+        //扫描吊牌信息
+        wmspInboundScanResult.setResultLoadTime(new Date());
+        //新增钢材物资ID
+        Map<String,Object> materialSteel = rmsMaterialSteelService.insertRmsMaterialSteel2(resultMaterial);
+        wmspInboundScanResult.setMaterialId(new BigDecimal(materialSteel.get("materialSteelId").toString()));
+        //创建用户
+        //insertUsername
+        wmspInboundScanResult.setInboundAbnormalis(new BigDecimal(0));
+        //设置入库物资件数,默认一件
+        wmspInboundScanResult.setInboundMaterialNumber(new BigDecimal(1));
+        // 状态:0:未下发;1:已下发
+        wmspInboundScanResult.setResultStatus(new BigDecimal(0));
+        //吊钢工已扫物资次数 ,目前已扫描为没有下发的物质
+        //BigDecimal scanCount= wmspInboundScanResultMapper.getScanedNumber(userId);
+        wmspInboundScanResult.setResultNumber(new BigDecimal(scanedCount));
+        //逻辑删除:1:删除,0:未删除
+        wmspInboundScanResult.setResultDeleted(new BigDecimal(0));
+        //扫码用户
+        wmspInboundScanResult.setInsertUsername(userName);
+        //创建时间
+        wmspInboundScanResult.setInsertTime(new Date());
+        int status = wmspInboundScanResultMapper.insertSelective(wmspInboundScanResult);
+        //判断是否创建成功
+        if (status>0){
+            materialSteel.putAll(JSON.parseObject(JSON.toJSONString(wmspInboundScanResult),new TypeReference<Map<String,Object>>(){}));
+            return materialSteel;
+        }
+        return null;
+    }
+
+    @Override
+    public List<Map<String, Object>> noIssueScanResultList2(String userName) {
+        return wmspInboundScanResultMapper.noIssueScanResultList2(userName);
+    }
 }

+ 33 - 0
src/main/java/com/steerinfo/dil/service/impl/WmspGridMaterialServiceImpl.java

@@ -3,12 +3,14 @@ package com.steerinfo.dil.service.impl;
 import com.steerinfo.dil.mapper.WmspGridMaterialMapper;
 import com.steerinfo.dil.model.WmspGridMaterial;
 import com.steerinfo.dil.service.IWmspGridMaterialService;
+import com.steerinfo.dil.util.DataChange;
 import com.steerinfo.framework.mapper.IBaseMapper;
 import com.steerinfo.framework.service.impl.BaseServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -102,4 +104,35 @@ public class WmspGridMaterialServiceImpl  implements IWmspGridMaterialService {
         return wmspGridMaterialMapper.updateInboundStackByInboundId(inboundId);
     }
 
+    /**
+     * 创建实时库存
+     * @param item
+     * @param houseGrid
+     */
+    @Override
+    public void initInsertWmspGridMaterial(Map<String, Object> item, BigDecimal houseGrid) {
+          /*
+            插入一条网格物资中间表
+             */
+        WmspGridMaterial wmspGridMaterial = new WmspGridMaterial();
+        //设置主键ID
+        wmspGridMaterial.setGmId(wmspGridMaterialMapper.getCount());
+        wmspGridMaterial.setGridId(houseGrid);
+        wmspGridMaterial.setGmNumber(new BigDecimal(1));
+        wmspGridMaterial.setStandardDataId(new BigDecimal(1));
+        //设置网格物资表里面的物资ID
+        BigDecimal materialId= DataChange.dataToBigDecimal(item.get("materialId"));
+        wmspGridMaterial.setMaterialId(materialId);
+        //设置逻辑删除字段
+        wmspGridMaterial.setDeleted(new BigDecimal(0));
+        //设置常规字段
+        wmspGridMaterial.setInsertUsername("admin");
+        wmspGridMaterial.setInsertTime(new Date());
+        wmspGridMaterial.setUpdateUsername("admin");
+        wmspGridMaterial.setUpdateTime(new Date());
+        wmspGridMaterial.setInsertUpdateRemark("无");
+        wmspGridMaterial.setStatus(new BigDecimal(2));
+        insertWmspGridMaterial(wmspGridMaterial);
+    }
+
 }

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

@@ -1039,6 +1039,31 @@ where wisr.result_id = #{stackResultId}
     <select id="getResultStatusByResultId" resultType="java.lang.Integer">
         SELECT RESULT_STATUS_ FROM WMSP_INBOUND_SCAN_RESULT WHERE RESULT_ID=#{resultId}
     </select>
+    <select id="isExist2" resultType="java.lang.Integer">
+        select * from  WMSP_INBOUND_SCAN_RESULT wisr
+        left join  WMSP_INBOUND_RESULT wir
+        on wisr.INBOUND_RESULT_ID=wir.INBOUND_ID
+        where  wisr.result_material=#{resultMaterial} and wisr.INSERT_USERNAME =  #{userName} and wisr.inbound_Group_Id is null and wir.RESULT_DELETED ! =0
+    </select>
+    <select id="noIssueScanResultList2" resultType="java.util.Map">
+         select
+               rm.material_name             "materialName",
+               rm.material_specification    "materialSpecification",
+               rm.material_model            "materialMode",
+               rms.material_furnace_number  "materialFurnaceNo",
+               rms.material_production_date "materialProDate",
+               wisr.RESULT_ID as            "resultId",
+               wisr.INBOUND_ABNORMALIS     "abnormalis",
+               wisr.material_id as          "materialId"
+              from wmsp_inbound_scan_result wisr
+              left join rms_material_steel rms
+              on rms.material_steel_id = wisr.material_id
+              left join rms_material rm
+              on rm.material_id = rms.material_id
+              where wisr.INSERT_USERNAME = #{userName}
+              and wisr.RESULT_STATUS_ = 0
+              and wisr.inbound_Group_Id is null
+    </select>
 
 
 </mapper>