liukangdong
2024-12-11 499fe8b9c0ab0d9eaa578f25cc734136026fa175
Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit
已添加3个文件
已修改19个文件
516 ■■■■ 文件已修改
server/meeting/meeting_service/src/main/java/com/doumee/dao/business/BookingsMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/resources/bootstrap.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/Constants.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/dao/business/model/vo/ValidPhoneCodeVO.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/SmsEmailColudController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/TmsCloudController.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudTestController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsOrderListRequest.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsContractListResponse.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderListResponse.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Approve.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WmsInterfaceLog.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/SmsEmailService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java 179 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_service/src/main/java/com/doumee/dao/business/BookingsMapper.java
@@ -37,7 +37,7 @@
            " CONCAT(date_format(a.START_TIME,'%H:%i') , ' ~ ',date_format(a.END_TIME,'%H:%i')) as meetingTime,  c.REALNAME as bookingUser ," +
            //" CASE WHEN a.START_TIME > now() AND a.`STATUS` = 0 THEN 1  WHEN ( (a.END_TIME < now()  AND a.`STATUS` = 0 ) or a.`STATUS` = 2 ) THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE  2  END meetingStatus ," +
            " CASE WHEN a.START_TIME_REAL IS NULL AND a.`STATUS` = 0 THEN 1 " +
//            " WHEN ( (a.END_TIME < now()  AND a.`STATUS` = 0 ) or a.`STATUS` = 2 ) THEN 3 " +
            " WHEN ( (a.END_TIME < now()  AND a.`STATUS` = 0 ) or a.`STATUS` = 2 ) THEN 3 " +
            "WHEN a.`STATUS` = 1 THEN 5 ELSE  2  END meetingStatus ," +
            " b.IMGURL as imgUrl ," +
            " a.remark  " +
