| | |
| | | @Autowired |
| | | private BasArmMastService basArmMastService; |
| | | @Autowired |
| | | private BasAgvLocDetlService basAgvLocDetlService; |
| | | @Autowired |
| | | private BasArmMastSignService basArmMastSignService; |
| | | @Autowired |
| | | private BasAgvMastService basAgvMastService; |
| | |
| | | private CommonService commonService; |
| | | @Autowired |
| | | private LocMastServiceImpl locMastService; |
| | | |
| | | @Autowired |
| | | private WrkDetlService wrkDetlService; |
| | | @Override |
| | | @Transactional |
| | | public void pakinOrderCreate(OpenOrderPakinParam param) { |
| | |
| | | throw new CoolException("未能绑定"); |
| | | } |
| | | } |
| | | @Override |
| | | @Transactional |
| | | public List<PickWrkDetlListParam> getPickList(PdaPickListParam param) { |
| | | List<WrkDetl> wrkDetls = wrkDetlService.findByBarcode(param.getBarcode()); |
| | | List<PickWrkDetlListParam> result = new ArrayList<>(); |
| | | wrkDetls.forEach(wrkDetl -> { |
| | | Double total; |
| | | EntityWrapper<LocDetl> wrapper = new EntityWrapper<>(); |
| | | LocDetl locDetl = locDetlService.selectOne( |
| | | wrapper.eq("zpallet", wrkDetl.getZpallet()) |
| | | .eq("matnr", wrkDetl.getMatnr()) |
| | | .eq("box_type3",wrkDetl.getBoxType3()) |
| | | ); |
| | | // 可拣总量:优先取库存表,否则取作业数量 |
| | | if (Cools.isEmpty(locDetl)) { |
| | | total = wrkDetl.getAnfme(); |
| | | } else { |
| | | total = locDetl.getAnfme(); |
| | | } |
| | | // ===== 组装返回对象 ===== |
| | | PickWrkDetlListParam dto = new PickWrkDetlListParam(); |
| | | dto.setMatnr(wrkDetl.getMatnr()); |
| | | dto.setMaknx(wrkDetl.getMaktx()); |
| | | dto.setOrderNo(wrkDetl.getOrderNo()); |
| | | dto.setBoxType3(wrkDetl.getBoxType3()); |
| | | dto.setStandby1(wrkDetl.getStandby1()); |
| | | dto.setStandby2(wrkDetl.getStandby2()); |
| | | dto.setStandby3(wrkDetl.getStandby3()); |
| | | dto.setManu(wrkDetl.getManu()); |
| | | dto.setMemo(wrkDetl.getMemo()); |
| | | // 当前拣货数量 |
| | | dto.setCount(wrkDetl.getAnfme()); |
| | | // 可拣总数量 |
| | | dto.setTotal(total); |
| | | result.add(dto); |
| | | }); |
| | | |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * 入/出库通知单下发 |
| | | * @param param |
| | | */ |
| | | @Override |
| | | public void orderCreate(OpenOrderParam param) { |
| | | Order order = orderService.selectByNo(param.getOrderNo()); |
| | | if (!Cools.isEmpty(order)){ |
| | | throw new CoolException(param.getOrderNo() + "订单已存在,请勿重复创建"); |
| | | } |
| | | Date now = new Date(); |
| | | order = new Order( |
| | | String.valueOf(snowflakeIdWorker.nextId()), // 编号[非空] |
| | | param.getOrderNo(), // 订单编码[非空] |
| | | DateUtils.convert(now), //单据日期 |
| | | param.getOrderType(), //订单类型 |
| | | null, //项目编号 |
| | | null, //项目名称 客户PO号 |
| | | null, //调拨项目编号 |
| | | null, //初始票据号 |
| | | null, //票据号 |
| | | null, //客户编号 |
| | | null, //客户 |
| | | param.getOrderInternalCode(), //单据内码 |
| | | param.getWkType(), //业务类型 |
| | | null, //合计金额 |
| | | null, //优惠率 |
| | | null, //优惠金额 |
| | | null, //销售或采购费用合计 |
| | | null, //实付金额 |
| | | null, //付款类型 1: 现金 2: 记账 |
| | | null, //业务员 |
| | | null, //结算天数 |
| | | null, //邮费支付类型 1: 在线支付 2: 货到付款 |
| | | null, //邮费 |
| | | param.getBusinessTime(), //业务日期 |
| | | param.getCreateTime(), //创建日期 |
| | | null, //物流名称 |
| | | null, //物流单号 |
| | | 1L, //订单状态 |
| | | 1, //状态 1: 正常 0: 禁用 |
| | | 9527L, //添加人员 |
| | | now, //添加时间 |
| | | 9527L, //修改人员 |
| | | now, //修改时间 |
| | | param.getStationId(), //入/出库接驳站点 |
| | | param.getOperateType() // 操作类型 1.新增 2.修改 3.取消 |
| | | ); |
| | | if (!orderService.insert(order)){ |
| | | throw new CoolException("保存订单主档失败,请联系管理员!"+order); |
| | | } |
| | | List<OpenOrderParam.OrderItem> list = new ArrayList<>(); |
| | | List<OpenOrderParam.OrderItem> orderItems = param.getOrderItems(); |
| | | for (OpenOrderParam.OrderItem item : orderItems){ |
| | | OpenOrderParam.OrderItem orderItem = new OpenOrderParam.OrderItem( |
| | | item.getLineId(), |
| | | item.getMatNr(), |
| | | item.getMakTx(), |
| | | item.getAnfme(), |
| | | item.getSpec(), |
| | | item.getModel(), |
| | | item.getUnit(), |
| | | item.getBatch(), |
| | | item.getPalletId(), |
| | | item.getPlanNo(), |
| | | item.getTargetWareHouseId(), |
| | | item.getSourceWareHouseId() |
| | | ); |
| | | if (OpenOrderParam.OrderItem.hasLineNumber(list,orderItem)){ |
| | | OpenOrderParam.OrderItem oi = OpenOrderParam.OrderItem.findLineNumber( |
| | | list, |
| | | item.getLineId(), |
| | | item.getMatNr(), |
| | | item.getMakTx(), |
| | | item.getAnfme(), |
| | | item.getSpec(), |
| | | item.getModel(), |
| | | item.getUnit(), |
| | | item.getBatch(), |
| | | item.getPalletId(), |
| | | item.getPlanNo(), |
| | | item.getTargetWareHouseId(), |
| | | item.getSourceWareHouseId() |
| | | ); |
| | | assert oi != null; |
| | | oi.setAnfme(oi.getAnfme() + orderItem.getAnfme()); |
| | | } else { |
| | | list.add(orderItem); |
| | | } |
| | | } |
| | | for (OpenOrderParam.OrderItem orderItem : list) { |
| | | Mat mat = matService.selectByMatnr(orderItem.getMatNr()); |
| | | if (Cools.isEmpty(mat)){ |
| | | throw new CoolException("订单明细中的商品编号不存在:" + orderItem.getMatNr()); |
| | | } |
| | | OrderDetl orderDetl = new OrderDetl(); |
| | | orderDetl.sync(mat); |
| | | orderDetl.setOrderNo(order.getOrderNo()); // 订单编号 |
| | | orderDetl.setOrderId(order.getId()); // 订单内码 |
| | | orderDetl.setStandby1(order.getTel()); // 行内码 唯一标识 |
| | | orderDetl.setAnfme(orderItem.getAnfme()); // 订单数量 |
| | | orderDetl.setBarcode(orderItem.getBatch()); // 批次 |
| | | orderDetl.setStandby2(orderItem.getPalletId()); // 托盘码 |
| | | orderDetl.setStandby3(orderItem.getPlanNo()); // 计划跟踪号 |
| | | orderDetl.setBoxType1(orderItem.getSourceWareHouseId()); // 建议入库仓库 |
| | | orderDetl.setBoxType2(orderItem.getTargetWareHouseId()); // 建议出库仓库 |
| | | orderDetl.setCreateBy(9527L); |
| | | orderDetl.setCreateTime(now); |
| | | orderDetl.setUpdateBy(9527L); |
| | | orderDetl.setUpdateTime(now); |
| | | orderDetl.setStatus(1); |
| | | orderDetl.setQty(0.0D); |
| | | // orderDetl.setPakinPakoutStatus(1); |
| | | if (!orderDetlService.insert(orderDetl)) { |
| | | throw new CoolException("保存订单明细失败,请联系管理员!"+orderDetl); |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | |
| | | } |
| | | |
| | | private AgvLocListDetlParam buildAgvLocListDetlParam(String locNo, String locSts) { |
| | | List<LocDetl> detlList = locDetlService.selectList( |
| | | new EntityWrapper<LocDetl>().eq("loc_no", locNo) |
| | | List<BasAgvLocDetl> detlList = basAgvLocDetlService.selectList( |
| | | new EntityWrapper<BasAgvLocDetl>().eq("loc_no", locNo) |
| | | ); |
| | | |
| | | AgvLocListDetlParam dto = new AgvLocListDetlParam(); |