修复订单bug

This commit is contained in:
Richie 2025-06-02 12:40:17 +08:00
parent a049886079
commit 19eab37098
8 changed files with 205 additions and 95 deletions

View File

@ -6,6 +6,7 @@ import lombok.Data;
public class OrderSearchRequest { public class OrderSearchRequest {
private Long shopId; private Long shopId;
private Integer shopType; private Integer shopType;
private Integer shipType;
private String orderNum; private String orderNum;
private String orderStatus; private String orderStatus;
private String startTime; private String startTime;

View File

@ -50,38 +50,45 @@ public class OrderController extends BaseController
{ {
return success(orderService.queryDetailById(id)); return success(orderService.queryDetailById(id));
} }
/** /**
* 推送订单到ERP * 待发货列表去除处理过的
* @param ids * @param order
* @param pageQuery
* @return * @return
*/ */
@PostMapping("/pushErp/{ids}") @GetMapping("/waitShipmentList")
public AjaxResult pushErp(@PathVariable Long[] ids) { public TableDataInfo waitShipmentList(OrderSearchRequest order, PageQuery pageQuery)
// for (Long id : ids) { {
// OOrder oOrder = orderService.getById(id); var pageList = orderService.queryWaitShipmentPageList(order,pageQuery);
// if (oOrder != null) { return getDataTable(pageList);
// oOrder.setItemList(orderItemService.getOrderItemListByOrderId(id));
// ResultVo resultVo = erpPushHelper.pushOrderSingle(oOrder);
// OOrder pushUpdate = new OOrder();
// if (oOrder.getOrderStatus() == 1 || oOrder.getOrderStatus() == 2 || oOrder.getOrderStatus() == 3) {
// // 待发货已发货已完成 订单推送
// pushUpdate.setErpPushStatus(resultVo.getCode() == 0 ? 200 : resultVo.getCode());
//
// } else if (oOrder.getOrderStatus() == 11) {
// pushUpdate.setErpPushStatus(resultVo.getCode() == 0 ? 100 : resultVo.getCode());//推送状态200 订单推送成功 100 取消订单推送成功
// }
// pushUpdate.setErpPushResult(resultVo.getMsg());
// pushUpdate.setErpPushTime(new Date());
// pushUpdate.setUpdateBy("手动推送到ERP");
// pushUpdate.setUpdateTime(new Date());
// pushUpdate.setId(id.toString());
// orderService.updateById(pushUpdate);
// }
// }
return success();
} }
/**
* 已分配供应商发货列表
* @param order
* @param pageQuery
* @return
*/
@GetMapping("/assignedShipmentList")
public TableDataInfo assignedShipmentList(OrderSearchRequest order, PageQuery pageQuery)
{
var pageList = orderService.queryAssignedShipmentList(order,pageQuery);
return getDataTable(pageList);
}
/**
* 已发货列表
* @param order
* @param pageQuery
* @return
*/
@GetMapping("/shippedList")
public TableDataInfo shippedList(OrderSearchRequest order, PageQuery pageQuery)
{
var pageList = orderService.queryShippedPageList(order,pageQuery);
return getDataTable(pageList);
}
// @PostMapping // @PostMapping
// public AjaxResult add(@RequestBody OrderCreateBo order) // public AjaxResult add(@RequestBody OrderCreateBo order)
// { // {

View File

@ -31,6 +31,31 @@ public interface OOrderService extends IService<OOrder> {
ResultVo<Integer> offlineOrderMessage(String orderNum); ResultVo<Integer> offlineOrderMessage(String orderNum);
ResultVo<Integer> weiOrderMessage(String orderNum,JSONObject orderDetail ); ResultVo<Integer> weiOrderMessage(String orderNum,JSONObject orderDetail );
/**
* 获取待发货list去除处理过的
* @param bo
* @param pageQuery
* @return
*/
PageResult<OOrder> queryWaitShipmentPageList(OrderSearchRequest bo, PageQuery pageQuery);
/**
* 获取已分配发货的list
* @param bo
* @param pageQuery
* @return
*/
PageResult<OOrder> queryAssignedShipmentList(OrderSearchRequest bo, PageQuery pageQuery);
/**
* 已经发货的list
* @param bo
* @param pageQuery
* @return
*/
PageResult<OOrder> queryShippedPageList(OrderSearchRequest bo, PageQuery pageQuery);
List<OOrder> getList(OOrder order); List<OOrder> getList(OOrder order);
PageResult<OOrder> queryPageList(OrderSearchRequest bo, PageQuery pageQuery); PageResult<OOrder> queryPageList(OrderSearchRequest bo, PageQuery pageQuery);

View File

@ -1325,6 +1325,109 @@ public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
} }
} }
} }
/**
* 获取待发货list去除处理过的
* @param bo
* @param pageQuery
* @return
*/
@Override
public PageResult<OOrder> queryWaitShipmentPageList(OrderSearchRequest bo, PageQuery pageQuery) {
LambdaQueryWrapper<OOrder> queryWrapper = new LambdaQueryWrapper<OOrder>()
.eq(bo.getShopId()!=null,OOrder::getShopId,bo.getShopId())
.eq(bo.getShopType()!=null,OOrder::getShopType,bo.getShopType())
.eq(OOrder::getOrderStatus,1)
.eq(OOrder::getRefundStatus,1)
.eq(OOrder::getShipStatus,0)//发货状态 0 待发货 1 已分配供应商发货 2全部发货
// .lt(ErpOrder::getShipType,2)//ship_type发货方式 0 自己发货1联合发货2供应商发货
.ge(org.springframework.util.StringUtils.hasText(bo.getStartTime()),OOrder::getOrderTime,bo.getStartTime())
.le(org.springframework.util.StringUtils.hasText(bo.getEndTime()),OOrder::getOrderTime,bo.getEndTime())
.eq(org.springframework.util.StringUtils.hasText(bo.getOrderNum()),OOrder::getOrderNum,bo.getOrderNum())
;
Page<OOrder> pages = orderMapper.selectPage(pageQuery.build(), queryWrapper);
// 查询子订单
if(pages.getRecords()!=null){
for (OOrder order:pages.getRecords()) {
order.setItemList(orderItemMapper.selectList(new LambdaQueryWrapper<OOrderItem>()
.eq(OOrderItem::getOrderId, order.getId())
.eq(OOrderItem::getShipStatus,0)
// .eq(ErpOrderItem::getShipType,0)
));
}
}
return PageResult.build(pages);
}
/**
* 查询分配给供应商发货的订单list
* @param bo
* @param pageQuery
* @return
*/
@Override
public PageResult<OOrder> queryAssignedShipmentList(OrderSearchRequest bo, PageQuery pageQuery) {
LambdaQueryWrapper<OOrder> queryWrapper = new LambdaQueryWrapper<OOrder>()
.eq(bo.getShopId()!=null,OOrder::getShopId,bo.getShopId())
.eq(bo.getShopType()!=null,OOrder::getShopType,bo.getShopType())
.ne(OOrder::getShipper,0)//ship_type发货方 0 自己发货1联合发货2供应商发货
.ge(org.springframework.util.StringUtils.hasText(bo.getStartTime()),OOrder::getOrderTime,bo.getStartTime())
.le(org.springframework.util.StringUtils.hasText(bo.getEndTime()),OOrder::getOrderTime,bo.getEndTime())
.eq(org.springframework.util.StringUtils.hasText(bo.getOrderNum()),OOrder::getOrderNum,bo.getOrderNum())
;
Page<OOrder> pages = orderMapper.selectPage(pageQuery.build(), queryWrapper);
// 查询子订单
if(pages.getRecords()!=null){
for (OOrder order:pages.getRecords()) {
order.setItemList(orderItemMapper.selectList(new LambdaQueryWrapper<OOrderItem>()
.eq(OOrderItem::getOrderId, order.getId())
.ne(OOrderItem::getShipper,0)
));
// order.setShipmentList(shipmentMapper.selectList(new LambdaQueryWrapper<ErpShipment>().eq(ErpShipment::getOrderId,order.getId())));
}
}
return PageResult.build(pages);
}
/**
* 已经发货的list去除分配给供应商发货的
* @param bo
* @param pageQuery
* @return
*/
@Override
public PageResult<OOrder> queryShippedPageList(OrderSearchRequest bo, PageQuery pageQuery) {
LambdaQueryWrapper<OOrder> queryWrapper = new LambdaQueryWrapper<OOrder>()
.eq(bo.getShopId()!=null,OOrder::getShopId,bo.getShopId())
.eq(bo.getShopType()!=null,OOrder::getShopType,bo.getShopType())
.eq(bo.getShipType()!=null,OOrder::getShipType,bo.getShipType())
.eq(OOrder::getShipStatus,2)//发货状态 0 待发货 1 已分配供应商发货 2全部发货
.ge(org.springframework.util.StringUtils.hasText(bo.getStartTime()),OOrder::getOrderTime,bo.getStartTime())
.le(org.springframework.util.StringUtils.hasText(bo.getEndTime()),OOrder::getOrderTime,bo.getEndTime())
.eq(org.springframework.util.StringUtils.hasText(bo.getOrderNum()),OOrder::getOrderNum,bo.getOrderNum())
;
Page<OOrder> pages = orderMapper.selectPage(pageQuery.build(), queryWrapper);
// 查询子订单
if(pages.getRecords()!=null){
for (OOrder order:pages.getRecords()) {
order.setItemList(orderItemMapper.selectList(new LambdaQueryWrapper<OOrderItem>()
.eq(OOrderItem::getOrderId, order.getId())
.eq(OOrderItem::getShipStatus,2)
));
// order.setShipmentList(shipmentMapper.selectList(new LambdaQueryWrapper<ErpShipment>().eq(ErpShipment::getOrderId,order.getId())));
}
}
return PageResult.build(pages);
}
@Override @Override
public List<OOrder> getList(OOrder order) { public List<OOrder> getList(OOrder order) {

View File

@ -34,7 +34,30 @@ export function updateErpSkuId(data) {
}) })
} }
// 查询待自己发货的订单列表(待发货的)
export function waitSelfShipmentList(query) {
return request({
url: '/api/oms-api/order/waitShipmentList',
method: 'get',
params: query
})
}
// 查询已分配给供应商发货的订单
export function assignedShipmentList(query) {
return request({
url: '/api/oms-api/order/assignedShipmentList',
method: 'get',
params: query
})
}
// 查询己发货的订单列表(已发货的)
export function selfShippedList(query) {
return request({
url: '/api/oms-api/order/shippedList',
method: 'get',
params: query
})
}
// 分配供应商发货 // 分配供应商发货
export function allocateShipmentOrder(data) { export function allocateShipmentOrder(data) {

View File

@ -94,7 +94,7 @@
</el-row> </el-row>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="订单金额" align="center" prop="orderAmount" :formatter="amountFormatter"/> <el-table-column label="订单金额" align="center" prop="amount" :formatter="amountFormatter"/>
<el-table-column label="下单时间" align="center" prop="orderCreateTime" width="180"> <el-table-column label="下单时间" align="center" prop="orderCreateTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.orderTime) }}</span> <span>{{ parseTime(scope.row.orderTime) }}</span>
@ -118,8 +118,8 @@
</el-table-column> </el-table-column>
<el-table-column label="发货状态" align="center" prop="shipStatus" > <el-table-column label="发货状态" align="center" prop="shipStatus" >
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag type="success" v-if="scope.row.shipStatus === 0" style="margin-bottom: 6px;">待发货</el-tag> <!-- <el-tag type="success" v-if="scope.row.shipStatus === 0" style="margin-bottom: 6px;">待发货</el-tag>-->
<el-tag type="success" v-if="scope.row.shipStatus === 1" style="margin-bottom: 6px;">已分配发货</el-tag> <el-tag type="success" v-if="scope.row.shipStatus === 1" style="margin-bottom: 6px;">待供应商发货</el-tag>
<el-tag type="success" v-if="scope.row.shipStatus === 2" style="margin-bottom: 6px;">已发货</el-tag> <el-tag type="success" v-if="scope.row.shipStatus === 2" style="margin-bottom: 6px;">已发货</el-tag>
<br /> <br />
<!-- 1无售后或售后关闭2售后处理中3退款中4 退款成功 --> <!-- 1无售后或售后关闭2售后处理中3退款中4 退款成功 -->
@ -246,12 +246,7 @@
<script> <script>
import '@riophae/vue-treeselect/dist/vue-treeselect.css' import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import { import {assignedShipmentList} from "@/api/order/order";
getOrder,
manualShipmentOrder,
allocateShipmentOrder,
assignedShipmentList
} from "@/api/order/order";
import {listLogisticsStatus} from "@/api/api/logistics"; import {listLogisticsStatus} from "@/api/api/logistics";

View File

@ -117,7 +117,7 @@
<el-tag v-if="scope.row.shipper==1" size="small">供应商发货</el-tag> <el-tag v-if="scope.row.shipper==1" size="small">供应商发货</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="订单金额" align="center" prop="orderAmount" :formatter="amountFormatter"/> <el-table-column label="订单金额" align="center" prop="amount" :formatter="amountFormatter"/>
</el-table> </el-table>
<pagination <pagination

View File

@ -109,7 +109,7 @@
</el-table> </el-table>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="订单金额" align="center" prop="orderAmount" :formatter="amountFormatter"/> <el-table-column label="订单金额" align="center" prop="amount" :formatter="amountFormatter"/>
<el-table-column label="下单时间" align="center" prop="orderCreateTime" width="180"> <el-table-column label="下单时间" align="center" prop="orderCreateTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.orderTime) }}</span> <span>{{ parseTime(scope.row.orderTime) }}</span>
@ -141,29 +141,6 @@
@pagination="getList" @pagination="getList"
/> />
<!-- 取号 -->
<el-dialog title="取号" :visible.sync="getCodeOpen" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="电子面单账户" prop="accountId">
<el-select v-model="form.accountId" placeholder="请选择电子面单账户" clearable>
<el-option
v-for="item in deliverList"
:key="item.id"
:label="item.deliveryId"
:value="item.id">
<span style="float: left">{{ item.deliveryId }}</span>
<span style="float: right; color: #8492a6; font-size: 13px" >{{item.siteName}}:{{item.available}}</span>
</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="getCodeOpenForm">取号并发货</el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 打包发货对话框 --> <!-- 打包发货对话框 -->
@ -214,7 +191,7 @@
</el-descriptions> </el-descriptions>
<el-divider content-position="center">商品明细</el-divider> <el-divider content-position="center">商品明细</el-divider>
<el-table :data="form.itemList" style="margin-bottom: 10px;"> <el-table :data="form.itemVoList" style="margin-bottom: 10px;">
<!-- <el-table-column type="selection" width="50" align="center" /> --> <!-- <el-table-column type="selection" width="50" align="center" /> -->
<el-table-column label="序号" align="center" type="index" width="50"/> <el-table-column label="序号" align="center" type="index" width="50"/>
@ -298,7 +275,7 @@
</el-descriptions> </el-descriptions>
<el-divider content-position="center">商品明细</el-divider> <el-divider content-position="center">商品明细</el-divider>
<el-table :data="form.itemList" style="margin-bottom: 10px;"> <el-table :data="form.itemVoList" style="margin-bottom: 10px;">
<!-- <el-table-column type="selection" width="50" align="center" /> --> <!-- <el-table-column type="selection" width="50" align="center" /> -->
<el-table-column label="序号" align="center" type="index" width="50"/> <el-table-column label="序号" align="center" type="index" width="50"/>
@ -348,9 +325,7 @@ import {
waitSelfShipmentList waitSelfShipmentList
} from "@/api/order/order"; } from "@/api/order/order";
import {listShop,listLogisticsStatus} from "@/api/shop/shop";
import {listLogisticsStatus} from "@/api/api/logistics";
import {listShop} from "@/api/shop/shop";
import {amountFormatter, parseTime} from "@/utils/zhijian"; import {amountFormatter, parseTime} from "@/utils/zhijian";
import {getDicts} from "@/api/system/dict/data"; import {getDicts} from "@/api/system/dict/data";
@ -486,32 +461,7 @@ export default {
this.open = true; this.open = true;
}); });
}, },
getUUID(len, radix) {
var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
var uuid = [], i;
radix = radix || chars.length;
if (len) {
for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];
} else {
var r;
uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
uuid[14] = '4';
for (i = 0; i < 36; i++) {
if (!uuid[i]) {
r = 0 | Math.random() * 16;
uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
}
}
}
return uuid.join('');
},
handleShipSend(){
pushShipSend({shopId: this.queryParams.shopId, ids: this.ids}).then(response => {
this.$modal.msgSuccess("发货成功!");
this.getList()
})
},
// //
allocateShipmentToSupplier(row){ allocateShipmentToSupplier(row){
this.reset(); this.reset();
@ -519,6 +469,12 @@ export default {
console.log('======',id) console.log('======',id)
getOrder(id).then(response => { getOrder(id).then(response => {
this.form = response.data; this.form = response.data;
this.form.length=0
this.form.width=0
this.form.height=0
this.form.weight=0.0
this.form.shippingCost=0.0
this.form.packageAmount=0.0
this.allocateShipmentOpen = true; this.allocateShipmentOpen = true;
// this.detailTitle = ""; // this.detailTitle = "";
}); });
@ -534,8 +490,8 @@ export default {
this.form.width=0 this.form.width=0
this.form.height=0 this.form.height=0
this.form.weight=0.0 this.form.weight=0.0
this.form.shippingCost=4.0 this.form.shippingCost=0.0
this.form.packageAmount=1.0 this.form.packageAmount=0.0
listLogisticsStatus({shopType:response.data.shopType}).then(resp=>{ listLogisticsStatus({shopType:response.data.shopType}).then(resp=>{
this.logisticsList = resp.rows this.logisticsList = resp.rows
}) })