@@ -49,7 +49,7 @@
    @Select(" select a.id , a.START_TIME , a.END_TIME , b.id as roomId,  b.`NAME` as roomName , a.`NAME` as meetingName  ,date_format(a.START_TIME,'%Yå¹´%m月%d日') as meetingDate ," +
            " CONCAT(date_format(a.START_TIME,'%H:%i') , ' ~ ',date_format(a.END_TIME,'%H:%i')) as meetingTime,  c.REALNAME as bookingUserName ," +
            //"  CASE WHEN a.START_TIME > now() AND a.`STATUS` = 0 THEN 1  WHEN a.END_TIME < now() AND a.`STATUS` = 0  THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE  2  END meetingStatus ," +
            "  CASE WHEN a.START_TIME_REAL IS NULL AND a.`STATUS` = 0 THEN 1  WHEN a.END_TIME < now() AND a.`STATUS` = 0  THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE  2  END meetingStatus ," +
            "  CASE WHEN a.START_TIME_REAL IS NULL AND a.`STATUS` = 0 THEN 1  WHEN ( (a.END_TIME < now() AND a.`STATUS` = 0 )  or a.status = 2   ) THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE  2  END meetingStatus ," +
            " a.CONTENT as meetingContent, c.MOBILE as bookingUserMobile , e.`NAME` as bookingUserDepartment , a.CREATOR as bookingUserId  , a.remark  " +
            " from meeting_book a inner join meeting_rooms b  on a.ROOM_ID = b.ID  " +
            " left join system_user c on a.CREATOR = c.id " +
server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java
@@ -154,13 +154,10 @@
     */
    @PostMapping("/logout")
    @ApiOperation("退出登陆")
    public ApiResponse<String> logout(@RequestHeader(Constants.HEADER_USER_TOKEN) String oldToken,Integer isH5){
    public ApiResponse<String> logout(@RequestHeader(Constants.HEADER_USER_TOKEN) String oldToken){
        try {
            if(Objects.nonNull(isH5)){
                jwtTokenUtil.logoutForH5(oldToken);
            }else{
                jwtTokenUtil.logout(oldToken);
            }
        }catch (BusinessException e){
            return ApiResponse.failed(e.getCode(),e.getMessage());
        }catch (Exception e){
@@ -171,6 +168,20 @@
    }
    @PostMapping("/logoutForH5")
    @ApiOperation("退出登陆")
    public ApiResponse<String> logoutForH5(@RequestHeader(Constants.HEADER_USER_TOKEN) String oldToken){
        try {
            jwtTokenUtil.logoutForH5(oldToken);
        }catch (BusinessException e){
            return ApiResponse.failed(e.getCode(),e.getMessage());
        }catch (Exception e){
            return ApiResponse.failed(ResponseStatus.SERVER_ERROR);
        }
        return ApiResponse.success(null);
    }
    /**
     * åˆ·æ–°JWT令牌,用旧的令牌换新的令牌
server/system_gateway/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
spring:
  profiles:
    active: pro
    active: dev
  application:
    name: system_gateway
  # å®‰å…¨é…ç½®
server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -1162,8 +1162,18 @@
    }
    public  enum WxUrlParams {
        BISCREEN_CODE(0,0, "0", "门口大屏二维码"),
        MEETING_CODE(1,1, "1","会议室大屏")
        BISCREEN_CODE(0,2, "0", "门口大屏二维码"),
        MEETING_CODE(1,0, "1","会议室大屏"),
        VISIT_RECORD_VISIT(2,1, "2","访客记录-访客"),
        VISIT_RECORD_USER(3,2, "2","访客记录-员工"),
        VISIT_REPORT_RECORD_USER(5,2, "3","访客报备记录-员工"),
        HIDDEN_DANGER(6,2, "4","隐患随手拍"),
        CAR_USE(7,2, "5","用车申请"),
        MEETING(8,2, "6","会议详情"),
        PLATFORM_BOOK_DRIVER(9,0, "7","物流车预约-司机"),
        PLATFORM_BOOK(10,2, "7","物流车预约-员工"),
        PLATFORM_JOB_DRIVER(11,0, "8","月台作业-司机"),
        PLATFORM_JOB_BOOK(12,2, "8","月台作业-员工"),
        ;
        // æˆå‘˜å˜é‡
        private int key;
server/system_service/src/main/java/com/doumee/dao/business/model/vo/ValidPhoneCodeVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
package com.doumee.dao.business.model.vo;
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.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * çŸ­ä¿¡é‚®ä»¶ä¿¡æ¯è¡¨
 * @author æ±Ÿè¹„蹄
 * @date 2024/01/16 10:03
 */
@Data
@ApiModel("验证手机号和验证码入参")
public class ValidPhoneCodeVO {
    @ApiModelProperty(value = "验证码")
    private String code;
    @ApiModelProperty(value = "手机号", example = "1")
    private String phone;
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/SmsEmailColudController.java
@@ -9,6 +9,7 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.SmsEmail;
import com.doumee.dao.business.model.vo.ValidPhoneCodeVO;
import com.doumee.service.business.SmsEmailService;
import com.doumee.service.business.third.EmayService;
import io.swagger.annotations.Api;
@@ -46,6 +47,15 @@
        return ApiResponse.success(smsEmailService.sendSms(smsEmail));
    }
    @LoginNoRequired
    @PreventRepeat
    @ApiOperation("根据手机号和验证码校验")
    @PostMapping("/validPhoneCaptcha")
    public ApiResponse validPhoneCaptcha(@RequestBody ValidPhoneCodeVO param) {
        smsEmailService.validPhoneCaptcha(param);
        return ApiResponse.success("请求成功");
    }
    @LoginNoRequired
    @PreventRepeat
@@ -55,6 +65,5 @@
        emayService.sendSmsByHk(smsEmail.getPhone(),smsEmail.getContent());
        return ApiResponse.success("操作成功");
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/TmsCloudController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,67 @@
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.tms.model.request.TmsLockStatusQueryRequest;
import com.doumee.core.tms.model.request.TmsOrderInfoRequest;
import com.doumee.core.tms.model.request.TmsOrderListRequest;
import com.doumee.core.tms.model.response.TmsBaseResponse;
import com.doumee.core.tms.model.response.TmsLockStatusQueryResponse;
import com.doumee.core.tms.model.response.TmsOrderInfoResponse;
import com.doumee.core.tms.model.response.TmsOrderListResponse;
import com.doumee.core.utils.Constants;
import com.doumee.core.wms.model.response.WmsBaseResponse;
import com.doumee.service.business.third.TmsService;
import com.doumee.service.business.third.WmsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/30 15:33
 */
@Api(tags = "TMS平台数据接口")
@RestController
@Slf4j
@LoginNoRequired
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/tms")
public class TmsCloudController extends BaseController {
    @Autowired
    private TmsService tmsService;
    @ApiOperation("【TMS】电子锁上锁时间接口")
    @LoginNoRequired
    @PostMapping("/lockStatusQuery")
    public TmsBaseResponse<List<TmsLockStatusQueryResponse>>  lockStatusQuery(@RequestBody  TmsLockStatusQueryRequest request )   {
        return  tmsService.lockStatusQuery(request);
    }
    @ApiOperation("【TMS】合同列表接口")
    @LoginNoRequired
    @PostMapping("/orderList")
    public ApiResponse<List<TmsOrderListResponse>> orderList(@RequestBody TmsOrderListRequest request )   {
        return  ApiResponse.success(tmsService.orderList(request));
    }
    @ApiOperation("【TMS】合同详情接口")
    @LoginNoRequired
    @PostMapping("/orderInfo")
    public ApiResponse<TmsOrderInfoResponse> ordreInfo(@RequestBody TmsOrderInfoRequest request )   {
        return ApiResponse.success(tmsService.orderInfo(request));
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudTestController.java
@@ -2,6 +2,7 @@
import com.doumee.api.BaseController;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.tms.model.request.TmsLockStatusQueryRequest;
import com.doumee.core.tms.model.request.TmsOrderInfoRequest;
import com.doumee.core.tms.model.request.TmsOrderListRequest;
@@ -86,20 +87,6 @@
    @PostMapping("/tms/lockStatusQuery")
    public TmsBaseResponse<List<TmsLockStatusQueryResponse>>  lockStatusQuery(@RequestBody  TmsLockStatusQueryRequest request )   {
        return  tmsService.lockStatusQuery(request);
    }
    @ApiOperation("【TMS】合同列表接口")
    @LoginNoRequired
    @PostMapping("/tms/orderList")
    public TmsBaseResponse<List<TmsOrderListResponse>> orderList(@RequestBody TmsOrderListRequest request )   {
        return  tmsService.orderList(request);
    }
    @ApiOperation("【TMS】合同详情接口")
    @LoginNoRequired
    @PostMapping("/tms/orderInfo")
    public TmsBaseResponse<TmsOrderInfoResponse> ordreInfo(@RequestBody TmsOrderInfoRequest request )   {
        return  tmsService.orderInfo(request);
    }
    public static void doPringParam(HttpServletRequest request,String name) {
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsOrderListRequest.java
@@ -11,7 +11,7 @@
 */
@Data
@ApiModel("tms合同列表请求参数")
public class TmsOrderListRequest {
public class  TmsOrderListRequest {
    private List<String> permissionDomainIdList; //是    é›†åˆ    åŒºåŸŸID集合
@@ -20,4 +20,6 @@
    private String   toRepertoty    ;//    å¦    å­—符串    åˆ°è´§åœ°
    private String  provinceName    ;//    å¦    å­—符串    åˆ°è´§åœ°çœä»½
    private String    phoneNumber    ;//否    å­—符串    æ‰‹æœºå·
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsContractListResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
package com.doumee.core.tms.model.response;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
 */
@Data
@ApiModel("tms查询合同列表请求返回参数")
public class TmsContractListResponse {
   /**
    {
        "code": 0,
        "data": [
            {
                "fromRepertoty": "合肥成品库",
                "ncCreateDate": "2023-12-04 10:36:15",
                "toRepertoty": "天津市中心仓库",
                "contractNumber": "112308335",
                "orderStatus": "到达卸货地"
            }
        ],
        "message": "操作成功"
    }
    */
   private String  contractNumber    ;//合同号
   private String  fromRepertoty    ;//发货地
   private String toRepertoty    ;//到货地
   private String plateNumber    ;//车牌号    åˆåŒæœªé…è½½åˆ™æ— 
   private String orderStatus    ;//当前运输单状态
   private String  ncCreateDate;//    åˆ¶å•æ—¶é—´
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderListResponse.java
@@ -35,4 +35,5 @@
    private String  ncCreateDate; //    åˆ¶å•æ—¶é—´
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java
@@ -71,8 +71,10 @@
        String carUseBookAuditSuccess = "carUseBookAuditSuccess";
        //用车申请-审批驳回通知(给申请人):。
        String carUseBookAuditFail = "carUseBookAuditFail";
        //用车申请-审批驳回通知(给申请人):。
        //用车申请-待审批(给申请人):。
        String carUseBookWaitAudit = "carUseBookWaitAudit";
        //用车申请-待审批(给申请人):。
        String carUseBookCancel = "carUseBookCancel";
    }
server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
@@ -272,7 +272,7 @@
                                              List<String> openIds,Integer sendType){
        try {
            if(CollectionUtils.isNotEmpty(openIds)){
                WxNoticeConfig wxNoticeConfig =  wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.visit)
                WxNoticeConfig wxNoticeConfig =  wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.carUse)
                        .eq(WxNoticeConfig::getObjCode,objCode)
                        .eq(WxNoticeConfig::getStatus, Constants.ZERO)
                        .last(" limit 1")
@@ -289,7 +289,7 @@
                Map<String, Object> thing3 = new HashMap<String,Object>();
                if(Constants.equalsInteger(sendType,Constants.ONE)){
                    thing3.put("value","申请待您审批");
                }else{
                }else if(Constants.equalsInteger(sendType,Constants.ZERO)){
                    if(Constants.equalsInteger(carUseBook.getStatus(),Constants.ZERO)){
                        thing3.put("value","申请提交成功待审核");
                    }else if(Constants.equalsInteger(carUseBook.getStatus(),Constants.TWO)){
@@ -297,6 +297,8 @@
                    }else{
                        thing3.put("value","申请已被驳回");
                    }
                }else{
                    thing3.put("value","申请已被取消");
                }
                //申请人
                Map<String, Object> thing1 = new HashMap<String,Object>();
@@ -315,10 +317,10 @@
                dataMap.put("thing1",thing1);
                dataMap.put("thing11",thing11);
                dataMap.put("time14",time14);
                paramMap.put("template_id", wxNoticeConfig.getTempId());
                paramMap.put("data", dataMap);
                for (String openId:openIds) {
                    paramMap.clear();
                    paramMap.put("template_id", wxNoticeConfig.getTempId());
                    paramMap.put("touser", openId);
                    paramMap.put("data", dataMap);
                    String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap));
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Approve.java
@@ -147,6 +147,11 @@
    private String companyName;
    @ApiModelProperty(value = "openid", example = "1")
    @ExcelColumn(name="openid")
    @TableField(exist = false)
    private String systemOpenid;
    @ApiModelProperty(value = "待审批记录", example = "1")
    @TableField(exist = false)
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WmsInterfaceLog.java
@@ -75,7 +75,7 @@
    @ExcelColumn(name="调用结果 0成功 1失败")
    private Integer success;
    @ApiModelProperty(value = "平台 0海康安防平台 1ERP系统", example = "1")
    @ApiModelProperty(value = "平台 0WMS 1TMS", example = "1")
    @ExcelColumn(name="平台 0海康安防平台 1ERP系统")
    private Integer plat;
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/SmsEmailService.java
@@ -3,6 +3,7 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.SmsEmail;
import com.doumee.dao.business.model.vo.ValidPhoneCodeVO;
import java.util.List;
@@ -98,4 +99,6 @@
    long count(SmsEmail smsEmail);
    void sendWaitingSmsNotice();
    void validPhoneCaptcha(ValidPhoneCodeVO param);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -27,6 +27,7 @@
import com.doumee.dao.business.join.VisitsJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.vo.ApproveDataVO;
import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.dto.NoticesDTO;
import com.doumee.dao.system.join.NoticesJoinMapper;
import com.doumee.dao.system.model.Notices;
@@ -84,6 +85,9 @@
    @Autowired
    private CarUseBookMapper carUseBookMapper;
    @Autowired
    private SystemUserMapper systemUserMapper;
    @Autowired
    private CarDriverMapper carDriverMapper;
@@ -637,13 +641,20 @@
                        );
                        //公众号通知
                        if(StringUtils.isNotBlank(member.getSystemOpenid())){
                            wxPlatNotice.sendCarUseBookTemplateNotice(
                                    wxNoticeConfigMapper,
                                    carUseBookMapper.selectById(businessId),
                                    WxPlatConstants.carUseBookContent.carUseBookWaitAudit,
                                    token,
                                    Arrays.asList(member.getSystemOpenid().split(",")),
                                    Constants.ONE);
                            CarUseBook carUseBook = carUseBookMapper.selectById(businessId);
                            if(Objects.nonNull(carUseBook)){
                                SystemUser systemUser = systemUserMapper.selectById(carUseBook.getCreator());
                                if(Objects.nonNull(systemUser)){
                                    carUseBook.setMemberName(systemUser.getRealname());
                                    wxPlatNotice.sendCarUseBookTemplateNotice(
                                            wxNoticeConfigMapper,
                                            carUseBookMapper.selectById(businessId),
                                            WxPlatConstants.carUseBookContent.carUseBookWaitAudit,
                                            token,
                                            Arrays.asList(member.getSystemOpenid().split(",")),
                                            Constants.ONE);
                                }
                            }
                        }
                    }
                }
@@ -1187,6 +1198,7 @@
    @Override
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public void approved(ApproveDTO approveDTO){
        WxPlatNotice wxPlatNotice = new WxPlatNotice();
        if(Objects.isNull(approveDTO)
        || Objects.isNull(approveDTO.getObjId())
                || Objects.isNull(approveDTO.getObjType())
@@ -1326,7 +1338,9 @@
                        new MPJLambdaWrapper<Approve>()
                                .selectAll(Approve.class)
                                .selectAs(Member::getPhone,Approve::getMemberPhone)
                                .selectAs(SystemUser::getOpenid,Approve::getSystemOpenid)
                                .leftJoin(Member.class,Member::getId,Approve::getChekorId)
                                .leftJoin(SystemUser.class,SystemUser::getMemberId,Member::getId)
                                .eq(Approve::getStatus,Constants.approveStatus.wait)
                                .eq(Approve::getObjId,approve.getObjId())
                                .eq(Approve::getObjType,approve.getObjType())
@@ -1342,41 +1356,17 @@
                        .eq(Approve::getObjType,approve.getObjType())
                        .eq(Approve::getLevel,(approve.getLevel()+1))
                );
                //发送短信通知  ä¸‹çº§å®¡æ‰¹äºº
                List<String> memberPhone = waitAuditList.stream().filter(i->StringUtils.isNotBlank(i.getMemberPhone())).map(i->i.getMemberPhone()).collect(Collectors.toList());
                //物流车预约
                if(approveDTO.getObjType().equals(Constants.approveObjectType.reason)){
                    SmsEmailServiceImpl.sendPlatformBookSms(systemDictDataBiz,
                            emayService,smsEmailMapper,smsConfigMapper,platformBooksMapper,approveDTO.getObjId(),
                            SmsConstants.platformBookContent.platformBookWaitAudit,
                            approveDTO.getCheckInfo(),memberPhone
                    );
                }
                List<String> openIdList =waitAuditList.stream().filter(i->StringUtils.isNotBlank(i.getSystemOpenid())).map(i->i.getSystemOpenid()).collect(Collectors.toList());
                else if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)
                || approveDTO.getObjType().equals(Constants.approveObjectType.unCityUseCar)){
                    SmsEmailServiceImpl.sendCarUseSms(systemDictDataBiz,
                            emayService,smsEmailMapper,smsConfigMapper,carUseBookMapper,approveDTO.getObjId(),
                            SmsConstants.hiddenDangerContent.hiddenDangerDealUser,
                            approveDTO.getCheckInfo(),memberPhone);
                }
                this.sendNextLvSms(approve,approveDTO,memberPhone,openIdList);
                //访客申请/报备
                if(approveDTO.getObjType().equals(Constants.approveObjectType.unConstructionVisit)
                        ||approveDTO.getObjType().equals(Constants.approveObjectType.constructionVisit)
                        ||approveDTO.getObjType().equals(Constants.approveObjectType.visitReporting)) {
                    Visits visits = visitsMapper.selectById(approve.getObjId());
                    if(Objects.nonNull(visits)){
                        if(Constants.equalsInteger(visits.getStatus(),Constants.ZERO)){
                             visitsMapper.update(null,new UpdateWrapper<Visits>().lambda().set(Visits::getStatus,Constants.ONE).eq(Visits::getId,visits.getId()));
                        }
                    }
                }
                if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
                        Constants.approveObjectType.unCityUseCar)){
                    this.updDriver(approveDTO,approve,false);
                }
//                if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
//                        Constants.approveObjectType.unCityUseCar)){
//                    this.updDriver(approveDTO,approve,false);
//                }
            }else if(approve.getApproveType().equals(Constants.ONE)){
                //会签 ä¸”终审
                //无他人审批的情况 åˆ™ä¿®æ”¹æ•°æ®çŠ¶æ€
@@ -1385,6 +1375,20 @@
                }else{
                    if(Constants.equalsInteger(approveList.size(),Constants.ZERO)&&Constants.equalsInteger(approve.getIsEndCheck(),Constants.ZERO)){
                        /**开启下一级别的数据为待审核**/
                        List<Approve> waitAuditList = approveJoinMapper.selectJoinList(Approve.class,
                                new MPJLambdaWrapper<Approve>()
                                        .selectAll(Approve.class)
                                        .selectAs(Member::getPhone,Approve::getMemberPhone)
                                        .selectAs(SystemUser::getOpenid,Approve::getSystemOpenid)
                                        .leftJoin(Member.class,Member::getId,Approve::getChekorId)
                                        .leftJoin(SystemUser.class,SystemUser::getMemberId,Member::getId)
                                        .eq(Approve::getStatus,Constants.approveStatus.wait)
                                        .eq(Approve::getObjId,approve.getObjId())
                                        .eq(Approve::getObjType,approve.getObjType())
                                        .eq(Approve::getLevel,(approve.getLevel()+1)));
                        approveJoinMapper.update(null,new UpdateWrapper<Approve>()
                                .lambda()
                                .set(Approve::getStatus,Constants.approveStatus.auditIng)
@@ -1395,11 +1399,19 @@
                                .eq(Approve::getObjType,approve.getObjType())
                                .eq(Approve::getLevel,(approve.getLevel()+1))
                        );
                        //发送短信通知  ä¸‹çº§å®¡æ‰¹äºº
                        List<String> memberPhone = waitAuditList.stream().filter(i->StringUtils.isNotBlank(i.getMemberPhone())).map(i->i.getMemberPhone()).collect(Collectors.toList());
                        List<String> openIdList =waitAuditList.stream().filter(i->StringUtils.isNotBlank(i.getSystemOpenid())).map(i->i.getSystemOpenid()).collect(Collectors.toList());
                        this.sendNextLvSms(approve,approveDTO,memberPhone,openIdList);
                    }
                    if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
                            Constants.approveObjectType.unCityUseCar)){
                        this.updDriver(approveDTO,approve,false);
                    }
