Browse Source

修改预留作业

Tiroble 3 năm trước cách đây
mục cha
commit
a7a2a2f9bd
25 tập tin đã thay đổi với 285 bổ sung62 xóa
  1. 7 0
      src/main/java/com/steerinfo/dil/controller/WmsInboundResultController.java
  2. 24 4
      src/main/java/com/steerinfo/dil/controller/WmspOutboundResultController.java
  3. 4 0
      src/main/java/com/steerinfo/dil/mapper/WmspGridMaterialMapper.java
  4. 6 0
      src/main/java/com/steerinfo/dil/mapper/WmspInboundResultMapper.java
  5. 2 0
      src/main/java/com/steerinfo/dil/mapper/WmspOutboundResultMapper.java
  6. 3 1
      src/main/java/com/steerinfo/dil/mapper/WmspOutboundResultMaterialMapper.java
  7. 2 2
      src/main/java/com/steerinfo/dil/mapper/WmspOutboundScanResultMapper.java
  8. 28 18
      src/main/java/com/steerinfo/dil/model/WmspOutboundResultMaterial.java
  9. 6 0
      src/main/java/com/steerinfo/dil/service/IWmsInboundResultService.java
  10. 3 0
      src/main/java/com/steerinfo/dil/service/IWmspGridMaterialService.java
  11. 2 1
      src/main/java/com/steerinfo/dil/service/IWmspOutboundResultMaterialService.java
  12. 2 0
      src/main/java/com/steerinfo/dil/service/IWmspOutboundResultService.java
  13. 1 1
      src/main/java/com/steerinfo/dil/service/IWmspOutboundScanResultService.java
  14. 15 0
      src/main/java/com/steerinfo/dil/service/impl/WmsInboundResultServiceImpl.java
  15. 6 0
      src/main/java/com/steerinfo/dil/service/impl/WmspGridMaterialServiceImpl.java
  16. 7 2
      src/main/java/com/steerinfo/dil/service/impl/WmspOutboundResultMaterialServiceImpl.java
  17. 66 3
      src/main/java/com/steerinfo/dil/service/impl/WmspOutboundResultServiceImpl.java
  18. 2 2
      src/main/java/com/steerinfo/dil/service/impl/WmspOutboundScanResultServiceImpl.java
  19. 1 0
      src/main/java/com/steerinfo/dil/vo/OutBoundMaterialDetailedInfo.java
  20. 1 0
      src/main/java/com/steerinfo/dil/vo/OutBoundTypeDetailedInfo.java
  21. 10 0
      src/main/resources/com/steerinfo/dil/mapper/WmspGridMaterialMapper.xml
  22. 21 1
      src/main/resources/com/steerinfo/dil/mapper/WmspInboundResultMapper.xml
  23. 5 0
      src/main/resources/com/steerinfo/dil/mapper/WmspOutboundResultMapper.xml
  24. 53 27
      src/main/resources/com/steerinfo/dil/mapper/WmspOutboundResultMaterialMapper.xml
  25. 8 0
      src/main/resources/com/steerinfo/dil/mapper/WmspOutboundScanResultMapper.xml

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

