chenlu
2024-04-11 77976f0fe94ccd536f6a6aeaca5da044c394d5b2
修改分架界面周长计算错误
17个文件已修改
1个文件已添加
435 ■■■■■ 已修改文件
north-glass-erp/northglass-erp/src/router/index.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/CrossProcessBreaking.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/Report.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/SelectReportingWorks.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/workOrder/SelectWorkOrder.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/order/OrderReport.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/WorkOrderMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/WorkOrderService.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/Report.xml 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/WordOrder.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/target/classes/mapper/pp/FolwCard.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/target/classes/mapper/pp/Report.xml 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/target/classes/mapper/pp/WordOrder.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/target/classes/mapper/sd/DeliveryDetail.xml 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/router/index.js
@@ -548,6 +548,12 @@
              name: 'damageReport',
              component: () => import('../views/pp/report/DamageReport.vue'),
            },
            {
              //跨工序次破报表
              path: 'crossProcessBreaking',
              name: 'crossProcessBreaking',
              component: () => import('../views/pp/report/crossProcessBreaking.vue'),
            },
            // {
            //   path: '',
            //   redirect:'/main/report/ProductionSchedule'
north-glass-erp/northglass-erp/src/views/pp/report/CrossProcessBreaking.vue
New file
@@ -0,0 +1,35 @@
<script setup>
import BasicTable from "@/components/BasicTable.vue"
import request from "@/utils/request"
import { ref} from "vue"
const childrenData = ref({
  columns:[
    {type:'expand',fixed:"left",width: 80},
    {type: 'seq',fixed:"left", title: '自序', width: 80 },
    {field: '1', width: 120, title: '报工时间',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
    {field: '2',width: 120, title: '责任工序', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: '3', width: 130,title: '责任班组', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: '5', width: 100,title: '次破类型', sortable: true,showOverflow:"ellipsis"},
    {field: '5', width: 100,title: '次破原因', sortable: true,showOverflow:"ellipsis"},
    {field: '6', width: 100,title: '次破数量', sortable: true},
    {field: '7',width: 100, title: '次破面积', sortable: true},
    {field: '9', width: 120,title: '项目名称', sortable: true},
    {field: '11',width: 120, title: '销售单号', sortable: true},
    {field: '12',width: 120, title: '单品名称', sortable: true},
    {field: '13',width: 120, title: '产地', sortable: true},
  ],//表格表头字段
  data:[],//表格数据
  url :'/report/crossProcessBreaking',
  footList:['quantity','grossArea','computeGrossArea','perimeter','price','grossAmount']
})
</script>
<template>
  <basic-table
      :childrenData="childrenData"/>
</template>
<style scoped>
</style>
north-glass-erp/northglass-erp/src/views/pp/report/Report.vue
@@ -57,7 +57,12 @@
          <el-menu-item index="/main/report/TeamOutput">班组产量</el-menu-item>
          <el-menu-item index="/main/report/EquipmentOutput">设备产量</el-menu-item>
        </el-sub-menu>
        <el-menu-item  index="/main/report/DamageReport">次破报表</el-menu-item>
        <el-sub-menu  index="3" popper-class="test">
          <template #title>次破报表</template>
          <el-menu-item  index="/main/report/DamageReport">次破报表</el-menu-item>
          <el-menu-item index="/main/report/CrossProcessBreaking">跨工序次破</el-menu-item>
        </el-sub-menu>
        <el-menu-item  index="/main/report/SplittingDetailsOutside">分架明细</el-menu-item>
        <el-menu-item  index="/main/report/TaskCompletionStatus">任务完成情况</el-menu-item>
        <el-menu-item  index="/main/report/RawMaterialRequisition">原片领料</el-menu-item>
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/SelectReportingWorks.vue
@@ -31,10 +31,6 @@
      })
      break
    }
    case  'setType':{
      alert('我接收到子组件传送的反审状态')
      break
    }
  }
}
north-glass-erp/northglass-erp/src/views/pp/workOrder/SelectWorkOrder.vue
@@ -37,7 +37,6 @@
          router.push({path: '/main/workOrder/SelectWorkOrder', query: {startTime:startTime,endTime:endTime,state:state,random:Math.random()}})
        } else {
          ElMessage.warning(res.msg)
          router.push("/login")
        }
      })
      break
