瀏覽代碼

feat:实时调度列表查询bug

wangweiyu 4 年之前
父節點
當前提交
493a120882

+ 73 - 2
src/main/java/com/aoyang/tms/controller/WorkOrderManageController.java

@@ -14,6 +14,9 @@ import com.aoyang.tms.controller.vo.TruckHistoryTripVO;
 import com.aoyang.tms.controller.vo.TruckOrderManageVO;
 import com.aoyang.tms.controller.vo.TruckOrderStatisticsVO;
 import com.aoyang.tms.entity.*;
+import com.aoyang.tms.feign.MessageFeign;
+import com.aoyang.tms.feign.UserFeignClient;
+import com.aoyang.tms.feign.result.SmsSendLog;
 import com.aoyang.tms.service.*;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -63,6 +66,12 @@ public class WorkOrderManageController {
     private WorkCycleService workCycleService;
     @Resource
     private WorkLogService workLogService;
+    @Resource
+    private CommonService commonService;
+    @Resource
+    private MessageFeign messageFeign;
+    @Resource
+    private UserFeignClient userFeignClient;
 
     @ApiOperation(value = "获取运力调度列表",notes="")
     @PostMapping("/list")
@@ -125,6 +134,21 @@ public class WorkOrderManageController {
         return new Result<>(workLogs);
     }
 
+    @ApiOperation(value = "当前车辆行车日志详情",notes="")
+    @PostMapping("/current_trip_detail")
+    public Result<List<WorkLog>> currentTripDetail(@RequestBody IdParam idParam) {
+        log.info("获取车辆历史行程,调用/tms/work_order_manage/current_trip_detail idParam:{} ", JSON.toJSONString(idParam));
+        if (idParam == null || idParam.getId() == null) {
+            return new Result<>(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
+        }
+        WorkCycle workCycle = workCycleService.getById(idParam.getId());
+        if (workCycle == null) {
+            return new Result<>(ErrCodeEnum.BAD_PARAM.getCode(), "行车周期不存在");
+        }
+        List<WorkLog> workLogs = workLogService.list(new QueryWrapper<WorkLog>().eq("cycle_id", idParam.getId()));
+        return new Result<>(workLogs);
+    }
+
     @ApiOperation(value = "新增装车派单", notes = "调度员派单操作")
     @PostMapping("/add_load_order")
     public Result add(@RequestHeader(value = "orgId") Long orgId,
@@ -146,6 +170,7 @@ public class WorkOrderManageController {
         Random random = new Random(1000);
         Long timeMillis = System.currentTimeMillis();
         for (String truckId : truckIds) {
+            StringBuffer monbiles = new StringBuffer();
             WorkOrder workOrder = new WorkOrder();
             BeanUtils.copyProperties(orderVO, workOrder);
             workOrder.setTruckId(Long.parseLong(truckId));
@@ -166,23 +191,46 @@ public class WorkOrderManageController {
             if (truckEscort != null) {
                 workOrder.setEscortId(truckEscort.getEscortId());
                 workOrder.setEscortName(truckEscort.getEscortName());
+                monbiles.append("," + truckEscort.getMobile());
             }
             List<TruckDriver> truckDrivers = truckDriverService.findTruckDrivers(truck.getTruckId());
             if (truckDrivers != null && truckDrivers.size() > 0) {
                 workOrder.setDriverIdOne(truckDrivers.get(0).getDriverId());
                 workOrder.setDriverNameOne(truckDrivers.get(0).getDriverName());
+                User user = commonService.findUser(truckDrivers.get(0).getDriverId());
+                if (user != null) {
+                    monbiles.append("," + user.getMobile());
+                }
                 if (truckDrivers.size() > 1) {
                     workOrder.setDriverIdTwo(truckDrivers.get(1).getDriverId());
                     workOrder.setDriverNameOne(truckDrivers.get(1).getDriverName());
+                    User user2 = commonService.findUser(truckDrivers.get(1).getDriverId());
+                    if (user2 != null) {
+                        monbiles.append("," + user2.getMobile());
+                    }
                 }
             }
-            workOrder.setOrderNo(timeMillis - random.nextInt() + "");
+            String orderNo = timeMillis - random.nextInt() + "";
+            workOrder.setOrderNo(orderNo);
             workOrder.setCreater(userId);
             workOrder.setCreaterName(userName);
             workOrder.setCreateDate(LocalDateTime.now());
             workOrder.setUpdateDate(LocalDateTime.now());
 
             workOrders.add(workOrder);
+
+            if (monbiles.length() > 0) {
+                // 发送短信
+                SmsSendLog smsSend = new SmsSendLog();
+                smsSend.setType(30);
+                JSONObject content = new JSONObject();
+                content.put("type", "装");
+                content.put("trans_id", orderNo);
+                smsSend.setContent(JSON.toJSONString(content));
+                smsSend.setMobile(monbiles.substring(1));
+                messageFeign.send(smsSend, null, null, null);
+            }
+
         }
         Boolean flag = workOrderService.saveBatch(workOrders);
         return new Result<>(flag);
@@ -208,6 +256,7 @@ public class WorkOrderManageController {
         Random random = new Random(1000);
         Long timeMillis = System.currentTimeMillis();
         for (String truckId : truckIds) {
+            StringBuffer monbiles = new StringBuffer();
             WorkOrder workOrder = new WorkOrder();
             BeanUtils.copyProperties(orderVO, workOrder);
             workOrder.setTruckId(Long.parseLong(truckId));
@@ -228,23 +277,45 @@ public class WorkOrderManageController {
             if (truckEscort != null) {
                 workOrder.setEscortId(truckEscort.getEscortId());
                 workOrder.setEscortName(truckEscort.getEscortName());
+                monbiles.append("," + truckEscort.getMobile());
             }
             List<TruckDriver> truckDrivers = truckDriverService.findTruckDrivers(truck.getTruckId());
             if (truckDrivers != null && truckDrivers.size() > 0) {
                 workOrder.setDriverIdOne(truckDrivers.get(0).getDriverId());
                 workOrder.setDriverNameOne(truckDrivers.get(0).getDriverName());
+                User user = commonService.findUser(truckDrivers.get(0).getDriverId());
+                if (user != null) {
+                    monbiles.append("," + user.getMobile());
+                }
                 if (truckDrivers.size() > 1) {
                     workOrder.setDriverIdTwo(truckDrivers.get(1).getDriverId());
                     workOrder.setDriverNameOne(truckDrivers.get(1).getDriverName());
+                    User user2 = commonService.findUser(truckDrivers.get(1).getDriverId());
+                    if (user2 != null) {
+                        monbiles.append("," + user2.getMobile());
+                    }
                 }
             }
-            workOrder.setOrderNo(timeMillis - random.nextInt() + "");
+            String orderNo = timeMillis - random.nextInt() + "";
+            workOrder.setOrderNo(orderNo);
             workOrder.setCreater(userId);
             workOrder.setCreaterName(userName);
             workOrder.setCreateDate(LocalDateTime.now());
             workOrder.setUpdateDate(LocalDateTime.now());
 
             workOrders.add(workOrder);
+
+            if (monbiles.length() > 0) {
+                // 发送短信
+                SmsSendLog smsSend = new SmsSendLog();
+                smsSend.setType(30);
+                JSONObject content = new JSONObject();
+                content.put("type", "卸");
+                content.put("trans_id", orderNo);
+                smsSend.setContent(JSON.toJSONString(content));
+                smsSend.setMobile(monbiles.substring(1));
+                messageFeign.send(smsSend, null, null, null);
+            }
         }
         Boolean flag = workOrderService.saveBatch(workOrders);
 

+ 26 - 0
src/main/java/com/aoyang/tms/feign/MessageFeign.java

@@ -0,0 +1,26 @@
+package com.aoyang.tms.feign;
+
+import com.aoyang.common.result.Result;
+import com.aoyang.tms.feign.result.SmsSendLog;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+
+/**
+ * @author liujiren
+ */
+@FeignClient(name = "message")
+public interface MessageFeign {
+    /**
+     * 发送短信通知
+     *
+     * @param smsSendLog 发送内容
+     * @return 成功或失败信息
+     */
+    @PostMapping(value = "/message/notify/send")
+    Result<Boolean> send(@RequestBody SmsSendLog smsSendLog,
+                         @RequestHeader(value = "orgId", required = false) String orgId,
+                         @RequestHeader(value = "userId", required = false) String userId,
+                         @RequestHeader(value = "clientId", required = false) String clientId);
+}

+ 34 - 0
src/main/java/com/aoyang/tms/feign/fallback/MessageFeignFallBack.java

@@ -0,0 +1,34 @@
+package com.aoyang.tms.feign.fallback;
+
+import com.aoyang.common.result.Result;
+import com.aoyang.tms.common.ErrCodeEnum;
+import com.aoyang.tms.feign.MessageFeign;
+import com.aoyang.tms.feign.result.SmsSendLog;
+import feign.hystrix.FallbackFactory;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author liujiren
+ */
+@Component
+@Slf4j
+public class MessageFeignFallBack implements FallbackFactory<MessageFeign> {
+
+    @Override
+    public MessageFeign create(Throwable cause) {
+        String msg = cause == null ? "" : cause.getMessage();
+        if (!StringUtils.isEmpty(msg)) {
+            log.error("AccountFeign error : {}", msg);
+        }
+        return new MessageFeign() {
+            @Override
+            public Result<Boolean> send(SmsSendLog smsSendLog, String orgId, String userId, String clientId) {
+                return new Result(ErrCodeEnum.BAD_SYSTEM_CONFIG.getCode(),
+                        ErrCodeEnum.BAD_SYSTEM_CONFIG.getMessage());
+
+            }
+        };
+    }
+}

+ 70 - 0
src/main/java/com/aoyang/tms/feign/result/SmsSendLog.java

@@ -0,0 +1,70 @@
+package com.aoyang.tms.feign.result;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+    * 
+    * </p>
+ *
+ * @author panenming
+ * @since 2020-03-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("sms_send_log")
+@ApiModel(value="SmsSendLog对象", description="")
+public class SmsSendLog implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "id主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
+    private Long id;
+
+    @ApiModelProperty(value = "组织id(user.org.org_id)")
+    @TableField("org_id")
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
+    private Long orgId;
+
+    @ApiModelProperty(value = "用户id(user.user.user_id)")
+    @TableField("user_id")
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
+    private Long userId;
+
+    @ApiModelProperty(value = "哪一端")
+    @TableField("client_id")
+    private String clientId;
+
+    @ApiModelProperty(value = "0.身份验证1.登录确认2.注册用户3.修改密码 ")
+    @TableField("type")
+    private Integer type;
+
+    @ApiModelProperty(value = "手机号")
+    @TableField("mobile")
+    private String mobile;
+
+    @ApiModelProperty(value = "发送内容")
+    @TableField("content")
+    private String content;
+
+    @ApiModelProperty(value = "发送日期")
+    @TableField("send_time")
+    private LocalDateTime sendTime;
+
+
+}

+ 1 - 1
src/main/resources/mapper/TruckMapper.xml

@@ -100,7 +100,7 @@
         order by order_status desc, plan_reach_time asc
         ) two on truck.truck_id = two.truck_id
         left join tms_work_cycle wc on truck.truck_id = wc.truck_id and wc.status = 1
-        where truck.status = 0 and truck.org_id = #{param.orgId}
+        where truck.org_id = #{param.orgId}
             <if test="param!=null and param.deptId!=null">
                 and truck.dept_id = #{param.deptId}
             </if>