自动化立体仓库 - WMS系统
*
lsh
昨天 dfdf98629fa109a18a76bcc00a63a812c4ecbcaa
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -2,10 +2,7 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
import com.core.common.SnowflakeIdWorker;
import com.core.common.*;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.*;
@@ -15,6 +12,7 @@
import com.zy.asrs.service.*;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.utils.MatUtils;
import com.zy.asrs.utils.OrderOutBatchUtil;
import com.zy.asrs.utils.PostMesDataUtils;
import com.zy.common.model.DetlDto;
import com.zy.common.model.LocTypeDto;
@@ -602,9 +600,10 @@
        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()));
        if (Cools.isEmpty(wrkMast)){
            throw new CoolException("站点:"+param.getDevNo()+" 工作中任务不存在,任务号:"+basDevp.getWrkNo());
        }else if (!wrkMast.getWrkSts().equals(52L)){
            throw new CoolException("站点:"+param.getDevNo()+" 工作中任务状态已变更,请勿重复申请,任务号:"+basDevp.getWrkNo()+",任务状态:"+wrkMast.getWrkSts$());
        }
//        else if (!wrkMast.getWrkSts().equals(52L)){
//            throw new CoolException("站点:"+param.getDevNo()+" 工作中任务状态已变更,请勿重复申请,任务号:"+basDevp.getWrkNo()+",任务状态:"+wrkMast.getWrkSts$());
//        }
        List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", basDevp.getWrkNo()));
        if (Cools.isEmpty(wrkDetls) || wrkDetls.size()==0){
@@ -636,10 +635,10 @@
//        labellerMatParam.setLabellingTime(DateUtils.convert(new Date()));
//        labellerMatParam.setLabTemplate("1");
//        labellerMatParam.setOrderNo(orderNo);
        wrkMast.setWrkSts(53L);
        if (!wrkMastService.updateById(wrkMast)){
            throw new CoolException("异常,请重新申请");
        }
//        wrkMast.setWrkSts(53L);
//        if (!wrkMastService.updateById(wrkMast)){
//            throw new CoolException("异常,请重新申请");
//        }
        return labellerMatParam;
    }
@@ -783,6 +782,20 @@
            throw new CoolException("托盘条码:"+param.getBarcode()+"已存在,请勿重复组托");
        }
        try{
            int rgvOneType = rgvOneSignService.selectCount(new EntityWrapper<RgvOneSign>().eq("rgv_one_type", param.getPalletizingNo() + "barcode" + param.getBarcode()));
            if (rgvOneType==0){
                RgvOneSign rgvOneSign = new RgvOneSign();
                rgvOneSign.setRgvOneSign(param.getPalletizingNo());
                rgvOneSign.setRgvOneType(param.getPalletizingNo() + "barcode" + param.getBarcode());
                boolean insert = rgvOneSignService.insert(rgvOneSign);
                if (!insert){
                    throw new CoolException("托盘码标记添加失败,请重新下发!!!");
                }
            }
        }catch (Exception e){
            throw new CoolException("托盘码标记添加异常,请重新下发!!!");
        }
        Date now = new Date();
        for (PalletizingCompleteTwoFloorParam.MatList matList:param.getMatList()){
@@ -805,13 +818,24 @@
            waitPakin.sync(mat);
            waitPakin.setBatch(matList.getBatch());       //木箱编码  //批次  唯一值  箱号
            waitPakin.setModel(matList.getModel());       //卷号  唯一值
            waitPakin.setBrand(param.getBoxType());     //木箱类型
            String boxType = param.getBoxType();
            try{
                BasBoxTypeService basBoxTypeService = SpringUtils.getBean(BasBoxTypeService.class);
                BasBoxType basBoxType = basBoxTypeService.selectOne(new EntityWrapper<BasBoxType>().eq("box_specs", boxType));
                if (!Cools.isEmpty(basBoxType)){
                    boxType = basBoxType.getBoxType();
                }
            } catch (Exception e){
            }
            waitPakin.setBrand(boxType);     //木箱类型
            waitPakin.setZpallet(param.getBarcode());   //托盘码
            waitPakin.setOrigin(matList.getPosition()); //木箱在托盘上的位置
            waitPakin.setWeight(matList.getWeight());  //净重
            waitPakin.setVolume(matList.getRoughWeight());  //毛重
            waitPakin.setPrice(matList.getRollExtent());   //长度
            waitPakin.setSpecs(String.valueOf(matList.getJoint()));   //接头
            waitPakin.setDanger(matList.getQualified());   //待判
            waitPakin.setIoStatus("N");     // 入出状态
            waitPakin.setAnfme(matList.getAnfme());  // 数量
            waitPakin.setStatus("Y");    // 状态
@@ -980,7 +1004,7 @@
            throw new CoolException("参数:此任务未上报禁止完成:"+param.getBarcode());
        }
        wrkMastMatrix.setSheetNo("2");
        wrkMastMatrix.setSheetNo("3");
        if (!wrkMastService.updateById(wrkMastMatrix)){
            throw new CoolException("更新工作档失败==》桁架上位软件:单托拆垛完成通知");
        }