north-glass-erp/northglass-erp/src/views/sd/order/OrderReport.vue
@@ -45,7 +45,7 @@
    {field: 'order.customerBatch',width:120, title: '客户批次',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}
  ],//表格表头字段
  data:[],//表格数据
  url :'/order/getOrderReport/1',
  url :'/order/getOrderReport',
  footList:['quantity','grossArea','computeGrossArea','perimeter','price','grossAmount']
})
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportController.java
@@ -2,7 +2,9 @@
import com.example.erp.common.Constants;
import com.example.erp.common.Result;
import com.example.erp.entity.pp.DamageDetails;
import com.example.erp.entity.pp.FlowCard;
import com.example.erp.entity.sd.OrderDetail;
import com.example.erp.entity.sd.OrderGlassDetail;
import com.example.erp.exception.ServiceException;
import com.example.erp.service.pp.ReportService;
@@ -33,4 +35,14 @@
        return Result.seccess(reportService.processCardProgressSv(orderId,columns));
    }
    @ApiOperation("跨工序次破")
    @PostMapping("/crossProcessBreaking/{pageNum}/{pageSize}/{selectDate}")
    public Result getOrderReport(@PathVariable Integer pageNum,
                                 @PathVariable Integer pageSize,
                                 @PathVariable List<String> selectDate,
                                 @RequestBody DamageDetails damageDetails)  {
        return  Result.seccess(reportService.crossProcessBreakingSv(pageNum,pageSize,selectDate,damageDetails));
    }
}
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportMapper.java
@@ -1,7 +1,9 @@
package com.example.erp.mapper.pp;
import com.example.erp.entity.pp.DamageDetails;
import com.example.erp.entity.pp.FlowCard;
import com.example.erp.entity.sd.OrderDetail;
import com.example.erp.entity.sd.OrderGlassDetail;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -14,4 +16,8 @@
public interface ReportMapper {
    List<Map<String, String>> processCardProgressMp(String orderId);
    List<DamageDetails> getProcessBreaking(Integer offset, Integer pageSize, String startDate, String endDate, DamageDetails damageDetails);
    Map<String,Integer> getProcessBreakingTotal(Integer offset, Integer pageSize, String startDate, String endDate, DamageDetails damageDetails);
}
north-glass-erp/src/main/java/com/example/erp/mapper/pp/WorkOrderMapper.java
@@ -37,4 +37,6 @@
    Boolean updateWorkType(String orderId, Integer state);
    Integer selectYesWorkCount(String orderId);
    Integer selectProcessCard(String orderId);
}
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
@@ -5,6 +5,7 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.example.erp.entity.pp.DamageDetails;
import com.example.erp.entity.pp.FlowCard;
import com.example.erp.mapper.pp.ReportMapper;
import com.example.erp.mapper.sd.OrderProcessDetailMapper;
@@ -12,6 +13,7 @@
import org.springframework.stereotype.Service;
import java.sql.Date;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
@@ -21,6 +23,8 @@
    private final ReportMapper reportMapper;
    private final OrderProcessDetailMapper orderProcessDetailMapper;
    public ReportService(ReportMapper reportMapper, OrderProcessDetailMapper orderProcessDetailMapper) {
        this.reportMapper = reportMapper;
@@ -98,4 +102,28 @@
        return map;
    }
    public Map<String,Object> crossProcessBreakingSv(Integer pageNum, Integer pageSize, List<String> selectDate, DamageDetails damageDetails) {
        Integer offset = (pageNum-1)*pageSize;
        String endDate = LocalDate.now().toString();
        String startDate = LocalDate.now().minusDays(15).toString();
        if(selectDate !=null && selectDate.size()==2){
            if(!selectDate.get(0).isEmpty()){
                startDate = selectDate.get(0);
            }
            if(!selectDate.get(1).isEmpty()){
                endDate = selectDate.get(1);
            }
        }
        Map<String,Object> map = new HashMap<>();
        map.put("data",reportMapper.getProcessBreaking(offset, pageSize, startDate, endDate, damageDetails));
        map.put("total",reportMapper.getProcessBreakingTotal(offset, pageSize, startDate, endDate, damageDetails));
        System.out.println(reportMapper.getProcessBreaking(offset, pageSize, startDate, endDate, damageDetails));
        List<String> list = new ArrayList<>();
        list.add(startDate);
        list.add(endDate);
        map.put("selectDate",list);
//        map.put("total",orderMapper.getPageTotal(offset, pageSize, startDate, endDate, orderDetail));
        return map;
    }
}
north-glass-erp/src/main/java/com/example/erp/service/pp/WorkOrderService.java
@@ -88,20 +88,28 @@
    //删除生产订单
    public Boolean deleteOrderWorkSv(String orderId, String productionId) {
        if (!orderId.isEmpty() && !productionId.isEmpty()) {
            //删除订单小片表生产订单号
            workOrderMapper.deleteOrderWorkMp(orderId, productionId);
            int state = 0;
            int states = 1;
            //查询该订单未转生产订单的条数
            Integer noWorkCount = workOrderMapper.selectWorkCount(orderId);
            //查询该订单转生产订单的条数
            Integer yesWorkCount = workOrderMapper.selectYesWorkCount(orderId);
            if (noWorkCount.equals(yesWorkCount)) {
                workOrderMapper.updateWorkType(orderId, state);
            } else {
                workOrderMapper.updateWorkType(orderId, states);
            //查询该订单是否已经建立流程卡
            Integer getProcessCard = workOrderMapper.selectProcessCard(orderId);
            if (getProcessCard == 0){
                //删除订单小片表生产订单号
                workOrderMapper.deleteOrderWorkMp(orderId, productionId);
                int state = 0;
                int states = 1;
                //查询该订单未转生产订单的条数
                Integer noWorkCount = workOrderMapper.selectWorkCount(orderId);
                //查询该订单转生产订单的条数
                Integer yesWorkCount = workOrderMapper.selectYesWorkCount(orderId);
                if (noWorkCount.equals(yesWorkCount)) {
                    workOrderMapper.updateWorkType(orderId, state);
                } else {
                    workOrderMapper.updateWorkType(orderId, states);
                }
                return true;
            }
            return true;
            else {
                return false;
            }
        } else {
            return false;
        }
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -174,7 +174,7 @@
        od.product_name,
        SUM( od.quantity) as quantity,
        SUM(od.compute_gross_area) as compute_gross_area,
        od.perimeter
        sum(od.perimeter) as perimeter
        from sd.order_detail as od left join
        (select order_id,order_number,production_id,splitting_status from sd.order_glass_detail
        GROUP BY order_id,order_number
north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -100,4 +100,48 @@
        where a.order_id = #{orderId}
    </select>
    <select id="getProcessBreaking" resultMap="flowCardMap">
        select rw.reporting_work_id,rw.reporting_work_time,dd.responsible_process,dd.responsible_team,
               dd.breakage_type,dd.breakage_reason,ROUND(SUM(dd.breakage_quantity)),
               round(ogd.child_width*ogd.child_height*SUM(dd.breakage_quantity)/1000000,2),rw.this_process,
               o.project,o.order_id,ogd.glass_child
        from
            damage_details as dd
                left join reporting_work as rw
                    on rw.reporting_work_id=dd.reporting_work_id
                left join sd.order as o
                    on rw.order_id=o.order_id
                left join sd.order_glass_detail as ogd
                          on ogd.order_id=o.order_id and ogd.order_number=dd.order_number
                                 and ogd.technology_number and dd.technology_number
        where date(rw.reporting_work_time)>=#{startDate} and date(rw.reporting_work_time) &lt;= #{endDate}
          and rw.this_worn_quantity>0 and dd.available=0
          and reviewed_state!=2
            and rw.this_process!=dd.responsible_process
        GROUP BY dd.id
        order by dd.reporting_work_id desc
        limit #{offset},#{pageSize}
    </select>
    <select id="getProcessBreakingTotal">
        select
            CEILING(count(dd.id)/#{pageSize}) as 'pageTotal',
            count(distinct dd.id) as 'total'
        from
            damage_details as dd
                left join reporting_work as rw
                          on rw.reporting_work_id=dd.reporting_work_id
                left join sd.order as o
                          on rw.order_id=o.order_id
                left join sd.order_glass_detail as ogd
                          on ogd.order_id=o.order_id and ogd.order_number=dd.order_number
                              and ogd.technology_number and dd.technology_number
        where date(rw.reporting_work_time)>=#{startDate} and date(rw.reporting_work_time) &lt;= #{endDate}
          and rw.this_worn_quantity>0 and dd.available=0
          and reviewed_state!=2
          and rw.this_process!=dd.responsible_process
        order by dd.id desc
    </select>
</mapper>
north-glass-erp/src/main/resources/mapper/pp/WordOrder.xml
@@ -182,4 +182,7 @@
        set o.production_order=#{state}
        where o.order_id = #{orderId}
    </update>
    <select id="selectProcessCard">
        select processing_card from sd.`order` where order_id = #{orderId}
    </select>
</mapper>
north-glass-erp/target/classes/mapper/pp/FolwCard.xml
@@ -174,7 +174,7 @@
        od.product_name,
        SUM( od.quantity) as quantity,
        SUM(od.compute_gross_area) as compute_gross_area,
        od.perimeter
        sum(od.perimeter) as perimeter
        from sd.order_detail as od left join
        (select order_id,order_number,production_id,splitting_status from sd.order_glass_detail
        GROUP BY order_id,order_number
north-glass-erp/target/classes/mapper/pp/Report.xml
@@ -100,4 +100,48 @@
        where a.order_id = #{orderId}
    </select>
    <select id="getProcessBreaking" resultMap="flowCardMap">
        select rw.reporting_work_id,rw.reporting_work_time,dd.responsible_process,dd.responsible_team,
               dd.breakage_type,dd.breakage_reason,ROUND(SUM(dd.breakage_quantity)),
               round(ogd.child_width*ogd.child_height*SUM(dd.breakage_quantity)/1000000,2),rw.this_process,
               o.project,o.order_id,ogd.glass_child
        from
            damage_details as dd
                left join reporting_work as rw
                    on rw.reporting_work_id=dd.reporting_work_id
                left join sd.order as o
                    on rw.order_id=o.order_id
                left join sd.order_glass_detail as ogd
                          on ogd.order_id=o.order_id and ogd.order_number=dd.order_number
                                 and ogd.technology_number and dd.technology_number
        where date(rw.reporting_work_time)>=#{startDate} and date(rw.reporting_work_time) &lt;= #{endDate}
          and rw.this_worn_quantity>0 and dd.available=0
          and reviewed_state!=2
            and rw.this_process!=dd.responsible_process
        GROUP BY dd.id
        order by dd.reporting_work_id desc
        limit #{offset},#{pageSize}
    </select>
    <select id="getProcessBreakingTotal">
        select
            CEILING(count(dd.id)/#{pageSize}) as 'pageTotal',
            count(distinct dd.id) as 'total'
        from
            damage_details as dd
                left join reporting_work as rw
                          on rw.reporting_work_id=dd.reporting_work_id
                left join sd.order as o
                          on rw.order_id=o.order_id
                left join sd.order_glass_detail as ogd
                          on ogd.order_id=o.order_id and ogd.order_number=dd.order_number
                              and ogd.technology_number and dd.technology_number
        where date(rw.reporting_work_time)>=#{startDate} and date(rw.reporting_work_time) &lt;= #{endDate}
          and rw.this_worn_quantity>0 and dd.available=0
          and reviewed_state!=2
          and rw.this_process!=dd.responsible_process
        order by dd.id desc
    </select>
</mapper>
north-glass-erp/target/classes/mapper/pp/WordOrder.xml
@@ -182,4 +182,7 @@
        set o.production_order=#{state}
        where o.order_id = #{orderId}
    </update>
    <select id="selectProcessCard">
        select processing_card from sd.`order` where order_id = #{orderId}
    </select>
</mapper>
north-glass-erp/target/classes/mapper/sd/DeliveryDetail.xml
@@ -56,6 +56,36 @@
    </resultMap>
    <resultMap id="selectDeliveryDetail" type="com.example.erp.entity.sd.DeliveryDetail">
        <result column="order_id" property="orderId"/>
        <result column="order_number" property="orderNumber"/>
        <result column="o_quantity" property="quantity"/>
        <result column="delivery_id" property="deliveryId"/>
        <result column="delivery_number" property="deliveryNumber"/>
        <result column="area" property="area"/>
        <result column="money" property="money"/>
        <result column="delivery_detail_remakes" property="deliveryDetailRemakes"/>
        <result column="delivery_detail_state" property="deliveryDetailState"/>
        <result column="create_time" property="createTime"/>
        <result column="customer_id" property="delivery.customerId"/>
        <result column="customer_name" property="delivery.customerName"/>
        <result column="project" property="delivery.project"/>
        <result column="pay_method" property="delivery.payMethod"/>
        <result column="payment_terms" property="delivery.paymentTerms"/>
        <result column="pay_date" property="delivery.payDate"/>
        <result column="contacts" property="delivery.contacts"/>
        <result column="contact_number" property="delivery.contactNumber"/>
        <result column="delivery_address" property="delivery.deliveryAddress"/>
        <result column="delivery_date" property="delivery.deliveryDate"/>
        <result column="creator" property="delivery.creator"/>
        <result column="salesman" property="delivery.salesman"/>
    </resultMap>
    <delete id="deleteDeliveryDetail">
        delete from sd.delivery_detail where delivery_id=#{deliveryId}
    </delete>
@@ -443,4 +473,174 @@
        </where>
        limit #{offset},#{pageSize};
    </select>
    <select id="getSelectDeliveryDetailReport" resultMap="selectDeliveryDetail">
        select dd.delivery_id,
        dd.delivery_number,
        d.payment_terms,
        d.project,
        d.customer_id,
        d.customer_name,
        d.delivery_date,
        d.pay_method,
        d.pay_date,
        d.salesman,
        d.creator,
        d.contacts,
        d.contact_number,
        d.delivery_address,
        dd.order_id,
        dd.order_number,
        dd.area,
        dd.money,
        dd.quantity,
        dd.delivery_detail_remakes,
        dd.create_time
        from sd.delivery_detail dd
        left join sd.delivery d on dd.delivery_id=d.delivery_id
        <where>
            <if test="deliveryDetail.deliveryId != null and deliveryDetail.deliveryId != ''">
                and dd.delivery_id regexp #{deliveryDetail.deliveryId}
            </if>
            <if test="deliveryDetail.deliveryNumber != null and deliveryDetail.deliveryNumber != ''">
                and dd.delivery_number regexp #{deliveryDetail.deliveryNumber}
            </if>
            <if test="deliveryDetail.orderId != null and deliveryDetail.orderId != ''">
                and dd.order_id regexp #{deliveryDetail.orderId}
            </if>
            <if test="deliveryDetail.orderNumber != null and deliveryDetail.orderNumber != ''">
                and dd.order_number regexp #{deliveryDetail.orderNumber}
            </if>
            <if test="deliveryDetail.area != null and deliveryDetail.area != ''">
                and dd.area regexp #{deliveryDetail.area}
            </if>
            <if test="deliveryDetail.money != null and deliveryDetail.money != ''">
                and dd.money regexp #{deliveryDetail.money}
            </if>
            <if test="deliveryDetail.quantity != null and deliveryDetail.quantity != ''">
                and dd.quantity regexp #{deliveryDetail.quantity}
            </if>
            <if test="deliveryDetail.deliveryDetailRemakes != null and deliveryDetail.deliveryDetailRemakes != ''">
                and dd.delivery_detail_remakes regexp #{deliveryDetail.deliveryDetailRemakes}
            </if>
            <if test="deliveryDetail.createTime != null and deliveryDetail.createTime != ''">
                and dd.create_time regexp #{deliveryDetail.createTime}
            </if>
            <if test="deliveryDetail.delivery.paymentTerms != null and deliveryDetail.delivery.paymentTerms != ''">
                and d.payment_terms regexp #{deliveryDetail.delivery.paymentTerms}
            </if>
            <if test="deliveryDetail.delivery.project != null and deliveryDetail.delivery.project != ''">
                and d.project regexp #{deliveryDetail.delivery.project}
            </if>
            <if test="deliveryDetail.delivery.customerId != null and deliveryDetail.delivery.customerId != ''">
                and d.customer_id regexp #{deliveryDetail.delivery.customerId}
            </if>
            <if test="deliveryDetail.delivery.customerName != null and deliveryDetail.delivery.customerName != ''">
                and d.customer_name regexp #{deliveryDetail.delivery.customerName}
            </if>
            <if test="deliveryDetail.delivery.deliveryDate != null and deliveryDetail.delivery.deliveryDate != ''">
                and d.delivery_date regexp #{deliveryDetail.delivery.deliveryDate}
            </if>
            <if test="deliveryDetail.delivery.payMethod != null and deliveryDetail.delivery.payMethod != ''">
                and d.pay_method regexp #{deliveryDetail.delivery.payMethod}
            </if>
            <if test="deliveryDetail.delivery.payDate != null and deliveryDetail.delivery.payDate != ''">
                and d.pay_date regexp #{deliveryDetail.delivery.payDate}
            </if>
            <if test="deliveryDetail.delivery.salesman != null and deliveryDetail.delivery.salesman != ''">
                and d.salesman regexp #{deliveryDetail.delivery.salesman}
            </if>
            <if test="deliveryDetail.delivery.creator != null and deliveryDetail.delivery.creator != ''">
                and d.creator regexp #{deliveryDetail.delivery.creator}
            </if>
            <if test="deliveryDetail.delivery.contacts != null and deliveryDetail.delivery.contacts != ''">
                and d.contacts regexp #{deliveryDetail.delivery.contacts}
            </if>
            <if test="deliveryDetail.delivery.contactNumber != null and deliveryDetail.delivery.contactNumber != ''">
                and d.contact_number regexp #{deliveryDetail.delivery.contactNumber}
            </if>
            <if test="deliveryDetail.delivery.deliveryAddress != null and deliveryDetail.delivery.deliveryAddress != ''">
                and d.delivery_address regexp #{deliveryDetail.delivery.deliveryAddress}
            </if>
        </where>
        order by dd.delivery_id,dd.delivery_number
        limit #{offset},#{pageSize};
    </select>
    <select id="getSelectDeliveryDetailReportPageTotal" resultMap="selectDeliveryDetail">
        select CEILING(count(dd.id)/#{pageSize}) as 'pageTotal',
        count(dd.id) as 'total'
        from sd.delivery_detail dd
        left join sd.delivery d on dd.delivery_id=d.delivery_id
        <where>
            <if test="deliveryDetail.deliveryId != null and deliveryDetail.deliveryId != ''">
                and dd.delivery_id regexp #{deliveryDetail.deliveryId}
            </if>
            <if test="deliveryDetail.deliveryNumber != null and deliveryDetail.deliveryNumber != ''">
                and dd.delivery_number regexp #{deliveryDetail.deliveryNumber}
            </if>
            <if test="deliveryDetail.orderId != null and deliveryDetail.orderId != ''">
                and dd.order_id regexp #{deliveryDetail.orderId}
            </if>
            <if test="deliveryDetail.orderNumber != null and deliveryDetail.orderNumber != ''">
                and dd.order_number regexp #{deliveryDetail.orderNumber}
            </if>
            <if test="deliveryDetail.area != null and deliveryDetail.area != ''">
                and dd.area regexp #{deliveryDetail.area}
            </if>
            <if test="deliveryDetail.money != null and deliveryDetail.money != ''">
                and dd.money regexp #{deliveryDetail.money}
            </if>
            <if test="deliveryDetail.quantity != null and deliveryDetail.quantity != ''">
                and dd.quantity regexp #{deliveryDetail.quantity}
            </if>
            <if test="deliveryDetail.deliveryDetailRemakes != null and deliveryDetail.deliveryDetailRemakes != ''">
                and dd.delivery_detail_remakes regexp #{deliveryDetail.deliveryDetailRemakes}
            </if>
            <if test="deliveryDetail.createTime != null and deliveryDetail.createTime != ''">
                and dd.create_time regexp #{deliveryDetail.createTime}
            </if>
            <if test="deliveryDetail.delivery.paymentTerms != null and deliveryDetail.delivery.paymentTerms != ''">
                and d.payment_terms regexp #{deliveryDetail.delivery.paymentTerms}
            </if>
            <if test="deliveryDetail.delivery.project != null and deliveryDetail.delivery.project != ''">
                and d.project regexp #{deliveryDetail.delivery.project}
            </if>
            <if test="deliveryDetail.delivery.customerId != null and deliveryDetail.delivery.customerId != ''">
                and d.customer_id regexp #{deliveryDetail.delivery.customerId}
            </if>
            <if test="deliveryDetail.delivery.customerName != null and deliveryDetail.delivery.customerName != ''">
                and d.customer_name regexp #{deliveryDetail.delivery.customerName}
            </if>
            <if test="deliveryDetail.delivery.deliveryDate != null and deliveryDetail.delivery.deliveryDate != ''">
                and d.delivery_date regexp #{deliveryDetail.delivery.deliveryDate}
            </if>
            <if test="deliveryDetail.delivery.payMethod != null and deliveryDetail.delivery.payMethod != ''">
                and d.pay_method regexp #{deliveryDetail.delivery.payMethod}
            </if>
            <if test="deliveryDetail.delivery.payDate != null and deliveryDetail.delivery.payDate != ''">
                and d.pay_date regexp #{deliveryDetail.delivery.payDate}
            </if>
            <if test="deliveryDetail.delivery.salesman != null and deliveryDetail.delivery.salesman != ''">
                and d.salesman regexp #{deliveryDetail.delivery.salesman}
            </if>
            <if test="deliveryDetail.delivery.creator != null and deliveryDetail.delivery.creator != ''">
                and d.creator regexp #{deliveryDetail.delivery.creator}
            </if>
            <if test="deliveryDetail.delivery.contacts != null and deliveryDetail.delivery.contacts != ''">
                and d.contacts regexp #{deliveryDetail.delivery.contacts}
            </if>
            <if test="deliveryDetail.delivery.contactNumber != null and deliveryDetail.delivery.contactNumber != ''">
                and d.contact_number regexp #{deliveryDetail.delivery.contactNumber}
            </if>
            <if test="deliveryDetail.delivery.deliveryAddress != null and deliveryDetail.delivery.deliveryAddress != ''">
                and d.delivery_address regexp #{deliveryDetail.delivery.deliveryAddress}
            </if>
        </where>
        order by dd.delivery_id,dd.delivery_number
        limit #{offset},#{pageSize};
    </select>
</mapper>