@@ -190,8 +190,15 @@ public class WmsInboundResultController extends BaseRESTfulController {
                     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 {
                 //如果是线材直接结束
                 //将下面的订单都录入这个批次里面

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

@@ -129,7 +129,7 @@ public class WmspOutboundResultController extends BaseRESTfulController {
      * 返回值:
      *   list:出库单实绩
      * */
-    @PostMapping(value = "/insertWmspOutBoundResult")
+    @PostMapping(value = "/insertWmspOutBoundResult8")
     public Map<String, Object> insertWmspOutBoundResult(@RequestBody(required = false) Map<String, Object> mapval){
         /**拿到前端传递的运输订单号*/
         String orderNumber = mapval.get("orderNumber").toString();
@@ -426,7 +426,27 @@ public class WmspOutboundResultController extends BaseRESTfulController {
      *   result:出库成功标志
      * */
     @ApiOperation(value = "出库(非0:成功,0:失败)")
+    @PostMapping("/outbountResultToSuccess3")
+    public RESTfulResult outbountResultToSuccess2(@RequestParam Integer resultId) {
+        int result = wmspOutboundResultService.outbountResultToSuccess(resultId);
+        if (result == 0) {
+            return failed("还未扫描完,请继续!");
+        }
+        else {
+            return success(result);
+        }
+    }
+    @ApiOperation( value = "确定出厂",notes ="通过提货单对已扫出厂码的钢材进行出库。" +
+            "如果是拼装的提货单,当某一类钢材全部扫完,将当前物资的实时库存删除,并改变物质类型状态" +
+            "如果是单一物质则,就当物质全部扫完才能确定出库,并将出库实绩改为完成" )
+    @ApiImplicitParam(name = "resultId",dataType = "BigDecimal",value = "出库实绩Id")
     @PostMapping("/outbountResultToSuccess")
+    public RESTfulResult sureOutbount(@RequestParam BigDecimal resultId){
+        int result = wmspOutboundResultService.sureOutbount(resultId);
+        return success();
+    }
+    @ApiOperation(value = "出库(非0:成功,0:失败)")
+    @PostMapping("/outbountResultToSuccess2")
     public RESTfulResult outbountResultToSuccess(@RequestParam Integer resultId) {
         int result = wmspOutboundResultService.outbountResultToSuccess(resultId);
         if (result == 0) {
@@ -470,12 +490,12 @@ public class WmspOutboundResultController extends BaseRESTfulController {
     public RESTfulResult deleteGridMaterial(@RequestParam String materialOnlyCode){
         int result = wmspOutboundResultService.deleteGridMaterial(materialOnlyCode);
         if(result == -1){
-            return failed("请勿重复扫码");
+            return failed(-1,"请勿重复扫码");
         }
         if(result == -2){
-            return  failed("该钢材还未入库");
+            return  failed(-2,"该钢材还未入库");
         }
-        return success(result);
+        return success("操作成功");
     }
 }
 

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

@@ -1,6 +1,7 @@
 package com.steerinfo.dil.mapper;
 
 import com.steerinfo.dil.model.WmspGridMaterial;
+import com.steerinfo.dil.vo.OutBoundMaterialDetailedInfo;
 import com.steerinfo.framework.mapper.IBaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -58,4 +59,7 @@ public interface WmspGridMaterialMapper extends IBaseMapper<WmspGridMaterial, Bi
 
   //查询id
     List<Map<String,Object>> getMaterialId(BigDecimal warehouseId);
+
+
+  int deleteGridMaterial(@Param("thisMaterialDetailedInfos") List<OutBoundMaterialDetailedInfo> thisMaterialDetailedInfos,@Param("now")Date now);
 }

+ 6 - 0
src/main/java/com/steerinfo/dil/mapper/WmspInboundResultMapper.java

@@ -56,4 +56,10 @@ public interface WmspInboundResultMapper extends IBaseMapper<WmspInboundResult,
     List<Map<String,Object>> getInboundResult(String resultMaterial);
     //查询今日入库件数
     BigDecimal getInbountNumber();
+
+    int getTypeMaterilaId(BigDecimal materialId);
+
+    int updateStatusByMaterilaId(BigDecimal materialId);
+
+    int updateStatusByMaterialId(BigDecimal materialId);
 }

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

@@ -74,4 +74,6 @@ public interface WmspOutboundResultMapper extends IBaseMapper<WmspOutboundResult
     int updateGrid(BigDecimal materialId);
 //    根据orderId获得当前运输订单的状态
     int getOutboundStatus(BigDecimal orderId);
+
+    int updateStatus(BigDecimal resultId);
 }

+ 3 - 1
src/main/java/com/steerinfo/dil/mapper/WmspOutboundResultMaterialMapper.java

@@ -16,7 +16,9 @@ public interface WmspOutboundResultMaterialMapper extends IBaseMapper<WmspOutbou
 
     int insertOutboundMaterial(@Param("orderId") BigDecimal orderId, @Param("orderList") List<Map<String, Object>> orderList, @Param("nowDate") Date nowDate, @Param("user") String user);
 
-    List<OutBoundTypeDetailedInfo> getOutBoundTypeDetailedInfo(BigDecimal resultId);
+    List<OutBoundTypeDetailedInfo> getOutBoundTypeDetailedInfo(@Param("resultId")BigDecimal resultId,@Param("status")Integer status);
 
     Integer isOutboundResultMaterial(String onlycode, BigDecimal resultId);
+
+    int updateStatus(String resultMaterialId);
 }

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

@@ -17,9 +17,9 @@ public interface WmspOutboundScanResultMapper extends IBaseMapper<WmspOutboundSc
     //通过物资唯一编码找寻物资名称、规格型号、物资唯一编码和物资质检是否合格
     List<Map<String, Object>> getRmsMaterial (String materialOnlyCode);
 
-    List<OutBoundMaterialDetailedInfo> getOutBoundMaterialDetailedInfos(@Param("onlyCodes") List<String> onlyCodes);
+    List<OutBoundMaterialDetailedInfo> getOutBoundMaterialDetailedInfos(@Param("onlyCodes") List<String> onlyCodes,@Param("isDelete")Integer isDelete);
 
-    List<String> getResultStrs(BigDecimal resultId);
+    List<String> getResultStrs(@Param("resultId")BigDecimal resultId);
     //通过物资唯一编码查询钢材物资唯一id
     Map<String, Object> getMaterialSteelId(String materialOnlyCode);
 

+ 28 - 18
src/main/java/com/steerinfo/dil/model/WmspOutboundResultMaterial.java

@@ -74,6 +74,12 @@ public class WmspOutboundResultMaterial implements IBasePO<BigDecimal> {
     @ApiModelProperty(value="物资重量",required=false)
     private BigDecimal materialWeight;
 
+    /**
+     * 出库状态(0:待出库,1:已出库)(STATUS,DECIMAL,38)
+     */
+    @ApiModelProperty(value="出库状态(0:待出库,1:已出库)",required=false)
+    private BigDecimal status;
+
     private static final long serialVersionUID = 1L;
 
     @Override
@@ -90,6 +96,14 @@ public class WmspOutboundResultMaterial implements IBasePO<BigDecimal> {
         return resultMaterialId;
     }
 
+    public BigDecimal getStatus() {
+        return status;
+    }
+
+    public void setStatus(BigDecimal status) {
+        this.status = status;
+    }
+
     public void setResultMaterialId(BigDecimal resultMaterialId) {
         this.resultMaterialId = resultMaterialId;
     }
@@ -176,23 +190,19 @@ public class WmspOutboundResultMaterial implements IBasePO<BigDecimal> {
 
     @Override
     public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append(getClass().getSimpleName());
-        sb.append(" [");
-        sb.append("Hash = ").append(hashCode());
-        sb.append(", resultMaterialId=").append(resultMaterialId);
-        sb.append(", outboundResultId=").append(outboundResultId);
-        sb.append(", insertUsername=").append(insertUsername);
-        sb.append(", insertTime=").append(insertTime);
-        sb.append(", updateUsername=").append(updateUsername);
-        sb.append(", updateTime=").append(updateTime);
-        sb.append(", insertUpdateRemark=").append(insertUpdateRemark);
-        sb.append(", deleted=").append(deleted);
-        sb.append(", materialId=").append(materialId);
-        sb.append(", materialNumber=").append(materialNumber);
-        sb.append(", materialWeight=").append(materialWeight);
-        sb.append(", serialVersionUID=").append(serialVersionUID);
-        sb.append("]");
-        return sb.toString();
+        return "WmspOutboundResultMaterial{" +
+                "resultMaterialId=" + resultMaterialId +
+                ", outboundResultId=" + outboundResultId +
+                ", insertUsername='" + insertUsername + '\'' +
+                ", insertTime=" + insertTime +
+                ", updateUsername='" + updateUsername + '\'' +
+                ", updateTime=" + updateTime +
+                ", insertUpdateRemark='" + insertUpdateRemark + '\'' +
+                ", deleted=" + deleted +
+                ", materialId=" + materialId +
+                ", materialNumber=" + materialNumber +
+                ", materialWeight=" + materialWeight +
+                ", status=" + status +
+                '}';
     }
 }

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

@@ -66,4 +66,10 @@ public interface IWmsInboundResultService {
 //    创建一个方法根据出厂的resultId修改对应的入库实绩和仓储网格Id
     int updateInboundGridStatus(Integer resultId);
 
+
+    int getTypeMaterilaId(BigDecimal materialOnlyCode);
+
+    int updateStatusByMaterilaId(BigDecimal materialId);
+
+    int updateStatusByMaterialId(BigDecimal materialId);
 }

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

@@ -1,6 +1,7 @@
 package com.steerinfo.dil.service;
 
 import com.steerinfo.dil.model.WmspGridMaterial;
+import com.steerinfo.dil.vo.OutBoundMaterialDetailedInfo;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -55,4 +56,6 @@ public interface IWmspGridMaterialService  {
     List<Map<String, Object>> getStockTakingList();
 //    获得钢材物资信息
     List<Map<String, Object>> getSteelMaterialList();
+
+    int deleteGridMaterial(List<OutBoundMaterialDetailedInfo> thisMaterialDetailedInfos);
 }

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

@@ -25,8 +25,9 @@ public interface IWmspOutboundResultMaterialService extends IBaseService<WmspOut
 
     int insertOutboundMaterial(BigDecimal orderId, List<Map<String, Object>> orderList);
 
-    List<OutBoundTypeDetailedInfo> getOutBoundTypeDetailedInfo(BigDecimal resultId);
+    List<OutBoundTypeDetailedInfo> getOutBoundTypeDetailedInfo(BigDecimal resultId,Integer stutas);
 
     Integer isOutboundResultMaterial(String onlycode, BigDecimal resultId);
 
+    int updateStatus(String resultMaterialId);
 }

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

@@ -84,4 +84,6 @@ public interface IWmspOutboundResultService {
     int createOutboundScanResult(String subResultMaterial, BigDecimal personnelId, BigDecimal resultId,BigDecimal inboundResultId);
     //删除实时库存
     int deleteGridMaterial(String materialOnlyCode);
+
+    int sureOutbount(BigDecimal resultId);
 }

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

@@ -27,7 +27,7 @@ public interface IWmspOutboundScanResultService {
     //通过物资唯一编码找寻物资名称、规格型号、物资唯一编码和物资质检是否合格
     List<Map<String, Object>> getRmsMaterial (String materialOnlyCode);
 
-    List<OutBoundMaterialDetailedInfo> getOutBoundMaterialDetailedInfos(List<String> onlyCodes);
+    List<OutBoundMaterialDetailedInfo> getOutBoundMaterialDetailedInfos(List<String> onlyCodes,Integer isDelete);
 
 
     List<String> getOutBoundScanResultOnlyCodes(BigDecimal resultId);

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

@@ -203,4 +203,19 @@ public class WmsInboundResultServiceImpl implements IWmsInboundResultService {
         }
         return i;
     }
+
+    @Override
+    public int getTypeMaterilaId(BigDecimal materialId) {
+        return wmspInboundResultMapper.getTypeMaterilaId(materialId);
+    }
+
+    @Override
+    public int updateStatusByMaterilaId(BigDecimal materialId) {
+        return wmspInboundResultMapper.updateStatusByMaterilaId(materialId);
+    }
+
+    @Override
+    public int updateStatusByMaterialId(BigDecimal materialId) {
+        return wmspInboundResultMapper.updateStatusByMaterialId(materialId);
+    }
 }

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

@@ -7,6 +7,7 @@ import com.steerinfo.dil.model.WmspRestackMakeResult;
 import com.steerinfo.dil.model.WmspRestackScanResult;
 import com.steerinfo.dil.service.IWmspGridMaterialService;
 import com.steerinfo.dil.util.DataChange;
+import com.steerinfo.dil.vo.OutBoundMaterialDetailedInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -288,4 +289,9 @@ public class WmspGridMaterialServiceImpl  implements IWmspGridMaterialService {
     public List<Map<String, Object>> getSteelMaterialList() {
         return wmspCheckWarehouseMapper.getSteelMaterialList();
     }
+
+    @Override
+    public int deleteGridMaterial(List<OutBoundMaterialDetailedInfo> thisMaterialDetailedInfos) {
+        return wmspGridMaterialMapper.deleteGridMaterial(thisMaterialDetailedInfos,new Date());
+    }
 }

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

@@ -53,12 +53,17 @@ public class WmspOutboundResultMaterialServiceImpl extends BaseServiceImpl<WmspO
     }
 
     @Override
