自动化立体仓库 - WMS系统
18516761980
2021-12-06 3d57910ed5c971d143b71af4f9bfb4c18dcf6e9d
src/main/java/com/zy/asrs/service/impl/MatOutServiceImpl.java
@@ -9,7 +9,6 @@
import com.zy.asrs.service.*;
import com.zy.asrs.utils.VersionUtils;
import com.zy.common.model.LocDetlDto;
import com.zy.common.model.OutLocDto;
import com.zy.common.service.CommonService;
import com.zy.ints.entity.WaitMatout;
import com.zy.ints.mapper.WaitMatoutMapper;
@@ -18,7 +17,9 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Service
public class MatOutServiceImpl implements MatOutService {
@@ -70,23 +71,33 @@
                    // 判断入出库类型:101.全板出库 or 103.拣料出库
                    Double sumCount=locDetlService.getLocDetlSumQty(locDetl.getLocNo());
                    int ioType=0;
                    ioType=sumCount-outQty>0?103 : 101;
                    ioType = sumCount-locDetl.getQty()>0 ? 103 : 101;
                    if (outQty >= locDetl.getQty()){
                        //生成文档记录
                        stockOut(waitMatout.getBillNo(),staNo,new LocDetlDto(locDetl,locDetl.getQty()),ioType,userId);
                        waitMatout.setOutQty(waitMatout.getOutQty() + locDetl.getQty());
                        //修改记录
                        Integer update = waitMatoutMapper.update(waitMatout, new EntityWrapper<WaitMatout>().eq("bill_no", paramLocDetl.getBillNo())
                                                                .eq("seq_no",paramLocDetl.getSeqNo()));
                    }else {
                        //生成文档记录
                        stockOut(waitMatout.getBillNo(),staNo,new LocDetlDto(locDetl,outQty),ioType,userId);
                        waitMatout.setOutQty(waitMatout.getOutQty() + outQty);
                        //修改记录
                        Integer update = waitMatoutMapper.update(waitMatout, new EntityWrapper<WaitMatout>().eq("bill_no", paramLocDetl.getBillNo())
                                                                .eq("seq_no",paramLocDetl.getSeqNo()));
                    }
                    Double curOutQty = outQty >= locDetl.getQty() ? locDetl.getQty() : outQty;   //本次出库量
                    stockOut(waitMatout.getBillNo(),waitMatout.getSeqNo(),staNo,new LocDetlDto(locDetl,curOutQty),ioType,userId);
                    waitMatout.setOutQty(waitMatout.getOutQty() + curOutQty);
                    waitMatout.setIoStatus(1);
                    //修改记录
                    Integer update = waitMatoutMapper.update(waitMatout, new EntityWrapper<WaitMatout>().eq("bill_no", paramLocDetl.getBillNo())
                            .eq("seq_no",paramLocDetl.getSeqNo()));
//                    if (outQty >= locDetl.getQty()){
//                        //生成文档记录
//                        stockOut(waitMatout.getBillNo(),waitMatout.getSeqNo(),staNo,new LocDetlDto(locDetl,locDetl.getQty()),ioType,userId);
//                        waitMatout.setOutQty(waitMatout.getOutQty() + locDetl.getQty());
//                        waitMatout.setIoStatus(1);
//                        //修改记录
//                        Integer update = waitMatoutMapper.update(waitMatout, new EntityWrapper<WaitMatout>().eq("bill_no", paramLocDetl.getBillNo())
//                                                                .eq("seq_no",paramLocDetl.getSeqNo()));
//                    }else {
//                        //生成文档记录
//                        stockOut(waitMatout.getBillNo(),waitMatout.getSeqNo(),staNo,new LocDetlDto(locDetl,outQty),ioType,userId);
//                        waitMatout.setOutQty(waitMatout.getOutQty() + outQty);
//                        waitMatout.setIoStatus(1);
//                        //修改记录
//                        Integer update = waitMatoutMapper.update(waitMatout, new EntityWrapper<WaitMatout>().eq("bill_no", paramLocDetl.getBillNo())
//                                                                .eq("seq_no",paramLocDetl.getSeqNo()));
//                    }
                }
            }
        }
@@ -94,7 +105,7 @@
    @Override
    @Transactional
    public void stockOut(String billNo,BasDevp staNo, LocDetlDto locDetlDtos, Integer ioType, Long userId) {
    public void stockOut(String billNo, Integer seqNo, BasDevp staNo, LocDetlDto locDetlDtos, Integer ioType, Long userId) {
        // 生成工作档
            LocDetl locDetl=locDetlDtos.getLocDetl();
            // 获取库位
@@ -108,8 +119,14 @@
            if (Cools.isEmpty(staDesc)) {
                throw new CoolException("出库路径不存在");
            }
            int rok;
            if(ioType==103){
                rok=2;
            }else{
                rok=1;
            }
            // 生成工作号
            int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
            int workNo = commonService.getWorkNo(rok);
            // 生成工作档
            WrkMast wrkMast = new WrkMast();
            wrkMast.setWrkNo(workNo);
@@ -144,10 +161,12 @@
                wrkDetl.setAppeUser(userId);
                wrkDetl.setModiTime(new Date());
                wrkDetl.setBillNo(billNo);
                wrkDetl.setSeqNo(seqNo);
                wrkDetl.setModiUser(userId);
                if (!wrkDetlService.insert(wrkDetl)) {
                    throw new CoolException("保存工作档明细失败");
                }
            // 修改库位状态:   F.在库 ====>>> R.出库预约/P.拣料/盘点/并板出库中
            locMast = locMastService.selectById(locDetl.getLocNo());
            if (locMast.getLocSts().equals("F")) {