From bad9ff47e7ed4965c6b3e93aebc38f28e97cca68 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期一, 08 十二月 2025 16:11:00 +0800
Subject: [PATCH] 发货查询以及可发货订单查询筛选缓存
---
north-glass-erp/src/main/resources/mapper/sd/DeliveryMapper.xml | 17 ++-
north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js | 9 +
north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue | 1
north-glass-erp/src/main/java/com/example/erp/controller/sd/DeliveryController.java | 4
north-glass-erp/northglass-erp/src/views/sd/delivery/SelectOrderList.vue | 50 +++++----
north-glass-erp/northglass-erp/src/views/sd/delivery/SelectDelivery.vue | 88 ++++++++++++-----
north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryMapper.java | 5
north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java | 12 ++
north-glass-erp/src/main/java/com/example/erp/dto/sd/DeliverySearchDTO.java | 74 ++++++++++++++
9 files changed, 199 insertions(+), 61 deletions(-)
diff --git a/north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js b/north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js
index e2e4676..09ee61f 100644
--- a/north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js
+++ b/north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js
@@ -52,6 +52,11 @@
}
},
+ searchDeliverFilter:{
+ list:ref([]),
+ data:{}
+
+ },
projectNo:ref(),
optimizeData:{
optimalResults:'',
@@ -117,6 +122,10 @@
}
}
}
+ this.searchDeliverFilter={
+ list:[],
+ data:{}
+ }
this.projectNo=null
this.optimizeData={
optimalResults:null,
diff --git a/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue b/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
index ffbf370..a17d092 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
@@ -1106,7 +1106,6 @@
destroy-on-close
:close-on-click-modal="false"
:close-on-press-escape="false">
- >
<SelectOrderList
style="width: 100%;height: 600px"
:customer-id="titleUploadData.customerId"
diff --git a/north-glass-erp/northglass-erp/src/views/sd/delivery/SelectDelivery.vue b/north-glass-erp/northglass-erp/src/views/sd/delivery/SelectDelivery.vue
index e065b91..d4ca703 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/delivery/SelectDelivery.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/delivery/SelectDelivery.vue
@@ -1,6 +1,6 @@
<script setup>
import {Search} from "@element-plus/icons-vue";
-import {reactive, ref} from "vue";
+import {onMounted, reactive, ref} from "vue";
import {useRouter} from "vue-router"
import request from "@/utils/request"
import deepClone from "@/utils/deepClone"
@@ -92,6 +92,10 @@
//绛涢�夋潯浠讹紝鏈夊閿渶瑕佸厛瀹氫箟鏄庣粏閲岄潰鐨勬暟鎹�
let filterData = ref({})
+let sortData = ref({
+ field:'id',
+ order:null
+})
let selectDate = ref(["",""])
@@ -103,29 +107,44 @@
pageSize : 100
})
-//绗竴娆¤皟鐢�
-request.post(`/delivery/getSelectShippingOrder/1/${total.pageSize}/${orderInfo.selectDeliveryDate}`,filterData.value).then((res) => {
-
- if(res.code==200){
- total.dataTotal = res.data.total.total*1
- total.pageTotal= res.data.total.pageTotal
-
- orderInfo.selectDeliveryDate = res.data.selectDate
- pageNum.value=1
- produceList = deepClone(res.data.data)
- if(company.companyName=='娲涢槼鍖楁柟鐜荤拑鎶�鏈偂浠芥湁闄愬叕鍙�'){
- xGrid.value.menuConfig.body.options[0][2].visible=true
- xGrid.value.menuConfig.body.options[0][3].visible=true
- xGrid.value.menuConfig.body.options[0][4].visible=true
- xGrid.value.menuConfig.body.options[0][5].visible=true
- }
- xGrid.value.loadData(produceList)
- gridOptions.loading=false
- }else{
- ElMessage.warning(res.msg)
- router.push("/login")
- }
+onMounted(async () => {
+ filterData.value = orderInfo.searchDeliverFilter.data
+ await getDeliveryList()
+ orderInfo.searchDeliverFilter.list.forEach(item =>{
+ xGrid.value.getColumnByField(item.field).filters = item.column.filters
+ })
})
+
+const getDeliveryList = async () => {
+ //鍔犺浇璇锋眰
+ const config = {
+ filter: filterData.value,
+ sort: sortData.value
+ }
+ await request.post(`/delivery/getSelectShippingOrder/1/${total.pageSize}/${orderInfo.selectDeliveryDate}`,config).then((res) => {
+
+ if(res.code==200){
+ total.dataTotal = res.data.total.total*1
+ total.pageTotal= res.data.total.pageTotal
+
+ orderInfo.selectDeliveryDate = res.data.selectDate
+ pageNum.value=1
+ produceList = deepClone(res.data.data)
+ if(company.companyName=='娲涢槼鍖楁柟鐜荤拑鎶�鏈偂浠芥湁闄愬叕鍙�'){
+ xGrid.value.menuConfig.body.options[0][2].visible=true
+ xGrid.value.menuConfig.body.options[0][3].visible=true
+ xGrid.value.menuConfig.body.options[0][4].visible=true
+ xGrid.value.menuConfig.body.options[0][5].visible=true
+ }
+ xGrid.value.loadData(produceList)
+ gridOptions.loading=false
+ }else{
+ ElMessage.warning(res.msg)
+ router.push("/login")
+ }
+ })
+}
+
//瀹氫箟褰撳墠椤垫暟
@@ -150,7 +169,12 @@
}else{
filterData.value[column.property] = value
}
- request.post(`/delivery/getSelectShippingOrder/1/${total.pageSize}/${orderInfo.selectDeliveryDate}`,filterData.value).then((res) => {
+
+ const config = {
+ filter: filterData.value,
+ sort: sortData.value
+ }
+ request.post(`/delivery/getSelectShippingOrder/1/${total.pageSize}/${orderInfo.selectDeliveryDate}`,config).then((res) => {
if(res.code==200){
total.dataTotal = res.data.total.total*1
@@ -162,6 +186,9 @@
xGrid.value.menuConfig.body.options[0][2].visible=true
xGrid.value.menuConfig.body.options[0][3].visible=true
}
+
+ orderInfo.searchDeliverFilter.list = xGrid.value.getCheckedFilters()
+ orderInfo.searchDeliverFilter.data = filterData.value
gridOptions.loading=false
}else{
ElMessage.warning(res.msg)
@@ -172,7 +199,11 @@
const selectOrderList = ()=>{
- request.post(`/delivery/getSelectShippingOrder/${pageNum.value}/${total.pageSize}/${orderInfo.selectDeliveryDate}`,filterData.value).then((res) => {
+ const config = {
+ filter: filterData.value,
+ sort: sortData.value
+ }
+ request.post(`/delivery/getSelectShippingOrder/${pageNum.value}/${total.pageSize}/${orderInfo.selectDeliveryDate}`,config).then((res) => {
if(res.code==200){
if (res.data.total!=null){
@@ -494,6 +525,10 @@
},
cellClick({ row }){
rowClickIndex.value = row
+ },
+ sortChange ({ field, order }) {
+ sortData.value = {field,order}
+ selectOrderList()
}
}
@@ -517,6 +552,9 @@
filterConfig: { //绛涢�夐厤缃」
remote: true
},
+ sortConfig: { //鎺掑簭閰嶇疆椤�
+ remote: true//鏄惁鏈嶅姟绔帓搴�
+ },
customConfig: {
storage: true
},
diff --git a/north-glass-erp/northglass-erp/src/views/sd/delivery/SelectOrderList.vue b/north-glass-erp/northglass-erp/src/views/sd/delivery/SelectOrderList.vue
index 63afece..79df0df 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/delivery/SelectOrderList.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/delivery/SelectOrderList.vue
@@ -61,14 +61,6 @@
//绛涢�夋潯浠讹紝鏈夊閿渶瑕佸厛瀹氫箟鏄庣粏閲岄潰鐨勬暟鎹�
let filterData = ref({
- finishedGoodsInventory:{
- quantityAvailable:'',
-
- },
- customerId: null, // 鏂板
- project: null, // 鏂板
- excludeOrderIds: [] // 鏂板
-
})
let selectDate = ref(["",""])
@@ -82,18 +74,9 @@
// 绗竴娆¤皟鐢紝淇敼涓哄甫绛涢�夋潯浠�
-const fetchOrders = () => {
- // 鏂板锛氫粠props鑾峰彇绛涢�夋潯浠�
- if(props.customerId!==undefined){
- filterData.value.customerId = props.customerId
- filterData.value.project = props.project
- filterData.value.excludeOrderIds = props.excludeOrderIds
- gridOptions.toolbarConfig.buttons[0].visible = false
- }else{
- gridOptions.toolbarConfig.buttons[1].visible = false
- }
+const fetchOrders = async () => {
- request.post(`/delivery/getSelectOrderInventory/${pageNum.value}/${total.pageSize}/${orderInfo.selectOrderListDate}`, filterData.value).then((res) => {
+ await request.post(`/delivery/getSelectOrderInventory/${pageNum.value}/${total.pageSize}/${orderInfo.selectOrderListDate}`, filterData.value).then((res) => {
if(res.code==200){
total.dataTotal = res.data.total.total*1
total.pageTotal= res.data.total.pageTotal
@@ -109,8 +92,24 @@
}
-onMounted(() => {
- fetchOrders()
+onMounted(async () => {
+ if (props.customerId !== undefined) {
+ filterData.value.customerId = props.customerId
+ filterData.value.project = props.project
+ filterData.value.excludeOrderIds = props.excludeOrderIds
+ gridOptions.toolbarConfig.buttons[0].visible = false
+
+ await fetchOrders()
+ } else {
+ gridOptions.toolbarConfig.buttons[1].visible = false
+ filterData.value = orderInfo.searchOrderFilter.data
+ await fetchOrders()
+ orderInfo.searchOrderFilter.list.forEach(item => {
+ xGrid.value.getColumnByField(item.field).filters = item.column.filters
+ })
+ }
+
+
})
const changeFilterEvent = (event, option, $panel,) => {
@@ -150,6 +149,13 @@
pageNum.value=1
produceList = deepClone(res.data.data)
xGrid.value.loadData(produceList)
+
+ //涓嶆槸寮圭獥鐣岄潰
+ if(props.customerId===undefined){
+ orderInfo.searchOrderFilter.list = xGrid.value.getCheckedFilters()
+ orderInfo.searchOrderFilter.data = filterData.value
+ }
+
gridOptions.loading=false
}else{
ElMessage.warning(res.msg)
@@ -238,7 +244,7 @@
{field: 'customerId',width:120, title: t('customer.customerNumber'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'customerName',width:120, title: t('customer.customerName'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'quantity',width:120, title: t('order.quantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'finishedGoodsInventory.quantityAvailable',width:120, title: t('delivery.availableStock'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'finishedGoodsInventory.quantityAvailable',width:120, title: t('delivery.availableStock'), sortable: true},
{field: 'project',width:120, title: t('order.project'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'batch',width:120, title: t('order.batch'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'money',width:120, title: t('order.money'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/sd/DeliveryController.java b/north-glass-erp/src/main/java/com/example/erp/controller/sd/DeliveryController.java
index 55a04c9..63f3dd4 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/sd/DeliveryController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/sd/DeliveryController.java
@@ -39,8 +39,8 @@
@ApiOperation("鍙戣揣璁㈠崟鏌ヨ鎺ュ彛")
@SaCheckPermission("selectDelivery.search")
@PostMapping("/getSelectShippingOrder/{pageNum}/{pageSize}/{selectDate}")
- public Result getSelectShippingOrder(@PathVariable Integer pageNum, @PathVariable Integer pageSize,@PathVariable List<String> selectDate, @RequestBody Delivery delivery) throws JsonProcessingException {
- return Result.success(deliveryService.getSelectShippingOrder(pageNum,pageSize,selectDate,delivery));
+ public Result getSelectShippingOrder(@PathVariable Integer pageNum, @PathVariable Integer pageSize,@PathVariable List<String> selectDate, @RequestBody Map<String,Object> config) throws JsonProcessingException {
+ return Result.success(deliveryService.getSelectShippingOrder(pageNum,pageSize,selectDate,config));
}
/*鍙戣揣鎶ヨ〃鏌ヨ*/
diff --git a/north-glass-erp/src/main/java/com/example/erp/dto/sd/DeliverySearchDTO.java b/north-glass-erp/src/main/java/com/example/erp/dto/sd/DeliverySearchDTO.java
new file mode 100644
index 0000000..22de8e2
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/dto/sd/DeliverySearchDTO.java
@@ -0,0 +1,74 @@
+package com.example.erp.dto.sd;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.example.erp.entity.sd.Order;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+
+@Data
+public class DeliverySearchDTO {
+ @ExcelProperty("缂栧彿")
+ private Long id;
+ @ExcelProperty("鍙戣揣鐘舵��")
+ private Integer deliveryState;
+ @ExcelProperty("鍑哄簱鐘舵��")
+ private Integer stockState;
+ @ExcelProperty("浠樻鏉′欢")
+ private String paymentTerms;
+ @ExcelProperty("鍙戣揣鍗曞彿")
+ private String deliveryId;
+ @ExcelProperty("璁㈠崟缂栧彿")
+ private String orderId;
+ @ExcelProperty("椤圭洰鍚嶇О")
+ private String project;
+ @ExcelProperty("瀹㈡埛缂栧彿")
+ private String customerId;
+ @ExcelProperty("瀹㈡埛鍚嶇О")
+ private String customerName;
+ @ExcelProperty("鍙戣揣鏃ユ湡")
+ private LocalDate deliveryDate;
+ @ExcelProperty("鏀粯鏂瑰紡")
+ private String payMethod;
+ @ExcelProperty("鏀粯鏃ユ湡")
+ private LocalDate payDate;
+ @ExcelProperty("閿�鍞汉id")
+ private String salesmanId;
+ @ExcelProperty("閿�鍞汉")
+ private String salesman;
+ @ExcelProperty("鍒涘缓浜篿d")
+ private String creatorId;
+ @ExcelProperty("鍒涘缓浜�")
+ private String creator;
+ @ExcelProperty("鑱旂郴浜�")
+ private String contacts;
+ @ExcelProperty("鑱旂郴鐢佃瘽")
+ private String contactNumber;
+ @ExcelProperty("閫佽揣鍦板潃")
+ private String deliveryAddress;
+ @ExcelProperty("闈㈢Н")
+ private Double area;
+ @ExcelProperty("鏁伴噺")
+ private Integer quantity;
+ @ExcelProperty("鎬婚噾棰�")
+ private Double money;
+ @ExcelProperty("鍏朵粬閲戦")
+ private Double otherMoney;
+ @ExcelProperty("杩愯垂閲戦")
+ private Double freight;
+ @ExcelProperty("杩愯垂鏁伴噺")
+ private Integer freightQuantity;
+ @ExcelProperty("杩愯垂鍗曚环")
+ private Double freightPrice;
+ @ExcelProperty("鎵撳嵃娆℃暟")
+ private Integer printingNumber;
+ @ExcelProperty("澶囨敞")
+ private String remarks;
+ @ExcelProperty("鍒涘缓鏃堕棿")
+ private LocalDate createTime;
+ @ExcelProperty("淇敼鏃堕棿")
+ private LocalDate updateTime;
+
+ private Order order;
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryMapper.java
index b063e68..a7a7a6d 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryMapper.java
@@ -1,5 +1,6 @@
package com.example.erp.mapper.sd;
+import com.example.erp.dto.sd.DeliverySearchDTO;
import com.example.erp.entity.pp.FlowCard;
import com.example.erp.entity.sd.Delivery;
import com.example.erp.entity.sd.DeliveryDetail;
@@ -17,7 +18,7 @@
List<Delivery> getSelectShippingOrder(@Param("offset") Integer offset,
@Param("pageSize") Integer pageSize,String startDate, String endDate,
- @Param("delivery") Delivery delivery);
+ @Param("delivery") DeliverySearchDTO delivery,String field, String orderBy);
Delivery getSelectShippingOrderDetailDelivery(@Param("offset") Integer offset,
@Param("pageSize") Integer pageSize,
@@ -30,7 +31,7 @@
Order getSelectShippingOrderDetailDeliverys(@Param("offset") Integer offset,
@Param("pageSize") Integer pageSize,
@Param("orderDetail") OrderDetail orderDetail);
- Map<String,Integer> getSelectShippingOrderPageTotal(Integer offset, Integer pageSize, String startDate, String endDate, Delivery delivery);
+ Map<String,Integer> getSelectShippingOrderPageTotal(Integer offset, Integer pageSize, String startDate, String endDate, DeliverySearchDTO delivery);
List<Order> getSelectOrderInventory(@Param("offset") Integer offset,
@Param("pageSize") Integer pageSize,String startDate, String endDate,
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java
index f659512..8eb787d 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java
@@ -10,6 +10,8 @@
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.example.erp.dto.sd.DeliveryDetailDTO;
import com.example.erp.dto.sd.DeliveryDetailProductDTO;
+import com.example.erp.dto.sd.DeliverySearchDTO;
+import com.example.erp.dto.sd.OrderSearchDTO;
import com.example.erp.entity.mm.FinishedOperateLog;
import com.example.erp.entity.sd.*;
import com.example.erp.entity.userInfo.Log;
@@ -60,7 +62,7 @@
FinishedGoodsInventoryService finishedGoodsInventoryService;
- public Map<String, Object> getSelectShippingOrder(Integer pageNum, Integer pageSize,List<String> selectDate, Delivery delivery) throws JsonProcessingException {
+ public Map<String, Object> getSelectShippingOrder(Integer pageNum, Integer pageSize,List<String> selectDate, Map<String,Object> config) throws JsonProcessingException {
Integer offset = (pageNum - 1) * pageSize;
String endDate = LocalDate.now().toString();
String startDate = LocalDate.now().minusDays(15).toString();
@@ -72,8 +74,14 @@
endDate = selectDate.get(1);
}
}
+ JSONObject orderJson = new JSONObject(config);
+ DeliverySearchDTO delivery = JSONObject.parseObject(JSONObject.toJSONString(orderJson.get("filter")), DeliverySearchDTO.class);
+ Map<String,String> sortDate = (Map<String, String>) config.get("sort");
+ String field = sortDate.get("field").replaceAll("(?<!^)([A-Z])", "_$1").toLowerCase();
+ String orderBy = sortDate.get("order");
+
Map<String, Object> map = new HashMap<>();
- map.put("data", deliveryMapper.getSelectShippingOrder(offset, pageSize,startDate,endDate, delivery));
+ map.put("data", deliveryMapper.getSelectShippingOrder(offset, pageSize,startDate,endDate, delivery,field, orderBy));
map.put("total", deliveryMapper.getSelectShippingOrderPageTotal(offset, pageSize,startDate,endDate, delivery));
List<String> list = new ArrayList<>();
list.add(startDate);
diff --git a/north-glass-erp/src/main/resources/mapper/sd/DeliveryMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/DeliveryMapper.xml
index 337f2c0..57931dc 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/DeliveryMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/DeliveryMapper.xml
@@ -179,9 +179,6 @@
<if test="order.createTime != null and order.createTime != ''">
and o.create_time REGEXP #{order.createTime}
</if>
- <if test="order.finishedGoodsInventory.quantityAvailable != null and order.finishedGoodsInventory.quantityAvailable != ''">
- and fgi.quantity_available REGEXP #{order.finishedGoodsInventory.quantityAvailable}
- </if>
</where>
group by o.order_id order by o.id desc
limit #{offset},#{pageSize};
@@ -236,9 +233,6 @@
</if>
<if test="order.createTime != null and order.createTime != ''">
and o.create_time REGEXP #{order.createTime}
- </if>
- <if test="order.finishedGoodsInventory.quantityAvailable != null and order.finishedGoodsInventory.quantityAvailable != ''">
- and fgi.quantity_available REGEXP #{order.finishedGoodsInventory.quantityAvailable}
</if>
</where>
group by o.order_id limit #{offset},#{pageSize}) as zu;
@@ -350,7 +344,16 @@
</where>
group by d.delivery_id
- order by d.id desc
+ order by
+ <if test="orderBy == null ">
+ d.id desc
+ </if>
+ <if test="orderBy == 'desc'">
+ d.${field} desc
+ </if>
+ <if test="orderBy == 'asc'">
+ d.${field}
+ </if>
limit #{offset},#{pageSize};
</select>
--
Gitblit v1.8.0