廖井涛
5 天以前 bad9ff47e7ed4965c6b3e93aebc38f28e97cca68
发货查询以及可发货订单查询筛选缓存
8个文件已修改
1个文件已添加
260 ■■■■ 已修改文件
north-glass-erp/northglass-erp/src/stores/sd/order/orderInfo.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/delivery/SelectDelivery.vue 88 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/delivery/SelectOrderList.vue 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/sd/DeliveryController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/dto/sd/DeliverySearchDTO.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/sd/DeliveryMapper.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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,
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"
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
  },
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},
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));
    }
    /*发货报表查询*/
north-glass-erp/src/main/java/com/example/erp/dto/sd/DeliverySearchDTO.java
New file
@@ -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("创建人id")
    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;
}
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,
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);
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>