-    public List<OutBoundTypeDetailedInfo> getOutBoundTypeDetailedInfo(BigDecimal resultId) {
-        return wmspOutboundResultMaterialMapper.getOutBoundTypeDetailedInfo(resultId);
+    public List<OutBoundTypeDetailedInfo> getOutBoundTypeDetailedInfo(BigDecimal resultId,Integer status) {
+        return wmspOutboundResultMaterialMapper.getOutBoundTypeDetailedInfo(resultId,status);
     }
 
     @Override
     public Integer isOutboundResultMaterial(String onlycode, BigDecimal resultId) {
         return wmspOutboundResultMaterialMapper.isOutboundResultMaterial(onlycode,resultId);
     }
+
+    @Override
+    public int updateStatus(String resultMaterialId) {
+        return wmspOutboundResultMaterialMapper.updateStatus(resultMaterialId);
+    }
 }

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

@@ -14,6 +14,7 @@ import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -48,6 +49,8 @@ public class WmspOutboundResultServiceImpl  implements IWmspOutboundResultServic
     @Autowired
     private WmspInboundScanResultMapper wmspInboundScanResultMapper;
     @Autowired
+    private WmspGridMaterialServiceImpl wmspGridMaterialService;
+    @Autowired
     CommonSeq commonSeq;
     @Autowired
     private TmstruckFeign tmstruckFeign;
