|  |  | 
 |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
 |  |  | import com.core.common.Cools; | 
 |  |  | import com.core.common.DateUtils; | 
 |  |  | import com.core.common.R; | 
 |  |  | import com.core.exception.CoolException; | 
 |  |  | import com.zy.asrs.entity.*; | 
 |  |  | import com.zy.asrs.entity.param.CombParam; | 
 |  |  | 
 |  |  |  | 
 |  |  |     @Transactional | 
 |  |  |     public ReturnT<String> start() { | 
 |  |  |         //测试失败(NG)移库 | 
 |  |  |         try { | 
 |  |  |             List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() | 
 |  |  |                     .eq("loc_sts", "F") | 
 |  |  |                     .eq("pack_status", 4)//测试失败 | 
 |  |  |                     .eq("row1", equipmentRow) | 
 |  |  |                     .eq("loc_type1", (short) 1) | 
 |  |  |                     .eq("fire_status",0) | 
 |  |  |             ); | 
 |  |  |             if (!Cools.isEmpty(locMasts)){ | 
 |  |  |                 for (LocMast locMast:locMasts){ | 
 |  |  |                     LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo())); | 
 |  |  |                     if (Cools.isEmpty(locDetl)){ | 
 |  |  |                         log.error("测试失败(NG)移库==>库存明细查询失败!库位号:"+locMast.getLocNo()); | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |                     TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>() | 
 |  |  |                             .eq("loc_no",locMast.getLocNo()) | 
 |  |  |                             .eq("barcode",locDetl.getMatnr()) | 
 |  |  |                             .eq("status",4)//完成测试 | 
 |  |  |                     ); | 
 |  |  |                     if (!Cools.isEmpty(testMast)){ | 
 |  |  |                         if (testMast.getStatus()==4){ | 
 |  |  |                             //移库开始,查询目标库位 | 
 |  |  |                             LocMast targetLocNo = locMastService.queryFreeLocMast(2,(short)4); | 
 |  |  |                             if (Cools.isEmpty(targetLocNo)){ | 
 |  |  |                                 targetLocNo=locMastService.queryFreeLocMast(1,(short)4); | 
 |  |  |                             } | 
 |  |  |                             if (targetLocNo != null){ | 
 |  |  |                                 workService.locMove(locMast.getLocNo(),targetLocNo.getLocNo(),(long)Integer.parseInt("9935")); | 
 |  |  |                                 //4.测试完成上报 | 
 |  |  |                                 CombParam combParam = new CombParam(); | 
 |  |  |                                 combParam.setPackNo(locDetl.getMatnr()); | 
 |  |  |                                 combParam.setLocNo(locMast.getLocNo()); | 
 |  |  |                                 combParam.setPackSts(2); | 
 |  |  |                                 combParam.setStepSts(4); | 
 |  |  |                                 combParam.setRequestTime(DateUtils.convert(new Date())); | 
 |  |  |                                 new PostMesDataUtils().postMesData("MES系统",mesUrl,inpath,combParam); | 
 |  |  |                                 return SUCCESS; | 
 |  |  |                             }else { | 
 |  |  |                                 log.error("测试完成自动移库--->没有空库位!"); | 
 |  |  |                             } | 
 |  |  |                         }else if (testMast.getStatus()!=4) { | 
 |  |  |                             log.error("测试状态异常,库位号为:" + testMast.getLocNo()); | 
 |  |  |                         } | 
 |  |  |                     }else { | 
 |  |  |                         log.error("测试库位:"+locMast.getLocNo()+"所属测试档为空或者不状态为4"); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             log.error(""+e); | 
 |  |  | //            e.printStackTrace(); | 
 |  |  | //            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
 |  |  | //            return FAIL.setMsg(e.getMessage()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         //测试成功 出库、移库 | 
 |  |  |         //测试成功,移库 | 
 |  |  |         try { | 
 |  |  |             List<LocMast> locMasts2 = locMastService.selectList(new EntityWrapper<LocMast>() | 
 |  |  |                     .eq("loc_sts", "F") | 
 |  |  |                     .eq("pack_status", 3)//测试完成 | 
 |  |  |                     .eq("row1", equipmentRow) | 
 |  |  |                     .eq("loc_type1", (short) 1) | 
 |  |  |                     .eq("fire_status",0) | 
 |  |  |                     .eq("fire_status", 0) | 
 |  |  |             ); | 
 |  |  |             if (!Cools.isEmpty(locMasts2)){ | 
 |  |  |                 for (LocMast locMast:locMasts2){ | 
 |  |  |             if (!Cools.isEmpty(locMasts2)) { | 
 |  |  |                 for (LocMast locMast : locMasts2) { | 
 |  |  |                     LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo())); | 
 |  |  |                     if (Cools.isEmpty(locDetl)){ | 
 |  |  |                         log.error("测试成功 出库、移库==>库存明细查询失败!库位号:"+locMast.getLocNo()); | 
 |  |  |                     if (Cools.isEmpty(locDetl)) { | 
 |  |  |                         log.error("测试成功 出库、移库==>库存明细查询失败!库位号:" + locMast.getLocNo()); | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |                     TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>() | 
 |  |  |                             .eq("loc_no",locMast.getLocNo()) | 
 |  |  |                             .eq("barcode",locDetl.getMatnr()) | 
 |  |  |                             .eq("status",4) | 
 |  |  |                             .eq("loc_no", locMast.getLocNo()) | 
 |  |  |                             .eq("barcode", locDetl.getMatnr()) | 
 |  |  |                             .eq("status", 4) | 
 |  |  |                     ); | 
 |  |  |                     boolean sign=false; | 
 |  |  |                     if (!Cools.isEmpty(testMast)){ | 
 |  |  |                         if (testMast.getStatus()==4){ | 
 |  |  |                             boolean signCrn1 = basCrnpService.checkSiteError(1, false); | 
 |  |  |                             if (!signCrn1){ | 
 |  |  |                                 log.error("测试完成自动移库--->1号堆垛机不可出库!"); | 
 |  |  |                                 break; | 
 |  |  |                             } | 
 |  |  |                     boolean sign = false; | 
 |  |  |                     if (!Cools.isEmpty(testMast)) { | 
 |  |  |                         if (testMast.getStatus() == 4) { | 
 |  |  |                             //移库开始,查询目标库位 | 
 |  |  |                             LocMast targetLocNo = locMastService.queryFreeLocMast(4,(short)2); | 
 |  |  |                             if (Cools.isEmpty(targetLocNo)){ | 
 |  |  |                                 targetLocNo=locMastService.queryFreeLocMast(3,(short)2); | 
 |  |  |                             } | 
 |  |  |                             boolean signCrn2 = basCrnpService.checkSiteError(2, true); | 
 |  |  |                             if (!signCrn2){ | 
 |  |  |                                 targetLocNo = null; | 
 |  |  |                                 log.error("测试完成自动移库--->2号堆垛机不可入库! 开始查找1号堆垛机"); | 
 |  |  |                             } | 
 |  |  |                             if (targetLocNo != null){ | 
 |  |  |                                 //生成出库任务 | 
 |  |  |                                 if (outLoc(locMast)){ | 
 |  |  |                                     sign=true; | 
 |  |  |                                 } | 
 |  |  |                             }else { | 
 |  |  |                                 signCrn1 = basCrnpService.checkSiteError(1, true); | 
 |  |  |                                 if (!signCrn1){ | 
 |  |  |                                     log.error("测试完成自动移库--->1号堆垛机不可入库!"); | 
 |  |  |                                     break; | 
 |  |  |                                 } | 
 |  |  |                                 //3\4排满  向2排移库,查询目标库位 | 
 |  |  |                                 targetLocNo = locMastService.queryFreeLocMast(2,(short)2); | 
 |  |  |                                 if (Cools.isEmpty(targetLocNo)){ | 
 |  |  |                                     targetLocNo=locMastService.queryFreeLocMast(1,(short)2); | 
 |  |  |                                 } | 
 |  |  |                                 if (targetLocNo != null){ | 
 |  |  |                                     workService.locMove(locMast.getLocNo(),targetLocNo.getLocNo(),(long)9935); | 
 |  |  |                                     sign=true; | 
 |  |  |                                 }else { | 
 |  |  |                                     log.error("测试完成自动移库--->没有空库位!"); | 
 |  |  |                             LocMast targetLocNo = locMastService.queryFreeLocMast(3, (short) 2); | 
 |  |  |                             if (Cools.isEmpty(targetLocNo)) { | 
 |  |  |                                 targetLocNo = locMastService.queryFreeLocMast(2, (short) 2); | 
 |  |  |                                 if (Cools.isEmpty(targetLocNo)) { | 
 |  |  |                                     targetLocNo = locMastService.queryFreeLocMast(1, (short) 2); | 
 |  |  |                                     if (Cools.isEmpty(targetLocNo)) { | 
 |  |  |                                         return FAIL.setMsg("没有中转库位"); | 
 |  |  |                                     } | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |                         }else if (testMast.getStatus()!=4) { | 
 |  |  |                             if (targetLocNo != null) { | 
 |  |  |                                 workService.locMove(locMast.getLocNo(), targetLocNo.getLocNo(), (long) 9935); | 
 |  |  |                                 sign = true; | 
 |  |  |                             } else { | 
 |  |  |                                 log.error("测试完成自动移库--->没有空库位!"); | 
 |  |  |                             } | 
 |  |  |  | 
 |  |  |                         } else if (testMast.getStatus() != 4) { | 
 |  |  |                             log.error("测试状态异常,库位号为:" + testMast.getLocNo()); | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                     }else { | 
 |  |  |                         log.error("测试库位:"+locMast.getLocNo()+"所属测试档为空或者不状态为4"); | 
 |  |  |                     } else { | 
 |  |  |                         log.error("测试库位:" + locMast.getLocNo() + "所属测试档为空或者不状态为4"); | 
 |  |  |                     } | 
 |  |  |                     if (sign){ | 
 |  |  |                     if (sign) { | 
 |  |  |                         //4.测试完成上报 | 
 |  |  |                         CombParam combParam = new CombParam(); | 
 |  |  |                         combParam.setPackNo(locDetl.getMatnr()); | 
 |  |  | 
 |  |  |                         combParam.setPackSts(1); | 
 |  |  |                         combParam.setStepSts(4); | 
 |  |  |                         combParam.setRequestTime(DateUtils.convert(new Date())); | 
 |  |  |                         new PostMesDataUtils().postMesData("MES系统",mesUrl,inpath,combParam); | 
 |  |  |                         new PostMesDataUtils().postMesData("MES系统", mesUrl, inpath, combParam); | 
 |  |  |                         return SUCCESS; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             log.error(""+e); | 
 |  |  | //            e.printStackTrace(); | 
 |  |  | //            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
 |  |  | //            return FAIL.setMsg(e.getMessage()); | 
 |  |  |             log.error("" + e); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         //测试有空库位 移库 | 
 |  |  |         try { | 
 |  |  |             List<LocMast> locMasts3 = locMastService.selectList(new EntityWrapper<LocMast>() | 
 |  |  |                     .eq("loc_sts", "F") | 
 |  |  |                     .eq("pack_status", 0) | 
 |  |  |                     .eq("loc_type1", (short) 3) | 
 |  |  |                     .eq("fire_status",0) | 
 |  |  |                     .orderBy("io_time",true) | 
 |  |  |                     .eq("fire_status", 0) | 
 |  |  |                     .orderBy("io_time", true) | 
 |  |  |             ); | 
 |  |  |             if (!Cools.isEmpty(locMasts3)){ | 
 |  |  |                 for (LocMast locMast:locMasts3){ | 
 |  |  |             if (!Cools.isEmpty(locMasts3)) { | 
 |  |  |                 for (LocMast locMast : locMasts3) { | 
 |  |  |                     boolean signCrn1 = basCrnpService.checkSiteError(1, true); | 
 |  |  |                     if (!signCrn1){ | 
 |  |  |                     if (!signCrn1) { | 
 |  |  |                         log.error("向测试库位移库失败---->1号堆垛机不可用!"); | 
 |  |  |                         break; | 
 |  |  |                     } | 
 |  |  |                     //移库开始,查询目标库位 | 
 |  |  |                     LocMast targetLocNo = locMastService.queryFreeLocMast(equipmentRow,(short)1); | 
 |  |  |                     if (targetLocNo != null){ | 
 |  |  |                         workService.locMove(locMast.getLocNo(),targetLocNo.getLocNo(),(long)9999); | 
 |  |  |                     }else { | 
 |  |  |                     LocMast targetLocNo = locMastService.queryFreeLocMast(equipmentRow, (short) 1); | 
 |  |  |                     if (targetLocNo != null) { | 
 |  |  |                         workService.locMove(locMast.getLocNo(), targetLocNo.getLocNo(), (long) 9999); | 
 |  |  |                     } else { | 
 |  |  | //                        log.error("向测试库位移库失败--->等待空库位!"); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             log.error(""+e); | 
 |  |  | //            e.printStackTrace(); | 
 |  |  | //            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
 |  |  | //            return FAIL.setMsg(e.getMessage()); | 
 |  |  |             log.error("" + e); | 
 |  |  |         } | 
 |  |  |         return SUCCESS; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public boolean outLoc(LocMast locMast){ | 
 |  |  |         try { | 
 |  |  |             Date now = new Date(); | 
 |  |  |             Integer ioType = 101;   //入出库类型 | 
 |  |  |             LocDetl locDetl=locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no",locMast.getLocNo())); | 
 |  |  |             if (Cools.isEmpty(locDetl)){ | 
 |  |  |                 log.error("库位:"+locMast.getLocNo()+"没有明细"); | 
 |  |  |             } else if (Cools.isEmpty(locDetl.getDeadWarn())){ | 
 |  |  |                 log.error("库位:"+locMast.getLocNo()+"没有静置时间"); | 
 |  |  |             } else if (Cools.isEmpty(locMast.getModiTime())){ | 
 |  |  |                 log.error("库位:"+locMast.getLocNo()+"modiTime为空"); | 
 |  |  |             } else if (Cools.isEmpty(locMast.getBarcode())){ | 
 |  |  |                 log.error("库位:"+locMast.getLocNo()+"托盘码为空"); | 
 |  |  |             } else { | 
 |  |  |                 // 生成工作号 | 
 |  |  |                 int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); | 
 |  |  |                 // 生成工作档 | 
 |  |  |                 WrkMast wrkMast = new WrkMast(); | 
 |  |  |                 wrkMast.setWrkNo(workNo); | 
 |  |  |                 wrkMast.setIoTime(now); | 
 |  |  |                 wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID | 
 |  |  |                 wrkMast.setIoType(ioType); // 入出库状态 | 
 |  |  |                 wrkMast.setIoPri(13D); // 优先级:13 | 
 |  |  |                 wrkMast.setCrnNo(1); | 
 |  |  |                 wrkMast.setSourceStaNo(203); // 源站 | 
 |  |  |                 wrkMast.setStaNo(206); // 目标站  2号堆垛机入库站 | 
 |  |  |                 wrkMast.setSourceLocNo(locMast.getLocNo()); // 源库位 | 
 |  |  |                 wrkMast.setFullPlt("Y"); // 满板:Y | 
 |  |  |                 wrkMast.setPicking("N"); // 拣料 | 
 |  |  |                 wrkMast.setExitMk("N"); // 退出 | 
 |  |  |                 wrkMast.setEmptyMk("N"); // 空板 | 
 |  |  |                 wrkMast.setLinkMis("N"); | 
 |  |  |                 wrkMast.setBarcode(locMast.getBarcode()); | 
 |  |  |                 wrkMast.setAppeTime(now); | 
 |  |  |                 wrkMast.setModiTime(now); | 
 |  |  |                 if (!wrkMastService.insert(wrkMast)) { | 
 |  |  |                     log.error("保存工作档失败,出库库位号:"+locMast.getLocNo()); | 
 |  |  |                     return false; | 
 |  |  |                 } | 
 |  |  |                 // 生成工作档明细 | 
 |  |  |                 WrkDetl wrkDetl = new WrkDetl(); | 
 |  |  |                 wrkDetl.sync(locDetl); | 
 |  |  |                 wrkDetl.setWrkNo(workNo); | 
 |  |  |                 wrkDetl.setIoTime(now); | 
 |  |  |                 wrkDetl.setAnfme(1.0); // 数量 | 
 |  |  |                 wrkDetl.setAppeTime(now); | 
 |  |  |                 wrkDetl.setModiTime(now); | 
 |  |  |                 if (!wrkDetlService.insert(wrkDetl)) { | 
 |  |  |                     log.error("保存工作档明细失败"); | 
 |  |  |                     return false; | 
 |  |  |                 } | 
 |  |  |                 // 修改库位状态:   F.在库 ====>>> R.出库预约 | 
 |  |  |                 if (locMast.getLocSts().equals("F")) { | 
 |  |  |                     locMast.setLocSts("R"); | 
 |  |  |                     locMast.setModiTime(now); | 
 |  |  | //                    locMast.setPackStatus(5); //5:开始静置 | 
 |  |  |                     if (!locMastService.updateById(locMast)) { | 
 |  |  |                         log.error("预约库位状态失败,库位号:"+locMast.getLocNo()); | 
 |  |  |                         return false; | 
 |  |  |                     }else { | 
 |  |  |                         return true; | 
 |  |  |                     } | 
 |  |  |                 } else { | 
 |  |  |                     log.error(locMast.getLocNo() + "库位不是在库状态"); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             return false; | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             return false; | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  | //    @Transactional | 
 |  |  | //    public ReturnT<String> start() { | 
 |  |  | //        //测试失败(NG)移库 | 
 |  |  | //        try { | 
 |  |  | //            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() | 
 |  |  | //                    .eq("loc_sts", "F") | 
 |  |  | //                    .eq("pack_status", 4)//测试失败 | 
 |  |  | //                    .eq("row1", equipmentRow) | 
 |  |  | //                    .eq("loc_type1", (short) 1) | 
 |  |  | //                    .eq("fire_status", 0) | 
 |  |  | //            ); | 
 |  |  | //            if (!Cools.isEmpty(locMasts)) { | 
 |  |  | //                for (LocMast locMast : locMasts) { | 
 |  |  | //                    LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo())); | 
 |  |  | //                    if (Cools.isEmpty(locDetl)) { | 
 |  |  | //                        log.error("测试失败(NG)移库==>库存明细查询失败!库位号:" + locMast.getLocNo()); | 
 |  |  | //                        continue; | 
 |  |  | //                    } | 
 |  |  | //                    TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>() | 
 |  |  | //                            .eq("loc_no", locMast.getLocNo()) | 
 |  |  | //                            .eq("barcode", locDetl.getMatnr()) | 
 |  |  | //                            .eq("status", 4)//完成测试 | 
 |  |  | //                    ); | 
 |  |  | //                    if (!Cools.isEmpty(testMast)) { | 
 |  |  | //                        if (testMast.getStatus() == 4) { | 
 |  |  | //                            //移库开始,查询目标库位 | 
 |  |  | //                            LocMast targetLocNo = locMastService.queryFreeLocMast(2, (short) 4); | 
 |  |  | //                            if (Cools.isEmpty(targetLocNo)) { | 
 |  |  | //                                targetLocNo = locMastService.queryFreeLocMast(1, (short) 4); | 
 |  |  | //                            } | 
 |  |  | //                            if (targetLocNo != null) { | 
 |  |  | //                                workService.locMove(locMast.getLocNo(), targetLocNo.getLocNo(), (long) Integer.parseInt("9935")); | 
 |  |  | //                                //4.测试完成上报 | 
 |  |  | //                                CombParam combParam = new CombParam(); | 
 |  |  | //                                combParam.setPackNo(locDetl.getMatnr()); | 
 |  |  | //                                combParam.setLocNo(locMast.getLocNo()); | 
 |  |  | //                                combParam.setPackSts(2); | 
 |  |  | //                                combParam.setStepSts(4); | 
 |  |  | //                                combParam.setRequestTime(DateUtils.convert(new Date())); | 
 |  |  | //                                new PostMesDataUtils().postMesData("MES系统", mesUrl, inpath, combParam); | 
 |  |  | //                                return SUCCESS; | 
 |  |  | //                            } else { | 
 |  |  | //                                log.error("测试完成自动移库--->没有空库位!"); | 
 |  |  | //                            } | 
 |  |  | //                        } else if (testMast.getStatus() != 4) { | 
 |  |  | //                            log.error("测试状态异常,库位号为:" + testMast.getLocNo()); | 
 |  |  | //                        } | 
 |  |  | //                    } else { | 
 |  |  | //                        log.error("测试库位:" + locMast.getLocNo() + "所属测试档为空或者不状态为4"); | 
 |  |  | //                    } | 
 |  |  | //                } | 
 |  |  | //            } | 
 |  |  | //        } catch (Exception e) { | 
 |  |  | //            log.error("" + e); | 
 |  |  | ////            e.printStackTrace(); | 
 |  |  | ////            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
 |  |  | ////            return FAIL.setMsg(e.getMessage()); | 
 |  |  | //        } | 
 |  |  | // | 
 |  |  | //        //测试成功 出库、移库 | 
 |  |  | //        try { | 
 |  |  | //            List<LocMast> locMasts2 = locMastService.selectList(new EntityWrapper<LocMast>() | 
 |  |  | //                    .eq("loc_sts", "F") | 
 |  |  | //                    .eq("pack_status", 3)//测试完成 | 
 |  |  | //                    .eq("row1", equipmentRow) | 
 |  |  | //                    .eq("loc_type1", (short) 1) | 
 |  |  | //                    .eq("fire_status", 0) | 
 |  |  | //            ); | 
 |  |  | //            if (!Cools.isEmpty(locMasts2)) { | 
 |  |  | //                for (LocMast locMast : locMasts2) { | 
 |  |  | //                    LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo())); | 
 |  |  | //                    if (Cools.isEmpty(locDetl)) { | 
 |  |  | //                        log.error("测试成功 出库、移库==>库存明细查询失败!库位号:" + locMast.getLocNo()); | 
 |  |  | //                        continue; | 
 |  |  | //                    } | 
 |  |  | //                    TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>() | 
 |  |  | //                            .eq("loc_no", locMast.getLocNo()) | 
 |  |  | //                            .eq("barcode", locDetl.getMatnr()) | 
 |  |  | //                            .eq("status", 4) | 
 |  |  | //                    ); | 
 |  |  | //                    boolean sign = false; | 
 |  |  | //                    if (!Cools.isEmpty(testMast)) { | 
 |  |  | //                        if (testMast.getStatus() == 4) { | 
 |  |  | //                            boolean signCrn1 = basCrnpService.checkSiteError(1, false); | 
 |  |  | //                            if (!signCrn1) { | 
 |  |  | //                                log.error("测试完成自动移库--->1号堆垛机不可出库!"); | 
 |  |  | //                                break; | 
 |  |  | //                            } | 
 |  |  | //                            //移库开始,查询目标库位 | 
 |  |  | //                            LocMast targetLocNo = locMastService.queryFreeLocMast(4, (short) 2); | 
 |  |  | //                            if (Cools.isEmpty(targetLocNo)) { | 
 |  |  | //                                targetLocNo = locMastService.queryFreeLocMast(3, (short) 2); | 
 |  |  | //                            } | 
 |  |  | //                            boolean signCrn2 = basCrnpService.checkSiteError(2, true); | 
 |  |  | //                            if (!signCrn2) { | 
 |  |  | //                                targetLocNo = null; | 
 |  |  | //                                log.error("测试完成自动移库--->2号堆垛机不可入库! 开始查找1号堆垛机"); | 
 |  |  | //                            } | 
 |  |  | //                            if (targetLocNo != null) { | 
 |  |  | //                                //生成出库任务 | 
 |  |  | //                                if (outLoc(locMast)) { | 
 |  |  | //                                    sign = true; | 
 |  |  | //                                } | 
 |  |  | //                            } else { | 
 |  |  | //                                signCrn1 = basCrnpService.checkSiteError(1, true); | 
 |  |  | //                                if (!signCrn1) { | 
 |  |  | //                                    log.error("测试完成自动移库--->1号堆垛机不可入库!"); | 
 |  |  | //                                    break; | 
 |  |  | //                                } | 
 |  |  | //                                //3\4排满  向2排移库,查询目标库位 | 
 |  |  | //                                targetLocNo = locMastService.queryFreeLocMast(2, (short) 2); | 
 |  |  | //                                if (Cools.isEmpty(targetLocNo)) { | 
 |  |  | //                                    targetLocNo = locMastService.queryFreeLocMast(1, (short) 2); | 
 |  |  | //                                } | 
 |  |  | //                                if (targetLocNo != null) { | 
 |  |  | //                                    workService.locMove(locMast.getLocNo(), targetLocNo.getLocNo(), (long) 9935); | 
 |  |  | //                                    sign = true; | 
 |  |  | //                                } else { | 
 |  |  | //                                    log.error("测试完成自动移库--->没有空库位!"); | 
 |  |  | //                                } | 
 |  |  | //                            } | 
 |  |  | //                        } else if (testMast.getStatus() != 4) { | 
 |  |  | //                            log.error("测试状态异常,库位号为:" + testMast.getLocNo()); | 
 |  |  | //                        } | 
 |  |  | // | 
 |  |  | //                    } else { | 
 |  |  | //                        log.error("测试库位:" + locMast.getLocNo() + "所属测试档为空或者不状态为4"); | 
 |  |  | //                    } | 
 |  |  | //                    if (sign) { | 
 |  |  | //                        //4.测试完成上报 | 
 |  |  | //                        CombParam combParam = new CombParam(); | 
 |  |  | //                        combParam.setPackNo(locDetl.getMatnr()); | 
 |  |  | //                        combParam.setLocNo(locMast.getLocNo()); | 
 |  |  | //                        combParam.setPackSts(1); | 
 |  |  | //                        combParam.setStepSts(4); | 
 |  |  | //                        combParam.setRequestTime(DateUtils.convert(new Date())); | 
 |  |  | //                        new PostMesDataUtils().postMesData("MES系统", mesUrl, inpath, combParam); | 
 |  |  | //                        return SUCCESS; | 
 |  |  | //                    } | 
 |  |  | //                } | 
 |  |  | //            } | 
 |  |  | //        } catch (Exception e) { | 
 |  |  | //            log.error("" + e); | 
 |  |  | ////            e.printStackTrace(); | 
 |  |  | ////            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
 |  |  | ////            return FAIL.setMsg(e.getMessage()); | 
 |  |  | //        } | 
 |  |  | // | 
 |  |  | //        //测试有空库位 移库 | 
 |  |  | //        try { | 
 |  |  | //            List<LocMast> locMasts3 = locMastService.selectList(new EntityWrapper<LocMast>() | 
 |  |  | //                    .eq("loc_sts", "F") | 
 |  |  | //                    .eq("pack_status", 0) | 
 |  |  | //                    .eq("loc_type1", (short) 3) | 
 |  |  | //                    .eq("fire_status", 0) | 
 |  |  | //                    .orderBy("io_time", true) | 
 |  |  | //            ); | 
 |  |  | //            if (!Cools.isEmpty(locMasts3)) { | 
 |  |  | //                for (LocMast locMast : locMasts3) { | 
 |  |  | //                    boolean signCrn1 = basCrnpService.checkSiteError(1, true); | 
 |  |  | //                    if (!signCrn1) { | 
 |  |  | //                        log.error("向测试库位移库失败---->1号堆垛机不可用!"); | 
 |  |  | //                        break; | 
 |  |  | //                    } | 
 |  |  | //                    //移库开始,查询目标库位 | 
 |  |  | //                    LocMast targetLocNo = locMastService.queryFreeLocMast(equipmentRow, (short) 1); | 
 |  |  | //                    if (targetLocNo != null) { | 
 |  |  | //                        workService.locMove(locMast.getLocNo(), targetLocNo.getLocNo(), (long) 9999); | 
 |  |  | //                    } else { | 
 |  |  | ////                        log.error("向测试库位移库失败--->等待空库位!"); | 
 |  |  | //                    } | 
 |  |  | //                } | 
 |  |  | //            } | 
 |  |  | //        } catch (Exception e) { | 
 |  |  | //            log.error("" + e); | 
 |  |  | ////            e.printStackTrace(); | 
 |  |  | ////            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
 |  |  | ////            return FAIL.setMsg(e.getMessage()); | 
 |  |  | //        } | 
 |  |  | //        return SUCCESS; | 
 |  |  | //    } | 
 |  |  | // | 
 |  |  | //    public boolean outLoc(LocMast locMast) { | 
 |  |  | //        try { | 
 |  |  | //            Date now = new Date(); | 
 |  |  | //            Integer ioType = 101;   //入出库类型 | 
 |  |  | //            LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo())); | 
 |  |  | //            if (Cools.isEmpty(locDetl)) { | 
 |  |  | //                log.error("库位:" + locMast.getLocNo() + "没有明细"); | 
 |  |  | //            } else if (Cools.isEmpty(locDetl.getDeadWarn())) { | 
 |  |  | //                log.error("库位:" + locMast.getLocNo() + "没有静置时间"); | 
 |  |  | //            } else if (Cools.isEmpty(locMast.getModiTime())) { | 
 |  |  | //                log.error("库位:" + locMast.getLocNo() + "modiTime为空"); | 
 |  |  | //            } else if (Cools.isEmpty(locMast.getBarcode())) { | 
 |  |  | //                log.error("库位:" + locMast.getLocNo() + "托盘码为空"); | 
 |  |  | //            } else { | 
 |  |  | //                // 生成工作号 | 
 |  |  | //                int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); | 
 |  |  | //                // 生成工作档 | 
 |  |  | //                WrkMast wrkMast = new WrkMast(); | 
 |  |  | //                wrkMast.setWrkNo(workNo); | 
 |  |  | //                wrkMast.setIoTime(now); | 
 |  |  | //                wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID | 
 |  |  | //                wrkMast.setIoType(ioType); // 入出库状态 | 
 |  |  | //                wrkMast.setIoPri(13D); // 优先级:13 | 
 |  |  | //                wrkMast.setCrnNo(1); | 
 |  |  | //                wrkMast.setSourceStaNo(203); // 源站 | 
 |  |  | //                wrkMast.setStaNo(206); // 目标站  2号堆垛机入库站 | 
 |  |  | //                wrkMast.setSourceLocNo(locMast.getLocNo()); // 源库位 | 
 |  |  | //                wrkMast.setFullPlt("Y"); // 满板:Y | 
 |  |  | //                wrkMast.setPicking("N"); // 拣料 | 
 |  |  | //                wrkMast.setExitMk("N"); // 退出 | 
 |  |  | //                wrkMast.setEmptyMk("N"); // 空板 | 
 |  |  | //                wrkMast.setLinkMis("N"); | 
 |  |  | //                wrkMast.setBarcode(locMast.getBarcode()); | 
 |  |  | //                wrkMast.setAppeTime(now); | 
 |  |  | //                wrkMast.setModiTime(now); | 
 |  |  | //                if (!wrkMastService.insert(wrkMast)) { | 
 |  |  | //                    log.error("保存工作档失败,出库库位号:" + locMast.getLocNo()); | 
 |  |  | //                    return false; | 
 |  |  | //                } | 
 |  |  | //                // 生成工作档明细 | 
 |  |  | //                WrkDetl wrkDetl = new WrkDetl(); | 
 |  |  | //                wrkDetl.sync(locDetl); | 
 |  |  | //                wrkDetl.setWrkNo(workNo); | 
 |  |  | //                wrkDetl.setIoTime(now); | 
 |  |  | //                wrkDetl.setAnfme(1.0); // 数量 | 
 |  |  | //                wrkDetl.setAppeTime(now); | 
 |  |  | //                wrkDetl.setModiTime(now); | 
 |  |  | //                if (!wrkDetlService.insert(wrkDetl)) { | 
 |  |  | //                    log.error("保存工作档明细失败"); | 
 |  |  | //                    return false; | 
 |  |  | //                } | 
 |  |  | //                // 修改库位状态:   F.在库 ====>>> R.出库预约 | 
 |  |  | //                if (locMast.getLocSts().equals("F")) { | 
 |  |  | //                    locMast.setLocSts("R"); | 
 |  |  | //                    locMast.setModiTime(now); | 
 |  |  | ////                    locMast.setPackStatus(5); //5:开始静置 | 
 |  |  | //                    if (!locMastService.updateById(locMast)) { | 
 |  |  | //                        log.error("预约库位状态失败,库位号:" + locMast.getLocNo()); | 
 |  |  | //                        return false; | 
 |  |  | //                    } else { | 
 |  |  | //                        return true; | 
 |  |  | //                    } | 
 |  |  | //                } else { | 
 |  |  | //                    log.error(locMast.getLocNo() + "库位不是在库状态"); | 
 |  |  | //                } | 
 |  |  | //            } | 
 |  |  | //            return false; | 
 |  |  | //        } catch (Exception e) { | 
 |  |  | //            return false; | 
 |  |  | //        } | 
 |  |  | //    } | 
 |  |  |  | 
 |  |  | } |