| | |
| | | import com.zy.asrs.wms.system.entity.Host;
|
| | | import com.zy.asrs.wms.system.service.HostService;
|
| | | import io.netty.util.internal.StringUtil;
|
| | | import org.aspectj.weaver.ast.Or;
|
| | | import org.springframework.beans.BeanUtils;
|
| | | import org.springframework.beans.factory.annotation.Autowired;
|
| | | import org.springframework.stereotype.Service;
|
| | |
| | | private MatService matService;
|
| | | @Autowired
|
| | | private WaveService waveService;
|
| | | @Autowired
|
| | | private WaveLogService waveLogService;
|
| | | @Autowired
|
| | | private CacheSiteService cacheSiteService;
|
| | | @Autowired
|
| | | WaveDetlLogService waveDetlLogService;
|
| | | @Autowired
|
| | | private WaveDetlService waveDetlService;
|
| | | @Autowired
|
| | |
| | | }
|
| | | //修改订单状态为已完成
|
| | | order.setOrderSettle(OrderSettleType.COMPLETE.val());
|
| | |
|
| | | OrderLog orderLog = new OrderLog();
|
| | | BeanUtils.copyProperties(order, orderLog);
|
| | | if (!orderLogService.save(orderLog)) {
|
| | |
| | | detls.forEach(delt ->{
|
| | | OrderDetlLog detlLog = new OrderDetlLog();
|
| | | BeanUtils.copyProperties(delt, detlLog);
|
| | | detlLog.setQty(delt.getWorkQty());
|
| | | detlLog.setWorkQty(0.0);
|
| | | detlLogs.add(detlLog);
|
| | | });
|
| | |
|
| | |
| | | if (Objects.isNull(order)) {
|
| | | throw new CoolException("绑定订单不存在!!");
|
| | | }
|
| | | siteNo.setOrderNo(order.getOrderNo()).setOrderId(order.getId()).setSiteStatus(CacheSiteStatusType.R.id);
|
| | | siteNo.setOrderNo(order.getOrderNo()).setOrderId(order.getId()).setSiteStatus(CacheSiteStatusType.R.id).setBarcode(param.get("barcode").toString());
|
| | | if (cacheSiteMapper.updateById(siteNo) < 1) {
|
| | | throw new CoolException("订单播种位绑定失败!!" );
|
| | | }
|
| | |
|
| | | int update = waveSeedMapper.update(new LambdaUpdateWrapper<WaveSeed>()
|
| | | .eq(WaveSeed::getOrderNo, order.getOrderNo())
|
| | | .set(WaveSeed::getSiteId, siteNo.getId())
|
| | | .set(WaveSeed::getSiteNo, siteNo.getSiteNo()));
|
| | | if (update < 1) {
|
| | | throw new CoolException("播种站点更新失败!!");
|
| | | }
|
| | | } else {
|
| | | if (StringUtil.isNullOrEmpty(siteNo.getOrderNo())) {
|
| | |
| | | if (StringUtil.isNullOrEmpty((String) params.get("orderNo"))) {
|
| | | throw new CoolException("订单编码号不能为空!!");
|
| | | }
|
| | | String orderId = params.get("orderNo").toString();
|
| | | List<ShippingOrderDetlDto> waveSeeds = waveSeedMapper.selectShippingOrderDtel(orderId);
|
| | | String orderNo = params.get("orderNo").toString();
|
| | | Order order = orderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, orderNo));
|
| | | if (Objects.isNull(order)) {
|
| | | throw new CoolException("订单不存在!!");
|
| | | }
|
| | | if (!order.getOrderType().equals(OrderType.UTC_OUT_ORDER.id)) {
|
| | | throw new CoolException("订单为入库单据,不能发货!!");
|
| | | }
|
| | |
|
| | | List<ShippingOrderDetlDto> waveSeeds = waveSeedMapper.selectShippingOrderDtel(orderNo);
|
| | |
|
| | | return R.ok(waveSeeds);
|
| | | }
|
| | |
| | | throw new CoolException("发货单据明细为空,不可执行发货操作!!");
|
| | | }
|
| | | params.forEach(order -> {
|
| | | //删除出库订单及明细,加入订单历史档
|
| | | if (order.getAnfme() == order.getWorkQty()) { //完全拣货
|
| | | OrderDetl byId = orderDetlService.getById(order.getId());
|
| | | OrderDetlLog orderDetlLog = new OrderDetlLog();
|
| | | BeanUtils.copyProperties(orderDetlLog, byId);
|
| | | orderDetlLog.setQty(order.getWorkQty());
|
| | | orderDetlLog.setWorkQty(0.0);
|
| | | if (!orderDetlLogService.save(orderDetlLog)) {
|
| | | throw new CoolException("订单明细转历史档失败!!");
|
| | | }
|
| | | OrderDetl byId = orderDetlService.getById(order.getId());
|
| | | if (Objects.isNull(byId)) {
|
| | | throw new CoolException("订单明细不存在!!");
|
| | | }
|
| | | OrderDetlLog orderDetlLog = new OrderDetlLog();
|
| | | BeanUtils.copyProperties(byId, orderDetlLog);
|
| | | orderDetlLog.setQty(order.getWorkQty());
|
| | | orderDetlLog.setWorkQty(0.0);
|
| | | if (!orderDetlLogService.save(orderDetlLog)) {
|
| | | throw new CoolException("订单明细转历史档失败!!");
|
| | | }
|
| | |
|
| | | //完全拣货,订单完成删除原始订单明细
|
| | | //new BigDecimal(order.getAnfme()).compareTo(new BigDecimal(order.getWorkQty())) == 0
|
| | | if (new BigDecimal(order.getAnfme()).compareTo(new BigDecimal(order.getWorkQty())) == 0) {
|
| | | if (!orderDetlService.removeById(byId)) {
|
| | | throw new CoolException("订单明细不存在!!");
|
| | | }
|
| | |
|
| | | //查询当前订单下否还有明细存在
|
| | | List<OrderDetl> orders = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderNo, order.getOrderNo()));
|
| | |
|
| | | if (orders.isEmpty()) {
|
| | | Order one = orderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, order.getOrderNo()));
|
| | | if (Objects.isNull(one)) {
|
| | | throw new CoolException("订单不存在!!");
|
| | | }
|
| | | OrderLog orderLog = new OrderLog();
|
| | |
|
| | | BeanUtils.copyProperties(one, orderLog);
|
| | |
|
| | | if (!orderLogService.save(orderLog)) {
|
| | | throw new CoolException("原始订单转历史档失败!!");
|
| | | }
|
| | |
|
| | | if (!orderService.remove(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, order.getOrderNo()))) {
|
| | | throw new CoolException("原始订单删除失败!!");
|
| | | }
|
| | | } else { //部分拣货
|
| | | byId.setQty(order.getWorkQty() + byId.getQty());
|
| | | byId.setWorkQty(0.0);
|
| | | if (!orderDetlService.updateById(byId)) {
|
| | | throw new CoolException("部分拣料明细更新失败!!");
|
| | | }
|
| | | } else {
|
| | | //todo 删除已完成明细,保留原始主单及未完成明细
|
| | | }
|
| | |
|
| | | List<WaveSeed> waveSeeds = waveSeedMapper.selectList(new LambdaQueryWrapper<WaveSeed>().eq(WaveSeed::getOrderDetlId, order.getId()));
|
| | |
| | | ArrayList<WaveSeedLog> waveSeedLogs = new ArrayList<>();
|
| | | waveSeeds.forEach(seed -> {
|
| | | WaveSeedLog waveSeedLog = new WaveSeedLog();
|
| | | BeanUtils.copyProperties(waveSeedLog, seed);
|
| | | BeanUtils.copyProperties(seed, waveSeedLog);
|
| | | waveSeedLog.setId(null);
|
| | | waveSeedLogs.add(waveSeedLog);
|
| | | });
|
| | | if (waveSeedLogService.saveBatch(waveSeedLogs)) {
|
| | | if (!waveSeedLogService.saveBatch(waveSeedLogs)) {
|
| | | throw new CoolException("波明历史档保存失败!!");
|
| | | }
|
| | | }
|
| | |
| | | }
|
| | | });
|
| | |
|
| | | //获取当前上传所有订单号
|
| | | Set<String> orderNoSet = params.stream().map(ShippingOrderDetlDto::getOrderNo).collect(Collectors.toSet());
|
| | | if (orderNoSet.isEmpty()) {
|
| | | throw new CoolException("主单信息不存在,请核对出库订单!!");
|
| | | }
|
| | |
|
| | | return null;
|
| | | List<Order> orderList = orderService.list(new LambdaQueryWrapper<Order>().in(Order::getOrderNo, orderNoSet));
|
| | | if (orderList.isEmpty()) {
|
| | | throw new CoolException("订单不存在!!");
|
| | | }
|
| | | orderList.forEach(one -> {
|
| | | OrderLog orderLog = new OrderLog();
|
| | | BeanUtils.copyProperties(one, orderLog);
|
| | | orderLog.setOrderSettle(OrderSettleType.COMPLETE.val());
|
| | |
|
| | | if (!orderLogService.save(orderLog)) {
|
| | | throw new CoolException("原始订单转历史档失败!!");
|
| | | }
|
| | | //查询当前订单下否还有明细存在
|
| | | List<OrderDetl> orders = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().in(OrderDetl::getOrderNo, one.getOrderNo()));
|
| | | //订单明细为空,则删除主单
|
| | | if (orders.isEmpty()) {
|
| | | if (!orderService.remove(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, one.getOrderNo()))) {
|
| | | throw new CoolException("原始订单删除失败!!");
|
| | | }
|
| | | } else { //不为空,修改订单状态,可重新组拖
|
| | | one.setOrderSettle(OrderSettleType.INIT.val());
|
| | | if (orderService.updateById(one));
|
| | | }
|
| | | });
|
| | |
|
| | | Set<Long> waveIds = orderList.stream().map(Order::getWaveId).collect(Collectors.toSet());
|
| | | if (waveIds.isEmpty()) {
|
| | | throw new CoolException("波次信息为空!!");
|
| | | }
|
| | | List<Wave> waves = waveService.list(new LambdaQueryWrapper<Wave>().eq(Wave::getId, waveIds));
|
| | | for (Wave wave : waves) {
|
| | | WaveLog waveLog = new WaveLog();
|
| | | waveLog.sync(wave);
|
| | | waveLog.setId(null);
|
| | | if (!waveLogService.save(waveLog)) {
|
| | | throw new CoolException("波次转历史失败");
|
| | | }
|
| | |
|
| | | List<WaveDetl> waveDetls = waveDetlService.list(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getWaveId, wave.getId()));
|
| | | for (WaveDetl waveDetl : waveDetls) {
|
| | | WaveDetlLog waveDetlLog = new WaveDetlLog();
|
| | | waveDetlLog.sync(waveDetl);
|
| | | waveDetlLog.setId(null);
|
| | | waveDetlLog.setWaveId(waveLog.getId());
|
| | | if (!waveDetlLogService.save(waveDetlLog)) {
|
| | | throw new CoolException("波次明细转历史失败");
|
| | | }
|
| | |
|
| | | if (!waveDetlService.removeById(waveDetl.getId())) {
|
| | | throw new CoolException("波次明细删除失败");
|
| | | }
|
| | | }
|
| | |
|
| | | if (!waveService.removeById(wave.getId())) {
|
| | | throw new CoolException("波次删除失败");
|
| | | }
|
| | | }
|
| | |
|
| | | return R.ok("发货完成!!");
|
| | | }
|
| | |
|
| | | }
|