| | |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | |
| | | private WaitPakinService waitPakinService; |
| | | @Autowired |
| | | private OrderDetlService orderDetlService; |
| | | @Autowired |
| | | private InOutService inOutService; |
| | | @Autowired |
| | | private MatService matService; |
| | | @Autowired |
| | | private HalfBarcodeService halfBarcodeService; |
| | | |
| | | public ReturnT<String> start(WrkMast wrkMast) { |
| | | // 4.入库完成 |
| | |
| | | case 10: |
| | | // 修改库位状态=D |
| | | if (locMast.getLocSts().equals("S") || locMast.getLocSts().equals("Q")) { |
| | | if (!Cools.isEmpty(wrkMast.getBarcode())) { |
| | | locMast.setBarcode(wrkMast.getBarcode()); |
| | | if (Cools.isEmpty(wrkMast.getBarcode())) { |
| | | throw new CoolException("空板入库条码不能为空"); |
| | | } |
| | | locMast.setBarcode(wrkMast.getBarcode()); |
| | | if (Integer.parseInt(wrkMast.getBarcode().substring(0,1))==5){ |
| | | locMast.setLocType2((short)5); |
| | | }else if (Integer.parseInt(wrkMast.getBarcode().substring(0,1))==6){ |
| | | locMast.setLocType2((short)6); |
| | | }else if(Integer.parseInt(wrkMast.getBarcode().substring(0,1))==7){ |
| | | locMast.setLocType2((short)7); |
| | | }else if(Integer.parseInt(wrkMast.getBarcode().substring(0,1))==8){ |
| | | locMast.setLocType2((short)8); |
| | | } |
| | | locMast.setLocSts("D"); |
| | | locMast.setIoTime(now); |
| | |
| | | // 遍历工作明细,更新库存明细和入库通知档 |
| | | for (WrkDetl wrkDetl : wrkDetls) { |
| | | |
| | | LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); |
| | | LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl); |
| | | if (null != locDetl) { |
| | | if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) { |
| | | if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl)) { |
| | | // exceptionHandle("全板入库 ===>> 更新库存明细失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg("全板入库 ===>> 更新库存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); |
| | |
| | | locDetl.setZpallet(wrkDetl.getZpallet()); // 托盘条码 |
| | | locDetl.setModiTime(now); |
| | | locDetl.setAppeTime(now); |
| | | locDetl.setModel(wrkDetl.getModel()); |
| | | |
| | | InOut inOut=inOutService.selectByMatnr(wrkDetl.getMatnr()); |
| | | Mat mat = matService.selectByMatnr(wrkDetl.getMatnr()); |
| | | if (inOut != null){ |
| | | inOut.setTemp1("在库");//属性 是否在库 |
| | | inOut.setBrand(wrkDetl.getZpallet());//托盘条码 |
| | | inOut.setTemp2(mat.getName());//套号 |
| | | inOut.setTemp3(wrkMast.getLocNo());//库位号 |
| | | // inOut.setModiTime(now.toString()); |
| | | } |
| | | if (!inOutService.updateById(inOut)){ |
| | | return FAIL.setMsg("更新模具属性失败"); |
| | | } |
| | | |
| | | //更新半托信息 |
| | | HalfBarcode halfBarcode = halfBarcodeService.selectByZpallet(wrkDetl.getZpallet()); |
| | | //对模具的规格做处理得到厚度 |
| | | Integer thickness = 0; |
| | | if (!Cools.isEmpty(wrkDetl.getSpecs())){ |
| | | String[] split = wrkDetl.getSpecs().split("\\*"); |
| | | thickness = Integer.parseInt(split[1]); |
| | | } |
| | | if (halfBarcode == null){ |
| | | HalfBarcode hb = new HalfBarcode(); |
| | | hb.setZpallet(wrkDetl.getZpallet()); |
| | | hb.setSpecs(wrkDetl.getZpallet().substring(0,1)); |
| | | hb.setAnfme(1); |
| | | if (Integer.parseInt(wrkDetl.getZpallet().substring(0,1))==6){ |
| | | hb.setPrice(2650 - thickness); |
| | | }else if(Integer.parseInt(wrkDetl.getZpallet().substring(0,1))==7){ |
| | | hb.setPrice(1750 - thickness); |
| | | }else if(Integer.parseInt(wrkDetl.getZpallet().substring(0,1))==8){ |
| | | hb.setPrice(800 - thickness); |
| | | } |
| | | if (!halfBarcodeService.insert(hb)){ |
| | | throw new CoolException("更新半托信息失败"); |
| | | } |
| | | }else { |
| | | if (Integer.parseInt(wrkDetl.getZpallet().substring(0,1))==6){ |
| | | halfBarcode.setAnfme(halfBarcode.getAnfme() + 1); |
| | | halfBarcode.setPrice(halfBarcode.getPrice() - thickness); |
| | | }else if(Integer.parseInt(wrkDetl.getZpallet().substring(0,1))==7){ |
| | | halfBarcode.setAnfme(halfBarcode.getAnfme() + 1); |
| | | halfBarcode.setPrice(halfBarcode.getPrice() - thickness); |
| | | }else if(Integer.parseInt(wrkDetl.getZpallet().substring(0,1))==8){ |
| | | halfBarcode.setAnfme(halfBarcode.getAnfme() + 1); |
| | | halfBarcode.setPrice(halfBarcode.getPrice() - thickness); |
| | | } |
| | | if (!halfBarcodeService.half(halfBarcode)){ |
| | | throw new CoolException("更新半托信息失败"); |
| | | } |
| | | } |
| | | |
| | | |
| | | if (!locDetlService.insert(locDetl)) { |
| | | // exceptionHandle("全板入库 ===>> 添加库存明细失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | |
| | | } |
| | | |
| | | // 更新订单完成数量 |
| | | OrderDetl orderDetl = orderDetlService.selectQtyItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme()); |
| | | if (orderDetl == null) { |
| | | orderDetl = orderDetlService.selectQtyItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null, wrkDetl.getAnfme()); |
| | | } |
| | | OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl); |
| | | |
| | | try { |
| | | if (!Cools.isEmpty(orderDetl)) { |
| | | if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), |
| | | orderDetl.getBatch(), wrkDetl.getAnfme())) { |
| | | if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl, wrkDetl.getAnfme())) { |
| | | // exceptionHandle("全板入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]", |
| | | // wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | |
| | | } |
| | | for (WrkDetl wrkDetl : wrkDetls53) { |
| | | |
| | | LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); |
| | | if (null == locDetl) { |
| | | locDetl = locDetlService.selectItem2(locMast.getLocNo(), wrkDetl.getMatnr()); |
| | | } |
| | | LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl); |
| | | |
| | | if (locDetl != null) { |
| | | if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) { |
| | | |
| | | InOut inOut=inOutService.selectByMatnr(wrkDetl.getMatnr()); |
| | | if (inOut != null){ |
| | | inOut.setTemp1("不在库");//属性 是否在库 |
| | | inOut.setBrand("");//托盘条码 |
| | | inOut.setTemp3(""); |
| | | // inOut.setModiTime(now.toString()); |
| | | } |
| | | if (!inOutService.updateById(inOut)){ |
| | | return FAIL.setMsg("更新模具属性失败"); |
| | | } |
| | | |
| | | // 对模具的规格做处理得到厚度 |
| | | Integer thickness = 0; |
| | | if (wrkDetl.getSpecs() != null){ |
| | | String[] split = wrkDetl.getSpecs().split("\\*"); |
| | | thickness = Integer.parseInt(split[1]); |
| | | } |
| | | // 根据托盘码找到半托信息 |
| | | HalfBarcode halfBarcode = halfBarcodeService.selectByZpallet(wrkDetl.getZpallet()); |
| | | if (halfBarcode != null){ |
| | | halfBarcode.setPrice(thickness + halfBarcode.getPrice()); // 可放厚度 |
| | | halfBarcode.setAnfme(halfBarcode.getAnfme() - 1); // 数量 |
| | | } |
| | | |
| | | |
| | | if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl)) { |
| | | // exceptionHandle("拣料入库 ===>> 修改库存明细数量失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg("拣料入库 ===>> 修改库存明细数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); |
| | |
| | | |
| | | |
| | | // 更新订单完成数量 |
| | | OrderDetl orderDetl = orderDetlService.selectQtyItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme()); |
| | | if (orderDetl == null) { |
| | | orderDetl = orderDetlService.selectQtyItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null, wrkDetl.getAnfme()); |
| | | } |
| | | OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl); |
| | | |
| | | try { |
| | | if (!Cools.isEmpty(orderDetl)) { |
| | | if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), |
| | | orderDetl.getBatch(), wrkDetl.getAnfme())) { |
| | | if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl, wrkDetl.getAnfme())) { |
| | | // exceptionHandle("拣料入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]", |
| | | // wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | |
| | | // 修改库存明细数量,如无库存,曾新增 |
| | | for (WrkDetl wrkDetl : wrkDetls54) { |
| | | |
| | | LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); |
| | | LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl); |
| | | if (null != locDetl) { |
| | | if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) { |
| | | if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl)) { |
| | | // exceptionHandle("并板入库 ===>> 修改库存明细数量失败;[workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr()); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg("并板入库 ===>> 修改库存明细数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); |
| | | } |
| | | } else { |
| | | |
| | | InOut inOut=inOutService.selectByMatnr(wrkDetl.getMatnr()); |
| | | if (inOut != null){ |
| | | inOut.setTemp1("在库");//属性 是否在库 |
| | | inOut.setBrand(wrkDetl.getZpallet());//托盘条码 |
| | | inOut.setTemp3(wrkMast.getLocNo());//库位号 |
| | | // inOut.setModiTime(now.toString()); |
| | | } |
| | | if (!inOutService.updateById(inOut)){ |
| | | return FAIL.setMsg("更新模具属性失败"); |
| | | } |
| | | |
| | | //更新半托信息 |
| | | HalfBarcode halfBarcode = halfBarcodeService.selectByZpallet(wrkDetl.getZpallet()); |
| | | //对模具的规格做处理得到厚度 |
| | | Integer thickness = 0; |
| | | if (!Cools.isEmpty(wrkDetl.getSpecs())){ |
| | | String[] split = wrkDetl.getSpecs().split("\\*"); |
| | | thickness = Integer.parseInt(split[1]); |
| | | } |
| | | if (halfBarcode == null){ |
| | | HalfBarcode hb = new HalfBarcode(); |
| | | hb.setZpallet(wrkDetl.getZpallet()); |
| | | hb.setSpecs(wrkDetl.getZpallet().substring(0,1)); |
| | | hb.setAnfme(1); |
| | | if (Integer.parseInt(wrkDetl.getZpallet().substring(0,1))==6){ |
| | | hb.setPrice(2650 - thickness); |
| | | }else if(Integer.parseInt(wrkDetl.getZpallet().substring(0,1))==7){ |
| | | hb.setPrice(1750 - thickness); |
| | | }else if(Integer.parseInt(wrkDetl.getZpallet().substring(0,1))==8){ |
| | | hb.setPrice(800 - thickness); |
| | | } |
| | | if (!halfBarcodeService.insert(hb)){ |
| | | throw new CoolException("更新半托信息失败"); |
| | | } |
| | | }else { |
| | | if (Integer.parseInt(wrkDetl.getZpallet().substring(0,1))==6){ |
| | | halfBarcode.setAnfme(halfBarcode.getAnfme() + 1); |
| | | halfBarcode.setPrice(halfBarcode.getPrice() - thickness); |
| | | }else if(Integer.parseInt(wrkDetl.getZpallet().substring(0,1))==7){ |
| | | halfBarcode.setAnfme(halfBarcode.getAnfme() + 1); |
| | | halfBarcode.setPrice(halfBarcode.getPrice() - thickness); |
| | | }else if(Integer.parseInt(wrkDetl.getZpallet().substring(0,1))==8){ |
| | | halfBarcode.setAnfme(halfBarcode.getAnfme() + 1); |
| | | halfBarcode.setPrice(halfBarcode.getPrice() - thickness); |
| | | } |
| | | if (!halfBarcodeService.half(halfBarcode)){ |
| | | throw new CoolException("更新半托信息失败"); |
| | | } |
| | | } |
| | | |
| | | locDetl = new LocDetl(); |
| | | locDetl.sync(wrkDetl); |
| | | locDetl.setLocNo(wrkMast.getLocNo()); // 库位号 |
| | |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg("全板出库 ===>> 工作明细档为空; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); |
| | | } |
| | | |
| | | for (WrkDetl wrkDetl : wrkDetls101) { |
| | | InOut inOut=inOutService.selectByMatnr(wrkDetl.getMatnr()); |
| | | // 对模具的规格做处理得到厚度 |
| | | Integer thickness = 0; |
| | | if (wrkDetl.getSpecs() != null){ |
| | | String[] split = wrkDetl.getSpecs().split("\\*"); |
| | | thickness = Integer.parseInt(split[1]); |
| | | } |
| | | // 根据托盘码找到半托信息 |
| | | HalfBarcode halfBarcode = halfBarcodeService.selectByZpallet(wrkDetl.getZpallet()); |
| | | if (halfBarcode != null){ |
| | | halfBarcode.setPrice(thickness + halfBarcode.getPrice()); // 可放厚度 |
| | | halfBarcode.setAnfme(halfBarcode.getAnfme() - 1); // 数量 |
| | | } |
| | | if (inOut != null){ |
| | | inOut.setTemp1("不在库");//属性 是否在库 |
| | | inOut.setBrand("");//托盘条码 |
| | | inOut.setTemp3("");//库位号 |
| | | // inOut.setModiTime(now.toString()); |
| | | } |
| | | if (!inOutService.updateById(inOut)){ |
| | | return FAIL.setMsg("更新模具属性失败"); |
| | | } |
| | | if (!halfBarcodeService.half(halfBarcode)){ |
| | | return FAIL.setMsg("更新半托信息失败"); |
| | | } |
| | | } |
| | | |
| | | for (WrkDetl wrkDetl : wrkDetls101) { |
| | | // 更新订单完成数量 |
| | | OrderDetl orderDetl = orderDetlService.selectQtyItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme()); |
| | | if (orderDetl == null) { |
| | | orderDetl = orderDetlService.selectQtyItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null, wrkDetl.getAnfme()); |
| | | } |
| | | OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl); |
| | | |
| | | try { |
| | | if (!Cools.isEmpty(orderDetl)) { |
| | | if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), |
| | | orderDetl.getBatch(), wrkDetl.getAnfme())) { |
| | | if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl, wrkDetl.getAnfme())) { |
| | | // exceptionHandle("全板出库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]", |
| | | // wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | |
| | | // 修改源库位状态 R ===>> O |
| | | if (locMast.getLocSts().equals("R")) { |
| | | locMast.setLocSts("O"); |
| | | locMast.setBarcode(""); |
| | | locMast.setBarcode("");//托盘与库位绑定 |
| | | locMast.setModiTime(now); |
| | | locMast.setIoTime(now); |
| | | if (!locMastService.updateById(locMast)) { |
| | |
| | | // 修改库位状态 R ===>> O |
| | | if (locMast.getLocSts().equals("R")) { |
| | | locMast.setLocSts("O"); |
| | | locMast.setBarcode(""); |
| | | locMast.setBarcode("");//托盘与库位绑定 |
| | | locMast.setLocType2((short)0); |
| | | locMast.setModiTime(now); |
| | | locMast.setIoTime(now); |
| | | if (!locMastService.updateById(locMast)) { |