|
@@ -1,12 +1,26 @@
|
|
package com.qs.mp.web.controller.api.admin;
|
|
package com.qs.mp.web.controller.api.admin;
|
|
|
|
+import java.util.Date;
|
|
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
import com.qs.mp.admin.domain.param.ChannelGoodsOrderQueryParam;
|
|
import com.qs.mp.admin.domain.param.ChannelGoodsOrderQueryParam;
|
|
|
|
+import com.qs.mp.channel.domain.ChannelGoods;
|
|
import com.qs.mp.channel.domain.ChannelGoodsOrder;
|
|
import com.qs.mp.channel.domain.ChannelGoodsOrder;
|
|
|
|
+import com.qs.mp.channel.domain.ChannelGoodsSettleOrder;
|
|
|
|
+import com.qs.mp.channel.domain.ChannelGoodsSettleOrderItem;
|
|
|
|
+import com.qs.mp.channel.domain.param.PushChannelGoodsSettleParam;
|
|
|
|
+import com.qs.mp.channel.domain.vo.ChannelGoodsOrderVO;
|
|
import com.qs.mp.channel.domain.vo.ChannelGoodsSettleVO;
|
|
import com.qs.mp.channel.domain.vo.ChannelGoodsSettleVO;
|
|
|
|
+import com.qs.mp.channel.domain.vo.ChannelOrderSettleVO;
|
|
import com.qs.mp.channel.service.IChannelGoodsOrderService;
|
|
import com.qs.mp.channel.service.IChannelGoodsOrderService;
|
|
import com.qs.mp.channel.service.IChannelGoodsService;
|
|
import com.qs.mp.channel.service.IChannelGoodsService;
|
|
|
|
+import com.qs.mp.channel.service.IChannelGoodsSettleOrderItemService;
|
|
|
|
+import com.qs.mp.channel.service.IChannelGoodsSettleOrderService;
|
|
|
|
+import com.qs.mp.common.core.domain.AjaxResult;
|
|
import com.qs.mp.common.core.page.TableDataInfo;
|
|
import com.qs.mp.common.core.page.TableDataInfo;
|
|
|
|
+import com.qs.mp.common.enums.ChannelGoodsOrderSettleEnum;
|
|
|
|
+import com.qs.mp.system.service.id.BizIdGenerator;
|
|
import com.qs.mp.web.controller.common.BaseApiController;
|
|
import com.qs.mp.web.controller.common.BaseApiController;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiOperation;
|
|
@@ -15,13 +29,11 @@ import io.swagger.annotations.ApiResponses;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
-import org.springframework.web.bind.annotation.PostMapping;
|
|
|
|
-import org.springframework.web.bind.annotation.RequestBody;
|
|
|
|
-import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
-import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 结算门店采购商品
|
|
* 结算门店采购商品
|
|
@@ -39,6 +51,13 @@ public class ChannelGoodsSettleMgrController extends BaseApiController {
|
|
@Autowired
|
|
@Autowired
|
|
private IChannelGoodsService channelGoodsService;
|
|
private IChannelGoodsService channelGoodsService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private IChannelGoodsSettleOrderService settleOrderService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private IChannelGoodsSettleOrderItemService settleOrderItemService;
|
|
|
|
+
|
|
|
|
+
|
|
@PostMapping("/list")
|
|
@PostMapping("/list")
|
|
@ApiOperation(value = "门店库存结算列表")
|
|
@ApiOperation(value = "门店库存结算列表")
|
|
@PreAuthorize("@ss.hasPermi('business:goods:list')")
|
|
@PreAuthorize("@ss.hasPermi('business:goods:list')")
|
|
@@ -56,13 +75,56 @@ public class ChannelGoodsSettleMgrController extends BaseApiController {
|
|
queryWrapper.le(null != queryParam && null != queryParam.getMaxStock(), "t2.remain_qty", queryParam.getMaxStock());
|
|
queryWrapper.le(null != queryParam && null != queryParam.getMaxStock(), "t2.remain_qty", queryParam.getMaxStock());
|
|
queryWrapper.ge(null != queryParam && null != queryParam.getStartTime(), "t1.created_time", queryParam.getStartTime());
|
|
queryWrapper.ge(null != queryParam && null != queryParam.getStartTime(), "t1.created_time", queryParam.getStartTime());
|
|
queryWrapper.le(null != queryParam && null != queryParam.getEndTime(), "t1.created_time", queryParam.getEndTime());
|
|
queryWrapper.le(null != queryParam && null != queryParam.getEndTime(), "t1.created_time", queryParam.getEndTime());
|
|
- queryWrapper.like(null != queryParam && StringUtils.isNotBlank(queryParam.getTitle()), "t2.title", queryParam.getTitle());
|
|
|
|
queryWrapper.orderByDesc("t1.created_time", "t1.order_id");
|
|
queryWrapper.orderByDesc("t1.created_time", "t1.order_id");
|
|
|
|
|
|
List<ChannelGoodsSettleVO> channelGoodsOrderSettleVOS = channelGoodsOrderService.selectChannelGoodsSettleList(queryWrapper);
|
|
List<ChannelGoodsSettleVO> channelGoodsOrderSettleVOS = channelGoodsOrderService.selectChannelGoodsSettleList(queryWrapper);
|
|
-
|
|
|
|
|
|
+ for (ChannelGoodsSettleVO channelGoodsOrderSettleVO : channelGoodsOrderSettleVOS) {
|
|
|
|
+ List<ChannelGoods> channelGoodsList = channelGoodsService.list(
|
|
|
|
+ new QueryWrapper<ChannelGoods>().eq("order_id", channelGoodsOrderSettleVO.getOrderId())
|
|
|
|
+ .like(null != queryParam && StringUtils.isNotBlank(queryParam.getTitle()), "title", queryParam.getTitle()));
|
|
|
|
+ channelGoodsOrderSettleVO.setItems(channelGoodsList);
|
|
|
|
+ if (CollectionUtils.isNotEmpty(channelGoodsList)) {
|
|
|
|
+ channelGoodsOrderSettleVO.setTotalQuantity(channelGoodsList.stream().mapToInt(ChannelGoods::getQuantity).sum());
|
|
|
|
+ channelGoodsOrderSettleVO.setTotalRemainQty(channelGoodsList.stream().mapToInt(ChannelGoods::getRemainQty).sum());
|
|
|
|
+ channelGoodsOrderSettleVO.setTotalSettleQty(channelGoodsList.stream().mapToInt(ChannelGoods::getSettleQty).sum());
|
|
|
|
+ channelGoodsOrderSettleVO.setTotalVerifyQty(channelGoodsList.stream().mapToInt(ChannelGoods::getVerifyQty).sum());
|
|
|
|
+ channelGoodsOrderSettleVO.setTotalPurchaseCost(channelGoodsList.stream().mapToInt(ChannelGoods::getPurchaseCost).sum());
|
|
|
|
+ channelGoodsOrderSettleVO.setStatus(channelGoodsList.get(0).getStatus());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
return getDataTable(channelGoodsOrderSettleVOS);
|
|
return getDataTable(channelGoodsOrderSettleVOS);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @PostMapping("/detail/{orderId}")
|
|
|
|
+ @ApiOperation(value = "门店库存结算详情")
|
|
|
|
+ @PreAuthorize("@ss.hasPermi('business:goods:query')")
|
|
|
|
+ @ApiResponses(
|
|
|
|
+ @ApiResponse(code = 200, message = "成功", response = ChannelGoodsSettleVO.class)
|
|
|
|
+ )
|
|
|
|
+ public AjaxResult detail(@PathVariable String orderId) {
|
|
|
|
+ ChannelGoodsSettleVO channelGoodsOrderSettleVO = new ChannelGoodsSettleVO();
|
|
|
|
+ ChannelGoodsOrderVO channelGoodsOrderVO = channelGoodsOrderService.listChannelGoodsOrder(new QueryWrapper<ChannelGoodsOrder>().eq("t1.order_id", orderId));
|
|
|
|
+ List<ChannelGoods> channelGoodsList = channelGoodsService.list(new LambdaQueryWrapper<ChannelGoods>().eq(ChannelGoods::getOrderId, orderId));
|
|
|
|
+ if (CollectionUtils.isNotEmpty(channelGoodsList)) {
|
|
|
|
+ channelGoodsOrderSettleVO.setTotalQuantity(channelGoodsList.stream().mapToInt(ChannelGoods::getQuantity).sum());
|
|
|
|
+ channelGoodsOrderSettleVO.setTotalRemainQty(channelGoodsList.stream().mapToInt(ChannelGoods::getRemainQty).sum());
|
|
|
|
+ channelGoodsOrderSettleVO.setTotalSettleQty(channelGoodsList.stream().mapToInt(ChannelGoods::getSettleQty).sum());
|
|
|
|
+ channelGoodsOrderSettleVO.setTotalVerifyQty(channelGoodsList.stream().mapToInt(ChannelGoods::getVerifyQty).sum());
|
|
|
|
+ channelGoodsOrderSettleVO.setTotalPurchaseCost(channelGoodsList.stream().mapToInt(ChannelGoods::getPurchaseCost).sum());
|
|
|
|
+ channelGoodsOrderSettleVO.setStatus(channelGoodsList.get(0).getStatus());
|
|
|
|
+ }
|
|
|
|
+ channelGoodsOrderSettleVO.setTel(channelGoodsOrderVO.getTel());
|
|
|
|
+ channelGoodsOrderSettleVO.setChannelName(channelGoodsOrderVO.getChannelName());
|
|
|
|
+ channelGoodsOrderSettleVO.setItems(channelGoodsList);
|
|
|
|
+ return AjaxResult.success(channelGoodsOrderSettleVO);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @PostMapping("/push/settle/order")
|
|
|
|
+ @PreAuthorize("@ss.hasPermi('business:order:push')")
|
|
|
|
+ @ApiOperation(value = "推送结算订单")
|
|
|
|
+ public AjaxResult settleOrder(@RequestBody PushChannelGoodsSettleParam settleVO) {
|
|
|
|
+ Long settleOrderId = settleOrderService.pushSettleOrder(settleVO);
|
|
|
|
+ return AjaxResult.success(settleOrderId);
|
|
|
|
+ }
|
|
|
|
|
|
}
|
|
}
|