Ver Fonte

配载需求相关代码

dongyongwei há 4 anos atrás
pai
commit
4f0d3cfd0f

+ 50 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/fleet/orderPlan/ftmsorderbillscarsController.java

@@ -18,7 +18,6 @@ import com.ruoyi.orderPlan.domain.Ftmsorderbillscars;
 import com.ruoyi.orderPlan.domain.FtmsorderbillscarsExcel;
 import com.ruoyi.orderPlan.domain.VehicleLedgerExcel;
 import com.ruoyi.orderPlan.service.IftmsorderbillscarsService;
-import org.aspectj.weaver.loadtime.Aj;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
@@ -110,6 +109,25 @@ public class ftmsorderbillscarsController extends BaseController {
         return getDataTable(list);
     }
 
+
+    /**
+     *自动配载
+     * @param sourceId 来源ID,待插入数据ID,执行逻辑:插入数据,单据类型为分单,主单号为原来车辆的运单号
+     * @param targetId 目标ID,待处理数据ID,执行逻辑:单据类型 变为主单
+     * @return
+     * dongyongwei 20210713
+     */
+    @GetMapping("/autoStowage")
+    public AjaxResult autoStowage(Long sourceId, Long targetId){
+        if(sourceId==null){
+            return AjaxResult.error("sourceId不能为空");
+        }
+        if(targetId==null){
+            return AjaxResult.error("targetId不能为空");
+        }
+        return ftmsorderbillscarsService.autoStowage(sourceId,targetId);
+    }
+
     /**
      * 提交车辆配载
      */
@@ -319,6 +337,22 @@ public class ftmsorderbillscarsController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:add')")
     @Log(title = "车队派车", businessType = BusinessType.INSERT)