@@ -1064,5 +1088,108 @@
        return crnStn;
    }
    /*
     * FQC质检
     * */
    @Override
    @Transactional
    public void qualityInspection(QualityInspectionParam param) {
        //判断param参数
        if (Cools.isEmpty(param.getBoxNo())){
            throw new CoolException("参数:箱号 boxNo为空");
        }
        List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>()
                .eq("batch", param.getBoxNo())
                .eq("model", param.getModel())
        );
        if (locDetlList.isEmpty()){
            throw new CoolException("未查询到对应箱号:"+param.getBoxNo()+";与卷号:"+param.getModel()+";的物料");
        }
        for (LocDetl locDetl:locDetlList){
            if (locDetl.getDanger()!=0){
                String dangerStr = "";
                if (locDetl.getDanger()==1){
                    dangerStr = "合格";
                }else if (locDetl.getDanger()==2){
                    dangerStr = "不合格";
                }
                throw new CoolException("查询到对应箱号:"+param.getBoxNo()+";与卷号:"+param.getModel()+";的物料,但是已经标记为"+dangerStr+",不能重复标记!");
            }
        }
        for (LocDetl locDetl:locDetlList){
            if (locDetl.getDanger()==0){
                locDetl.setDanger(param.getDanger());
                if (param.getDanger()==2){
                    String memo = Cools.isEmpty(locDetl.getMemo())?  "" : locDetl.getMemo()+",";
                    locDetl.setMemo(memo + DateUtils.convert(new Date(), DateUtils.yyyyMMdd_C)+"质检结果不合格:" + param.getMemo());//不合格会给备注,需要把备注给到包装做展示
                }
                locDetlService.update(locDetl,new EntityWrapper<LocDetl>()
                        .eq("loc_no", locDetl.getLocNo())
                        .eq("batch", param.getBoxNo()));
            }
        }
    }
//    /*
//     * FQC质检 退库至2楼
//     * */
//    @Override
//    @Transactional
//    public R qualityInspection(QualityInspectionParam param) {
//        try{
////            String[] split = param.getModel().split(",");
////            if (Cools.isEmpty(split)){
////                throw new CoolException("参数:卷号 Model为空,解析失败!!!");
////            }
//            List<String[]> OutLocBoxCs = new ArrayList<>();
//            String orderNo = "TK" + snowflakeIdWorker.nextId();
//            String cstmrName = "未知";
////            for (String model:split){
//            String[] outLocBox = new String[]{param.getBoxNo(),orderNo,cstmrName,param.getMemo(),"不合格"};
//            OutLocBoxCs.add(outLocBox);
////            }
//
//            if (!OutLocBoxCs.isEmpty()){
//                OrderOutBatchUtil orderOutBatchUtil = new OrderOutBatchUtil(orderNo,cstmrName,"","MES下发不合格退货","不合格退货",true);
//                return orderOutBatchUtil.setOrderOutBatch(OutLocBoxCs);
//            }
//        } catch (Exception e) {
//            throw new CoolException("对应箱号:"+param.getBoxNo()+"的物料退库至2楼失败"+e.getMessage());
//        }
//        return R.error("对应箱号:"+param.getBoxNo()+"的物料退库至2楼失败");
//
//    }
    /*
     * 正常退库至二楼包装
     * */
    @Override
    @Transactional
    public R packagingAreaOrderCreate(QualityInspectionParam param) {
        try{
//            String[] split = param.getModel().split(",");
//            if (Cools.isEmpty(split)){
//                throw new CoolException("参数:卷号 Model为空,解析失败!!!");
//            }
            List<String[]> OutLocBoxCs = new ArrayList<>();
            String orderNo = "TK" + snowflakeIdWorker.nextId();
            String cstmrName = "未知";
//            for (String model:split){
                String[] outLocBox = new String[]{param.getBoxNo(),orderNo,cstmrName,param.getMemo(),"随意"};
                OutLocBoxCs.add(outLocBox);
//            }
            if (!OutLocBoxCs.isEmpty()){
                OrderOutBatchUtil orderOutBatchUtil = new OrderOutBatchUtil(orderNo,cstmrName,"","MES下发退货至二楼","退货至二楼",false);
                return orderOutBatchUtil.setOrderOutBatch(OutLocBoxCs);
            }
        } catch (Exception e) {
            throw new CoolException("对应箱号:"+param.getBoxNo()+"的物料退库至2楼失败"+e.getMessage());
        }
        return R.error("对应箱号:"+param.getBoxNo()+"的物料退库至2楼失败");
    }
    /*...........................上饶江铜..............以上.............徐工汉云...........................*/
}