| | |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.enums.OrderTypeEnum; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.service.impl.TaskDetlLogServiceImpl; |
| | | import com.zy.asrs.service.impl.TaskDetlServiceImpl; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.asrs.utils.OrderInAndOutUtil; |
| | |
| | | private LocDetlService locDetlService; |
| | | @Autowired |
| | | CheckOrderDetlService checkOrderDetlService; |
| | | @Autowired |
| | | private TaskDetlLogService taskDetlLogService; |
| | | |
| | | |
| | | @Transactional |
| | |
| | | orderDetlList.add(detail); |
| | | } |
| | | } |
| | | |
| | | for (OrderDetl orderDetl : orderDetlList) { |
| | | orderDetl.setWorkQty(0D); |
| | | OrderInAndOutUtil.insertOrderDetl(order.getPakinPakoutStatus$(), order, orderDetl); |
| | |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void ifTransfetInsertStockIn(Order order, OrderDetl orderDetl) { |
| | | OrderPakin orderPakin = new OrderPakin(); |
| | | BeanUtils.copyProperties(order, orderPakin); |
| | | orderPakin.setDocType(OrderTypeEnum.STOCK_IN.type.longValue()); |
| | | |
| | | if (!orderPakinService.insert(orderPakin)) { |
| | | throw new CoolException("插入备货入库单失败"); |
| | | OrderPakin pakin = orderPakinService.selectOne(new EntityWrapper<OrderPakin>() |
| | | .eq("order_no", order.getOrderNo()) |
| | | .eq("doc_type", OrderTypeEnum.STOCK_IN.type.longValue())); |
| | | if (Objects.isNull(pakin)) { |
| | | OrderPakin orderPakin = new OrderPakin(); |
| | | BeanUtils.copyProperties(order, orderPakin); |
| | | orderPakin.setDocType(OrderTypeEnum.STOCK_IN.type.longValue()); |
| | | if (!orderPakinService.insert(orderPakin)) { |
| | | throw new CoolException("插入备货入库单失败"); |
| | | } |
| | | } |
| | | |
| | | OrderDetlPakin orderDetlPakin = new OrderDetlPakin(); |
| | | BeanUtils.copyProperties(orderDetl, orderDetlPakin); |
| | | orderDetlPakin.setOrderId(orderPakin.getId()); |
| | | |
| | | orderDetlPakin.setOrderId(pakin.getId()); |
| | | if (!orderDetlPakinService.insert(orderDetlPakin)) { |
| | | throw new CoolException("插入备货入库单失败"); |
| | | } |
| | | |
| | | } |
| | | |
| | | @Transactional |
| | |
| | | .eq("supp_code", detl.getSuppCode()) |
| | | .eq("order_no", detl.getOrderNo())); |
| | | if (Objects.isNull(locDetl)) { |
| | | throw new CoolException("库存明细不存在 ,请检查单据是否完成!!"); |
| | | // BS Code |
| | | itemParam.setTotal_serial(detl.getThreeCode()) |
| | | // 上报时,默认产品类型是null |
| | | .setPro_type(material.getProType()) |
| | | // 上报时,默认产品编码 |
| | | .setPro_komcode(detl.getMatnr()) |
| | | // 上报时,默认产品id是供应商编码 |
| | | .setPro_id(detl.getSuppCode()) |
| | | .setLocation_no("LX000000000") |
| | | .setSj_emp("9527") |
| | | .setLocation_type(MatLocType.getMatTag(material.getTagId() + "")) |
| | | // 上报时,默认上报时间是更新时间 |
| | | .setSj_date(Utils.dateToStr(order.getUpdateTime(), "yyyy-MM-dd HH:mm:ss")) |
| | | // 上报时,如果为空默认上报 0 |
| | | .setPick_qty(0) |
| | | // 上报时,默认损坏数量是0 |
| | | .setDamage_qty(0) |
| | | // 上报时,默认差异数量是0 |
| | | .setDiff_qty(0); |
| | | } else { |
| | | // BS Code |
| | | itemParam.setTotal_serial(detl.getThreeCode()) |
| | | // 上报时,默认产品类型是null |
| | | .setPro_type(material.getProType()) |
| | | // 上报时,默认产品编码 |
| | | .setPro_komcode(detl.getMatnr()) |
| | | // 上报时,默认产品id是供应商编码 |
| | | .setPro_id(detl.getSuppCode()) |
| | | .setLocation_no(locDetl.getZpallet()) |
| | | .setSj_emp(locDetl.getModiUser$()) |
| | | .setLocation_type(MatLocType.getMatTag(material.getTagId() + "")) |
| | | // 上报时,默认上报时间是更新时间 |
| | | .setSj_date(Utils.dateToStr(order.getUpdateTime(), "yyyy-MM-dd HH:mm:ss")) |
| | | // 上报时,默认上报数量是订单数量 |
| | | .setPick_qty(locDetl.getAnfme().intValue()) |
| | | // 上报时,默认损坏数量是0 |
| | | .setDamage_qty(0) |
| | | // 上报时,默认差异数量是0 |
| | | .setDiff_qty(0); |
| | | } |
| | | |
| | | // BS Code |
| | | itemParam.setTotal_serial(detl.getThreeCode()) |
| | | // 上报时,默认产品类型是null |
| | | .setPro_type(material.getProType()) |
| | | // 上报时,默认产品编码 |
| | | .setPro_komcode(detl.getMatnr()) |
| | | // 上报时,默认产品id是供应商编码 |
| | | .setPro_id(detl.getSuppCode()) |
| | | .setLocation_no(locDetl.getZpallet()) |
| | | .setSj_emp(locDetl.getModiUser$()) |
| | | .setLocation_type(MatLocType.getMatTag(material.getTagId() + "")) |
| | | // 上报时,默认上报时间是更新时间 |
| | | .setSj_date(Utils.dateToStr(order.getUpdateTime(), "yyyy-MM-dd HH:mm:ss") ) |
| | | // 上报时,默认上报数量是订单数量 |
| | | .setPick_qty(detl.getQty().intValue()) |
| | | // 上报时,默认损坏数量是0 |
| | | .setDamage_qty(0) |
| | | // 上报时,默认差异数量是0 |
| | | .setDiff_qty(0); |
| | | |
| | | reportOrderParams.add(itemParam); |
| | | }); |
| | | |
| | |
| | | .setUpdate_time(Utils.dateToStr(new Date(), "yyyy-MM-dd HH:mm:ss")) |
| | | //目标库区 |
| | | .setTarget_location("") |
| | | .setTarget_location("1"); |
| | | .setSource_location("1"); |
| | | |
| | | List<OrderItemsParam> reportOrderParams = new ArrayList<>(); |
| | | orderDetls.forEach(detl -> { |
| | |
| | | if (Objects.isNull(material)) { |
| | | throw new CoolException("物料不存在"); |
| | | } |
| | | TaskDetlLog detlLog = taskDetlLogService.selectOne(new EntityWrapper<TaskDetlLog>() |
| | | .eq("matnr", detl.getMatnr()) |
| | | .eq("supp_code", detl.getStandby1()) |
| | | .eq("order_no", detl.getOrderNo())); |
| | | if (Objects.isNull(detlLog)) { |
| | | throw new CoolException("数据错误 ,请检查AGV任务档是否已完成!!"); |
| | | } |
| | | //目标库区 |
| | | orderParam.setTarget_location(detlLog.getAreaType()); |
| | | OrderItemsParam itemParam = new OrderItemsParam(); |
| | | // BS Code |
| | | itemParam |
| | |
| | | // 上报时,默认产品id是供应商编码 |
| | | .setPro_id(detl.getSuppCode()) |
| | | // // 上报时,默认来源位置是null |
| | | .setLocation_no(null) |
| | | .setLocation_no(detlLog.getZpallet()) |
| | | // 上报时,默认上报数量是订单数量 |
| | | .setPick_qty(detl.getQty().intValue()); |
| | | reportOrderParams.add(itemParam); |
| | | }); |
| | | |
| | | if (orderParam.getTarget_location().equals("2")) { |
| | | orderParam.setType("11"); |
| | | } else if (orderParam.getTarget_location().equals("3")) { |
| | | orderParam.setType("12"); |
| | | } else { |
| | | orderParam.setType("13"); |
| | | } |
| | | orderParam.setPartList(reportOrderParams); |
| | | |
| | | XSR response = null; |
| | |
| | | if (Objects.isNull(material)) { |
| | | throw new CoolException("物料不存在"); |
| | | } |
| | | |
| | | TaskDetlLog detlLog = taskDetlLogService.selectOne(new EntityWrapper<TaskDetlLog>() |
| | | .eq("matnr", detl.getMatnr()) |
| | | .eq("supp_code", detl.getStandby1()) |
| | | .eq("order_no", detl.getOrderNo())); |
| | | if (Objects.isNull(detlLog)) { |
| | | throw new CoolException("数据错误 ,请检查AGV任务档是否已完成!!"); |
| | | } |
| | | OrderItemsParam itemParam = new OrderItemsParam(); |
| | | // 上报时,默认产品类型是null |
| | | itemParam.setPro_type(material.getProType()); |
| | |
| | | // 上报时,默认产品id是供应商编码 |
| | | itemParam.setPro_id(detl.getSuppCode()); |
| | | //todo 台车编码 |
| | | itemParam.setTruck_no("TC310080014"); |
| | | itemParam.setTruck_no(detlLog.getZpallet()); |
| | | // 上报时,默认上报时间是更新时间 |
| | | itemParam.setPick_qty(detl.getQty().intValue()); |
| | | |
| | | reportOrderParams.add(itemParam); |
| | | }); |
| | | pubOrderParams.setPartList(reportOrderParams); |
| | |
| | | |
| | | /** |
| | | * 损溢单完结上报 |
| | | * |
| | | * |
| | | * @param order |
| | | * @return |
| | | */ |
| | |
| | | if (response.getSuccess()) { |
| | | return SUCCESS; |
| | | } else { |
| | | return FAIL; |
| | | return FAIL; |
| | | } |
| | | } |
| | | |