| | |
| | | package com.zy.asrs.wms.task.handler; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.zy.asrs.common.wms.entity.LocDetl; |
| | | import com.zy.asrs.common.wms.entity.LocMast; |
| | | import com.zy.asrs.common.wms.entity.WrkDetl; |
| | | import com.zy.asrs.common.wms.entity.WrkMast; |
| | | import com.zy.asrs.common.wms.entity.*; |
| | | import com.zy.asrs.common.wms.service.*; |
| | | import com.zy.asrs.framework.common.Cools; |
| | | import com.zy.asrs.wms.task.AbstractHandler; |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.transaction.interceptor.TransactionAspectSupport; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | |
| | | private LocDetlService locDetlService; |
| | | @Autowired |
| | | private WaitPakinService waitPakinService; |
| | | @Autowired |
| | | private OrderDetlService orderDetlService; |
| | | @Autowired |
| | | private BasZpalletService basZpalletService; |
| | | |
| | | public ReturnT<String> start(WrkMast wrkMast) { |
| | | // 99.入库完成 |
| | |
| | | locMast.setLocSts("D"); |
| | | locMast.setIoTime(now); |
| | | locMast.setModiTime(now); |
| | | locMast.setPic(wrkMast.getPic()); |
| | | if (!locMastService.updateById(locMast)) { |
| | | exceptionHandle("空板入库 ===>> 修改库位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | // 更新入库通知档 ioStatus ===>> Y |
| | | // 更新订单完成数量 |
| | | OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId); |
| | | if (orderDetl==null){ |
| | | orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null, hostId); |
| | | } |
| | | try { |
| | | // Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>() |
| | | // .eq("zpallet", wrkDetl.getZpallet()) |
| | | // .eq("matnr", wrkDetl.getMatnr()) |
| | | // .eq("anfme", wrkDetl.getAnfme()); |
| | | // if (Cools.isEmpty(wrkDetl.getBatch())) { |
| | | // wrapper.eq("batch", wrkDetl.getBatch()); |
| | | // } else { |
| | | // wrapper.isNull("batch").or().eq("batch", ""); |
| | | // } |
| | | // WaitPakin setParam = new WaitPakin(); |
| | | // setParam.setIoStatus("Y"); |
| | | // setParam.setModiTime(now); |
| | | // waitPakinService.update(setParam, wrapper); |
| | | if(!Cools.isEmpty(orderDetl)){ |
| | | if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), |
| | | orderDetl.getBatch(), wrkDetl.getAnfme(), hostId)) { |
| | | // exceptionHandle("全板入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]", |
| | | // wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg("全板入库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); |
| | | } |
| | | } |
| | | } catch (Exception ignore){} |
| | | |
| | | } |
| | |
| | | locMast.setBarcode(wrkMast.getBarcode()); |
| | | locMast.setIoTime(now); |
| | | locMast.setModiTime(now); |
| | | locMast.setPic(wrkMast.getPic()); |
| | | locMast.setFullPlt(wrkMast.getFullPlt()); |
| | | if (!locMastService.updateById(locMast)) { |
| | | exceptionHandle("全板入库 ===>> 修改库位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | } |
| | |
| | | exceptionHandle("拣料入库 ===>> 修改库存明细数量失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | } |
| | | } |
| | | |
| | | // 更新订单完成数量 |
| | | OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId); |
| | | if (orderDetl==null){ |
| | | orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null, hostId); |
| | | } |
| | | try { |
| | | if(!Cools.isEmpty(orderDetl)){ |
| | | if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), |
| | | orderDetl.getBatch(), wrkDetl.getAnfme(), hostId)) { |
| | | // exceptionHandle("拣料入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]", |
| | | // wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg("拣料入库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); |
| | | } |
| | | } |
| | | } catch (Exception ignore){} |
| | | |
| | | } |
| | | // 修改库位状态 Q ====>> F |
| | | if (locMast.getLocSts().equals("Q")) { |
| | |
| | | locMast.setBarcode(wrkMast.getBarcode()); |
| | | locMast.setIoTime(now); |
| | | locMast.setModiTime(now); |
| | | locMast.setPic(wrkMast.getPic()); |
| | | if (!locMastService.updateById(locMast)) { |
| | | exceptionHandle("拣料入库 ===>> 修改库位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | } |
| | |
| | | |
| | | LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId); |
| | | if (null != locDetl) { |
| | | if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId)) { |
| | | if (!locDetlService.updateAnfme(locDetl.getAnfme() + wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId)) { |
| | | exceptionHandle("并板入库 ===>> 修改库存明细数量失败;[workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr()); |
| | | } |
| | | } else { |
| | |
| | | exceptionHandle("并板入库 ===>> 新增库存明细失败;[workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr()); |
| | | } |
| | | } |
| | | |
| | | // 更新订单完成数量 |
| | | OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId); |
| | | if (orderDetl == null) { |
| | | orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId); |
| | | } |
| | | try { |
| | | if(!Cools.isEmpty(orderDetl)){ |
| | | if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), |
| | | orderDetl.getBatch(), wrkDetl.getAnfme(), hostId)) { |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg("并板入库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); |
| | | } |
| | | } |
| | | } catch (Exception ignore){} |
| | | |
| | | } |
| | | // 修改库位状态 Q ====>> F |
| | | if (locMast.getLocSts().equals("Q")) { |
| | |
| | | locMast.setBarcode(wrkMast.getBarcode()); |
| | | locMast.setIoTime(now); |
| | | locMast.setModiTime(now); |
| | | locMast.setPic(wrkMast.getPic()); |
| | | if (!locMastService.updateById(locMast)) { |
| | | exceptionHandle("并板入库 ===>> 修改库位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | } |
| | |
| | | locMast.setBarcode(wrkMast.getBarcode()); |
| | | locMast.setIoTime(now); |
| | | locMast.setModiTime(now); |
| | | locMast.setPic(wrkMast.getPic()); |
| | | if (!locMastService.updateById(locMast)) { |
| | | exceptionHandle("盘点入库 ===>> 修改库位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | } |
| | |
| | | } |
| | | // 修改源库位状态 ==> O |
| | | LocMast sourceLoc = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, wrkMast.getSourceLocNo()).eq(LocMast::getHostId, hostId)); |
| | | String picUrl = ""; |
| | | if (null != sourceLoc) { |
| | | picUrl = sourceLoc.getPic(); |
| | | sourceLoc.setBarcode(""); |
| | | sourceLoc.setLocSts("O"); |
| | | sourceLoc.setModiTime(now); |
| | | sourceLoc.setIoTime(now); |
| | | sourceLoc.setPic(""); |
| | | if (!locMastService.updateById(sourceLoc)) { |
| | | exceptionHandle("库位移转 ===>> 修改源库位状态失败;[workNo={0}],[sourceLoc={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo()); |
| | | } |
| | |
| | | locMast.setBarcode(wrkMast.getBarcode()); |
| | | locMast.setIoTime(now); |
| | | locMast.setModiTime(now); |
| | | locMast.setPic(picUrl); |
| | | if (!locMastService.updateById(locMast)) { |
| | | exceptionHandle("库位移转 ===>> 修改目标库位状态失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | } |
| | |
| | | exceptionHandle("全板出库 ===>> 工作明细档为空;[workNo={0}]", wrkMast.getWrkNo()); |
| | | } |
| | | for (WrkDetl wrkDetl : wrkDetls101) { |
| | | // todo:luxiaotao 3)修改出库通知档 status ==> Y |
| | | // 更新订单完成数量 |
| | | OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId); |
| | | if (orderDetl==null){ |
| | | orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null, hostId); |
| | | } |
| | | try { |
| | | if(!Cools.isEmpty(orderDetl)){ |
| | | if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), |
| | | orderDetl.getBatch(), wrkDetl.getAnfme(), hostId)) { |
| | | // exceptionHandle("全板出库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]", |
| | | // wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg("全板出库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); |
| | | } |
| | | } |
| | | } catch (Exception ignore){} |
| | | } |
| | | // 删除工作档源库位的库存明细 |
| | | if (!locDetlService.remove(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocNo, wrkMast.getSourceLocNo()).eq(LocDetl::getHostId, hostId))) { |
| | |
| | | locMast.setBarcode(""); |
| | | locMast.setModiTime(now); |
| | | locMast.setIoTime(now); |
| | | locMast.setPic(""); |
| | | if (!locMastService.updateById(locMast)) { |
| | | exceptionHandle("全板出库 ===>> 修改源库位状态失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo()); |
| | | } |
| | |
| | | locMast.setBarcode(""); |
| | | locMast.setModiTime(now); |
| | | locMast.setIoTime(now); |
| | | locMast.setPic(""); |
| | | if (!locMastService.updateById(locMast)) { |
| | | exceptionHandle("空板出库 ===>> 修改源库位状态失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo()); |
| | | } |
| | |
| | | // 修改工作主档状态 |
| | | wrkMast.setWrkSts(200L);//200.库存更新完成 |
| | | wrkMast.setModiTime(now); |
| | | savePicInZpallet(wrkMast.getBarcode(),wrkMast.getPic(),wrkMast.getHostId()); |
| | | if (!wrkMastService.updateById(wrkMast)) { |
| | | exceptionHandle("更新出库完成状态失败;[workNo={0}]", wrkMast.getWrkNo()); |
| | | } |
| | |
| | | return SUCCESS; |
| | | } |
| | | |
| | | /* |
| | | 保存图片到托盘管理页面 |
| | | */ |
| | | private void savePicInZpallet(String barcode, String pic, Long hostId){ |
| | | |
| | | if(Cools.isEmpty(pic)){ |
| | | return; |
| | | } |
| | | |
| | | BasZpallet basZpallet = basZpalletService.getOne(new LambdaQueryWrapper<BasZpallet>().eq(BasZpallet::getZpallet, barcode)); |
| | | List<String> list = null; |
| | | if(Cools.isEmpty(basZpallet)){ |
| | | basZpallet = new BasZpallet(); |
| | | basZpallet.setHostId(hostId); |
| | | basZpallet.setCreateTime(new Date()); |
| | | basZpallet.setModifyTime(new Date()); |
| | | |
| | | list = new ArrayList<>(); |
| | | list.add(pic); |
| | | basZpallet.setPicture(JSON.toJSONString(list)); |
| | | |
| | | basZpalletService.save(basZpallet); |
| | | |
| | | }else { |
| | | basZpallet.setHostId(hostId); |
| | | basZpallet.setModifyTime(new Date()); |
| | | |
| | | String picture = basZpallet.getPicture(); |
| | | list = JSON.parseArray(picture, String.class); |
| | | if(list.size() >= 5){ |
| | | list.remove(0); |
| | | } |
| | | list.add(pic); |
| | | |
| | | basZpallet.setPicture(JSON.toJSONString(list)); |
| | | |
| | | basZpalletService.updateById(basZpallet); |
| | | } |
| | | |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | String str = "['abc','bcd','cdg']"; |
| | | List<String> list = JSON.parseArray(str, String.class); |
| | | System.out.println(list); |
| | | list.remove(0); |
| | | System.out.println(list); |
| | | list.add("aaa"); |
| | | System.out.println(list); |
| | | } |
| | | |
| | | } |