//                    if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
//                            Constants.approveObjectType.unCityUseCar)){
//                        this.updDriver(approveDTO,approve,false);
//                    }
                }
            }
            this.passNextNotices(dealBusinessBean,notices,approve,approveList,approveCopyList,approveDTO);
@@ -1409,6 +1421,78 @@
            this.dealBusinessData(approveDTO,approve);
        }
    }
    public void sendNextLvSms(Approve approve ,ApproveDTO approveDTO , List<String> memberPhone ,List<String> openIdList){
        WxPlatNotice wxPlatNotice = new WxPlatNotice();
        //物流车预约
        if(approveDTO.getObjType().equals(Constants.approveObjectType.reason)){
            SmsEmailServiceImpl.sendPlatformBookSms(systemDictDataBiz,
                    emayService,smsEmailMapper,smsConfigMapper,platformBooksMapper,approveDTO.getObjId(),
                    SmsConstants.platformBookContent.platformBookWaitAudit,
                    approveDTO.getCheckInfo(),memberPhone
            );
            //TODO å‘送下级的待审批的通知
        } else if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)
                || approveDTO.getObjType().equals(Constants.approveObjectType.unCityUseCar)){
            this.updDriver(approveDTO,approve,false);
            SmsEmailServiceImpl.sendCarUseSms(systemDictDataBiz,
                    emayService,smsEmailMapper,smsConfigMapper,carUseBookMapper,approveDTO.getObjId(),
                    SmsConstants.carUseBookContent.carUseBookWaitAudit,
                    approveDTO.getCheckInfo(),memberPhone);
            //发送公众号通知
            if(CollectionUtils.isNotEmpty(openIdList)){
                CarUseBook carUseBook = carUseBookMapper.selectById(approve.getObjId());
                if(Objects.nonNull(carUseBook)){
                    SystemUser systemUser = systemUserMapper.selectById(carUseBook.getCreator());
                    if(Objects.nonNull(systemUser)){
                        carUseBook.setMemberName(systemUser.getRealname());
                        //发送微信公众号通知
                        wxPlatNotice.sendCarUseBookTemplateNotice(
                                wxNoticeConfigMapper,carUseBook,
                                WxPlatConstants.carUseBookContent.carUseBookWaitAudit,
                                systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
                                openIdList,1);
                    }
                }
            }
        }else
            //访客申请/报备
            if(approveDTO.getObjType().equals(Constants.approveObjectType.unConstructionVisit)
                    ||approveDTO.getObjType().equals(Constants.approveObjectType.constructionVisit)
                    ||approveDTO.getObjType().equals(Constants.approveObjectType.visitReporting)) {
                Visits visits = visitsMapper.selectById(approve.getObjId());
                if(Objects.nonNull(visits)){
                    if(Constants.equalsInteger(visits.getStatus(),Constants.ZERO)){
                        visitsMapper.update(null,new UpdateWrapper<Visits>().lambda().set(Visits::getStatus,Constants.ONE).eq(Visits::getId,visits.getId()));
                    }
                    SmsEmailServiceImpl.sendVisitSms(systemDictDataBiz,
                            emayService,smsEmailMapper,smsConfigMapper,visitsMapper,approveDTO.getObjId(),
                            approveDTO.getObjType().equals(Constants.approveObjectType.visitReporting)?
                                    SmsConstants.visitReportingContent.visitReportingNotice:SmsConstants.visitContent.visitNotice,
                            null,memberPhone
                    );
                    //公众号通知
                    if(CollectionUtils.isNotEmpty(openIdList)){
                        wxPlatNotice.sendVisitTemplateNotice(
                                wxNoticeConfigMapper,visitsMapper.selectById(approveDTO.getObjId()),
                                approveDTO.getObjType().equals(Constants.approveObjectType.visitReporting)?WxPlatConstants.visitReportContent.visitReportWaitAudit:WxPlatConstants.visitContent.visitWaitAudit,
                                systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
                                openIdList
                        );
                    }
                }
            }
    }
    /**
     * å¤„理待办信息
@@ -1660,23 +1744,24 @@
            this.updDriver(approveDTO,approve,true);
            CarUseBook carUseBook = carUseBookJoinMapper.selectById(approveDTO.getObjId());
            if(Objects.nonNull(carUseBook)){
                Member member = memberMapper.selectById(carUseBook.getMemberId());
                SystemUser systemUser = systemUserMapper.selectById(carUseBook.getCreator());
                //发送通知短息
                if(Objects.nonNull(member)&&StringUtils.isNotBlank(member.getPhone())){
                if(Objects.nonNull(systemUser)&&StringUtils.isNotBlank(systemUser.getMobile())){
                    SmsEmailServiceImpl.sendCarUseSms(systemDictDataBiz,
                            emayService,smsEmailMapper,smsConfigMapper,carUseBookMapper,approveDTO.getObjId(),
                            Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)?SmsConstants.carUseBookContent.carUseBookAuditSuccess:
                                    SmsConstants.carUseBookContent.carUseBookAuditFail,
                            approveDTO.getCheckInfo(),Arrays.asList(member.getPhone().split(","))
                            approveDTO.getCheckInfo(),Arrays.asList(systemUser.getMobile().split(","))
                    );
                }
                if(StringUtils.isNotBlank(member.getOpenid())){
                if(Objects.nonNull(systemUser)&&StringUtils.isNotBlank(systemUser.getOpenid())){
                    carUseBook.setMemberName(systemUser.getRealname());
                    //发送微信公众号通知
                    wxPlatNotice.sendCarUseBookTemplateNotice(
                            wxNoticeConfigMapper,carUseBook,
                            Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)?WxPlatConstants.carUseBookContent.carUseBookAuditSuccess: WxPlatConstants.carUseBookContent.carUseBookAuditFail,
                            systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
                            Arrays.asList(member.getOpenid().split(",")),0);
                            Arrays.asList(systemUser.getOpenid().split(",")),0);
                }
            }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
@@ -18,9 +18,11 @@
import com.doumee.dao.business.vo.ApproveDataVO;
import com.doumee.dao.business.vo.DateIntervalVO;
import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.join.NoticesJoinMapper;
import com.doumee.dao.system.model.Notices;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.ApproveService;
import com.doumee.service.business.CarUseBookService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -89,6 +91,9 @@
    @Autowired
    private WxNoticeConfigMapper wxNoticeConfigMapper;
    @Autowired
    private SystemUserMapper systemUserMapper;
    @Override
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public Integer create(CarUseBook carUseBook)  throws Exception {
@@ -145,13 +150,14 @@
        //发送微信公众号通知
        //发送微信公众号通知
        WxPlatNotice wxPlatNotice = new WxPlatNotice();
        Member member = memberMapper.selectById(carUseBook.getMemberId());
        if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getOpenid())){
        SystemUser systemUser = systemUserMapper.selectById(carUseBook.getCreator());
        if(Objects.nonNull(systemUser) && StringUtils.isNotBlank(systemUser.getOpenid())){
            carUseBook.setMemberName(systemUser.getRealname());
            wxPlatNotice.sendCarUseBookTemplateNotice(
                    wxNoticeConfigMapper,carUseBook,
                    WxPlatConstants.carUseBookContent.carUseBookUpload,
                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
                    Arrays.asList(member.getOpenid().split(",")),0);
                    Arrays.asList(systemUser.getOpenid().split(",")),0);
        }
        return carUseBook.getId();
@@ -505,14 +511,26 @@
        );
        Member member = memberMapper.selectById(carUseBook.getMemberId());
        if(Objects.nonNull(member)&&StringUtils.isNotBlank(member.getPhone())){
        SystemUser systemUser = systemUserMapper.selectById(carUseBook.getCreator());
        if(Objects.nonNull(systemUser)&&StringUtils.isNotBlank(systemUser.getMobile())){
            //用车申请取消
            SmsEmailServiceImpl.sendCarUseSms(systemDictDataBiz,
                    emayService,smsEmailMapper,smsConfigMapper,carUseBookMapper,carUseBook.getId(),
                    SmsConstants.carUseBookContent.carUseBookCancel,
                    null, Arrays.asList(member.getPhone().split(","))
                    info, Arrays.asList(systemUser.getMobile().split(","))
            );
            if(StringUtils.isNotBlank(systemUser.getOpenid())){
                carUseBook.setMemberName(systemUser.getRealname());
                WxPlatNotice wxPlatNotice = new WxPlatNotice();
                wxPlatNotice.sendCarUseBookTemplateNotice(
                        wxNoticeConfigMapper,
                        carUseBook,
                        WxPlatConstants.carUseBookContent.carUseBookCancel,
                        systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
                        Arrays.asList(systemUser.getOpenid().split(",")),
                        Constants.TWO);
            }
        }
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
@@ -15,6 +15,7 @@
import com.doumee.dao.business.dao.SmsConfigMapper;
import com.doumee.dao.business.dao.SmsEmailMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.model.vo.ValidPhoneCodeVO;
import com.doumee.service.business.SmsEmailService;
import com.doumee.service.business.third.EmayService;
import org.apache.commons.lang3.StringUtils;
@@ -75,6 +76,10 @@
    @Override
    public     void validPhoneCaptcha(ValidPhoneCodeVO param){
       isCaptcheValide(smsEmailMapper,param.getPhone(),param.getCode());
    }
    @Override
    public Integer create(SmsEmail smsEmail) {
        smsEmailMapper.insert(smsEmail);
@@ -495,6 +500,9 @@
                        content = content.replace("{提交的出发时间}",DateUtil.getFomartDate(carUseBook.getStartTime(),"yyyy-MM-dd HH:mm"));
                    }else if(objCode.equals(SmsConstants.carUseBookContent.carUseBookAuditFail) || objCode.equals(SmsConstants.carUseBookContent.carUseBookCancel)){
                        //您的【用车申请】已被驳回,驳回原因为:{驳回原因}。如有疑问,请联系派车员。
                        if(StringUtils.isBlank(msg)){
                            msg = "其他原因";
                        }
                        content = content.replace("{驳回原因}",msg);
                        //您的【用车申请】已被取消,取消原因为:{取消原因}。如有疑问,请联系派车员。
                        content = content.replace("{取消原因}",msg);
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java
@@ -19,13 +19,16 @@
import com.doumee.core.wms.model.response.WmsBaseResponse;
import com.doumee.core.wms.model.response.WmsInventoryDataResponse;
import com.doumee.dao.business.*;
import com.doumee.dao.business.dao.SmsEmailMapper;
import com.doumee.dao.business.model.*;
import com.doumee.service.business.impl.SmsEmailServiceImpl;
import com.doumee.service.business.third.TmsService;
import com.doumee.service.business.third.WmsService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -39,6 +42,9 @@
@Service
@Slf4j
public class TmsServiceImpl implements TmsService {
    @Autowired
    private SmsEmailMapper smsEmailMapper;
    @Autowired
    private PlatformWmsJobMapper platformWmsJobMapper;
    @Autowired
@@ -55,7 +61,8 @@
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private WmsInterfaceLogMapper wmsInterfaceLogMapper;
    @Value("${debug_model}")
    private Boolean isDebug;
    /**
     * ç”µå­é”ä¸Šé”æ—¶é—´æŽ¥å£
     * æ ¹æ®åˆåŒå·ï¼ŒæŸ¥è¯¢ç”µå­é”ä¸Šé”æƒ…况;存在批量查询的情况;
@@ -79,12 +86,22 @@
     * @return TmsBaseResponse
     */
    @Override
    public  TmsBaseResponse<List<TmsOrderListResponse>> orderList(TmsOrderListRequest param){
    public   List<TmsOrderListResponse>  orderList(TmsOrderListRequest param){
       if(StringUtils.isBlank(param.getPhoneNumber())){
           param.setPhoneNumber("00000000000");//手机号必填
       }
       if(param.getContractNumbers()==null || param.getContractNumbers().size()==0){
           param.setContractNumbers(null);
       }
        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
                    +systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_ORDER_LIST_URL).getCode();
        TmsBaseResponse<List<TmsOrderListResponse>> response = sendHttpRequest(url,"合同列表接口",JSONObject.toJSONString(param)
        TmsBaseResponse<List<TmsOrderListResponse>> response = sendHttpRequest(url,"【TMS】合同列表接口",JSONObject.toJSONString(param)
                ,new TypeReference< TmsBaseResponse<List<TmsOrderListResponse>>>(){});
        return response;
        if(response ==null){
            return  new ArrayList<>();
        }else{
            return response.getData()==null?new ArrayList<>():response.getData();
        }
    }
    /**
     * åˆåŒè¯¦æƒ…接口
@@ -92,12 +109,16 @@
     * @return TmsBaseResponse
     */
    @Override
    public TmsBaseResponse<TmsOrderInfoResponse> orderInfo(TmsOrderInfoRequest param){
    public  TmsOrderInfoResponse orderInfo(TmsOrderInfoRequest param){
        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
                    +systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_ORDER_DETAIL_URL).getCode();
        TmsBaseResponse<TmsOrderInfoResponse> response = sendHttpRequest(url,"合同详情接口",JSONObject.toJSONString(param)
        TmsBaseResponse<TmsOrderInfoResponse> response = sendHttpRequest(url,"【TMS】合同详情接口",JSONObject.toJSONString(param)
                ,new TypeReference< TmsBaseResponse<TmsOrderInfoResponse>>(){});
        return  response;
        if(response ==null){
            return new TmsOrderInfoResponse();
        }else{
            return response.getData()==null?new TmsOrderInfoResponse():response.getData();
        }
    }
    /**
@@ -129,15 +150,35 @@
                success = 1;
                log.error("【"+name+"】================失败===="+ JSONObject.toJSONString(param));
            }finally {
                saveInterfaceLog(url,name,param,success,res,Constants.ZERO);
            }
        }
        return  null;
    }
    @Override
    public  void  saveInterfaceLog(String url,String name,String  param,Integer success,String respone,int type){
        if(wmsInterfaceLogMapper ==null){
            return;
        }
        WmsInterfaceLog log = new WmsInterfaceLog();
        log.setCreateDate(new Date());
        log.setUrl(url);
        log.setEditDate(log.getCreateDate());
        log.setPlat(Constants.ONE);
        log.setName(name);
        log.setIsdeleted(Constants.ZERO);
        log.setRequest(param);
        log.setType(type);
        log.setSuccess(success);
        log.setRepose(respone);
        wmsInterfaceLogMapper.insert(log);
    }
    private static void logResult(TmsBaseResponse res,String name) {
        if(StringUtils.equals(res.getCode(), TmsBaseResponse.CODE_SUCCESS)){
            log.info("【TMS接口:"+name+"】================成功====\n"+res);
            log.info("【TMS接口:"+name+"】================成功====\n"+ JSONObject.toJSONString(res));
        }else{
            log.error("【TMS接口:"+name+"】================失败====:\n"+ res);
            log.error("【TMS接口:"+name+"】================失败====:\n"+ JSONObject.toJSONString(res));
        }
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java
@@ -219,9 +219,9 @@
    }
    private static void logResult(WmsBaseResponse<WmsBaseDataResponse> res,String name) {
        if(StringUtils.equals(res.getData().get(0).getSuccess(), WmsBaseResponse.CODE_SUCCESS)){
            log.info("【WMS接口:"+name+"】================成功====\n"+res);
            log.info("【WMS接口:"+name+"】================成功====\n"+ JSONObject.toJSONString(res));
        }else{
            log.error("【WMS接口:"+name+"】================失败====:\n"+ res);
            log.error("【WMS接口:"+name+"】================失败====:\n"+  JSONObject.toJSONString(res));
        }
    }
    /**
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java
@@ -35,18 +35,18 @@
    /**
     * åˆåŒåˆ—表接口
     * æ ¹æ®åŒºåŸŸID集合+筛选条件(合同号、制单开始日期、制单结束日期、发货地、到货地、省份,非需要),返回合同列表信息,按照时间倒序展示;
     * æ ¹æ®åŒºåŸŸID集合+筛选条件(合同号、制单开始日期、制单结束日期、发货地、到货地、省份、手机号,非需要),返回合同列表信息,按照时间倒序展示;
     * @param param å‚æ•°
     * @return TmsBaseResponse
     */
    TmsBaseResponse<List<TmsOrderListResponse>> orderList(TmsOrderListRequest param);
    List<TmsOrderListResponse> orderList(TmsOrderListRequest param);
    /**
     * åˆåŒè¯¦æƒ…接口
     * @param param å‚æ•°
     * @return TmsBaseResponse
     */
    TmsBaseResponse<TmsOrderInfoResponse> orderInfo(TmsOrderInfoRequest param);
     TmsOrderInfoResponse orderInfo(TmsOrderInfoRequest param);
    void  saveInterfaceLog(String url,String name,String  param,Integer success,String respone,int type);
}