@@ -312,14 +315,14 @@ public class WmspOutboundResultServiceImpl  implements IWmspOutboundResultServic
     public OutBoundDetailed getInitOutboundScanResultMaterialInfo(BigDecimal resultId) {
 
         //查询待出库物资类型详情
-        List<OutBoundTypeDetailedInfo> outBoundTypeDetailedInfos= wmspOutboundResultMaterialService.getOutBoundTypeDetailedInfo(resultId);
+        List<OutBoundTypeDetailedInfo> outBoundTypeDetailedInfos= wmspOutboundResultMaterialService.getOutBoundTypeDetailedInfo(resultId,null);
         //查询扫码实绩的扫码结构
         List<String> onlycodes= wmspOutboundScanResultService.getOutBoundScanResultOnlyCodes(resultId);
         //出库信息展示
         OutBoundDetailed outBoundDetailed=new OutBoundDetailed();
         if (onlycodes.size()>0){
             //查询出已经扫码的物资信息
-            List<OutBoundMaterialDetailedInfo> outBoundMaterialDetailedInfos= wmspOutboundScanResultService.getOutBoundMaterialDetailedInfos(onlycodes);
+            List<OutBoundMaterialDetailedInfo> outBoundMaterialDetailedInfos= wmspOutboundScanResultService.getOutBoundMaterialDetailedInfos(onlycodes,null);
             //统计出已经扫码的物资数量
             for (OutBoundTypeDetailedInfo typeDetailedInfo :outBoundTypeDetailedInfos){
                 int count=0;
@@ -379,7 +382,7 @@ public class WmspOutboundResultServiceImpl  implements IWmspOutboundResultServic
         return scanResultInsert(wmspOutboundScanResult);
     }
     public int deleteGridMaterial(String materialOnlyCode) {
-        int i=0;
+            int i=0;
             String[] tag1 = materialOnlyCode.split("\\-");
            Map<String,Object> map  = wmspOutboundScanResultMapper.getMaterialSteelId(tag1[7]);
             if(map == null){
@@ -391,6 +394,16 @@ public class WmspOutboundResultServiceImpl  implements IWmspOutboundResultServic
                 if(date==null){
                     //将这些物资钢材id进行逻辑删除
                     i += wmspGridMaterialMapper.updateByMaterialId(materialSteelId,new Date());
+                    //判断物质是否是预留物质
+                    int isReserve= wmsInboundResultService.getTypeMaterilaId(materialSteelId);
+                    //如果是预留物质
+                    if (isReserve>0){
+                        //将预留库出库的钢材,状态改为完全入库状态
+                        int status= wmsInboundResultService.updateStatusByMaterilaId(materialSteelId);
+                        //将最新的一条真实库数据,状态改为预留状态状态,代替预留库存
+                        int status2= wmsInboundResultService.updateStatusByMaterialId(materialSteelId);
+                    }
+
                 }
                 //表示该钢材已出库
                 else{
@@ -399,4 +412,54 @@ public class WmspOutboundResultServiceImpl  implements IWmspOutboundResultServic
 
         return i;
     }
+
+
+
+    @Override
+    public int sureOutbount(BigDecimal resultId) {
+        //查询提货单,没有确定出库物质类型集合
+        List<OutBoundTypeDetailedInfo> outBoundTypeDetailedInfos= wmspOutboundResultMaterialService.getOutBoundTypeDetailedInfo(resultId,1);
+        //查询出库扫描实绩,并且在实时库存没有删除的出库扫描实绩
+
+        //查询扫码实绩的扫码结构
+        List<String> onlycodes= wmspOutboundScanResultService.getOutBoundScanResultOnlyCodes(resultId);
+        //出库信息展示
+        OutBoundDetailed outBoundDetailed=new OutBoundDetailed();
+        int cunt2=0;
+        if (onlycodes.size()>0){
+            //查询出已经扫码的物资信息
+            List<OutBoundMaterialDetailedInfo> outBoundMaterialDetailedInfos= wmspOutboundScanResultService.getOutBoundMaterialDetailedInfos(onlycodes,1);
+            //统计出已经扫码的物资数量
+            for (OutBoundTypeDetailedInfo typeDetailedInfo :outBoundTypeDetailedInfos){
+                //这一个类型的物质
+                List<OutBoundMaterialDetailedInfo> thisMaterialDetailedInfos=new  ArrayList<>();
+                int count=0;
+                for (OutBoundMaterialDetailedInfo outBoundMaterialDetailedInfo: outBoundMaterialDetailedInfos){
+                    if (typeDetailedInfo.getMaterialId().equals(outBoundMaterialDetailedInfo.getMaterialId())){
+                        thisMaterialDetailedInfos.add(outBoundMaterialDetailedInfo);
+                        count++;
+                    }
+                }
+                //统计完数量赋值
+                typeDetailedInfo.setScanCodeNumber(count);
+                //统计,并且判断是否有某种物质已经扫满了
+                if (typeDetailedInfo.getNumber()==typeDetailedInfo.getScanCodeNumber()){
+                    //如果有某一种物质扫满了,需要将这一类物质,在实时库存删除,并且修改出库物质类型状态,发送计量委托
+                    int cunt= wmspGridMaterialService.deleteGridMaterial(thisMaterialDetailedInfos);
+                    cunt2=wmspOutboundResultMaterialService.updateStatus(typeDetailedInfo.getResultMaterialId());
+                }
+                //如果所以物质都已经结束,需要改变提货单状态
+                if (outBoundTypeDetailedInfos==null||outBoundTypeDetailedInfos.size()-cunt2==0){
+                    int cunt3=wmspOutboundResultMapper.updateStatus(resultId);
+                    //返回结果
+                    return cunt3;
+                }
+            }
+            outBoundDetailed.setOutBoundMaterialDetailedInfos(outBoundMaterialDetailedInfos);
+        }
+
+
+        //返回结果
+        return 0;
+    }
 }

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

@@ -49,8 +49,8 @@ public class WmspOutboundScanResultServiceImpl implements IWmspOutboundScanResul
     }
 
     @Override
-    public List<OutBoundMaterialDetailedInfo> getOutBoundMaterialDetailedInfos(List<String> onlyCodes) {
-        return wmspOutboundScanResultMapper.getOutBoundMaterialDetailedInfos(onlyCodes);
+    public List<OutBoundMaterialDetailedInfo> getOutBoundMaterialDetailedInfos(List<String> onlyCodes,Integer isDelete) {
+        return wmspOutboundScanResultMapper.getOutBoundMaterialDetailedInfos(onlyCodes,isDelete);
     }
 
     @Override

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

@@ -6,6 +6,7 @@ import java.math.BigDecimal;
 @Data
 public class OutBoundMaterialDetailedInfo {
 
+    private String materialSteelId;
     private String onlyCode;
     private String materialId;
     private String materialCode;

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

@@ -4,6 +4,7 @@ import lombok.Data;
 
 @Data
 public class OutBoundTypeDetailedInfo {
+    private String resultMaterialId;
     private String materialId;
     private String materialName;
     private String materialSpecification;

+ 10 - 0
src/main/resources/com/steerinfo/dil/mapper/WmspGridMaterialMapper.xml

@@ -413,6 +413,8 @@
       #{id}
     </foreach>
   </delete>
+  
+  
   <!-- 友情提示!!!-->
   <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
   <select id="selectGridMaterial" resultType="java.util.Map" parameterType="java.math.BigDecimal">
@@ -754,4 +756,12 @@
     on wgm.GRID_ID = wpg.GRID_ID
     where wpg.WAREHOUSE_ID = #{warehouseId}
  </select>
+  <delete id="deleteGridMaterial">
+    update WMSP_GRID_MATERIAL WGM set WGM.DELETED = 1,UPDATE_TIME = #{now}
+    where WGM.MATERIAL_ID in
+    <foreach collection="thisMaterialDetailedInfos" item="item" open="(" separator="or" close=")">
+      #{item.materialSteelId}
+    </foreach>
+    #{materialSteelId}
+  </delete>
 </mapper>

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

@@ -1195,9 +1195,29 @@
     <update id="updateInboundStatus">
        update WMSP_INBOUND_RESULT set RESULT_STATUS= 2 where INBOUND_DISTRIBUTE_ID =  #{distributeId}
     </update>
-
+    <update id="updateStatusByMaterilaId">
+       update WMSP_INBOUND_RESULT set RESULT_STATUS= 1 where MATERIAL_ID=#{materialId}
+    </update>
+    <update id="updateStatusByMaterialId">
+        update wmsp_inbound_result set result_status=2 where inbound_id in
+          (
+            select * from(
+              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 result_status='1' and Rownum='1'
+              order by wir.insert_time desc
+          )
+        )
+        
+    </update>
+    
     <select id="getInbountNumber" resultType="java.math.BigDecimal">
         select count(*) from WMSP_INBOUND_RESULT wir
     </select>
+    <select id="getTypeMaterilaId" resultType="java.lang.Integer">
+         select count(*) from  WMSP_INBOUND_RESULT
+        where MATERIAL_ID=#{materialId} and RESULT_STATUS='2'
+    </select>
 
 </mapper>

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

@@ -882,4 +882,9 @@
     WHERE WGM.MATERIAL_ID = #{materialId}
       AND WGM.DELETED = 0
   </update>
+  <update id="updateStatus">
+    UPDATE WMSP_OUTBOUND_RESULT
+    SET RESULT_STATUS = 1
+    WHERE RESULT_ID = #{resultId}
+  </update>
 </mapper>

+ 53 - 27
src/main/resources/com/steerinfo/dil/mapper/WmspOutboundResultMaterialMapper.xml

@@ -13,14 +13,16 @@
     <result column="MATERIAL_ID" jdbcType="DECIMAL" property="materialId" />
     <result column="MATERIAL_NUMBER" jdbcType="DECIMAL" property="materialNumber" />
     <result column="MATERIAL_WEIGHT" jdbcType="DECIMAL" property="materialWeight" />
+    <result column="STATUS" jdbcType="DECIMAL" property="status" />
+    
   </resultMap>
   <sql id="columns">
     RESULT_MATERIAL_ID, OUTBOUND_RESULT_ID, INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, 
-    UPDATE_TIME, INSERT_UPDATE_REMARK, DELETED, MATERIAL_ID,MATERIAL_NUMBER,MATERIAL_WEIGHT
+    UPDATE_TIME, INSERT_UPDATE_REMARK, DELETED, MATERIAL_ID,MATERIAL_NUMBER,MATERIAL_WEIGHT,STATUS
   </sql>
   <sql id="columns_alias">
     t.RESULT_MATERIAL_ID, t.OUTBOUND_RESULT_ID, t.INSERT_USERNAME, t.INSERT_TIME, t.UPDATE_USERNAME, 
-    t.UPDATE_TIME, t.INSERT_UPDATE_REMARK, t.DELETED, t.MATERIAL_ID,t.MATERIAL_NUMBER,t.MATERIAL_WEIGHT
+    t.UPDATE_TIME, t.INSERT_UPDATE_REMARK, t.DELETED, t.MATERIAL_ID,t.MATERIAL_NUMBER,t.MATERIAL_WEIGHT,t.STATUS
   </sql>
   <sql id="select">
     SELECT <include refid="columns" /> FROM WMSP_OUTBOUND_RESULT_MATERIAL
@@ -60,10 +62,13 @@
       <if test="materialNumber != null">
         and MATERIAL_NUMBER = #{materialNumber}
       </if>
+      
       <if test="materialWeight != null">
         and MATERIAL_WEIGHT = #{materialWeight}
       </if>
-      
+      <if test="status != null">
+        and STATUS = #{status}
+      </if>
     </where>
   </sql>
   <sql id="whereLike">
@@ -98,9 +103,13 @@
       <if test="materialNumber != null">
         and MATERIAL_NUMBER = #{materialNumber}
       </if>
+      
       <if test="materialWeight != null">
         and MATERIAL_WEIGHT = #{materialWeight}
       </if>
+      <if test="status != null">
+        and STATUS = #{status}
+      </if>
     </where>
   </sql>
   <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
@@ -138,18 +147,22 @@
         or MATERIAL_NUMBER = #{materialNumber}
       </if>
       <if test="materialWeight != null">
-    or MATERIAL_WEIGHT = #{materialWeight}
-  </if>
+        or MATERIAL_WEIGHT = #{materialWeight}
+      </if>
+    <if test="status != null">
+      or STATUS = #{status}
+    </if>
+    
   </delete>
   <insert id="insert" parameterType="com.steerinfo.dil.model.WmspOutboundResultMaterial">
     insert into WMSP_OUTBOUND_RESULT_MATERIAL (RESULT_MATERIAL_ID, OUTBOUND_RESULT_ID, 
       INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, 
       UPDATE_TIME, INSERT_UPDATE_REMARK, DELETED, 
-      MATERIAL_ID,MATERIAL_NUMBER,MATERIAL_WEIGHT)
+      MATERIAL_ID,MATERIAL_NUMBER,MATERIAL_WEIGHT,STATUS)
     values (#{resultMaterialId,jdbcType=DECIMAL}, #{outboundResultId,jdbcType=DECIMAL}, 
       #{insertUsername,jdbcType=VARCHAR}, #{insertTime,jdbcType=TIMESTAMP}, #{updateUsername,jdbcType=VARCHAR}, 
-      #{updateTime,jdbcType=TIMESTAMP}, #{insertUpdateRemark,jdbcType=VARCHAR}, #{deleted,jdbcType=DECIMAL}, 
-      #{materialId,jdbcType=DECIMAL},#{materialNumber,jdbcType=DECIMAL},#{materialWeight,jdbcType=DECIMAL})
+      #{updateTime,jdbcType=TIMESTAMP}, #{insertUpdateRemark,jdbcType=VARCHAR}, #{deleted,jdbcType=DECIMAL},
+      #{materialId,jdbcType=DECIMAL},#{materialNumber,jdbcType=DECIMAL},#{materialWeight,jdbcType=DECIMAL},#{status,jdbcType=DECIMAL})
   </insert>
   <insert id="insertSelective" parameterType="com.steerinfo.dil.model.WmspOutboundResultMaterial">
     insert into WMSP_OUTBOUND_RESULT_MATERIAL
@@ -187,6 +200,9 @@
       <if test="materialWeight != null">
         MATERIAL_WEIGHT,
       </if>
+      <if test="status != null">
+        STATUS,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="resultMaterialId != null">
@@ -219,6 +235,9 @@
       <if test="materialWeight != null">
         #{materialWeight,jdbcType=DECIMAL},
       </if>
+      <if test="status != null">
+        #{status,jdbcType=DECIMAL},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.WmspOutboundResultMaterial">
@@ -232,7 +251,8 @@
       DELETED = #{deleted,jdbcType=DECIMAL},
       MATERIAL_ID = #{materialId,jdbcType=DECIMAL},
       MATERIAL_NUMBER = #{materialNumber,jdbcType=DECIMAL},
-      MATERIAL_WEIGHT = #{materialWeight,jdbcType=DECIMAL}
+      MATERIAL_WEIGHT = #{materialWeight,jdbcType=DECIMAL},
+      STATUS= #{status,jdbcType=DECIMAL}
     where RESULT_MATERIAL_ID = #{resultMaterialId,jdbcType=DECIMAL}
   </update>
   <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.WmspOutboundResultMaterial">
@@ -268,6 +288,9 @@
       <if test="materialWeight != null">
         MATERIAL_WEIGHT = #{materialWeight,jdbcType=DECIMAL},
       </if>
+      <if test="status != null">
+        STATUS = #{status,jdbcType=DECIMAL},
+      </if>
     </set>
     where RESULT_MATERIAL_ID = #{resultMaterialId,jdbcType=DECIMAL}
   </update>
@@ -291,7 +314,7 @@
       OUTBOUND_RESULT_ID, INSERT_USERNAME, 
       INSERT_TIME, UPDATE_USERNAME, 
       UPDATE_TIME, INSERT_UPDATE_REMARK, 
-      DELETED, MATERIAL_ID,MATERIAL_NUMBER,MATERIAL_WEIGHT)
+      DELETED, MATERIAL_ID,MATERIAL_NUMBER,MATERIAL_WEIGHT,STATUS)
     ( <foreach collection="list" item="item" separator="union all"> 
    select  
       #{item.resultMaterialId,jdbcType=DECIMAL}, 
@@ -349,11 +372,16 @@
       <foreach close="end" collection="list" index="index" item="item" open="case RESULT_MATERIAL_ID" separator=" ">
         when #{item.resultMaterialId,jdbcType=DECIMAL} then #{item.materialWeight,jdbcType=DECIMAL}
       </foreach>
-     where RESULT_MATERIAL_ID in 
+    ,STATUS=
+    <foreach close="end" collection="list" index="index" item="item" open="case RESULT_MATERIAL_ID" separator=" ">
+      when #{item.resultMaterialId,jdbcType=DECIMAL} then #{item.status,jdbcType=DECIMAL}
+    </foreach>
+    where RESULT_MATERIAL_ID in
      <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
     #{item.resultMaterialId,jdbcType=DECIMAL}
      </foreach> 
   </update>
+  
   <delete id="batchDelete" parameterType="java.util.List">
     delete from WMSP_OUTBOUND_RESULT_MATERIAL
     where RESULT_MATERIAL_ID in 
@@ -363,25 +391,19 @@
   </delete>
   <!-- 友情提示!!!-->
   <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
+  <update id="updateStatus">
+    update WMSP_OUTBOUND_RESULT_MATERIAL
+     set STATUS='2'
+     where RESULT_MATERIAL_ID=#{resultMaterialId}
+  </update>
   <insert id="insertOutboundMaterial">
-    insert into WMSP_OUTBOUND_RESULT_MATERIAL(RESULT_MATERIAL_ID,OUTBOUND_RESULT_ID,MATERIAL_ID,INSERT_USERNAME,INSERT_TIME,MATERIAL_NUMBER)
+    insert into WMSP_OUTBOUND_RESULT_MATERIAL(RESULT_MATERIAL_ID,OUTBOUND_RESULT_ID,MATERIAL_ID,INSERT_USERNAME,INSERT_TIME,MATERIAL_NUMBER,STATUS)
     <foreach collection="orderList" index="index" item="item" separator="union all" >
       select
-      #{item.resultMaterialId},#{orderId},#{item.materialId},#{user},#{nowDate},#{item.materialNumber} from dual
+      #{item.resultMaterialId},#{orderId},#{item.materialId},#{user},#{nowDate},#{item.materialNumber},'1' from dual
     </foreach>
   </insert>
-  
-<!--  <id column="RESULT_MATERIAL_ID" jdbcType="DECIMAL" property="resultMaterialId" />-->
-<!--  <result column="OUTBOUND_RESULT_ID" jdbcType="DECIMAL" property="outboundResultId" />-->
-<!--  <result column="INSERT_USERNAME" jdbcType="VARCHAR" property="insertUsername" />-->
-<!--  <result column="INSERT_TIME" jdbcType="TIMESTAMP" property="insertTime" />-->
-<!--  <result column="UPDATE_USERNAME" jdbcType="VARCHAR" property="updateUsername" />-->
-<!--  <result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime" />-->
-<!--  <result column="INSERT_UPDATE_REMARK" jdbcType="VARCHAR" property="insertUpdateRemark" />-->
-<!--  <result column="DELETED" jdbcType="DECIMAL" property="deleted" />-->
-<!--  <result column="MATERIAL_ID" jdbcType="DECIMAL" property="materialId" />-->
-<!--  <result column="MATERIAL_NUMBER" jdbcType="DECIMAL" property="materialNumber" />-->
-<!--  <result column="MATERIAL_WEIGHT" jdbcType="DECIMAL" property="materialWeight" />-->
+
   
   <select id="getOutBoundTypeDetailedInfo" resultType="com.steerinfo.dil.vo.OutBoundTypeDetailedInfo">
      select
@@ -390,11 +412,15 @@
       RM.MATERIAL_NAME "materialName",
       RM.MATERIAL_SPECIFICATION "materialSpecification",
       RM.MATERIAL_MODEL "materialModel",
-      worm.MATERIAL_NUMBER "number"
+      worm.MATERIAL_NUMBER "number",
+      worm.RESULT_MATERIAL_ID "resultMaterialId"
     FROM
       WMSP_OUTBOUND_RESULT_MATERIAL worm
         LEFT JOIN RMS_MATERIAL RM ON worm.material_id = RM.MATERIAL_ID
-    where worm.OUTBOUND_RESULT_ID=#{resultId}
+    where worm.OUTBOUND_RESULT_ID=#{resultId} and worm.status=1
+    <if test="status!=null">
+      and worm.status=#{status}
+    </if>
   </select>
   <select id="isOutboundResultMaterial" resultType="java.lang.Integer">
      select material_number

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

@@ -448,6 +448,7 @@
   
   <select id="getOutBoundMaterialDetailedInfos"  resultType="com.steerinfo.dil.vo.OutBoundMaterialDetailedInfo">
      select
+      rms.material_id "materialSteelId",
       rms.MATERIAL_ONLY_CODE "onlyCode",
       RM.material_Id "materialId",
       RM.MATERIAL_CODE "materialCode",
@@ -456,15 +457,22 @@
       RM.MATERIAL_MODEL "materialModel"
       from RMS_MATERIAL_STEEL rms
       left join RMS_MATERIAL RM on rms.material_id = RM.MATERIAL_ID
+      LEFT JOIN WMSP_GRID_MATERIAL wgm
+      ON rms.MATERIAL_STEEL_ID = wgm.MATERIAL_ID
       where
      MATERIAL_ONLY_CODE in
      <foreach collection="onlyCodes" item="item" open="(" close=")" separator=",">
        #{item}
      </foreach>
+    <if test="isDelete!=null">
+      and wgm.DELETED='0'
+    </if>
   </select>
+  
   <select id="getResultStrs" resultType="java.lang.String">
      select RESULT_MATERIAL "resultMaterial" from  WMSP_OUTBOUND_SCAN_RESULT where OUTBOUND_RESULT_ID=#{resultId}
   </select>
+  
 
   <select id="getMaterialSteelId" resultType="java.util.Map" parameterType="String">
     SELECT