Browse Source

途宝报单新需求

wangzhuo 1 year ago
parent
commit
a9c5aa503b

+ 13 - 6
ruoyi-admin/src/main/java/com/ruoyi/web/controller/wx/AttachmngsController.java

@@ -2,6 +2,7 @@ package com.ruoyi.web.controller.wx;
 
 
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.AddWatermarkUtil;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.system.domain.AttachMngs;
@@ -60,15 +61,21 @@ public class AttachmngsController {
         System.out.println(date);
 
         // 水印
-        // String watermark = longitude + "," + latitude + "-" + date;
-        String watermark =  date;
+//         String watermark = longitude + "," + latitude + "-" + date;
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        String watermark = longitude + "," + latitude + "-" + date + "-" + user.getNickName();
         File file2 = AddWatermarkUtil.transferToFile(file);
         // addWaterMark(file2, file2, watermark);
 
-        Thumbnails.of(file2)
-                .scale(1f) //图片大小(长宽)压缩比例 从0-1,1表示原图
-                .outputQuality(0.3f) //图片质量压缩比例 从0-1,越接近1质量越好
-                .toFile(file2);
+
+        // 如果图片大于一兆压缩
+        while (AddWatermarkUtil.fileToTransfer(file2).getBytes().length > 1048576) {
+            // 压缩
+            Thumbnails.of(file2)
+                    .scale(1f) //图片大小(长宽)压缩比例 从0-1,1表示原图
+                    .outputQuality(0.5f) //图片质量压缩比例 从0-1,越接近1质量越好
+                    .toFile(file2);
+        }
 
 
         // AddWatermarkUtil.waterPress(file2, file2, Color.DARK_GRAY, 48, watermark);

+ 33 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/wx/OrderBillsPlansController.java

@@ -3,6 +3,7 @@ package com.ruoyi.web.controller.wx;
 import cn.hutool.http.server.HttpServerRequest;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.system.domain.TmsAttachMngs;
+import com.ruoyi.system.domain.WfTaskList;
 import com.ruoyi.system.domain.vo.OrderBillsPlansVo;
 import com.ruoyi.system.domain.vo.TmsAttachMngsVo;
 import com.ruoyi.system.service.IOrderBillsPlansService;
@@ -42,8 +43,9 @@ public class OrderBillsPlansController {
         String orderNo = orderBillsPlansVo.getOrderNo();
         Integer head = orderBillsPlansVo.getHead();
         Integer tail = orderBillsPlansVo.getTail();
+        String type = orderBillsPlansVo.getType();
 
-        return AjaxResult.success(orderBillsPlansService.getOrderBillsPlansList(dataStart, dataEnd, orderNo, head, tail));
+        return AjaxResult.success(orderBillsPlansService.getOrderBillsPlansList(dataStart, dataEnd, orderNo, head, tail, type));
     }
 
     /**
@@ -70,16 +72,45 @@ public class OrderBillsPlansController {
     }
 
     /**
+     * 驾驶员提交审核
+     * @param orderBillsPlansVo
+     * @return
+     */
+    @PostMapping("/submit-audit")
+    public AjaxResult submitAudit(@RequestBody OrderBillsPlansVo orderBillsPlansVo) {
+        return orderBillsPlansService.submitAudit(orderBillsPlansVo);
+    }
+
+    /**
+     * 队长审核
+     * @param orderNo 单据号
+     * @param type T-通过 F-驳回
+     * @return
+     */
+    @PostMapping("/submit-audit/audit")
+    public AjaxResult audit(@RequestBody OrderBillsPlansVo orderBillsPlansVo) {
+        return orderBillsPlansService.audit(orderBillsPlansVo);
+    }
+
+    /**
      * 获取其他费用
      *
      * @return
      */
     @GetMapping("/items")
-    private AjaxResult getItemsList() {
+    public AjaxResult getItemsList() {
         return AjaxResult.success(orderBillsPlansService.getItemsList());
     }
 
     /**
+     * 查询是否有里程未提交数据
+     */
+    @GetMapping("/ismileage/{no}")
+    public  AjaxResult isMileage(@PathVariable(value = "no") Long orderNo) {
+        return orderBillsPlansService.isMileage(orderNo);
+    }
+
+    /**
      * 查询报销信息
      *
      * @param

+ 23 - 4
ruoyi-system/src/main/java/com/ruoyi/system/domain/OrderBillsPlans.java

@@ -86,6 +86,10 @@ public class OrderBillsPlans {
     @TableField(jdbcType = JdbcType.DOUBLE)
     private Double oilappoint2Amt;
     @TableField(jdbcType = JdbcType.DOUBLE)
+    private Double oilappoint3Qty;
+    @TableField(jdbcType = JdbcType.DOUBLE)
+    private Double oilappoint3Amt;
+    @TableField(jdbcType = JdbcType.DOUBLE)
     private Double oilcash1Qty;
     @TableField(jdbcType = JdbcType.DOUBLE)
     private Double oilcash1Amt;
@@ -93,14 +97,12 @@ public class OrderBillsPlans {
     private Double oilcardQty;
     @TableField(jdbcType = JdbcType.DOUBLE)
     private Double oilcardAmt;
-    // @TableField(jdbcType = JdbcType.DOUBLE)
-    // private Double oilcardQty;
-    // @TableField(jdbcType = JdbcType.DOUBLE)
-    // private Double oilcardAmt;
     @TableField(jdbcType = JdbcType.VARCHAR)
     private String gasstation1;
     @TableField(jdbcType = JdbcType.VARCHAR)
     private String gasstation2;
+    @TableField(jdbcType = JdbcType.VARCHAR)
+    private String gasstation3;
 
 
     @TableField(jdbcType = JdbcType.INTEGER)
@@ -125,4 +127,21 @@ public class OrderBillsPlans {
 
 
 
+    @TableField(jdbcType = JdbcType.DOUBLE)
+    private Double detourMile;
+    @TableField(jdbcType = JdbcType.VARCHAR)
+    private String detourDesc;
+
+    @TableField(jdbcType = JdbcType.CHAR)
+    private String ifDetour;
+
+    private String carRegNo;
+
+    @TableField(jdbcType = JdbcType.CHAR)
+    private String ifLoaded;
+    @TableField(jdbcType = JdbcType.CHAR)
+    private String ifUnLoaded;
+    @TableField(jdbcType = JdbcType.CHAR)
+    private String ifStarted;
+
 }

+ 4 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/WfTaskList.java

@@ -47,4 +47,8 @@ public class WfTaskList {
     private Long status317;
     private Long status376;
 
+    private String ifLoaded;
+    private String ifUnLoaded;
+    private String ifStarted;
+
 }

+ 17 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/OrderBillsPlansVo.java

@@ -1,6 +1,7 @@
 package com.ruoyi.system.domain.vo;
 
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.ruoyi.common.core.domain.entity.SysRole;
 import com.ruoyi.system.domain.LoadFeeItems;
 import com.ruoyi.system.domain.OrderBillsPlans;
 import lombok.Data;
@@ -38,4 +39,20 @@ public class OrderBillsPlansVo extends OrderBillsPlans {
      */
     private Integer head;
     private Integer tail;
+
+    /**
+     * 查询类型
+     */
+    private String type;
+
+    /**
+     * 角色
+     */
+    private List<String> roleList;
+
+    /**
+     * 审核类型
+     */
+    private String auditType;
+
 }

+ 7 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/EmplsMapper.java

@@ -18,4 +18,11 @@ public interface EmplsMapper {
      * @return
      */
     Empls getEmplsByEmpl(String userName);
+
+    /**
+     * 队长
+     * @param userName
+     * @return
+     */
+    Long getByEmplDZ(String userName);
 }

+ 28 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/OrderBillsPlansMapper.java

@@ -31,6 +31,14 @@ public interface OrderBillsPlansMapper {
     OrderBillsPlans getOrderBillsPlansByid(Long orderNo);
 
     /**
+     *
+     #             EMPTYADDR1    = #{emptyaddr1},
+     #             ODOMETERSTART = #{odometerstart},
+     #             EMPTYADDR2    = #{emptyaddr2},
+     #             ODOMETEREND   = #{odometerend},
+     #             LOADMILE      = #{loadmile},
+     */
+    /**
      * 保存保单信息
      *
      * @param orderBillsPlans
@@ -147,4 +155,24 @@ public interface OrderBillsPlansMapper {
      * @return
      */
     Integer updateLoadBillsByEntityID(OrderBillsPlansVo srcEntityId);
+
+    List<WfTaskList> getIsMileageOrderBillsPlansByOrder(Long orderNo);
+
+    Integer submitAudit(String orderNo);
+
+    /**
+     * 审核通过 IfStard= A ,StartDate= NOW ,Status_375=2
+     * @param orderNo 报单号
+     * @return 成功修改条数
+     */
+    Integer approved(String orderNo);
+    void approvedTaskList(@Param("actId") String actId, @Param("entityId") String entityId);
+
+    /**
+     * 审核不通过 IfStard=’B’,StartDate=’NOW’,Status_375=0
+     * @param orderNo 报单号
+     * @return 成功修改条数
+     */
+    Integer theAuditFailed(String orderNo);
+    Integer theAuditFailedTaskList(@Param("actId") String actId, @Param("entityId") Long entityId);
 }

+ 18 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/IOrderBillsPlansService.java

@@ -20,7 +20,7 @@ public interface IOrderBillsPlansService {
      * @param pageSize
      * @return
      */
-    List<WfTaskList> getOrderBillsPlansList(String dataStart, String dataEnd, String orderNo, Integer head, Integer tail);
+    List<WfTaskList> getOrderBillsPlansList(String dataStart, String dataEnd, String orderNo, Integer head, Integer tail, String type);
 
     /**
      * 根据orderNo查询
@@ -77,4 +77,21 @@ public interface IOrderBillsPlansService {
      * @return
      */
     AjaxResult deleteTmsAttachMngs(Long attachId);
+
+    AjaxResult isMileage(Long orderNo);
+
+    /**
+     * 驾驶员提交审核
+     * @param orderBillsPlansVo
+     * @return
+     */
+    AjaxResult submitAudit(OrderBillsPlansVo orderBillsPlansVo);
+
+    /**
+     * 队长审核
+     * @param orderNo 单据号
+     * @param type T-通过 F-驳回
+     * @return
+     */
+    AjaxResult audit(OrderBillsPlansVo orderBillsPlansVo);
 }

+ 151 - 22
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderBillsPlansServiceImpl.java

@@ -2,6 +2,8 @@ package com.ruoyi.system.service.impl;
 
 import com.ruoyi.common.annotation.DataSource;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.enums.DataSourceType;
 import com.ruoyi.common.utils.SecurityUtils;
@@ -57,11 +59,12 @@ public class OrderBillsPlansServiceImpl implements IOrderBillsPlansService {
      * @return
      */
     @Override
-    public List<WfTaskList> getOrderBillsPlansList(String dataStart, String dataEnd, String orderNo, Integer head, Integer tail) {
+    public List<WfTaskList> getOrderBillsPlansList(String dataStart, String dataEnd, String orderNo, Integer head, Integer tail, String type) {
 
         // 根据登录名去匹配EMPLS 里面的EMPL  找到 EMPLID
-        String userName = SecurityUtils.getLoginUser().getUsername();
-        Long emplId = emplsMapper.getByEmpl(userName);
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+
+
 
         // Long emplId = 0L;
 
@@ -77,33 +80,79 @@ public class OrderBillsPlansServiceImpl implements IOrderBillsPlansService {
 
         Object actId = redisCache.getCacheObject("sys_config:risk.actId");
 
-        map.put("emplId", emplId);
         map.put("dataStart", dataStart);
         map.put("dataEnd", dataEnd);
         map.put("orderNo", orderNo);
         map.put("actId", actId.toString());
         map.put("head", head);
         map.put("tail", tail);
+        map.put("type", type);
+
+        // 获取角色区分队长与驾驶员
+        for (SysRole role : user.getRoles()) {
+            if ("JSY".equals(role.getRoleKey())) {
+                Long emplId = emplsMapper.getByEmpl(user.getUserName());
+                map.put("emplId", emplId);
+                map.put("role", "1");
+            } else if ("DZ".equals(role.getRoleKey())) {
+                Long emplId = emplsMapper.getByEmplDZ(user.getUserName());
+                map.put("emplId", emplId);
+                map.put("role", "0");
+            }
+        }
+
         List<WfTaskList> orderBillsPlansList = new ArrayList<>();
-        try {
+//        try {
 
-            orderBillsPlansList = orderBillsPlansMapper.getOrderBillsPlansLsit(map);
-        } catch (Exception a) {
-            System.out.println("aa");
-        }
+        orderBillsPlansList = orderBillsPlansMapper.getOrderBillsPlansLsit(map);
+//        } catch (Exception a) {
+//            System.out.println("aa");
+//        }
         for (WfTaskList wfTaskList : orderBillsPlansList) {
-            Long status317 = wfTaskList.getStatus317();
-            Long status376 = wfTaskList.getStatus376();
-            if (status317 == null || status376 == null) {
-                break;
-            }
-
-            if (status317 == 2) {
-                wfTaskList.setBillStatusName("里程待提交");
-            } else if (status376 == 2 || status376 == 0) {
-                wfTaskList.setBillStatusName("费用待提交");
-            } else if (status376 == 6) {
-                wfTaskList.setBillStatusName("报单完成");
+//            Long status317 = wfTaskList.getStatus317();
+//            Long status376 = wfTaskList.getStatus376();
+//            if (status317 == null || status376 == null) {
+//                break;
+//            }
+
+//            if (status317 == 2) {
+//                wfTaskList.setBillStatusName("里程待提交");
+//            } else if (status376 == 2 || status376 == 0) {
+//                wfTaskList.setBillStatusName("费用待提交");
+//            } else if (status376 == 6) {
+//                wfTaskList.setBillStatusName("报单完成");
+//            }
+
+            if ("BD".equals(type)) {
+//                if ("T".equals(wfTaskList.getIfLoaded()) && "T".equals(wfTaskList.getIfUnLoaded())) {
+//                    if ("S".equals(wfTaskList.getIfStarted())) {
+//                        wfTaskList.setBillStatusName("费用已提交");
+//                    } else if ("A".equals(wfTaskList.getIfStarted())) {
+//                        wfTaskList.setBillStatusName("审核通过");
+//                    } else if ("B".equals(wfTaskList.getIfStarted())) {
+//                        wfTaskList.setBillStatusName("审核驳回");
+//                    } else if ("F".equals(wfTaskList.getIfStarted())) {
+//                        wfTaskList.setBillStatusName("里程已提交");
+//                    }
+//                } else {
+//                    wfTaskList.setBillStatusName("里程待提交");
+//                }
+                if ("T".equals(wfTaskList.getIfLoaded()) && "T".equals(wfTaskList.getIfUnLoaded())) {
+                    wfTaskList.setBillStatusName("里程已提交");
+                } else {
+                    wfTaskList.setBillStatusName("里程待提交");
+                }
+            } else if ("BX".equals(type)) {
+
+                if ("S".equals(wfTaskList.getIfStarted())) {
+                    wfTaskList.setBillStatusName("费用已提交");
+                } else if ("A".equals(wfTaskList.getIfStarted())) {
+                    wfTaskList.setBillStatusName("审核通过");
+                } else if ("B".equals(wfTaskList.getIfStarted())) {
+                    wfTaskList.setBillStatusName("审核驳回");
+                } else if ("F".equals(wfTaskList.getIfStarted())) {
+                    wfTaskList.setBillStatusName("费用待提交");
+                }
             }
         }
         return orderBillsPlansList;
@@ -151,6 +200,14 @@ public class OrderBillsPlansServiceImpl implements IOrderBillsPlansService {
             fileList1.add(imgVo);
         }
 
+        // 角色信息
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        List<String> roleList = new ArrayList<>();
+        for (SysRole role : user.getRoles()) {
+            roleList.add(role.getRoleKey());
+        }
+        vo.setRoleList(roleList);
+
         vo.setFileList1(fileList1);
         return vo;
     }
@@ -227,7 +284,7 @@ public class OrderBillsPlansServiceImpl implements IOrderBillsPlansService {
 
 
         // 更新明细
-        List<ItemsVo> itemsVoList = orderBillsPlansVo.getItemsVoList();
+//        List<ItemsVo> itemsVoList = orderBillsPlansVo.getItemsVoList();
 
         // if (itemsVoList == null || itemsVoList.size() == 0) {
         //     return AjaxResult.success();
@@ -298,6 +355,15 @@ public class OrderBillsPlansServiceImpl implements IOrderBillsPlansService {
 
         List<LoadFeeItems> loadFeeItemsList = orderBillsPlansMapper.getLoadFeeItemsByEntityId(data.getLoadBillsEntityId());
         data.setLoadFeeItemsList(loadFeeItemsList);
+
+        // 角色信息
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        List<String> roleList = new ArrayList<>();
+        for (SysRole role : user.getRoles()) {
+            roleList.add(role.getRoleKey());
+        }
+        data.setRoleList(roleList);
+
         return data;
     }
 
@@ -348,4 +414,67 @@ public class OrderBillsPlansServiceImpl implements IOrderBillsPlansService {
         }
         return AjaxResult.error();
     }
+
+    @Override
+    public AjaxResult isMileage(Long orderNo) {
+        // 查询这条数据是否有为提交里程
+        List<WfTaskList> isMileage = orderBillsPlansMapper.getIsMileageOrderBillsPlansByOrder(orderNo);
+        if (!isMileage.isEmpty()) {
+            return AjaxResult.success("410", null);
+        } else {
+            return AjaxResult.success("200", null);
+        }
+    }
+
+    /**
+     * 驾驶员提交审核
+     *
+     * @param orderBillsPlansVo
+     * @return
+     */
+    @Override
+    @Transient
+    public AjaxResult submitAudit(OrderBillsPlansVo orderBillsPlansVo) {
+
+        Integer i = 0;
+
+        // 保存数据
+        insertLoadFeeItems(orderBillsPlansVo);
+        // 提交审核
+        i = orderBillsPlansMapper.submitAudit(orderBillsPlansVo.getOrderNo());
+
+        if (i == 1) {
+            return AjaxResult.success("ok");
+        } else {
+            return AjaxResult.success("no");
+        }
+    }
+
+    /**
+     * 队长审核
+     *
+     * @param type T-通过 F-驳回
+     * @return
+     */
+    @Override
+    @Transient
+    public AjaxResult audit(OrderBillsPlansVo orderBillsPlansVo) {
+
+        Integer i = 0;
+        Object actId = redisCache.getCacheObject("sys_config:risk.actId");
+
+        if ("T".equals(orderBillsPlansVo.getAuditType())) {
+            i = orderBillsPlansMapper.approved(orderBillsPlansVo.getOrderNo());
+            orderBillsPlansMapper.approvedTaskList(actId.toString(), orderBillsPlansVo.getEntityId().toString());
+        } else if ("F".equals(orderBillsPlansVo.getAuditType())) {
+            i = orderBillsPlansMapper.theAuditFailed(orderBillsPlansVo.getOrderNo());
+            orderBillsPlansMapper.theAuditFailedTaskList(actId.toString(), orderBillsPlansVo.getEntityId());
+        }
+
+        if (i == 1) {
+            return AjaxResult.success("ok");
+        } else {
+            return AjaxResult.success("no");
+        }
+    }
 }

+ 3 - 0
ruoyi-system/src/main/resources/mapper/system/EmplsMapper.xml

@@ -10,4 +10,7 @@
     <select id="getEmplsByEmpl" resultType="com.ruoyi.system.domain.Empls">
         select empl, EmplId from empls where EMPL = #{userName}
     </select>
+    <select id="getByEmplDZ" resultType="java.lang.Long">
+        select RelaUserID from EMPLS where EMPL = #{userName}
+    </select>
 </mapper>

+ 124 - 18
ruoyi-system/src/main/resources/mapper/system/OrderBillsPlansMapper.xml

@@ -21,11 +21,11 @@
             LoadDate      = #{loadDate},
             UnLoadQty     = #{unLoadQty},
             UnLoadDate    = #{unLoadDate},
-            EMPTYADDR1    = #{emptyaddr1},
-            ODOMETERSTART = #{odometerstart},
-            EMPTYADDR2    = #{emptyaddr2},
-            ODOMETEREND   = #{odometerend},
-            LOADMILE      = #{loadmile},
+            <if test="ifDetour != null and ifDetour != ''">
+                ifDetour      = #{ifDetour},
+                detourMile      = #{detourMile},
+                detourDesc      = #{detourDesc},
+            </if>
             driverassdesc = #{driverassdesc}
         where sysId = '1'
           and OrderNo = #{orderNo}
@@ -40,6 +40,8 @@
             oilappoint1Amt = #{oilappoint1Amt},
             oilappoint2Qty = #{oilappoint2Qty},
             oilappoint2Amt = #{oilappoint2Amt},
+            oilappoint3Qty = #{oilappoint3Qty},
+            oilappoint3Amt = #{oilappoint3Amt},
             oilcash1Qty    = #{oilcash1Qty},
             oilcash1Amt    = #{oilcash1Amt},
             oilcardQty     = #{oilcardQty},
@@ -65,9 +67,37 @@
     <update id="updateLoadBillsByEntityID">
         update LoadBills
         set gasstation1 = #{gasstation1},
-            gasstation2 = #{gasstation2}
+            gasstation2 = #{gasstation2},
+            gasstation3 = #{gasstation3}
         where SrcEntityID = #{entityId}
     </update>
+    <update id="submitAudit">
+        update OrderBillsPlans
+        set IfStarted = 'S',
+            startDate = CURRENT_TIMESTAMP
+        where sysId = '1'
+        and OrderNo = #{orderNo}
+    </update>
+    <update id="approved">
+        update OrderBillsPlans
+        set IfStarted = 'A',
+            order4Date = CURRENT_TIMESTAMP
+        where sysId = '1'
+          and OrderNo = #{orderNo}
+    </update>
+    <update id="theAuditFailed">
+        update OrderBillsPlans
+        set IfStarted    = 'B',
+            order4Date  = CURRENT_TIMESTAMP
+        where sysId = '1'
+          and OrderNo = #{orderNo}
+    </update>
+    <update id="approvedTaskList">
+        UPDATE wf_TaskList SET status= 2 WHERE SYSID = '1' AND ACTID =#{actId} AND ENTITYID = #{entityId}
+    </update>
+    <update id="theAuditFailedTaskList">
+        UPDATE wf_TaskList SET status= 0 WHERE SYSID = '1' AND ACTID =#{actId} AND ENTITYID = #{entityId}
+    </update>
 
     <delete id="deleteLoadFeeItemsByEntityId">
         delete from LoadFeeItems where sysid = 1 and entityid = #{entityId}
@@ -109,11 +139,11 @@
         , b.BillDate billDate
         , p.rightqty
         , b.billStatus
-        ,t.Status status317
-        , tt.Status status376
+
+        , p.ifLoaded      ifLoaded
+        , p.ifUnLoaded    ifUnLoaded
+        , p.ifStarted     ifStarted
         from wf_TaskList t
-        Left join wf_TaskList tt on (tt.SysID=t.SysID and tt.ActID=#{actId, jdbcType=VARCHAR} and
-        tt.EntityID=t.EntityID)
         Left join LoadBills b on (b.SysID=t.SysID and b.EntityID=t.EntityID)
         Left join OrderBillsPlans p on (p.SysID=b.SysID and p.EntityID=b.SrcEntityID and p.LineNo=b.SrcLineNo)
         Left join Empls e on (e.SysID=b.SysID and e.EmplID=b.TransactID)
@@ -126,16 +156,31 @@
 
 
         <where>
-            t.SysID=1 and t.ActID=317 and (t.Status = 2 or t.Status = 6)
+            t.SysID=1
+            <if test="type == 'BD'">
+                and t.ActID=317
+            </if>
+            <if test="type == 'BX'">
+                and t.ActID = #{actId, jdbcType=VARCHAR}
+                and (p.ifStarted = 'F' or p.ifStarted = 'S' or p.ifStarted = 'A' or p.ifStarted = 'B')
+            </if>
             and ((b.CarID=-1) or ((b.CarID &lt;&gt; -1)))
             <if test="dataStart != null and dataStart != '' and dataEnd != null and dataEnd != ''">
                 and b.BillDate >= #{dataStart, jdbcType=VARCHAR} and b.BillDate &lt;= #{dataEnd, jdbcType=VARCHAR}
             </if>
             and p.IFORDER1ED='T'
-            and ((p.DRIVER1ID=#{emplId, jdbcType=VARCHAR}) or (p.SUPERCARGOID=#{emplId, jdbcType=VARCHAR}))
+            <if test="role == 0">
+                and p.DeptUserID = #{emplId, jdbcType=VARCHAR}
+            </if>
+            <if test="role == 1">
+                and ((p.DRIVER1ID=#{emplId, jdbcType=VARCHAR}) or (p.SUPERCARGOID=#{emplId, jdbcType=VARCHAR}))
+            </if>
 
             <if test="orderNo != null and orderNo != ''">
-                and p.orderNo like #{orderNo}
+                and (p.CarRegNo like #{orderNo}
+                or p.loadAddr like #{orderNo}
+                or p.unLoadAddr like #{orderNo}
+                or g.CName like #{orderNo})
             </if>
         </where>
 
@@ -174,6 +219,15 @@
              , b.entityId      loadBillsEntityId
              , b.sysId         loadBillsSysId
              , b.billStatus
+
+             , p.detourMile    detourMile
+             , p.detourDesc    detourDesc
+             , p.ifDetour      ifDetour
+             , p.CarRegNo      carRegNo
+
+             , p.ifLoaded      ifLoaded
+             , p.ifUnLoaded    ifUnLoaded
+             , p.ifStarted     ifStarted
         from OrderBillsPlans p
                  Left join Empls e on (e.SysID = p.SysID and e.EmplID = p.TransactID)
                  Left join Empls dr1 on (dr1.SysID = p.SysID and dr1.EmplID = p.DRIVER1ID)
@@ -221,13 +275,22 @@
              , o.carId
              , o.lineNo
              , o.actId
-             , b.entityID loadBillsEntityId
-             , dr1.Empl   driver1Name
-             , dr1.mobile driver1mobile
+             , b.entityID   loadBillsEntityId
+             , dr1.Empl     driver1Name
+             , dr1.mobile   driver1mobile
              , b.billStatus
-             , b.entityId      loadBillsEntityId
-             , b.sysId         loadBillsSysId
+             , b.entityId   loadBillsEntityId
+             , b.sysId      loadBillsSysId
              , o.driverassdesc
+
+             , o.ifLoaded      ifLoaded
+             , o.ifUnLoaded    ifUnLoaded
+             , o.ifStarted     ifStarted
+
+             , o.CarRegNo   carRegNo
+             , o.loadAddr   loadAddr
+             , o.unLoadAddr unLoadAddr
+             , g.CName goodsCName
         FROM OrderBillsPlans o
                  INNER JOIN LoadBills b
                             ON
@@ -236,6 +299,7 @@
                                     AND o.LineNo = b.SrcLineNo
 
                  Left join Empls dr1 on dr1.EmplID = o.DRIVER1ID
+                 Left join Goods g on (g.SysID=b.SysID and g.GoodsID=b.GoodsID)
         where o.orderNo = #{orderNo}
           and dr1.SysID = 1
     </select>
@@ -264,4 +328,46 @@
                                     AND o.EntityID = b.SrcEntityID
                                     AND o.LineNo = b.SrcLineNo
     </select>
+    <select id="getIsMileageOrderBillsPlansByOrder" resultType="com.ruoyi.system.domain.WfTaskList">
+        SELECT
+            t.SYSID,
+            p.orderNo
+        FROM
+            wf_TaskList t
+                LEFT JOIN LoadBills b ON
+                (b.SysID = t.SysID
+                    AND b.EntityID = t.EntityID)
+                LEFT JOIN OrderBillsPlans p ON
+                (p.SysID = b.SysID
+                    AND p.EntityID = b.SrcEntityID
+                    AND p.LineNo = b.SrcLineNo)
+                LEFT JOIN Empls e ON
+                (e.SysID = b.SysID
+                    AND e.EmplID = b.TransactID)
+                LEFT JOIN Empls dr1 ON
+                (dr1.SysID = b.SysID
+                    AND dr1.EmplID = p.DRIVER1ID)
+                LEFT JOIN Empls sp ON
+                (sp.SysID = b.SysID
+                    AND sp.EmplID = p.SUPERCARGOID)
+                LEFT JOIN Corps c ON
+                (c.SysID = p.SysID
+                    AND c.CorpID = p.CorpID)
+                LEFT JOIN Corps l ON
+                (l.SysID = p.SysID
+                    AND l.CorpID = p.LoadFactoryID)
+                LEFT JOIN Corps ul ON
+                (ul.SysID = b.SysID
+                    AND ul.CorpID = p.UnLoadFactoryID)
+                LEFT JOIN Goods g ON
+                (g.SysID = b.SysID
+                    AND g.GoodsID = b.GoodsID)
+        WHERE
+            t.SysID = 1
+          AND p.orderNo = #{orderNo}
+          AND t.ActID = 317
+          AND t.Status = 2
+          and p.ifLoaded != 'T'
+          and p.ifUnLoaded != 'T'
+    </select>
 </mapper>