+    @PostMapping(value = "/vehicleArrangementAddStowage")
+    @RepeatSubmit
+    public AjaxResult vehicleArrangementAddStowage(@RequestBody Ftmsorderbillscars ftmsorderbillscars) {
+        if (StringUtils.isNull(ftmsorderbillscars.getpId())) {
+            return AjaxResult.error("未找到调度安排信息");
+        }
+        String status = "addStowage";
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        return ftmsorderbillscarsService.vehicleArrangement(status, ftmsorderbillscars, loginUser);
+    }
+
+    /**
+     * 单条车辆安排提交接口
+     */
+    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:add')")
+    @Log(title = "车队派车", businessType = BusinessType.INSERT)
     @PostMapping(value = "/vehicleArrangementAdd")
     @RepeatSubmit
     public AjaxResult vehicleArrangementAdd(@RequestBody Ftmsorderbillscars ftmsorderbillscars) {
@@ -334,6 +368,21 @@ public class ftmsorderbillscarsController extends BaseController {
      * 单条车辆安排撤销接口
      */
     @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:edit')")
+    @PostMapping(value = "/vehicleArrangementRevokeStowage")
+    @RepeatSubmit
+    public AjaxResult vehicleArrangementRevokeStowage(@RequestBody Ftmsorderbillscars ftmsorderbillscars) {
+        if (StringUtils.isNull(ftmsorderbillscars.getpId())) {
+            return AjaxResult.error("未找到调度安排信息");
+        }
+        String status = "revokeStowage";
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        return ftmsorderbillscarsService.vehicleArrangement(status, ftmsorderbillscars, loginUser);
+    }
+
+    /**
+     * 单条车辆安排撤销接口
+     */
+    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:edit')")
     @PostMapping(value = "/vehicleArrangementRevoke")
     @RepeatSubmit
     public AjaxResult vehicleArrangementRevoke(@RequestBody Ftmsorderbillscars ftmsorderbillscars) {

+ 11 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/fleet/orderPlan/ftmsorderbillsplansController.java

@@ -60,6 +60,17 @@ public class ftmsorderbillsplansController extends BaseController {
     }
 
     /**
+     * 查询车队派车列表
+     */
+    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:query')")
+    @GetMapping("/queryForStowage")
+    public TableDataInfo queryForStowage(Ftmsorderbills ftmsorderbills) {
+        startPage();
+        List<Map<String, Object>> list = ftmsorderbillsplansService.selectftmsorderbillsplansMapListForStowage(ftmsorderbills);
+        return getDataTable(list);
+    }
+
+    /**
      * 导出订单调度列表
      */
     @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillsplans:export')")

+ 20 - 0
ruoyi-fleet/src/main/java/com/ruoyi/orderPlan/domain/Ftmsorderbills.java

@@ -300,6 +300,26 @@ public class Ftmsorderbills extends BaseEntity {
     /** 车队id */
     private Long fleetId;
 
+    /** 查询时间区间需要传入参数 */
+    private String loadDateBegin;
+    private String loadDateEnd;
+
+    public String getLoadDateBegin() {
+        return loadDateBegin;
+    }
+
+    public void setLoadDateBegin(String loadDateBegin) {
+        this.loadDateBegin = loadDateBegin;
+    }
+
+    public String getLoadDateEnd() {
+        return loadDateEnd;
+    }
+
+    public void setLoadDateEnd(String loadDateEnd) {
+        this.loadDateEnd = loadDateEnd;
+    }
+
     public String getIsFleet() {
         return isFleet;
     }

+ 7 - 0
ruoyi-fleet/src/main/java/com/ruoyi/orderPlan/mapper/FtmsorderbillsplansMapper.java

@@ -110,4 +110,11 @@ public interface FtmsorderbillsplansMapper {
      * @return  结果
      */
     List<Map<String, Object>> selectftmsorderbillsplansMapList(Ftmsorderbills ftmsorderbills);
+
+    /**
+     *  查询车队派车列表数据(配载)
+     * @param ftmsorderbills   参数
+     * @return  结果
+     */
+    List<Map<String, Object>> selectftmsorderbillsplansMapListForStowage(Ftmsorderbills ftmsorderbills);
 }

+ 10 - 0
ruoyi-fleet/src/main/java/com/ruoyi/orderPlan/service/IftmsorderbillscarsService.java

@@ -185,6 +185,16 @@ public interface IftmsorderbillscarsService {
      */
     public AjaxResult addStowage(Ftmsorderbillscars ftmsorderbillscars);
 
+
+    /**
+     *自动配载
+     * @param sourceId 来源ID,待插入数据ID,执行逻辑:插入数据,单据类型为分单,主单号为原来车辆的运单号
+     * @param targetId 目标ID,待处理数据ID,执行逻辑:单据类型 变为主单
+     * @return
+     * dongyongwei 20210713
+     */
+    public AjaxResult autoStowage(Long sourceId,Long targetId);
+
     /**
      *  查询陆运台账列表信息
      * @param vehicleLedgerExcel    查询条件

+ 7 - 0
ruoyi-fleet/src/main/java/com/ruoyi/orderPlan/service/IftmsorderbillsplansService.java

@@ -121,6 +121,13 @@ public interface IftmsorderbillsplansService {
     List<Map<String, Object>> selectftmsorderbillsplansMapList(Ftmsorderbills ftmsorderbills);
 
     /**
+     *  查询车队派车列表数据(配载)
+     * @param ftmsorderbills   参数
+     * @return  结果
+     */
+    List<Map<String, Object>> selectftmsorderbillsplansMapListForStowage(Ftmsorderbills ftmsorderbills);
+
+    /**
      *  单条订单调度变更
      * @param plans        调度
      * @param loginUser    用户

+ 140 - 1
ruoyi-fleet/src/main/java/com/ruoyi/orderPlan/service/impl/FtmsorderbillscarsServiceImpl.java

@@ -1,5 +1,7 @@
 package com.ruoyi.orderPlan.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.basicData.domain.TCorps;
@@ -24,6 +26,8 @@ import com.ruoyi.warehouseBusiness.domain.BillnoDel;
 import com.ruoyi.warehouseBusiness.mapper.BillnoDelMapper;
 import com.ruoyi.warehouseBusiness.service.impl.BillnoSerialServiceImpl;
 import lombok.extern.slf4j.Slf4j;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -45,6 +49,8 @@ import java.util.Map;
 @Service
 public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService {
 
+    final Logger logger = LoggerFactory.getLogger(FtmsorderbillscarsServiceImpl.class);
+
     @Autowired
     private TGoodsMapper tGoodsMapper;
 
@@ -595,6 +601,41 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
     }
 
     /**
+     * 自动配载
+     * @param sourceId 来源ID,待插入数据ID,执行逻辑:插入数据,单据类型为分单,主单号为原来车辆的运单号
+     * @param targetId 目标ID,待处理数据ID,执行逻辑:单据类型 变为主单
+     * @return dongyongwei 20210713
+     */
+    @Override
+    @Transactional
+    public AjaxResult autoStowage(Long sourceId, Long targetId) {
+        //获取来源单据
+        Ftmsorderbillscars source = ftmsorderbillscarsMapper.selectftmsorderbillscarsById(sourceId);
+        //获取目标单据
+        Ftmsorderbillscars target = ftmsorderbillscarsMapper.selectftmsorderbillscarsById(targetId);
+
+        //处理目标单据单据类型变更为主单
+        target.setBillKind("MM");
+        ftmsorderbillscarsMapper.updateftmsorderbillscars(target);
+        //执行逻辑:插入数据,单据类型为分单,主单号为原来车辆的运单号
+        Ftmsorderbillscars newTarget = new Ftmsorderbillscars();
+        //原数据先复制给待插入数据
+        BeanUtil.copyProperties(source,newTarget);
+        //分单逻辑
+        newTarget.setBillKind("MH");
+        //主单号为原来车辆的运单号
+        newTarget.setOrderNo(source.getmBillNo());
+        //关联目标主表ID
+        newTarget.setpId(target.getpId());
+        //orgID
+        newTarget.setOrgId(target.getOrgId());
+        //执行完以上自动逻辑进行插入
+        ftmsorderbillscarsMapper.insertftmsorderbillscars(newTarget);
+
+        return AjaxResult.success("配载成功");
+    }
+
+    /**
      *  查询陆运台账列表信息
      * @param vehicleLedgerExcel    查询条件
      * @return  结果
@@ -798,6 +839,31 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
     @Override
     @Transactional
     public AjaxResult vehicleArrangement(String status, Ftmsorderbillscars ftmsorderbillscars, LoginUser loginUser) {
+        //新增逻辑  20210714 dongyongwei
+        // 配载常规提交
+        if ("addStowage".equals(status)) {
+            AjaxResult result = vehicleChangeAdd(ftmsorderbillscars, loginUser);
+            String ajaxCode = result.get("code").toString();
+            if ("500".equals(ajaxCode)) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            }
+
+            //新增更改配载过来的单据的状态为:主单,字典:直单NN主单MM从单MH 20210714
+            //配载过来的单据的主单号,实际为来之前的单据的运单号
+            String orderNo = ftmsorderbillscars.getmBillNo();
+            Ftmsorderbillscars ftmsorderbillscarsBefore = ftmsorderbillscarsMapper.selectftmsorderbillscarsByOrderNo(orderNo);
+            ftmsorderbillscarsBefore.setBillKind("MM");
+            ftmsorderbillscarsMapper.updateftmsorderbillscars(ftmsorderbillscarsBefore);
+
+            //新增逻辑20210707 dongyongwei,
+            //更改订单状态为
+            //5派车中 调度量和派车量比较 调度量大于0 派车<>0   调度量>派车
+            //6待回单 调度量和派车量比较 调度量大于0 调度量=派车
+            ftmsorderbillsService.setFtmsorderbillsBillStatus(ftmsorderbillscars.getOrgId(),5L);
+
+            return result;
+        }
+
         // 常规提交
         if ("add".equals(status)) {
             AjaxResult result = vehicleChangeAdd(ftmsorderbillscars, loginUser);
@@ -828,6 +894,22 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
             ftmsorderbillsService.setFtmsorderbillsBillStatus(ftmsorderbillscars.getOrgId(),5L);
             return result;
         }
+
+        // 配载撤销 20210714 dongyongwei
+        if ("revokeStowage".equals(status)) {
+            AjaxResult result = vehicleChangeRevokeStowage(ftmsorderbillscars, loginUser);
+            String ajaxCode = result.get("code").toString();
+            if ("500".equals(ajaxCode)) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            }
+            //新增逻辑20210707 dongyongwei,
+            //更改订单状态为
+            //5派车中 调度量和派车量比较 调度量大于0 派车<>0   调度量>派车
+            //6待回单 调度量和派车量比较 调度量大于0 调度量=派车
+            ftmsorderbillsService.setFtmsorderbillsBillStatus(ftmsorderbillscars.getOrgId(),5L);
+            return result;
+        }
+
         // 撤销
         if ("revoke".equals(status)) {
             AjaxResult result = vehicleChangeRevoke(ftmsorderbillscars, loginUser);
@@ -936,7 +1018,11 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
         Date time = new Date();
         String billNo = billnoSerialServiceImpl.getSerialNumber("SJLSH", time);
         ftmsorderbillscars.setOrderNo(billNo);
-        ftmsorderbillscars.setmBillNo(billNo);
+        //新增配载逻辑 20210714 dongyongwei
+        //如果配载过来的主单号存在,则直接赋值,反之,走之前的逻辑
+        if(StrUtil.isBlank(ftmsorderbillscars.getmBillNo())){
+            ftmsorderbillscars.setmBillNo(billNo);
+        }
         ftmsorderbillscars.setMblno(tmsorderbills.getMblno());
         ftmsorderbillscars.setOrgId(ftmsorderbillsplans.getOrgId());
         if (ftmsorderbillsplansMapper.updateftmsorderbillsplans(ftmsorderbillsplans) <= 0) {
@@ -997,6 +1083,59 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
     }
 
     /**
+     * 单条车辆安排撤销(配载)
+     *20210714 dongyongwei
+     * @return 结果
+     */
+    @Transactional
+    public AjaxResult vehicleChangeRevokeStowage(Ftmsorderbillscars ftmsorderbillscars, LoginUser loginUser) {
+        //先取出真正需要撤销的单据
+        //运单号,也就是配载单的主单号
+        String orderNo = ftmsorderbillscars.getOrderNo();
+        Ftmsorderbillscars ftmsorderbillscarsQuery = new Ftmsorderbillscars();
+        ftmsorderbillscarsQuery.setmBillNo(orderNo);
+        List<Ftmsorderbillscars> ftmsorderbillscarsList = ftmsorderbillscarsMapper.selectftmsorderbillscarsList(ftmsorderbillscarsQuery);
+        //取最后一条配载的记录进行逻辑操作
+        Ftmsorderbillscars ftmsorderbillscarsStowage = ftmsorderbillscarsList.get(ftmsorderbillscarsList.size()-1);
+
+        Map<String, Object> map = new HashMap<>();
+        // 验证司机是否产生费用,若产生的费用已经结算则拦截
+        List<Ftmsorderbillsfees> ftmsorderbillsfeesList = ftmsorderbillsfeesMapper.selectFTmsorderbillsfeesByPId(ftmsorderbillscarsStowage.getId());
+/*        if (!"NN".equals(ftmsorderbillscarsStowage.getBillKind())) {
+            return AjaxResult.error("该运单已参与配载,无法撤销");
+        }*/
+        if (ftmsorderbillsfeesList.size() != 0) {
+            for (Ftmsorderbillsfees f : ftmsorderbillsfeesList) {
+                if (StringUtils.isNotEmpty(f.getfStlamountNo())) {
+                    return AjaxResult.error("该安排车辆费用已经结算,无法撤销");
+                }
+            }
+        }
+        if (ftmsorderbillscarsStowage.getOrderStatus() > 30) {
+            return AjaxResult.error("该安排车辆已经装卸货,无法撤回");
+        }
+        ftmsorderbillscarsStowage.setBillStatus(3L);
+        ftmsorderbillscarsStowage.setUpdateTime(new Date());
+        ftmsorderbillscarsStowage.setUpdateBy(loginUser.getUsername());
+
+        //执行配载逻辑:原单又变回直单,新增的这条变直单,运单号赋值给主单号
+        //新增的这条变直单,运单号赋值给主单号
+        ftmsorderbillscarsStowage.setmBillNo(ftmsorderbillscarsStowage.getOrderNo());
+        ftmsorderbillscarsStowage.setBillKind("NN");//直单NN主单MM从单MH
+        logger.debug("变更ftmsorderbillscarsStowage:"+ftmsorderbillscarsStowage.toString());
+        ftmsorderbillscarsMapper.updateftmsorderbillscars(ftmsorderbillscarsStowage);
+        //原单又变回直单,保证数据完整性,通过原单的id重新获取一下整条记录
+        Ftmsorderbillscars ftmsorderbillscarsBefore = ftmsorderbillscarsMapper.selectftmsorderbillscarsById(ftmsorderbillscars.getId());
+        ftmsorderbillscarsBefore.setBillKind("NN");
+        logger.debug("变更ftmsorderbillscarsBefore:"+ftmsorderbillscarsBefore.toString());
+        ftmsorderbillscarsMapper.updateftmsorderbillscars(ftmsorderbillscarsBefore);
+
+        map.put("plan", ftmsorderbillsplansMapper.selectftmsorderbillsplansById(ftmsorderbillscarsStowage.getpId()));
+        map.put("cars", ftmsorderbillscarsStowage);
+        return AjaxResult.success(map);
+    }
+
+    /**
      * 单条车辆安排撤销
      *
      * @return 结果

+ 11 - 0
ruoyi-fleet/src/main/java/com/ruoyi/orderPlan/service/impl/FtmsorderbillsplansServiceImpl.java

@@ -118,6 +118,17 @@ public class FtmsorderbillsplansServiceImpl implements IftmsorderbillsplansServi
     }
 
     /**
+     * 查询车队派车列表数据(配载)
+     *
+     * @param ftmsorderbills 参数
+     * @return 结果
+     */
+    @Override
+    public List<Map<String, Object>> selectftmsorderbillsplansMapListForStowage(Ftmsorderbills ftmsorderbills) {
+        return ftmsorderbillsplansMapper.selectftmsorderbillsplansMapListForStowage(ftmsorderbills);
+    }
+
+    /**
      *  单条订单调度变更
      * @param plans        调度
      * @param loginUser    用户

+ 2 - 2
ruoyi-fleet/src/main/resources/mapper/orderPlan/ftmsorderbillsMapper.xml

@@ -191,10 +191,10 @@
                 AND f.bill_status &lt; 6
             </if>
             <if test="dispatchStatus != null and dispatchStatus != 2">
-                AND f.bill_status &gt;= 6 AND f.bill_status &lt; 60
+                AND f.bill_status &gt;1
             </if>
             <if test="dispatchStatus != null and dispatchStatus == 2">
-                AND f.bill_status &gt;= 6
+                AND f.bill_status =1
             </if>
             <if test="mblno != null and mblno != ''">
                 AND f.mblno LIKE "%${mblno}%"

+ 97 - 0
ruoyi-fleet/src/main/resources/mapper/orderPlan/ftmsorderbillsplansMapper.xml

@@ -64,6 +64,103 @@
         </where>
     </select>
 
+    <select id="selectftmsorderbillsplansMapListForStowage" parameterType="ftmsorderbills" resultType="Map">
+        SELECT
+        plan.id,
+        plan.carnolist,
+        plan.car_qty AS carQty,
+        plan.cntr_qty AS cntrQty,
+        plan.plan_cntr_qty AS planCntrQty,
+        f.bill_no AS billNo,
+        f.act_id AS actId,
+        c.f_name AS corpId,
+        sysCntr.dict_label AS cntrName,
+        p.nick_name AS planUserId,
+        a.nick_name AS transUserId,
+        type.dict_label AS billType,
+        trans.dict_label AS transType,
+        prop.dict_label AS transProp,
+        f.if_contracted AS ifContracted,
+        f.contract_no AS contractNo,
+        f.accstl_type AS accstlType,
+        f.accdays,
+        m.f_name AS carcorPid,
+        f.load_addr AS loadAddr,
+        f.md_load_addr AS mdLoadAddr,
+        f.un_load_addr AS unLoadAddr,
+        g.f_name AS goodsId,
+        f.goods_price AS goodsPrice,
+        f.mblno,
+        f.load_date AS loadDate,
+        f.qty_plan AS qtyPlan,
+        f.qty_dis_patch AS qtyDisPatch,
+        f.weight_plan AS weightPlan,
+        plan.bill_status AS billStatus,
+        f.create_time AS createTime
+        FROM
+        F_TMSORDERBILLSPLANS plan
+        LEFT JOIN F_TMSORDERBILLS f ON f.id = plan.org_id
+        LEFT JOIN sys_dict_data sysCntr ON sysCntr.dict_type = 'data_cntrId'
+        AND sysCntr.dict_value = plan.cntr_id
+        LEFT JOIN sys_dict_data type ON type.dict_type = 'data_billType'
+        AND type.dict_value = f.bill_type
+        LEFT JOIN sys_dict_data trans ON trans.dict_type = 'data_transType'
+        AND trans.dict_value = f.trans_type
+        LEFT JOIN sys_dict_data prop ON prop.dict_type = 'data_transProp'
+        AND prop.dict_value = f.trans_prop
+        LEFT JOIN t_corps m ON m.f_id = plan.carcor_pid
+        LEFT JOIN t_corps c ON c.f_id = f.corp_id
+        LEFT JOIN sys_user p ON p.user_id = f.plan_user_id
+        LEFT JOIN sys_user a ON a.user_id = f.trans_user_id
+        LEFT JOIN t_goods g ON g.f_id = f.goods_id
+        <where>
+            <if test="1==1">
+              AND  plan.cntr_qty > plan.plan_cntr_qty
+            </if>
+            <if test="corpId != null and corpId != ''">
+                AND f.corp_id = #{corpId}
+            </if>
+            <if test="actId != null and actId != 0">
+                AND f.act_id = #{actId}
+            </if>
+            <if test="billType != null and billType != ''">
+                AND f.bill_type = #{billType}
+            </if>
+            <if test="transType != null and transType != ''">
+                AND f.trans_type = #{transType}
+            </if>
+            <if test="transProp != null and transProp != ''">
+                AND f.trans_prop = #{transProp}
+            </if>
+            <if test="goodsId != null and goodsId != 0">
+                AND f.goods_id = #{goodsId}
+            </if>
+            <if test="planBillStatus != null and planBillStatus == 2">
+                AND plan.bill_status &gt;= 6
+            </if>
+            <if test="planBillStatus != null and planBillStatus != 2">
+                AND plan.bill_status &gt;= 6 AND plan.bill_status &lt; 60
+            </if>
+            <if test="mblno != null and mblno != ''">
+                AND f.mblno LIKE "%${mblno}%"
+            </if>
+            <if test="loadAddr != null and loadAddr != ''">
+                AND f.load_addr LIKE "%${loadAddr}%"
+            </if>
+            <if test="mdLoadAddr != null and mdLoadAddr != ''">
+                AND f.md_load_addr LIKE "%${mdLoadAddr}%"
+            </if>
+            <if test="unLoadAddr != null and unLoadAddr != ''">
+                AND f.un_load_addr LIKE "%${unLoadAddr}%"
+            </if>
+            <if test="loadDateBegin != null and loadDateBegin != '' and loadDateEnd != null and loadDateEnd != ''">
+                AND f.load_date  BETWEEN #{loadDateBegin} AND #{loadDateEnd}
+            </if>
+        </where>
+        ORDER BY plan.bill_status, plan.id asc
+    </select>
+
+
     <select id="selectftmsorderbillsplansMapList" parameterType="ftmsorderbills" resultType="Map">
         SELECT
             plan.id,