|
@@ -16,6 +16,7 @@ import org.springblade.core.log.annotation.ApiLog;
|
|
import org.springblade.modules.api.request.VendingHeartReq;
|
|
import org.springblade.modules.api.request.VendingHeartReq;
|
|
import org.springblade.modules.api.request.VendingOrderReq;
|
|
import org.springblade.modules.api.request.VendingOrderReq;
|
|
import org.springblade.modules.api.request.VendingShipReq;
|
|
import org.springblade.modules.api.request.VendingShipReq;
|
|
|
|
+import org.springblade.modules.api.response.VendingOrderGoodsRes;
|
|
import org.springblade.modules.api.response.VendingOrderRes;
|
|
import org.springblade.modules.api.response.VendingOrderRes;
|
|
import org.springblade.modules.api.service.VendingOrderService;
|
|
import org.springblade.modules.api.service.VendingOrderService;
|
|
import org.springblade.modules.business.entity.Facility;
|
|
import org.springblade.modules.business.entity.Facility;
|
|
@@ -72,26 +73,37 @@ public class ApiVendingController {
|
|
if (CollectionUtil.isEmpty(vendingOrderVOs)) {
|
|
if (CollectionUtil.isEmpty(vendingOrderVOs)) {
|
|
vendingOrderRes.setSaleSn("");
|
|
vendingOrderRes.setSaleSn("");
|
|
vendingOrderRes.setChannelNum("0");
|
|
vendingOrderRes.setChannelNum("0");
|
|
- vendingOrderRes.setSaledata(new HashMap<>());
|
|
|
|
|
|
+ vendingOrderRes.setSaledata(new ArrayList<>());
|
|
this.notifyReturn(response, vendingOrderRes);
|
|
this.notifyReturn(response, vendingOrderRes);
|
|
} else {
|
|
} else {
|
|
//一次只返回一个订单
|
|
//一次只返回一个订单
|
|
//按订单分组
|
|
//按订单分组
|
|
Map<Long, List<OrderGoodsVO>> vendingOrderGoodMap = vendingOrderVOs.stream().collect(Collectors.groupingBy(OrderGoodsVO::getOrderId));
|
|
Map<Long, List<OrderGoodsVO>> vendingOrderGoodMap = vendingOrderVOs.stream().collect(Collectors.groupingBy(OrderGoodsVO::getOrderId));
|
|
OrderVO backOrder = vendingOrderService.getBackOrder(vendingOrderReq);
|
|
OrderVO backOrder = vendingOrderService.getBackOrder(vendingOrderReq);
|
|
|
|
+ if (Objects.isNull(backOrder)){
|
|
|
|
+ vendingOrderRes.setSaleSn("");
|
|
|
|
+ vendingOrderRes.setChannelNum("0");
|
|
|
|
+ vendingOrderRes.setSaledata(new ArrayList<>());
|
|
|
|
+ this.notifyReturn(response, vendingOrderRes);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
List<OrderGoodsVO> orderGoodsVOS = vendingOrderGoodMap.get(backOrder.getId());
|
|
List<OrderGoodsVO> orderGoodsVOS = vendingOrderGoodMap.get(backOrder.getId());
|
|
vendingOrderRes.setSaleSn(backOrder.getId() + "");
|
|
vendingOrderRes.setSaleSn(backOrder.getId() + "");
|
|
vendingOrderRes.setChannelNum(orderGoodsVOS.size() + "");
|
|
vendingOrderRes.setChannelNum(orderGoodsVOS.size() + "");
|
|
|
|
|
|
- Map<String, String> saledataMap = new HashMap<>();
|
|
|
|
|
|
+ List<VendingOrderGoodsRes> saledataList = new ArrayList<>();
|
|
|
|
+
|
|
|
|
+ //补充货道信息
|
|
|
|
+ for (OrderGoodsVO orderGoodsVO : orderGoodsVOS) {
|
|
|
|
+ VendingOrderGoodsRes vendingOrderGoodsRes = new VendingOrderGoodsRes();
|
|
|
|
+ vendingOrderGoodsRes.setOrderGoodsId(String.valueOf(orderGoodsVO.getId()));
|
|
|
|
+ vendingOrderGoodsRes.setChannel(orderGoodsVO.getCargoWayNo());
|
|
|
|
+ vendingOrderGoodsRes.setChannelNum(String.valueOf(orderGoodsVO.getGoodsNum()));
|
|
|
|
|
|
- //按货道分组
|
|
|
|
- Map<String, List<OrderGoodsVO>> orderGoodsMap = orderGoodsVOS.stream().collect(Collectors.groupingBy(OrderGoodsVO::getCargoWayNo));
|
|
|
|
- for (Map.Entry<String, List<OrderGoodsVO>> rderGoodsEntry : orderGoodsMap.entrySet()) {
|
|
|
|
- saledataMap.put(rderGoodsEntry.getKey(), rderGoodsEntry.getValue().size() + "");
|
|
|
|
|
|
+ saledataList.add(vendingOrderGoodsRes);
|
|
}
|
|
}
|
|
|
|
|
|
- vendingOrderRes.setSaledata(saledataMap);
|
|
|
|
|
|
+ vendingOrderRes.setSaledata(saledataList);
|
|
this.notifyReturn(response, vendingOrderRes);
|
|
this.notifyReturn(response, vendingOrderRes);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -115,11 +127,7 @@ public class ApiVendingController {
|
|
@PostMapping("callback")
|
|
@PostMapping("callback")
|
|
public void callback(@Valid @RequestBody VendingShipReq req) {
|
|
public void callback(@Valid @RequestBody VendingShipReq req) {
|
|
//设备出货成功回调
|
|
//设备出货成功回调
|
|
- OrderGoods orderGoods = orderGoodsService.lambdaQuery()
|
|
|
|
- .eq(OrderGoods::getDeviceId, req.getMachine_id())
|
|
|
|
- .eq(OrderGoods::getOrderId, req.getSaleSn())
|
|
|
|
- .eq(OrderGoods::getCargoWayNo, req.getChannelNum())
|
|
|
|
- .one();
|
|
|
|
|
|
+ OrderGoods orderGoods = orderGoodsService.getById(req.getOrderGoodsId());
|
|
|
|
|
|
if (Objects.isNull(orderGoods)) {
|
|
if (Objects.isNull(orderGoods)) {
|
|
log.info("设备出货成功回调,未找到货品信息");
|
|
log.info("设备出货成功回调,未找到货品信息");
|
|
@@ -135,9 +143,7 @@ public class ApiVendingController {
|
|
orderGoodsService.lambdaUpdate()
|
|
orderGoodsService.lambdaUpdate()
|
|
.set(OrderGoods::getShipmentNum, orderGoods.getShipmentNum() + 1)
|
|
.set(OrderGoods::getShipmentNum, orderGoods.getShipmentNum() + 1)
|
|
.set(OrderGoods::getShippingTime, LocalDateTime.now())
|
|
.set(OrderGoods::getShippingTime, LocalDateTime.now())
|
|
- .eq(OrderGoods::getDeviceId, req.getMachine_id())
|
|
|
|
- .eq(OrderGoods::getOrderId, req.getSaleSn())
|
|
|
|
- .eq(OrderGoods::getCargoWayNo, req.getChannelNum());
|
|
|
|
|
|
+ .eq(OrderGoods::getId, req.getOrderGoodsId());
|
|
|
|
|
|
if (orderGoods.getGoodsNum() == orderGoods.getShipmentNum() + 1) {
|
|
if (orderGoods.getGoodsNum() == orderGoods.getShipmentNum() + 1) {
|
|
orderService.lambdaUpdate()
|
|
orderService.lambdaUpdate()
|