| | |
| | | |
| | | 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.*; |
| | |
| | | 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; |
| | |
| | | private StaDescService staDescService; |
| | | @Autowired |
| | | private LocMastService locMastService; |
| | | @Autowired |
| | | private RgvOneSignService rgvOneSignService; |
| | | |
| | | @Override |
| | | @Transactional |
| | |
| | | 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){ |
| | |
| | | // 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; |
| | | } |
| | | |
| | |
| | | }else if (Cools.isEmpty(matList.getWeight()) || matList.getWeight().equals(0D)){ |
| | | throw new CoolException("规格:"+matList.getMatnr()+"、参数:净重 weight为空"); |
| | | }else if (Cools.isEmpty(matList.getRoughWeight()) || matList.getRoughWeight().equals(0D)){ |
| | | throw new CoolException("规格:"+matList.getMatnr()+"、参数:毛重 roughWeight"); |
| | | throw new CoolException("规格:"+matList.getMatnr()+"、参数:毛重 roughWeight为空"); |
| | | }else if (Cools.isEmpty(matList.getRollExtent()) || matList.getRollExtent().equals(0D)){ |
| | | throw new CoolException("规格:"+matList.getMatnr()+"、参数:卷长度 rollExtent"); |
| | | throw new CoolException("规格:"+matList.getMatnr()+"、参数:卷长度 rollExtent为空"); |
| | | } |
| | | // else if (Cools.isEmpty(matList.getJoint()) || matList.getJoint()==0){ |
| | | // throw new CoolException("规格:"+matList.getMatnr()+"、参数:接头数 joint"); |
| | |
| | | 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()){ |
| | |
| | | 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"); // 状态 |
| | |
| | | if (!waitPakinService.insert(waitPakin)) { |
| | | throw new CoolException("保存入库通知档失败"); |
| | | } |
| | | |
| | | RgvOneSign armNo = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","armNo"+param.getPalletizingNo())); |
| | | armNo.setRgvOneSign(1); |
| | | rgvOneSignService.updateById(armNo); |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | throw new CoolException("参数:此任务未上报禁止完成:"+param.getBarcode()); |
| | | } |
| | | |
| | | wrkMastMatrix.setSheetNo("2"); |
| | | wrkMastMatrix.setSheetNo("3"); |
| | | if (!wrkMastService.updateById(wrkMastMatrix)){ |
| | | throw new CoolException("更新工作档失败==》桁架上位软件:单托拆垛完成通知"); |
| | | } |
| | |
| | | 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楼失败"); |
| | | } |
| | | |
| | | /*...........................上饶江铜..............以上.............徐工汉云...........................*/ |
| | | } |