Browse Source

完善车队系统,小程序登录操作

阿伏兔 4 năm trước cách đây
mục cha
commit
83e621e3a7

+ 28 - 18
ruoyi-admin/src/main/java/com/ruoyi/web/controller/fleet/ftmsorderbillscarsController.java

@@ -11,9 +11,7 @@ import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.orderManagement.domain.Ftmsorderbills;
 import com.ruoyi.orderManagement.domain.Ftmsorderbillscars;
-import com.ruoyi.orderManagement.domain.Ftmsorderbillsplans;
 import com.ruoyi.orderManagement.service.IftmsorderbillscarsService;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import com.ruoyi.common.annotation.Log;
@@ -48,7 +46,7 @@ public class ftmsorderbillscarsController extends BaseController {
     /**
      * 查询司机状态跟踪列表
      */
-    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:query')")
+//    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:query')")
     @GetMapping("/query")
     public TableDataInfo query(Ftmsorderbills ftmsorderbills) {
         startPage();
@@ -63,7 +61,7 @@ public class ftmsorderbillscarsController extends BaseController {
     /**
      * 导出车队派车列表
      */
-    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:export')")
+//    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:export')")
     @Log(title = "车队派车", businessType = BusinessType.EXPORT)
     @GetMapping("/export")
     public AjaxResult export(Ftmsorderbillscars ftmsorderbillscars) {
@@ -75,7 +73,7 @@ public class ftmsorderbillscarsController extends BaseController {
     /**
      * 根据派车id查询详细信息
      */
-    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:query')")
+//    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:query')")
     @GetMapping(value = "/{id}")
     public AjaxResult getInfo(@PathVariable("id") Long id) {
         if (StringUtils.isNull(id)) {
@@ -85,9 +83,21 @@ public class ftmsorderbillscarsController extends BaseController {
     }
 
     /**
+     * 根据司机id查询详细信息
+     */
+//    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:query')")
+    @PostMapping(value = "selectDriver")
+    public AjaxResult selectDriver(@RequestBody Ftmsorderbillscars ftmsorderbillscars) {
+        if (StringUtils.isNull(ftmsorderbillscars) || StringUtils.isNull(ftmsorderbillscars.getId())) {
+            return AjaxResult.error("未找到查询条件,请确认");
+        }
+        return AjaxResult.success(ftmsorderbillscarsService.selectDriver(ftmsorderbillscars));
+    }
+
+    /**
      * 司机操作接单/提箱/装卸货/还卸柜/回单操作  保存
      */
-    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:add')")
+//    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:add')")
     @Log(title = "车队派车", businessType = BusinessType.INSERT)
     @PostMapping(value = "/driverSave")
     @RepeatSubmit
@@ -108,7 +118,7 @@ public class ftmsorderbillscarsController extends BaseController {
     /**
      * 司机操作接单/提箱/装卸货/还卸柜/回单操作  提交
      */
-    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:add')")
+//    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:add')")
     @Log(title = "车队派车", businessType = BusinessType.INSERT)
     @PostMapping(value = "/insertDriver")
     @RepeatSubmit
@@ -129,7 +139,7 @@ public class ftmsorderbillscarsController extends BaseController {
     /**
      * 司机操作接单/提箱/装卸货/还卸柜/回单操作  变更
      */
-    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:add')")
+//    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:add')")
     @Log(title = "车队派车", businessType = BusinessType.INSERT)
     @PostMapping(value = "/operationalChanges")
     @RepeatSubmit
@@ -148,7 +158,7 @@ public class ftmsorderbillscarsController extends BaseController {
     /**
      * 单条车辆安排 变更
      */
-    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:edit')")
+//    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:edit')")
     @Log(title = "车队派车", businessType = BusinessType.INSERT)
     @PostMapping(value = "/vehicleOperationChanges/{id}")
     @RepeatSubmit
@@ -163,7 +173,7 @@ public class ftmsorderbillscarsController extends BaseController {
     /**
      * 单条车辆安排变更提交接口
      */
-    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:add')")
+//    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:add')")
     @Log(title = "车队派车", businessType = BusinessType.INSERT)
     @PostMapping(value = "/vehicleArrangementChange")
     @RepeatSubmit
@@ -179,7 +189,7 @@ public class ftmsorderbillscarsController extends BaseController {
     /**
      * 单条车辆安排提交接口
      */
-    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:add')")
+//    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:add')")
     @Log(title = "车队派车", businessType = BusinessType.INSERT)
     @PostMapping(value = "/vehicleArrangementAdd")
     @RepeatSubmit
@@ -195,7 +205,7 @@ public class ftmsorderbillscarsController extends BaseController {
     /**
      * 单条车辆安排撤销接口
      */
-    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:edit')")
+//    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:edit')")
     @PostMapping(value = "/vehicleArrangementRevoke")
     @RepeatSubmit
     public AjaxResult vehicleArrangementRevoke(@RequestBody Ftmsorderbillscars ftmsorderbillscars) {
@@ -210,7 +220,7 @@ public class ftmsorderbillscarsController extends BaseController {
     /**
      * 单条车辆安排删除接口
      */
-    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:remove')")
+//    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:remove')")
     @PostMapping(value = "/vehicleArrangementRemove")
     @RepeatSubmit
     public AjaxResult vehicleArrangementRemove(@RequestBody Ftmsorderbillscars ftmsorderbillscars) {
@@ -225,7 +235,7 @@ public class ftmsorderbillscarsController extends BaseController {
     /**
      * 暂存车队派车
      */
-    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:add')")
+//    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:add')")
     @Log(title = "车队派车", businessType = BusinessType.INSERT)
     @PostMapping(value = "/save")
     @RepeatSubmit
@@ -244,7 +254,7 @@ public class ftmsorderbillscarsController extends BaseController {
     /**
      * 车队派车提交
      */
-    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:add')")
+//    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:add')")
     @Log(title = "车队派车", businessType = BusinessType.INSERT)
     @PostMapping(value = "/add")
     @RepeatSubmit
@@ -266,7 +276,7 @@ public class ftmsorderbillscarsController extends BaseController {
     /**
      * 车队派车(大)变更
      */
-    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:add')")
+//    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:add')")
     @Log(title = "车队派车", businessType = BusinessType.INSERT)
     @PostMapping(value = "/change/{id}")
     @RepeatSubmit
@@ -281,7 +291,7 @@ public class ftmsorderbillscarsController extends BaseController {
     /**
      * 修改车队派车
      */
-    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:edit')")
+//    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:edit')")
     @Log(title = "车队派车", businessType = BusinessType.UPDATE)
     @PutMapping
     @RepeatSubmit
@@ -292,7 +302,7 @@ public class ftmsorderbillscarsController extends BaseController {
     /**
      * 删除车队派车
      */
-    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:remove')")
+//    @PreAuthorize("@ss.hasPermi('fleet:ftmsorderbillscars:remove')")
     @Log(title = "车队派车", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     public AjaxResult remove(@PathVariable Long[] ids) {

+ 90 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/wechat/WechatController.java

@@ -0,0 +1,90 @@
+package com.ruoyi.web.controller.wechat;
+
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.model.LoginBody;
+import com.ruoyi.common.utils.wechat.MessageUtil;
+import com.ruoyi.common.utils.wechat.xml.XMLUtil;
+import com.ruoyi.framework.web.service.WechatService;
+import com.ruoyi.system.wechatUtils.UserQueue;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+import java.util.Map;
+
+
+/**
+ * <p>
+ * 与微信产生交换的控制器
+ * </p>
+ *
+ * @author ruoyi
+ * @date 2020-12-11
+ */
+@RestController
+@RequestMapping("/wechat")
+public class WechatController extends BaseController {
+
+    @Autowired
+    private WechatService wechatService;
+
+    /**
+     * 公众号与微信服务器进行认证的API接口
+     *
+     * @param signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
+     * @param timestamp 时间戳
+     * @param nonce     随机数
+     * @param echostr   随机字符串
+     * @return 结果
+     */
+    @GetMapping(value = "/wechat")
+    public Object check(String signature,
+                        String timestamp,
+                        String nonce,
+                        String echostr) {
+        return echostr;
+    }
+
+    /**
+     * 微信授权信息时返回token
+     *
+     * @param loginBody code
+     * @return 结果
+     */
+    @PostMapping(value = "/programLogin")
+    public AjaxResult weChatProgramLogin(@RequestBody LoginBody loginBody) {
+        // 生成令牌
+        AjaxResult result = wechatService.login(loginBody);
+        System.out.println("生成的令牌:" + result.get("data"));
+        return result;
+    }
+
+    /**
+     * 公众号接收请求
+     *
+     * @param request 请求
+     * @return 接口
+     */
+    @PostMapping(value = "/wechat", produces = {"application/xml;charset=utf-8"})
+    public Object toRequest(HttpServletRequest request) throws IOException {
+        Map<String, String> map = XMLUtil.getMap(request.getInputStream());
+        String msgType = map.get("MsgType");
+        String toUser = map.get("ToUserName");
+        String fromUser = map.get("FromUserName");
+        String createTime = map.get("CreateTime");
+        String reply = "";
+        if ("event".equals(msgType)) {
+            String event = map.get("Event");
+            if ("subscribe".equals(event)) {
+                reply = "欢迎关注";
+                UserQueue.ATTENTIONQUEUE.push(fromUser);
+            } else if ("unsubscribe".equals(event)) {
+                UserQueue.CHECKOFFQUEUE.push(fromUser);
+            }
+        }
+        return MessageUtil.setMessage(fromUser, toUser, 45860, "text", reply);
+    }
+}

+ 4 - 0
ruoyi-fleet/pom.xml

@@ -52,6 +52,10 @@
             <groupId>com.alibaba</groupId>
             <artifactId>fastjson</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-framework</artifactId>
+        </dependency>
     </dependencies>
 
 </project>

+ 29 - 2
ruoyi-fleet/src/main/java/com/ruoyi/orderManagement/domain/Ftmsorderbillscars.java

@@ -106,6 +106,19 @@ public class Ftmsorderbillscars extends BaseEntity {
     private Date acceptDate;
 
     /**
+     * 出发时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "出发时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date offData;
+
+    /**
+     * 出发备注
+     */
+    @Excel(name = "出发备注")
+    private String offRemarks;
+
+    /**
      * 司机受理备注
      */
     @Excel(name = "司机受理备注")
@@ -158,12 +171,24 @@ public class Ftmsorderbillscars extends BaseEntity {
     private Date waybillDate;
 
     /**
+     * 回单备注
+     */
+    @Excel(name = "回单备注")
+    private String waybillRemarks;
+
+    /**
      * 本次车辆拉的箱量
      */
-    @Excel(name = "箱量")
+    @Excel(name = "本次车辆拉的箱量")
     private Long cntrQty;
 
     /**
+     * 本次车辆拉的重量
+     */
+    @Excel(name = "本次车辆拉的重量")
+    private BigDecimal cntrWeight;
+
+    /**
      * 散货运输时装车数
      */
     @Excel(name = "散货运输时装车数")
@@ -475,7 +500,9 @@ public class Ftmsorderbillscars extends BaseEntity {
     /**
      * 订单状态0新录入10车队安排20司机受理30提箱40装卸货50还卸柜子60费用确认70回单
      */
-    @Excel(name = "订单状态0新录入10车队安排20司机受理30提箱40装卸货50还卸柜子60费用确认70回单")
+    @Excel(name = "订单状态0新录入10车队安排、15司机受理暂存、20司机受理、25提箱暂存、30提箱、35装卸货暂存、40装卸货、45还卸柜暂存、50还卸柜子、55回单确认暂存、" +
+            "60回单确认---65回单暂存、70回单、75暂存出行、80出行确认")
+//    @Excel(name = "订单状态0新录入10车队安排20司机受理30提箱40装卸货50还卸柜子60费用确认70回单")
     private Long orderStatus;
 
     /**

+ 28 - 13
ruoyi-fleet/src/main/java/com/ruoyi/orderManagement/mapper/FtmsorderbillscarsMapper.java

@@ -64,51 +64,66 @@ public interface FtmsorderbillscarsMapper {
     public int deleteftmsorderbillscarsByIds(Long[] ids);
 
     /**
-     *  根据主表id删除对应信息
+     * 根据主表id删除对应信息
+     *
      * @param id 主表id
      * @return 结果
      */
     public int deleteftmsorderbillscarsByPId(long id);
 
     /**
-     *  根据原始来源id 查询是否可以撤回计划
+     * 根据原始来源id 查询是否可以撤回计划
+     *
      * @param ftmsorderbills 计划id
      * @return 结果
      */
     public int planSelectCarsCount(Ftmsorderbills ftmsorderbills);
 
     /**
-     *  查询  查询车队派车数量
+     * 查询  查询车队派车数量
+     *
      * @param ftmsorderbillscars
      * @return 结果
      */
     public int selectftmsorderbillscarsCount(Ftmsorderbillscars ftmsorderbillscars);
 
     /**
-     *  根据条件查询 查询id
+     * 根据条件查询 查询id
+     *
      * @param scars 查询条件
-     * @return  结果
+     * @return 结果
      */
     public List<Ftmsorderbillscars> selectftmsorderbillscarsIdList(Ftmsorderbillscars scars);
 
     /**
      * 查询司机状态跟踪列表
-     * @param ftmsorderbills    条件
-     * @return  结果
+     *
+     * @param ftmsorderbills 条件
+     * @return 结果
      */
     public List<Map<String, Object>> selectftmsorderbillscarsMapList(Ftmsorderbills ftmsorderbills);
 
     /**
-     *  根据orgId更新数据状态
-     * @param ftmsorderbillscntrs   参数
-     * @return  结果
+     * 根据orgId更新数据状态
+     *
+     * @param ftmsorderbillscntrs 参数
+     * @return 结果
      */
     public int updateTmsorderCarStatusByOrgId(Ftmsorderbillscntrs ftmsorderbillscntrs);
 
     /**
-     *  根据上级id查询对应数据
-     * @param pId   上级id
-     * @return  结果
+     * 根据上级id查询对应数据
+     *
+     * @param pId 上级id
+     * @return 结果
      */
     public List<Ftmsorderbillscars> selectftmsorderbillscarsByPid(long pId);
+
+    /**
+     * 根据carid查询主表数据
+     *
+     * @param id    主表id
+     * @return  结果
+     */
+    Map<String, Object> selectTmsorderbillsCarsByDriver(Long id);
 }

+ 7 - 1
ruoyi-fleet/src/main/java/com/ruoyi/orderManagement/service/IftmsorderbillscarsService.java

@@ -4,7 +4,6 @@ import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.orderManagement.domain.Ftmsorderbills;
 import com.ruoyi.orderManagement.domain.Ftmsorderbillscars;
-import com.ruoyi.orderManagement.domain.Ftmsorderbillsplans;
 
 import java.util.List;
 import java.util.Map;
@@ -131,4 +130,11 @@ public interface IftmsorderbillscarsService {
      * @return  结果
      */
     public AjaxResult dispatchChange(Long id, LoginUser loginUser);
+
+    /**
+     * 根据司机id查询详细信息
+     * @param ftmsorderbillscars     用户id
+     * @return  结果
+     */
+    public Map<String, Object> selectDriver(Ftmsorderbillscars ftmsorderbillscars);
 }

+ 124 - 54
ruoyi-fleet/src/main/java/com/ruoyi/orderManagement/service/impl/FtmsorderbillscarsServiceImpl.java

@@ -8,12 +8,15 @@ import java.util.Map;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.basicData.domain.TCorps;
+import com.ruoyi.basicData.mapper.TCorpsMapper;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.finance.domain.TFeeDo;
 import com.ruoyi.finance.mapper.TFeeDoMapper;
+import com.ruoyi.framework.web.service.WechatService;
 import com.ruoyi.orderManagement.domain.*;
 import com.ruoyi.orderManagement.mapper.*;
 import lombok.extern.slf4j.Slf4j;
@@ -25,6 +28,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
+import javax.validation.constraints.Size;
+
 /**
  * 车队派车Service业务层处理
  *
@@ -38,6 +43,15 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
     private TFeeDoMapper tFeeDoMapper;
 
     @Autowired
+    private TCorpsMapper tCorpsMapper;
+
+    @Autowired
+    private WechatService wechatService;
+
+    @Autowired
+    private SysUserMapper sysUserMapper;
+
+    @Autowired
     private FtmsorderbillsMapper ftmsorderbillsMapper;
 
     @Autowired
@@ -116,6 +130,28 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
     }
 
     /**
+     * 根据司机id查询详细信息
+     *
+     * @param ftmsorderbillscars 用户id
+     * @return 结果
+     */
+    @Override
+    public Map<String, Object> selectDriver(Ftmsorderbillscars ftmsorderbillscars) {
+        Map<String, Object> map = new HashMap<>();
+        Long id = ftmsorderbillscars.getId();
+        map.put("cars", ftmsorderbillscarsMapper.selectTmsorderbillsCarsByDriver(id));
+        Ftmsorderbillsfees ftmsorderbillsfees = new Ftmsorderbillsfees();
+        ftmsorderbillsfees.setFPid(id);
+        ftmsorderbillsfees.setActId(ftmsorderbillscars.getBillStatus());
+        map.put("fees", ftmsorderbillsfeesMapper.selectFTmsorderbillsfeesList(ftmsorderbillsfees));
+        Ftmsorderbillsattachs ftmsorderbillsattachs = new Ftmsorderbillsattachs();
+        ftmsorderbillsattachs.setPId(id);
+        ftmsorderbillsattachs.setActId(ftmsorderbillscars.getBillStatus());
+        map.put("attach", ftmsorderbillsattachsMapper.selectftmsorderbillsattachsList(ftmsorderbillsattachs));
+        return map;
+    }
+
+    /**
      * 司机操作接单/提箱/装卸货/还卸柜/回单操作  变更
      *
      * @param cars          司机信息
@@ -153,21 +189,58 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
     @Transactional
     public AjaxResult driverSave(String cars, String fees, String attachs, String operationType, LoginUser loginUser) {
         Ftmsorderbillscars tmsorderbillscars = JSONArray.parseObject(cars, Ftmsorderbillscars.class);
+        Ftmsorderbills ftmsorderbills = ftmsorderbillsMapper.selectftmsorderbillsById(tmsorderbillscars.getOrgId());
+        tmsorderbillscars.setMblno(ftmsorderbills.getMblno());
         long pId = tmsorderbillscars.getId();
         long orgId = tmsorderbillscars.getOrgId();
         long orderStatus = 0;
-        ftmsorderbillsfeesMapper.deleteFTmsorderbillsfeesByPId(pId);
-        ftmsorderbillsattachsMapper.deleteftmsorderbillsattachsByPId(pId);
+        if ("waybillDate".equals(operationType)) {
+            // 回单提交
+            orderStatus = 1070L;
+            tmsorderbillscars.setOrderStatus(55L);
+        } else if ("unLoadDate".equals(operationType)) {
+            // 还卸柜提交
+            orderStatus = 1060L;
+            tmsorderbillscars.setOrderStatus(45L);
+        } else if ("mdLoadDate".equals(operationType)) {
+            // 装卸货提交
+            orderStatus = 1050L;
+            tmsorderbillscars.setOrderStatus(35L);
+        } else if ("loadDate".equals(operationType)) {
+            // 提箱提交
+            orderStatus = 1040L;
+            tmsorderbillscars.setOrderStatus(25L);
+        } else if ("offData".equals(operationType)) {
+            // 出行提交
+            orderStatus = 1080L;
+            tmsorderbillscars.setOrderStatus(75L);
+        } else if ("acceptDate".equals(operationType)) {
+            // 接单提交
+            orderStatus = 1030L;
+            tmsorderbillscars.setOrderStatus(15L);
+        }
+        if (ftmsorderbillscarsMapper.updateftmsorderbillscars(tmsorderbillscars) <= 0) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return AjaxResult.error("更新司机状态失败,若多次失败请联系管理员");
+        }
+        Ftmsorderbillsfees ftmsorderbillsfees = new Ftmsorderbillsfees();
+        ftmsorderbillsfees.setFPid(pId);
+        ftmsorderbillsfees.setActId(orderStatus);
+        ftmsorderbillsfeesMapper.deleteFTmsorderbillsfees(ftmsorderbillsfees);
+        Ftmsorderbillsattachs ftmsorderbillsattachs = new Ftmsorderbillsattachs();
+        ftmsorderbillsattachs.setPId(pId);
+        ftmsorderbillsattachs.setActId(orderStatus);
+        ftmsorderbillsattachsMapper.deleteftmsorderbillsattachs(ftmsorderbillsattachs);
         if (StringUtils.isNotEmpty(fees) && !"[]".equals(fees)) {
             JSONArray feesJson = JSONArray.parseArray(fees);
             List<Ftmsorderbillsfees> ftmsorderbillsfeesList = JSONObject.parseArray(feesJson.toJSONString(), Ftmsorderbillsfees.class);
             long line = 0;
             for (Ftmsorderbillsfees f : ftmsorderbillsfeesList) {
                 line++;
-                f.setFId(pId);
+                f.setFPid(pId);
                 f.setOrgId(orgId);
-                f.setActId(orderStatus);
                 f.setFLineno(line);
+                f.setActId(orderStatus);
                 f.setFStatus(2L);
                 f.setCreateTime(new Date());
                 f.setCreateBy(loginUser.getUsername());
@@ -183,8 +256,8 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
             for (Ftmsorderbillsattachs a : tmsorderbillsattachsList) {
                 a.setPId(pId);
                 a.setOrgId(orgId);
-                a.setActId(orderStatus);
                 a.setBillStatus(2L);
+                a.setActId(orderStatus);
                 a.setCreateTime(new Date());
                 a.setCreateBy(loginUser.getUsername());
                 if (ftmsorderbillsattachsMapper.insertftmsorderbillsattachs(a) <= 0) {
@@ -193,28 +266,6 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
                 }
             }
         }
-        if (StringUtils.isNotNull(tmsorderbillscars.getUnLoadDate())) {
-            // 还卸柜提交
-            tmsorderbillscars.setOrderStatus(50L);
-            if (ftmsorderbillscarsMapper.updateftmsorderbillscars(tmsorderbillscars) <= 0) {
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return AjaxResult.error("更新还卸柜状态失败,若多次失败请联系管理员");
-            }
-        } else if (StringUtils.isNotNull(tmsorderbillscars.getMdLoadDate())) {
-            // 装卸货提交
-            tmsorderbillscars.setOrderStatus(40L);
-            if (ftmsorderbillscarsMapper.updateftmsorderbillscars(tmsorderbillscars) <= 0) {
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return AjaxResult.error("更新装卸货状态失败,若多次失败请联系管理员");
-            }
-        } else if (StringUtils.isNotNull(tmsorderbillscars.getLoadDate())) {
-            // 提箱提交
-            tmsorderbillscars.setOrderStatus(30L);
-            if (ftmsorderbillscarsMapper.updateftmsorderbillscars(tmsorderbillscars) <= 0) {
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return AjaxResult.error("更新提箱状态失败,若多次失败请联系管理员");
-            }
-        }
         return AjaxResult.success();
     }
 
@@ -238,22 +289,18 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
         if (StringUtils.isNotEmpty(otherStatus)) {
             return AjaxResult.error(otherStatus);
         }
-        String status = ftmsorderbillsService.objValidation(cars, null, null, null, null);
+        String status = ftmsorderbillsService.objValidation(null, null, null, null, cars);
         if (StringUtils.isNotEmpty(status)) {
             return AjaxResult.error(status);
         }
         long orderStatus = 0;
         if ("waybillDate".equals(operationType)) {
-            // 还卸柜提交
+            // 回单提交
             orderStatus = 1070L;
             if (StringUtils.isNull(tmsorderbillscars.getWaybillDate())) {
                 return AjaxResult.error("未找到还卸柜时间");
             }
             tmsorderbillscars.setOrderStatus(60L);
-            if (ftmsorderbillscarsMapper.updateftmsorderbillscars(tmsorderbillscars) <= 0) {
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return AjaxResult.error("更新还卸柜状态失败,若多次失败请联系管理员");
-            }
         } else if ("unLoadDate".equals(operationType)) {
             // 还卸柜提交
             orderStatus = 1060L;
@@ -261,10 +308,6 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
                 return AjaxResult.error("未找到还卸柜时间");
             }
             tmsorderbillscars.setOrderStatus(50L);
-            if (ftmsorderbillscarsMapper.updateftmsorderbillscars(tmsorderbillscars) <= 0) {
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return AjaxResult.error("更新还卸柜状态失败,若多次失败请联系管理员");
-            }
         } else if ("mdLoadDate".equals(operationType)) {
             // 装卸货提交
             orderStatus = 1050L;
@@ -272,10 +315,6 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
                 return AjaxResult.error("未找到装卸货时间");
             }
             tmsorderbillscars.setOrderStatus(40L);
-            if (ftmsorderbillscarsMapper.updateftmsorderbillscars(tmsorderbillscars) <= 0) {
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return AjaxResult.error("更新装卸货状态失败,若多次失败请联系管理员");
-            }
         } else if ("loadDate".equals(operationType)) {
             // 提箱提交
             orderStatus = 1040L;
@@ -283,10 +322,13 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
                 return AjaxResult.error("未找到提箱时间");
             }
             tmsorderbillscars.setOrderStatus(30L);
-            if (ftmsorderbillscarsMapper.updateftmsorderbillscars(tmsorderbillscars) <= 0) {
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return AjaxResult.error("更新提箱状态失败,若多次失败请联系管理员");
+        } else if ("offData".equals(operationType)) {
+            // 提箱提交
+            orderStatus = 1080L;
+            if (StringUtils.isNull(tmsorderbillscars.getLoadDate())) {
+                return AjaxResult.error("未找到出车时间");
             }
+            tmsorderbillscars.setOrderStatus(80L);
         } else if ("acceptDate".equals(operationType)) {
             // 接单提交
             orderStatus = 1030L;
@@ -294,10 +336,10 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
                 return AjaxResult.error("未找到接单时间");
             }
             tmsorderbillscars.setOrderStatus(20L);
-            if (ftmsorderbillscarsMapper.updateftmsorderbillscars(tmsorderbillscars) <= 0) {
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return AjaxResult.error("更新接单状态失败,若多次失败请联系管理员");
-            }
+        }
+        if (ftmsorderbillscarsMapper.updateftmsorderbillscars(tmsorderbillscars) <= 0) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return AjaxResult.error("更新司机状态失败,若多次失败请联系管理员");
         }
         Ftmsorderbillsfees ftmsorderbillsfees = new Ftmsorderbillsfees();
         ftmsorderbillsfees.setFId(pId);
@@ -313,7 +355,7 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
             long line = 0;
             for (Ftmsorderbillsfees f : ftmsorderbillsfeesList) {
                 line++;
-                f.setFId(pId);
+                f.setFPid(pId);
                 f.setFStatus(6L);
                 f.setOrgId(orgId);
                 f.setFLineno(line);
@@ -584,10 +626,11 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
     }
 
     /**
-     *  车辆派车主表变更
-     * @param id            调度id
-     * @param loginUser     用户
-     * @return  结果
+     * 车辆派车主表变更
+     *
+     * @param id        调度id
+     * @param loginUser 用户
+     * @return 结果
      */
     @Override
     @Transactional
@@ -621,20 +664,47 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
         if (ftmsorderbillsplans.getCntrQty() < carQty) {
             return AjaxResult.error("派车货量超出调度安排数量,请确认");
         }
+        Ftmsorderbills tmsorderbills = ftmsorderbillsMapper.selectftmsorderbillsById(ftmsorderbillsplans.getOrgId());
+        ftmsorderbillscars.setMblno(tmsorderbills.getMblno());
         ftmsorderbillsplans.setCarQty(carQty);
         if (ftmsorderbillsplansMapper.updateftmsorderbillsplans(ftmsorderbillsplans) <= 0) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return AjaxResult.error("更新调度数据失败,若多次失败请联系管理员");
         }
+        Ftmsorderbills ftmsorderbills = ftmsorderbillsMapper.selectftmsorderbillsById(ftmsorderbillsplans.getOrgId());
+        Ftmsorderbillscntrs ftmsorderbillscntrs = ftmsorderbillscntrsMapper.selectftmsorderbillscntrsById(ftmsorderbillsplans.getId());
+        // 应收运价
+        ftmsorderbillscars.setFreightPriceDr(ftmsorderbillscntrs.getPriceDr());
+        // 应付运价
+        ftmsorderbillscars.setFreightPriceCr(ftmsorderbillsplans.getPricecr());
+        ftmsorderbillscars.setQtyDr(new BigDecimal(ftmsorderbillscars.getCntrQty()));
+        ftmsorderbillscars.setQtyCr(new BigDecimal(ftmsorderbillscars.getCntrQty()));
+        BigDecimal amtDr = ftmsorderbillscars.getFreightPriceDr().multiply(ftmsorderbillscars.getQtyDr());
+        ftmsorderbillscars.setFreightAmtDr(amtDr);
+        BigDecimal amtCr = ftmsorderbillscars.getFreightPriceCr().multiply(ftmsorderbillscars.getQtyCr());
+        ftmsorderbillscars.setFreightAmtCr(amtCr);
         ftmsorderbillscars.setBillStatus(6L);
         ftmsorderbillscars.setOrderStatus(10L);
         ftmsorderbillscars.setPlanDate(new Date());
         ftmsorderbillscars.setCreateTime(new Date());
+        ftmsorderbillscars.setMblno(ftmsorderbills.getMblno());
         ftmsorderbillscars.setCreateBy(loginUser.getUsername());
         if (ftmsorderbillscarsMapper.updateftmsorderbillscars(ftmsorderbillscars) <= 0) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return AjaxResult.error("更新车辆安排数据失败,若多次失败请联系管理员");
         }
+        SysUser sysUser = sysUserMapper.selectUserByTel(ftmsorderbillscars.getDriverTel());
+        if (StringUtils.isNull(sysUser)) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return AjaxResult.error("未找到司机信息,请确认是否存在该司机");
+        }
+        String openId = sysUser.getOpenId();
+        String nickName = sysUser.getNickName();
+        String mblno = ftmsorderbillscars.getMblno();
+        String loadDate = DateUtils.dateTime(tmsorderbills.getLoadDate());
+        // 获得客户名
+        TCorps corps = tCorpsMapper.selectTCorpsById(tmsorderbills.getCorpId());
+        wechatService.newsPush(openId, nickName, mblno, amtDr + "", corps.getfName(), loadDate, "其他消息暂定", "备注暂定");
         return AjaxResult.success();
     }
 

+ 4 - 2
ruoyi-fleet/src/main/java/com/ruoyi/orderManagement/service/impl/FtmsorderbillsplansServiceImpl.java

@@ -278,6 +278,7 @@ public class FtmsorderbillsplansServiceImpl implements IftmsorderbillsplansServi
      * @return 结果
      */
     @Override
+    @Transactional
     public AjaxResult insertSchedulingChange(String tmsorder, String plans, LoginUser loginUser) {
         // 计划数据
         Ftmsorderbills tmsorderbills = JSONArray.parseObject(tmsorder, Ftmsorderbills.class);
@@ -316,8 +317,9 @@ public class FtmsorderbillsplansServiceImpl implements IftmsorderbillsplansServi
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return AjaxResult.error("调度安排箱型数据与计划箱量箱型数据不匹配");
         }
-        long qty = tmsorderbillscntrs.getCntrPlanQty() + tmsorderbillsplans.getCntrQty();
-        if (tmsorderbillscntrs.getCntrBlcQty() < tmsorderbillsplans.getCntrQty()) {
+
+        long qty = tmsorderbillscntrs.getCntrPlanQty() - ftmsorderbillsplans.getCntrQty() + tmsorderbillsplans.getCntrQty();
+        if (tmsorderbillscntrs.getCntrQty() < tmsorderbillsplans.getCntrQty()) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return AjaxResult.error("调度数量超出计划箱量不可提交");
         }

+ 9 - 3
ruoyi-fleet/src/main/resources/mapper/ftmsorderbillsMapper.xml

@@ -132,9 +132,9 @@
             c.f_name AS corpId,
             p.nick_name AS planUserId,
             a.nick_name AS transUserId,
-            f.bill_type AS billType,
-            f.trans_type AS transType,
-            f.trans_prop AS transProp,
+            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,
@@ -155,6 +155,12 @@
             f.create_time AS createTime
         FROM
             F_TMSORDERBILLS f
+            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 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

+ 93 - 22
ruoyi-fleet/src/main/resources/mapper/ftmsorderbillscarsMapper.xml

@@ -20,6 +20,8 @@
         <result property="planRemarks" column="plan_remarks"/>
         <result property="acceptDate" column="accept_date"/>
         <result property="acceptRemarks" column="accept_remarks"/>
+        <result property="offData" column="off_data"/>
+        <result property="offRemarks" column="off_remarks"/>
         <result property="loadDate" column="load_date"/>
         <result property="loadRemarks" column="load_remarks"/>
         <result property="mdLoadDate" column="md_load_date"/>
@@ -27,13 +29,15 @@
         <result property="unLoadDate" column="un_load_date"/>
         <result property="unLoadRemarks" column="un_load_remarks"/>
         <result property="waybillDate" column="waybill_date"/>
-        <result property="cntrQty" column="cntr_qty"/>
+        <result property="waybillRemarks" column="waybill_remarks"/>
         <result property="qtyLoad" column="qty_load"/>
+        <result property="cntrQty" column="cntr_qty"/>
         <result property="qtyUnLoad" column="qty_un_load"/>
+        <result property="cntrWeight" column="cntr_weight"/>
         <result property="gopodsLossQty" column="gopods_loss_qty"/>
         <result property="gopodsLossrate" column="gopods_lossrate"/>
-        <result property="qtyDr" column="qty_dr"/>
         <result property="gopodsLossamtCr" column="gopods_lossamt_cr"/>
+        <result property="qtyDr" column="qty_dr"/>
         <result property="gopodsLossamtDr" column="gopods_lossamt_dr"/>
         <result property="qtyCr" column="qty_cr"/>
         <result property="freightPriceDr" column="freight_price_dr"/>
@@ -94,16 +98,7 @@
     </resultMap>
 
     <sql id="selectftmsorderbillscarsVo">
-        select id, p_id, org_id, order_no, cntr_id, cntr_no, carcor_pid, carreg_no, mblno, driver_name, driver_tel, plan_date,
-         plan_remarks, accept_date, accept_remarks, load_date, load_remarks, md_load_date, md_load_remarks, un_load_date,
-          un_load_remarks, waybill_date, cntr_qty, qty_load, qty_un_load, gopods_loss_qty, gopods_lossrate, qty_dr, gopods_lossamt_cr,
-           gopods_lossamt_dr, qty_cr, freight_price_dr, freight_price_cr, freight_amt_dr, freight_amt_cr, feeitem_dr,
-            feeitem_dr_remarks, feeitem_cr, feeitem_cr_remarks, amt_dr, amt_cr, due_date_dr, due_date_cr, odometer_from,
-             odometer_end, miles_empty, miles_load, miles, driverbonus, costtoll, costmaintain, cost_oth, cost_remarks,
-              oil_qtyper, oil_qty1, oil_price1, oil_amt1, oil_qty2, oil_price2, oil_amt2, oil_qty, oil_price, oil_amt,
-              oil_qty_blc, oil_amt_blc, profit, inv_dr_need, inv_dr_status, inv_dr_taxrate, inv_dr_taxamt, inv_dr_date, inv_dr_no,
-              accchk_staus, bill_status, order_status, accchk_date, stl_amt_dr, stl_date_dr, stl_amt_cr, stl_date_cr, del_flag, create_by,
-               create_time, update_by, update_time, remarks from F_TMSORDERBILLSCARS
+        select id, p_id, org_id, order_no, cntr_id, cntr_no, carcor_pid, mblno, carreg_no, driver_name, driver_tel, plan_date, plan_remarks, accept_date, off_data, off_remarks, accept_remarks, load_date, load_remarks, md_load_date, md_load_remarks, un_load_date, un_load_remarks, waybill_date, waybill_remarks, qty_load, cntr_qty, qty_un_load, cntr_weight, gopods_loss_qty, gopods_lossrate, gopods_lossamt_cr, qty_dr, gopods_lossamt_dr, qty_cr, freight_price_dr, freight_price_cr, freight_amt_dr, freight_amt_cr, feeitem_dr, feeitem_dr_remarks, feeitem_cr, feeitem_cr_remarks, amt_dr, amt_cr, due_date_dr, due_date_cr, odometer_from, odometer_end, miles_empty, miles_load, miles, driverbonus, costtoll, costmaintain, cost_oth, cost_remarks, oil_qtyper, oil_qty1, oil_price1, oil_amt1, oil_qty2, oil_price2, oil_amt2, oil_qty, oil_price, oil_amt, oil_qty_blc, oil_amt_blc, profit, inv_dr_need, inv_dr_status, inv_dr_taxrate, inv_dr_taxamt, inv_dr_date, inv_dr_no, accchk_staus, bill_status, order_status, accchk_date, stl_amt_dr, stl_date_dr, stl_amt_cr, stl_date_cr, del_flag, create_by, create_time, update_by, update_time, remarks from F_TMSORDERBILLSCARS
     </sql>
 
     <select id="selectftmsorderbillscarsList" parameterType="ftmsorderbillscars" resultMap="ftmsorderbillscarsResult">
@@ -123,6 +118,8 @@
             <if test="planRemarks != null  and planRemarks != ''"> and plan_remarks = #{planRemarks}</if>
             <if test="acceptDate != null "> and accept_date = #{acceptDate}</if>
             <if test="acceptRemarks != null  and acceptRemarks != ''"> and accept_remarks = #{acceptRemarks}</if>
+            <if test="offData != null "> and off_data = #{offData}</if>
+            <if test="offRemarks != null  and offRemarks != ''"> and off_remarks = #{offRemarks}</if>
             <if test="loadDate != null "> and load_date = #{loadDate}</if>
             <if test="loadRemarks != null  and loadRemarks != ''"> and load_remarks = #{loadRemarks}</if>
             <if test="mdLoadDate != null "> and md_load_date = #{mdLoadDate}</if>
@@ -130,12 +127,15 @@
             <if test="unLoadDate != null "> and un_load_date = #{unLoadDate}</if>
             <if test="unLoadRemarks != null  and unLoadRemarks != ''"> and un_load_remarks = #{unLoadRemarks}</if>
             <if test="waybillDate != null "> and waybill_date = #{waybillDate}</if>
+            <if test="waybillRemarks != null "> and waybill_remarks = #{waybillRemarks}</if>
             <if test="qtyLoad != null "> and qty_load = #{qtyLoad}</if>
+            <if test="cntrQty != null "> and cntr_qty = #{cntrQty}</if>
             <if test="qtyUnLoad != null "> and qty_un_load = #{qtyUnLoad}</if>
+            <if test="cntrWeight != null "> and cntr_weight = #{cntrWeight}</if>
             <if test="gopodsLossQty != null "> and gopods_loss_qty = #{gopodsLossQty}</if>
             <if test="gopodsLossrate != null "> and gopods_lossrate = #{gopodsLossrate}</if>
-            <if test="qtyDr != null "> and qty_dr = #{qtyDr}</if>
             <if test="gopodsLossamtCr != null "> and gopods_lossamt_cr = #{gopodsLossamtCr}</if>
+            <if test="qtyDr != null "> and qty_dr = #{qtyDr}</if>
             <if test="gopodsLossamtDr != null "> and gopods_lossamt_dr = #{gopodsLossamtDr}</if>
             <if test="qtyCr != null "> and qty_cr = #{qtyCr}</if>
             <if test="freightPriceDr != null "> and freight_price_dr = #{freightPriceDr}</if>
@@ -208,6 +208,8 @@
             <if test="planRemarks != null  and planRemarks != ''"> and plan_remarks = #{planRemarks}</if>
             <if test="acceptDate != null "> and accept_date = #{acceptDate}</if>
             <if test="acceptRemarks != null  and acceptRemarks != ''"> and accept_remarks = #{acceptRemarks}</if>
+            <if test="offData != null "> and off_data = #{offData}</if>
+            <if test="offRemarks != null  and offRemarks != ''"> and off_remarks = #{offRemarks}</if>
             <if test="loadDate != null "> and load_date = #{loadDate}</if>
             <if test="loadRemarks != null  and loadRemarks != ''"> and load_remarks = #{loadRemarks}</if>
             <if test="mdLoadDate != null "> and md_load_date = #{mdLoadDate}</if>
@@ -215,12 +217,15 @@
             <if test="unLoadDate != null "> and un_load_date = #{unLoadDate}</if>
             <if test="unLoadRemarks != null  and unLoadRemarks != ''"> and un_load_remarks = #{unLoadRemarks}</if>
             <if test="waybillDate != null "> and waybill_date = #{waybillDate}</if>
+            <if test="waybillRemarks != null "> and waybill_remarks = #{waybillRemarks}</if>
             <if test="qtyLoad != null "> and qty_load = #{qtyLoad}</if>
+            <if test="cntrQty != null "> and cntr_qty = #{cntrQty}</if>
             <if test="qtyUnLoad != null "> and qty_un_load = #{qtyUnLoad}</if>
+            <if test="cntrWeight != null "> and cntr_weight = #{cntrWeight}</if>
             <if test="gopodsLossQty != null "> and gopods_loss_qty = #{gopodsLossQty}</if>
             <if test="gopodsLossrate != null "> and gopods_lossrate = #{gopodsLossrate}</if>
-            <if test="qtyDr != null "> and qty_dr = #{qtyDr}</if>
             <if test="gopodsLossamtCr != null "> and gopods_lossamt_cr = #{gopodsLossamtCr}</if>
+            <if test="qtyDr != null "> and qty_dr = #{qtyDr}</if>
             <if test="gopodsLossamtDr != null "> and gopods_lossamt_dr = #{gopodsLossamtDr}</if>
             <if test="qtyCr != null "> and qty_cr = #{qtyCr}</if>
             <if test="freightPriceDr != null "> and freight_price_dr = #{freightPriceDr}</if>
@@ -293,6 +298,8 @@
             <if test="planRemarks != null  and planRemarks != ''"> and plan_remarks = #{planRemarks}</if>
             <if test="acceptDate != null "> and accept_date = #{acceptDate}</if>
             <if test="acceptRemarks != null  and acceptRemarks != ''"> and accept_remarks = #{acceptRemarks}</if>
+            <if test="offData != null "> and off_data = #{offData}</if>
+            <if test="offRemarks != null  and offRemarks != ''"> and off_remarks = #{offRemarks}</if>
             <if test="loadDate != null "> and load_date = #{loadDate}</if>
             <if test="loadRemarks != null  and loadRemarks != ''"> and load_remarks = #{loadRemarks}</if>
             <if test="mdLoadDate != null "> and md_load_date = #{mdLoadDate}</if>
@@ -300,6 +307,7 @@
             <if test="unLoadDate != null "> and un_load_date = #{unLoadDate}</if>
             <if test="unLoadRemarks != null  and unLoadRemarks != ''"> and un_load_remarks = #{unLoadRemarks}</if>
             <if test="waybillDate != null "> and waybill_date = #{waybillDate}</if>
+            <if test="waybillRemarks != null "> and waybill_remarks = #{waybillRemarks}</if>
             <if test="qtyLoad != null "> and qty_load = #{qtyLoad}</if>
             <if test="qtyUnLoad != null "> and qty_un_load = #{qtyUnLoad}</if>
             <if test="gopodsLossQty != null "> and gopods_loss_qty = #{gopodsLossQty}</if>
@@ -366,6 +374,7 @@
             c.id,
             c.order_no orderNo,
             c.mblno,
+            c.load_date loadDate,
             c.carreg_no carregNo,
             c.order_status orderStatus,
             p.f_name corpId,
@@ -380,7 +389,7 @@
             t.pol_id polId,
             t.pod_id podId,
             t.load_addr loadAddr,
-            t.load_date loadDate,
+            t.load_date tLoadDate,
             t.load_attn loadAttn,
             t.load_attntel loadAttntel,
             t.md_load_addr mdLoadAddr,
@@ -392,10 +401,12 @@
             t.un_load_attn unLoadAttn,
             t.un_load_attn_tel unLoadAttnTel,
             c.accept_date acceptDate,
+            c.off_data offData,
             c.load_date cLoadDate,
             c.md_load_date cMdLoadDate,
             c.un_load_date cUnLoadDate,
-            c.waybill_date waybillDate
+            c.waybill_date waybillDate,
+            c.waybill_remarks waybillRemarks
         FROM
             F_TMSORDERBILLSCARS c
             LEFT JOIN F_TMSORDERBILLS t ON t.id = c.org_id
@@ -447,11 +458,59 @@
             org_id = #{id}
             AND order_status &gt;= 30
     </select>
+    <select id="selectTmsorderbillsCarsByDriver" parameterType="Long" resultType="Map">
+        SELECT
+            c.id,
+            c.p_id AS pId,
+            c.org_id AS orgId,
+            t.corp_id AS fCorpId,
+            corp.f_name AS fCorpIds,
+            t.un_load_addr AS unLoadAddr,
+            t.bill_type AS billType,
+            t.trans_type AS transType,
+            t.trans_prop AS transProp,
+            t.load_addr AS tLoadAddr,
+            t.load_date AS tLoadDate,
+            t.load_attn AS loadAttn,
+            t.load_attntel AS loadAttntel,
+            c.carreg_no AS carregNo,
+            c.mblno,
+            g.f_name AS goodsId,
+            c.cntr_qty AS cntrQty,
+            c.cntr_weight AS cntrWeight,
+            t.ysl,
+            t.voy,
+            t.pol_id AS polId,
+            t.pod_id AS podId,
+            c.cntr_id AS cntrId,
+            c.carreg_no AS carregNo,
+            c.carcor_pid AS carcorPid,
+            c.driver_tel AS driverTel,
+            c.driver_name AS driverName,
+            c.odometer_from AS odometerFrom,
+            c.odometer_end AS odometerEnd,
+            c.accept_date AS acceptDate,
+            c.accept_remarks AS acceptRemarks,
+            c.load_date AS loadDate,
+            c.load_remarks AS loadRemarks,
+            c.md_load_date AS mdLoadDate,
+            c.md_load_remarks AS mdLoadRemarks,
+            c.un_load_date AS unLoadDate,
+            c.un_load_remarks AS unLoadRemarks,
+            c.waybill_date AS waybillDate,
+            c.waybill_remarks AS waybillRemarks
+        FROM
+            F_TMSORDERBILLSCARS c
+            LEFT JOIN F_TMSORDERBILLS t ON t.id = c.org_id
+            LEFT JOIN t_corps corp ON corp.f_id = t.corp_id
+            LEFT JOIN t_goods g ON g.f_id = t.goods_id
+        where
+            c.id = #{id}
+    </select>
 
     <insert id="insertftmsorderbillscars" parameterType="ftmsorderbillscars" useGeneratedKeys="true" keyProperty="id">
         insert into F_TMSORDERBILLSCARS
         <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="id != null">id,</if>
             <if test="pId != null">p_id,</if>
             <if test="orgId != null">org_id,</if>
             <if test="orderNo != null">order_no,</if>
@@ -466,6 +525,8 @@
             <if test="planRemarks != null">plan_remarks,</if>
             <if test="acceptDate != null">accept_date,</if>
             <if test="acceptRemarks != null">accept_remarks,</if>
+            <if test="offData != null">off_data,</if>
+            <if test="offRemarks != null">off_remarks,</if>
             <if test="loadDate != null">load_date,</if>
             <if test="loadRemarks != null">load_remarks,</if>
             <if test="mdLoadDate != null">md_load_date,</if>
@@ -473,12 +534,15 @@
             <if test="unLoadDate != null">un_load_date,</if>
             <if test="unLoadRemarks != null">un_load_remarks,</if>
             <if test="waybillDate != null">waybill_date,</if>
+            <if test="waybillRemarks != null">waybill_remarks,</if>
             <if test="qtyLoad != null">qty_load,</if>
+            <if test="cntrQty != null">cntr_qty,</if>
             <if test="qtyUnLoad != null">qty_un_load,</if>
+            <if test="cntrWeight != null">cntr_weight,</if>
             <if test="gopodsLossQty != null">gopods_loss_qty,</if>
             <if test="gopodsLossrate != null">gopods_lossrate,</if>
-            <if test="qtyDr != null">qty_dr,</if>
             <if test="gopodsLossamtCr != null">gopods_lossamt_cr,</if>
+            <if test="qtyDr != null">qty_dr,</if>
             <if test="gopodsLossamtDr != null">gopods_lossamt_dr,</if>
             <if test="qtyCr != null">qty_cr,</if>
             <if test="freightPriceDr != null">freight_price_dr,</if>
@@ -538,7 +602,6 @@
             <if test="remarks != null">remarks,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="id != null">#{id},</if>
             <if test="pId != null">#{pId},</if>
             <if test="orgId != null">#{orgId},</if>
             <if test="orderNo != null">#{orderNo},</if>
@@ -560,12 +623,15 @@
             <if test="unLoadDate != null">#{unLoadDate},</if>
             <if test="unLoadRemarks != null">#{unLoadRemarks},</if>
             <if test="waybillDate != null">#{waybillDate},</if>
+            <if test="waybillRemarks != null">#{waybillRemarks},</if>
             <if test="qtyLoad != null">#{qtyLoad},</if>
+            <if test="cntrQty != null">#{cntrQty},</if>
             <if test="qtyUnLoad != null">#{qtyUnLoad},</if>
+            <if test="cntrWeight != null">#{cntrWeight},</if>
             <if test="gopodsLossQty != null">#{gopodsLossQty},</if>
             <if test="gopodsLossrate != null">#{gopodsLossrate},</if>
-            <if test="qtyDr != null">#{qtyDr},</if>
             <if test="gopodsLossamtCr != null">#{gopodsLossamtCr},</if>
+            <if test="qtyDr != null">#{qtyDr},</if>
             <if test="gopodsLossamtDr != null">#{gopodsLossamtDr},</if>
             <if test="qtyCr != null">#{qtyCr},</if>
             <if test="freightPriceDr != null">#{freightPriceDr},</if>
@@ -635,7 +701,7 @@
             <if test="cntrId != null">cntr_id = #{cntrId},</if>
             <if test="cntrNo != null">cntr_no = #{cntrNo},</if>
             <if test="carcorPid != null">carcor_pid = #{carcorPid},</if>
-            <if test="mblno != null">carreg_no = #{mblno},</if>
+            <if test="mblno != null">mblno = #{mblno},</if>
             <if test="carregNo != null">carreg_no = #{carregNo},</if>
             <if test="driverName != null">driver_name = #{driverName},</if>
             <if test="driverTel != null">driver_tel = #{driverTel},</if>
@@ -643,6 +709,8 @@
             <if test="planRemarks != null">plan_remarks = #{planRemarks},</if>
             <if test="acceptDate != null">accept_date = #{acceptDate},</if>
             <if test="acceptRemarks != null">accept_remarks = #{acceptRemarks},</if>
+            <if test="offData != null">off_data = #{offData},</if>
+            <if test="offRemarks != null">off_remarks = #{offRemarks},</if>
             <if test="loadDate != null">load_date = #{loadDate},</if>
             <if test="loadRemarks != null">load_remarks = #{loadRemarks},</if>
             <if test="mdLoadDate != null">md_load_date = #{mdLoadDate},</if>
@@ -650,12 +718,15 @@
             <if test="unLoadDate != null">un_load_date = #{unLoadDate},</if>
             <if test="unLoadRemarks != null">un_load_remarks = #{unLoadRemarks},</if>
             <if test="waybillDate != null">waybill_date = #{waybillDate},</if>
+            <if test="waybillRemarks != null">waybill_remarks = #{waybillRemarks},</if>
             <if test="qtyLoad != null">qty_load = #{qtyLoad},</if>
+            <if test="cntrQty != null">cntr_qty = #{cntrQty},</if>
             <if test="qtyUnLoad != null">qty_un_load = #{qtyUnLoad},</if>
+            <if test="cntrWeight != null">cntr_weight = #{cntrWeight},</if>
             <if test="gopodsLossQty != null">gopods_loss_qty = #{gopodsLossQty},</if>
             <if test="gopodsLossrate != null">gopods_lossrate = #{gopodsLossrate},</if>
-            <if test="qtyDr != null">qty_dr = #{qtyDr},</if>
             <if test="gopodsLossamtCr != null">gopods_lossamt_cr = #{gopodsLossamtCr},</if>
+            <if test="qtyDr != null">qty_dr = #{qtyDr},</if>
             <if test="gopodsLossamtDr != null">gopods_lossamt_dr = #{gopodsLossamtDr},</if>
             <if test="qtyCr != null">qty_cr = #{qtyCr},</if>
             <if test="freightPriceDr != null">freight_price_dr = #{freightPriceDr},</if>