| | |
| | | import com.zy.asrs.mapper.TagMapper; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.asrs.utils.CodeDetectionUtil; |
| | | import com.zy.asrs.utils.MatUtils; |
| | | import com.zy.asrs.utils.PostMesDataUtils; |
| | | import com.zy.common.model.DetlDto; |
| | |
| | | private StaDescService staDescService; |
| | | @Autowired |
| | | private LocMastService locMastService; |
| | | @Autowired |
| | | private WorkService workService; |
| | | |
| | | @Override |
| | | @Transactional |
| | |
| | | } |
| | | |
| | | /*...........................上饶江铜..............以上.............徐工汉云...........................*/ |
| | | |
| | | |
| | | /*...........................亳州煜星..............以下.............亳州煜星...........................*/ |
| | | /* |
| | | * 亳州煜星任务下发 // |
| | | * */ |
| | | @Override |
| | | @Transactional |
| | | public void smallContainers(SmallCompleteParam param) { |
| | | try{ |
| | | //判断param参数 |
| | | if (Cools.isEmpty(param.getType())){ |
| | | throw new CoolException("参数:类型 type为空"); |
| | | } |
| | | if (param.getType()==0){//直接入库 |
| | | smallContainersSmall(param); |
| | | } else if (param.getType()==1){//直供产线 //出库 |
| | | smallContainersBig(param); |
| | | } else if (param.getType()==2){//入库 途径 硫化罐 |
| | | smallContainersJar(param); |
| | | } |
| | | } catch (Exception e){ |
| | | throw new CoolException("失败!!!原因:"+e.getMessage()); |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * 小料箱投料完成组托 |
| | | * */ |
| | | public void smallContainersSmall(SmallCompleteParam param) {//直接入库 |
| | | Long userId = 7777L;//mes |
| | | //判断param参数 |
| | | if (Cools.isEmpty(param.getType())){ |
| | | throw new CoolException("参数:类型 type为空"); |
| | | }else if (Cools.isEmpty(param.getStaNo())){ |
| | | throw new CoolException("参数:投料点位 staNo为空"); |
| | | // }else if (Cools.isEmpty(param.getDevNo())){ |
| | | // throw new CoolException("参数:产线点位 devNo为空"); |
| | | }else if (Cools.isEmpty(param.getMatnr())){ |
| | | throw new CoolException("参数:物料编码 matnr为空"); |
| | | }else if (Cools.isEmpty(param.getWeight())){ |
| | | throw new CoolException("参数:物料重量 wright为空"); |
| | | }else if (Cools.isEmpty(param.getColor())){ |
| | | throw new CoolException("参数:物料颜色 color为空"); |
| | | } |
| | | |
| | | Mat mat = matService.selectByMatnr(param.getMatnr()); |
| | | if (Cools.isEmpty(mat)) { |
| | | // mat = new Mat(); |
| | | // mat.setMatnr(param.getMatnr()); |
| | | // mat.setMaktx(param.getMatnr()); |
| | | // mat.setTagId(tagService.getTop().getId()); |
| | | // mat.setCreateBy(userId); |
| | | // mat.setCreateTime(now); |
| | | // mat.setUpdateBy(userId); |
| | | // mat.setUpdateTime(now); |
| | | // mat.setStatus(1); |
| | | // if (!matService.insert(mat)) { |
| | | // throw new CoolException("规格添加失败,请联系管理员"); |
| | | // } |
| | | throw new CoolException("物料:"+param.getMatnr()+" 不存在,请先下发物料基础信息"); |
| | | } |
| | | |
| | | |
| | | BasDevp basDevp = basDevpService.selectById(param.getStaNo()); |
| | | if (Cools.isEmpty(basDevp.getAutoing()) || !basDevp.getAutoing().equals("Y")){ |
| | | throw new CoolException("码垛位编号 palletizingNo="+param.getStaNo()+" 所处站点不是自动状态"); |
| | | } |
| | | if (Cools.isEmpty(basDevp.getLoading()) || !basDevp.getLoading().equals("Y")){ |
| | | throw new CoolException("码垛位编号 palletizingNo="+param.getStaNo()+" 所处站点不是有物状态"); |
| | | } |
| | | if (Cools.isEmpty(basDevp.getCanining()) || !basDevp.getCanining().equals("Y")){ |
| | | throw new CoolException("码垛位编号 palletizingNo="+param.getStaNo()+" 所处站点不是能入状态"); |
| | | } |
| | | if (Cools.isEmpty(basDevp.getBarcode())){ |
| | | throw new CoolException("码垛位编号 palletizingNo="+param.getStaNo()+" 所处站点料箱码异常状态;料箱码==》为空"+basDevp.getBarcode()); |
| | | } |
| | | if (CodeDetectionUtil.barcodeDetection(basDevp.getBarcode(),8)){ |
| | | throw new CoolException("码垛位编号 palletizingNo="+param.getStaNo()+" 所处站点料箱码异常状态;料箱码:"+basDevp.getBarcode()); |
| | | } |
| | | |
| | | |
| | | if (locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", basDevp.getBarcode()))!=0 |
| | | || wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", basDevp.getBarcode()))!=0 |
| | | || waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", basDevp.getBarcode()))!=0){ |
| | | throw new CoolException("托盘条码:"+basDevp.getBarcode()+"已存在,请勿重复组托"); |
| | | } |
| | | |
| | | |
| | | Date now = new Date(); |
| | | |
| | | WaitPakin waitPakin = new WaitPakin(); |
| | | waitPakin.sync(mat); |
| | | // waitPakin.setBatch(matList.getBatch()); //木箱编码 //批次 唯一值 箱号 |
| | | // waitPakin.setModel(matList.getModel()); //卷号 唯一值 |
| | | // waitPakin.setBrand(param.getBoxType()); //木箱类型 |
| | | waitPakin.setZpallet(basDevp.getBarcode()); //托盘码 |
| | | // waitPakin.setOrigin(matList.getPosition()); //木箱在托盘上的位置 |
| | | waitPakin.setWeight(param.getWeight()); //净重 |
| | | // waitPakin.setVolume(matList.getRoughWeight()); //毛重 |
| | | // waitPakin.setPrice(matList.getRollExtent()); //长度 |
| | | // waitPakin.setSpecs(String.valueOf(matList.getJoint())); //接头 |
| | | // waitPakin.setIoStatus("N"); // 入出状态 |
| | | // waitPakin.setAnfme(matList.getAnfme()); // 数量 |
| | | waitPakin.setColor(param.getColor()); // 颜色 |
| | | waitPakin.setStatus("Y"); // 状态 |
| | | waitPakin.setAppeUser(userId); |
| | | waitPakin.setAppeTime(now); |
| | | waitPakin.setModiUser(userId); |
| | | waitPakin.setModiTime(now); |
| | | if (!waitPakinService.insert(waitPakin)) { |
| | | throw new CoolException("保存入库通知档失败"); |
| | | } |
| | | } |
| | | /* |
| | | * 出库 |
| | | * 直供产线 |
| | | * */ |
| | | public void smallContainersBig(SmallCompleteParam param) {//直供产线//出库 |
| | | Long userId = 7777L;//mes |
| | | //判断param参数 |
| | | if (Cools.isEmpty(param.getType())){ |
| | | throw new CoolException("参数:类型 type为空"); |
| | | // }else if (Cools.isEmpty(param.getStaNo())){ |
| | | // throw new CoolException("参数:投料点位 staNo为空"); |
| | | }else if (Cools.isEmpty(param.getDevNo())){ |
| | | throw new CoolException("参数:产线点位 devNo为空"); |
| | | }else if (Cools.isEmpty(param.getMatnr())){ |
| | | throw new CoolException("参数:品号 matnr为空"); |
| | | }else if (Cools.isEmpty(param.getWeight())){ |
| | | throw new CoolException("参数:物料重量 wright为空"); |
| | | }else if (Cools.isEmpty(param.getColor())){ |
| | | throw new CoolException("参数:物料颜色 color为空"); |
| | | } |
| | | |
| | | List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", param.getMatnr()).eq("weight", param.getWeight()).eq("color", param.getColor())); |
| | | if (locDetls.isEmpty()){ |
| | | locDetls = new ArrayList<LocDetl>(); |
| | | } |
| | | if (locDetls.isEmpty()){ |
| | | throw new CoolException("未找到符合条件的物料明细:品号==》matnr:"+param.getMatnr()+";重量==》wright:"+param.getWeight()+";颜色==》color:"+param.getColor()); |
| | | } |
| | | for (LocDetl locDetl : locDetls){ |
| | | StockOutParam stockOutParam = new StockOutParam(param,locDetl); |
| | | workService.startupFullTakeStore(stockOutParam, userId); |
| | | } |
| | | } |
| | | public void smallContainersJar(SmallCompleteParam param) { |
| | | Long userId = 7777L;//mes |
| | | //判断param参数 |
| | | if (Cools.isEmpty(param.getType())){ |
| | | throw new CoolException("参数:类型 type为空"); |
| | | }else if (Cools.isEmpty(param.getStaNo())){ |
| | | throw new CoolException("参数:投料点位 staNo为空"); |
| | | // }else if (Cools.isEmpty(param.getDevNo())){ |
| | | // throw new CoolException("参数:产线点位 devNo为空"); |
| | | }else if (Cools.isEmpty(param.getMatnr())){ |
| | | throw new CoolException("参数:物料编码 matnr为空"); |
| | | }else if (Cools.isEmpty(param.getWeight())){ |
| | | throw new CoolException("参数:物料重量 wright为空"); |
| | | }else if (Cools.isEmpty(param.getColor())){ |
| | | throw new CoolException("参数:物料颜色 color为空"); |
| | | } |
| | | |
| | | Mat mat = matService.selectByMatnr(param.getMatnr()); |
| | | if (Cools.isEmpty(mat)) { |
| | | // mat = new Mat(); |
| | | // mat.setMatnr(param.getMatnr()); |
| | | // mat.setMaktx(param.getMatnr()); |
| | | // mat.setTagId(tagService.getTop().getId()); |
| | | // mat.setCreateBy(userId); |
| | | // mat.setCreateTime(now); |
| | | // mat.setUpdateBy(userId); |
| | | // mat.setUpdateTime(now); |
| | | // mat.setStatus(1); |
| | | // if (!matService.insert(mat)) { |
| | | // throw new CoolException("规格添加失败,请联系管理员"); |
| | | // } |
| | | throw new CoolException("物料:"+param.getMatnr()+" 不存在,请先下发物料基础信息"); |
| | | } |
| | | |
| | | |
| | | BasDevp basDevp = basDevpService.selectById(param.getStaNo()); |
| | | if (Cools.isEmpty(basDevp.getAutoing()) || !basDevp.getAutoing().equals("Y")){ |
| | | throw new CoolException("码垛位编号 palletizingNo="+param.getStaNo()+" 所处站点不是自动状态"); |
| | | } |
| | | if (Cools.isEmpty(basDevp.getLoading()) || !basDevp.getLoading().equals("Y")){ |
| | | throw new CoolException("码垛位编号 palletizingNo="+param.getStaNo()+" 所处站点不是有物状态"); |
| | | } |
| | | if (Cools.isEmpty(basDevp.getCanining()) || !basDevp.getCanining().equals("Y")){ |
| | | throw new CoolException("码垛位编号 palletizingNo="+param.getStaNo()+" 所处站点不是能入状态"); |
| | | } |
| | | if (Cools.isEmpty(basDevp.getBarcode())){ |
| | | throw new CoolException("码垛位编号 palletizingNo="+param.getStaNo()+" 所处站点料箱码异常状态;料箱码==》为空"+basDevp.getBarcode()); |
| | | } |
| | | if (CodeDetectionUtil.barcodeDetection(basDevp.getBarcode(),8)){ |
| | | throw new CoolException("码垛位编号 palletizingNo="+param.getStaNo()+" 所处站点料箱码异常状态;料箱码:"+basDevp.getBarcode()); |
| | | } |
| | | |
| | | |
| | | if (locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", basDevp.getBarcode()))!=0 |
| | | || wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", basDevp.getBarcode()))!=0 |
| | | || waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", basDevp.getBarcode()))!=0){ |
| | | throw new CoolException("托盘条码:"+basDevp.getBarcode()+"已存在,请勿重复组托"); |
| | | } |
| | | |
| | | |
| | | Date now = new Date(); |
| | | |
| | | WaitPakin waitPakin = new WaitPakin(); |
| | | waitPakin.sync(mat); |
| | | // waitPakin.setBatch(matList.getBatch()); //木箱编码 //批次 唯一值 箱号 |
| | | // waitPakin.setModel(matList.getModel()); //卷号 唯一值 |
| | | // waitPakin.setBrand(param.getBoxType()); //木箱类型 |
| | | waitPakin.setZpallet(basDevp.getBarcode()); //托盘码 |
| | | // waitPakin.setOrigin(matList.getPosition()); //木箱在托盘上的位置 |
| | | waitPakin.setWeight(param.getWeight()); //净重 |
| | | // waitPakin.setVolume(matList.getRoughWeight()); //毛重 |
| | | // waitPakin.setPrice(matList.getRollExtent()); //长度 |
| | | // waitPakin.setSpecs(String.valueOf(matList.getJoint())); //接头 |
| | | // waitPakin.setIoStatus("N"); // 入出状态 |
| | | // waitPakin.setAnfme(matList.getAnfme()); // 数量 |
| | | waitPakin.setColor(param.getColor()); // 颜色 |
| | | waitPakin.setStatus("Y"); // 状态 |
| | | waitPakin.setAppeUser(userId); |
| | | waitPakin.setAppeTime(now); |
| | | waitPakin.setModiUser(userId); |
| | | waitPakin.setModiTime(now); |
| | | if (!waitPakinService.insert(waitPakin)) { |
| | | throw new CoolException("保存入库通知档失败"); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | /*...........................亳州煜星..............以上.............亳州煜星...........................*/ |
| | | } |