| | |
| | | |
| | | 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.service.impl.MatServiceImpl; |
| | | import com.zy.asrs.service.impl.OrderDetl1ServiceImpl; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.system.entity.User; |
| | | import com.zy.system.service.impl.UserServiceImpl; |
| | | import com.zy.third.entity.ExdInstockTarget; |
| | | import com.zy.third.entity.ExdStock; |
| | | import com.zy.third.entity.ExdvYanbu; |
| | | import com.zy.third.mapper.ExdMaterialMapper; |
| | | import com.zy.third.service.ExdInstockTargetService; |
| | | import com.zy.third.service.ExdStockService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | @Autowired |
| | | private OrderDetlService orderDetlService; |
| | | |
| | | @Autowired |
| | | private ExdInstockTargetService exdInstockTargetService; |
| | | |
| | | @Autowired |
| | | private ExdMaterialMapper exdMaterialMapper; |
| | | @Autowired |
| | | private ExdStockService exdStockService; |
| | | @Autowired |
| | | private MatServiceImpl matServiceImpl; |
| | | @Autowired |
| | | private OrderDetl1ServiceImpl orderDetl1Service; |
| | | @Autowired |
| | | private UserServiceImpl userService; |
| | | |
| | | @Transactional |
| | | public ReturnT<String> start(WrkMast wrkMast) { |
| | | // 4.入库完成 |
| | | if (wrkMast.getWrkSts() == 4) { |
| | | return doIn(wrkMast); |
| | | // 14.出库完成 |
| | | } else if (wrkMast.getWrkSts() == 14) { |
| | | // 14.出库完成 |
| | | } else if (wrkMast.getWrkSts() == 14) { |
| | | return doOut(wrkMast); |
| | | } |
| | | return SUCCESS; |
| | | } |
| | | |
| | | private ReturnT<String> doIn(WrkMast wrkMast){ |
| | | private ReturnT<String> doIn(WrkMast wrkMast) { |
| | | Date now = new Date(); |
| | | LocMast locMast = locMastService.selectById(wrkMast.getLocNo()); |
| | | try { |
| | |
| | | |
| | | // 更新订单完成数量 |
| | | OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); |
| | | if (orderDetl == null) { |
| | | orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null); |
| | | } |
| | | try { |
| | | if(!Cools.isEmpty(orderDetl)){ |
| | | if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), |
| | | wrkDetl.getBatch(),wrkDetl.getAnfme())){ |
| | | if (!Cools.isEmpty(orderDetl)) { |
| | | if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), |
| | | orderDetl.getBatch(), wrkDetl.getAnfme())) { |
| | | // exceptionHandle("全板入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]", |
| | | // wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg("全板入库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); |
| | | } |
| | | } |
| | | } catch (Exception ignore){} |
| | | } catch (Exception ignore) { |
| | | } |
| | | |
| | | // 更新子订单完成数量 |
| | | OrderDetl1 orderDetl1 = orderDetl1Service.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); |
| | | if (orderDetl1 == null) { |
| | | orderDetl1 = orderDetl1Service.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null); |
| | | } |
| | | try { |
| | | if (!Cools.isEmpty(orderDetl)) { |
| | | if (!orderDetl1Service.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), |
| | | orderDetl.getBatch(), wrkDetl.getAnfme())) { |
| | | // exceptionHandle("全板入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]", |
| | | // wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg("全板入库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); |
| | | } |
| | | } |
| | | } catch (Exception ignore) { |
| | | } |
| | | |
| | | } |
| | | // 写入中间表数据 |
| | | write(wrkMast, wrkDetls); |
| | | // 修改库位状态 S ====>> F |
| | | if (locMast.getLocSts().equals("S")) { |
| | | locMast.setLocSts("F"); |
| | |
| | | } |
| | | } |
| | | |
| | | // 更新订单完成数量 |
| | | OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); |
| | | if(orderDetl==null){ |
| | | orderDetl=orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null); |
| | | } |
| | | try { |
| | | if(!Cools.isEmpty(orderDetl)){ |
| | | if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), |
| | | orderDetl.getBatch(),wrkDetl.getAnfme())){ |
| | | // exceptionHandle("拣料入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]", |
| | | // wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg("拣料入库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); |
| | | } |
| | | if(!Cools.isEmpty(wrkDetl.getOrderNo())){ |
| | | String orderNo = wrkDetl.getOrderNo().split("-")[0]; |
| | | // 更新订单完成数量 |
| | | OrderDetl orderDetl = orderDetlService.selectItem(orderNo, wrkDetl.getMatnr(), wrkDetl.getBatch()); |
| | | if (orderDetl == null) { |
| | | orderDetl = orderDetlService.selectItem(orderNo, wrkDetl.getMatnr(), null); |
| | | } |
| | | } catch (Exception ignore){} |
| | | try { |
| | | if (!Cools.isEmpty(orderDetl)) { |
| | | if (!orderDetlService.increaseQtyByOrderNo(orderNo, wrkDetl.getMatnr(), |
| | | orderDetl.getBatch(), wrkDetl.getAnfme())) { |
| | | // exceptionHandle("全板出库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]", |
| | | // wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg("全板出库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); |
| | | } |
| | | } |
| | | } catch (Exception ignore) { |
| | | } |
| | | |
| | | //子表数据完成 |
| | | String batch = null; |
| | | if(!Cools.isEmpty(wrkDetl.getBatch())){ |
| | | batch = wrkDetl.getBatch(); |
| | | } |
| | | OrderDetl1 orderDetl1 = orderDetl1Service.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), batch); |
| | | try { |
| | | if (!Cools.isEmpty(orderDetl1)) { |
| | | if (!orderDetl1Service.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), |
| | | batch, wrkDetl.getAnfme())) { |
| | | // exceptionHandle("全板出库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]", |
| | | // wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg("全板出库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); |
| | | } |
| | | } |
| | | } catch (Exception ignore) { |
| | | } |
| | | } |
| | | |
| | | // // 更新订单完成数量 |
| | | // OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); |
| | | // if (orderDetl == null) { |
| | | // orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null); |
| | | // } |
| | | // try { |
| | | // if (!Cools.isEmpty(orderDetl)) { |
| | | // if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), |
| | | // orderDetl.getBatch(), wrkDetl.getAnfme())) { |
| | | //// 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 |
| | |
| | | return FAIL.setMsg("并板入库 ===>> 工作明细档为空; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); |
| | | } |
| | | // 修改库存明细数量,如无库存,曾新增 |
| | | for (WrkDetl wrkDetl:wrkDetls54) { |
| | | for (WrkDetl wrkDetl : wrkDetls54) { |
| | | |
| | | LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); |
| | | if (null != locDetl) { |
| | |
| | | } |
| | | // 修改库位状态 Q ====>> F |
| | | if (locMast.getLocSts().equals("Q")) { |
| | | locMast.setLocSts(wrkMast.getFullPlt().equals("Y")?"F":"D"); |
| | | locMast.setLocSts(wrkMast.getFullPlt().equals("Y") ? "F" : "D"); |
| | | locMast.setBarcode(wrkMast.getBarcode()); |
| | | locMast.setIoTime(now); |
| | | locMast.setModiTime(now); |
| | |
| | | return SUCCESS; |
| | | } |
| | | |
| | | private ReturnT<String> doOut(WrkMast wrkMast){ |
| | | private ReturnT<String> doOut(WrkMast wrkMast) { |
| | | Date now = new Date(); |
| | | LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo()); |
| | | try { |
| | |
| | | return FAIL.setMsg("全板出库 ===>> 工作明细档为空; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); |
| | | } |
| | | for (WrkDetl wrkDetl : wrkDetls101) { |
| | | // 更新订单完成数量 |
| | | OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); |
| | | try { |
| | | if(!Cools.isEmpty(orderDetl)){ |
| | | if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), |
| | | wrkDetl.getBatch(),wrkDetl.getAnfme())){ |
| | | if(!Cools.isEmpty(wrkDetl.getOrderNo())){ |
| | | String orderNo = wrkDetl.getOrderNo().split("-")[0]; |
| | | // 更新订单完成数量 |
| | | OrderDetl orderDetl = orderDetlService.selectItem(orderNo, wrkDetl.getMatnr(), wrkDetl.getBatch()); |
| | | if (orderDetl == null) { |
| | | orderDetl = orderDetlService.selectItem(orderNo, wrkDetl.getMatnr(), null); |
| | | } |
| | | try { |
| | | if (!Cools.isEmpty(orderDetl)) { |
| | | if (!orderDetlService.increaseQtyByOrderNo(orderNo, wrkDetl.getMatnr(), |
| | | orderDetl.getBatch(), wrkDetl.getAnfme())) { |
| | | // exceptionHandle("全板出库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]", |
| | | // wrkMast.getWrkNo(), wrkMast.getLocNo()); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg("全板出库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg("全板出库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); |
| | | } |
| | | } |
| | | } catch (Exception ignore) { |
| | | } |
| | | } catch (Exception ignore){} |
| | | |
| | | //子表数据完成 |
| | | String batch = null; |
| | | if(!Cools.isEmpty(wrkDetl.getBatch())){ |
| | | batch = wrkDetl.getBatch(); |
| | | } |
| | | OrderDetl1 orderDetl1 = orderDetl1Service.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), batch); |
| | | try { |
| | | if (!Cools.isEmpty(orderDetl1)) { |
| | | if (!orderDetl1Service.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), |
| | | orderDetl1.getBatch(), wrkDetl.getAnfme())) { |
| | | // 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.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) { |
| | |
| | | default: |
| | | break; |
| | | } |
| | | // 修改工作主档状态 |
| | | wrkMast.setWrkSts(15L); |
| | | if (Cools.isEmpty(wrkMast.getMemo())) { |
| | | // 修改工作主档状态 |
| | | wrkMast.setWrkSts(15L); |
| | | } else { |
| | | wrkMast.setWrkSts(30L); |
| | | } |
| | | |
| | | wrkMast.setModiTime(now); |
| | | if (!wrkMastService.updateById(wrkMast)) { |
| | | // exceptionHandle("更新出库完成状态失败;[workNo={0}]", wrkMast.getWrkNo()); |
| | |
| | | return SUCCESS; |
| | | } |
| | | |
| | | |
| | | private void write(WrkMast wrkMast, List<WrkDetl> wrkDetls) { |
| | | ExdInstockTarget exdInstockTarge; |
| | | int i = 1; |
| | | for (WrkDetl wrkDetl : wrkDetls) { |
| | | if (Cools.isEmpty(wrkDetl.getOrderNo()) && !Cools.isEmpty(wrkDetl.getInspect()) && wrkDetl.getInspect() == 1) { |
| | | ExdvYanbu bacode = exdMaterialMapper.getBacode(wrkDetl.getThreeCode()); |
| | | if (bacode == null) { |
| | | log.info("验布数据没有,{}", wrkDetl.getThreeCode()); |
| | | return; |
| | | } |
| | | exdInstockTarge = new ExdInstockTarget(); |
| | | exdInstockTarge.setFtrantype(2); |
| | | exdInstockTarge.setFdate(new Date()); |
| | | exdInstockTarge.setFrob(1); |
| | | exdInstockTarge.setFdeptid(7502); |
| | | //供应商/客户ID |
| | | exdInstockTarge.setFsupplyid(0); |
| | | //wms操作员 |
| | | User id = userService.selectOne(new EntityWrapper<User>().eq("id", wrkDetl.getColor())); |
| | | exdInstockTarge.setFbillerid(Integer.valueOf(id.getEmail())); |
| | | exdInstockTarge.setFfmanagerid(17938); |
| | | exdInstockTarge.setFsmanagerid(17938); |
| | | exdInstockTarge.setFentryid(i); |
| | | //物料ID |
| | | Mat mat = matServiceImpl.selectByMatnr(wrkDetl.getMatnr()); |
| | | exdInstockTarge.setFitemid(Integer.valueOf(mat.getUuid())); |
| | | exdInstockTarge.setFqty(wrkDetl.getAnfme()); |
| | | //单价 |
| | | exdInstockTarge.setFprice(0.0); |
| | | exdInstockTarge.setFbatchno(bacode.getBatchno()); |
| | | //单价ID |
| | | exdInstockTarge.setFunitid(0); |
| | | //源单号 |
| | | exdInstockTarge.setFsourcebillno(bacode.getIcmono()); |
| | | //源单细表ID |
| | | exdInstockTarge.setFsourceentryid(1); |
| | | //源单单据类型 |
| | | exdInstockTarge.setFsourcetrantype(85); |
| | | //库位ID |
| | | exdInstockTarge.setFdcspid(0); |
| | | //仓库ID |
| | | Integer Fdcstockid = 19382; |
| | | if(!Cools.isEmpty(wrkDetl.getBrand())){ |
| | | ExdStock fname = exdStockService.selectOne(new EntityWrapper<ExdStock>().eq("Fname", wrkDetl.getBrand())); |
| | | Fdcstockid = Integer.valueOf(fname.getId()); |
| | | } |
| | | |
| | | exdInstockTarge.setFdcstockid(Integer.valueOf(Fdcstockid)); |
| | | |
| | | //exdInstockTarge.setFdcspid(wrkMast.getLocNo()); |
| | | |
| | | |
| | | exdInstockTarge.setBarcode(wrkDetl.getBatch()); |
| | | exdInstockTarge.setGross(bacode.getGross()); |
| | | exdInstockTarge.setWidth(bacode.getWidth()); |
| | | exdInstockTarge.setDefects(bacode.getDefects()); |
| | | exdInstockTarge.setBackcode(bacode.getBackcode()); |
| | | exdInstockTarge.setWritetime(new Date()); |
| | | exdInstockTarge.setWritor("WMS"); |
| | | exdInstockTarge.setStatus(0); |
| | | //仓库 |
| | | exdInstockTarge.setProdinkind(bacode.getProdinkind()); |
| | | //生产入库对一坨物料进行绑定。唯一值 |
| | | exdInstockTarge.setFbillno(wrkDetl.getOrigin()); |
| | | //exdInstockTarge.setProdInKind("特采库"); |
| | | if(!exdInstockTargetService.insert(exdInstockTarge)){ |
| | | throw new CoolException("验布入库完成插入入库表失败"); |
| | | } |
| | | i++; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |