k94314517
2024-08-16 6a80d0d2b393e36034c8ffef92fcaf06a1f0c552
代码初始化
已添加8个文件
已修改11个文件
927 ■■■■■ 文件已修改
server/system_service/src/main/java/com/doumee/core/utils/Constants.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/PositionUtil.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/JobDetailDTO.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/PlatformBooksApplyDTO.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/PlatformBooksCheckNumDTO.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/RevokeDTO.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/SignInDTO.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/DriverHomeVO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBooksService.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -38,6 +38,13 @@
    public static final String HK_PUSH_URL = "HK_PUSH_URL";
    public static final String HK_ROOTORG_CODE ="HK_ROOTORG_CODE" ;
    public static final String HK_ROOTORG_NAME ="HK_ROOTORG_NAME" ;
    public static final String PLATFORM ="PLATFORM" ;
    public static final String RESERVATION_TOTAL_NUM ="RESERVATION_TOTAL_NUM" ;
    public static final String SIGN_IN_PLACE_LAT ="SIGN_IN_PLACE_LAT" ;
    public static final String SIGN_IN_PLACE_LNT ="SIGN_IN_PLACE_LNT" ;
    public static final String SIGN_IN_PLACE_DISTANCE ="SIGN_IN_PLACE_DISTANCE" ;
    public static final String SIGN_IN_QRCODE ="SIGN_IN_QRCODE" ;
    //被拜访人信息校验方式(0手机号单独校验 1手机号和姓名组合校验)
    public static final String BEVISITED_USER_VALID = "BEVISITED_USER_VALID";
@@ -173,6 +180,8 @@
       int wxczh = 3;
       int sgscxh = 4;
    }
    public static  Date  getBirthdyByCardNo(String idCard){
    if(idCard ==null || idCard.length()<14){
        return null;
@@ -715,15 +724,14 @@
     * 0待确认 1待签到 2等待叫号 3入园等待 4已叫号 5作业中 6作业完成 7转移中 8异常挂起 9已授权离园 10已离园 11 å·²è¿‡å·
     */
    public  enum PlatformJobStatus {
        WAIT_CONFIRM(0, "待确认","" ),
        WART_SIGNIN(1, "待签到","待签到" ),
        WAIT_CALL(2, "等待叫号","等待叫号"),
        IN_WAIT(3, "入园等待","入园等待" ),
        WAIT_CONFIRM(0, "待确认","待确认" ),
        WART_SIGN_IN(1, "待签到","待签到" ),
        WAIT_CALL(2, "已签到","已签到"), //等待叫号入园
        IN_WAIT(3, "入园等待","入园等待" ),//已入园 æœªå«å·è¿›å…¥æœˆå°
        CALLED(4, "已叫号","已叫号" ),
        WORKING(5, "作业中","作业中" ),
        //续保通知
        DONE(6, "作业完成 ","作业完成 " ),
        TRANSFERING(7, "转移中","7转移中" ),
        TRANSFERING(7, "转移中","转移中" ),
        EXCEPTION(8, "异常挂起","异常挂起" ),
        AUTHED_LEAVE(9, "已授权离园","已授权离园" ),
        LEAVED(10, "已离园 ","已离园 " ),
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -3194,6 +3194,18 @@
    }
    /**
     * èŽ·å–X天后的日期
     * @param date
     * @param beforDays æ˜Žå¤© -1  æ˜¨å¤© 1
     * @return
     */
    public static String getBeforDay(Date date,Integer beforDays){
        ZonedDateTime zonedDateTime = date.toInstant().atZone(ZoneId.systemDefault());
        // è½¬æ¢ä¸ºjava.time.LocalDate,计算x天的日期
        LocalDate dateBeforeDay = zonedDateTime.toLocalDate().minusDays(beforDays);
        return dateBeforeDay.toString();
    }
}
server/system_service/src/main/java/com/doumee/core/utils/PositionUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
package com.doumee.core.utils;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2024/8/14 17:22
 */
public class PositionUtil {
    /**
     * èµ¤é“半径(单位:米)
     */
    private static final double EQUATOR_RADIUS = 6378137;
    /**
     * æ–¹æ³•一:(反余弦计算方式)
     *
     * @param longitude1 ç¬¬ä¸€ä¸ªç‚¹çš„经度
     * @param latitude1  ç¬¬ä¸€ä¸ªç‚¹çš„纬度
     * @param longitude2 ç¬¬äºŒä¸ªç‚¹çš„经度
     * @param latitude2  ç¬¬äºŒä¸ªç‚¹çš„纬度
     * @return è¿”回距离,单位m
     */
    public static double getDistance(double longitude1, double latitude1, double longitude2, double latitude2) {
        // çº¬åº¦
        double lat1 = Math.toRadians(latitude1);
        double lat2 = Math.toRadians(latitude2);
        // ç»åº¦
        double lon1 = Math.toRadians(longitude1);
        double lon2 = Math.toRadians(longitude2);
        // çº¬åº¦ä¹‹å·®
        double a = lat1 - lat2;
        // ç»åº¦ä¹‹å·®
        double b = lon1 - lon2;
        // è®¡ç®—两点距离的公式
        double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(lat1) * Math.cos(lat2) * Math.pow(Math.sin(b / 2), 2)));
        // å¼§é•¿ä¹˜èµ¤é“半径, è¿”回单位: ç±³
        s = s * EQUATOR_RADIUS;
        return s;
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,118 @@
package com.doumee.cloud.web;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.config.annotation.LoginRequired;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.dao.business.model.PlatformBooks;
import com.doumee.dao.business.model.PlatformJob;
import com.doumee.dao.business.model.Visits;
import com.doumee.dao.web.reqeust.*;
import com.doumee.dao.web.response.DriverHomeVO;
import com.doumee.dao.web.response.MemberVO;
import com.doumee.dao.web.response.VisitRecordVO;
import com.doumee.service.business.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.Date;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2023/12/28 14:31
 */
@Api(tags = "【公众号】物流车司机业务")
@Trace(exclude = true)
@RestController
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/web/driverPlatform")
@Slf4j
@LoginNoRequired
public class DriverPlatformController extends BaseController {
    @Autowired
    private VisitsService visitsService;
    @Autowired
    private PlatformJobService platformJobService;
    @Autowired
    private PlatformBooksService platformBooksService;
    @ApiOperation("司机首页信息")
    @GetMapping("/driverHome")
    public ApiResponse<DriverHomeVO> driverHome (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        DriverHomeVO driverHomeVO = platformJobService.getDriverHome(getLoginUser(token).getMemberId());
        return ApiResponse.success(driverHomeVO);
    }
    @ApiOperation("查询可预约量")
    @PostMapping("/checkSurplusNum")
    public ApiResponse<BigDecimal> checkSurplusNum (@RequestBody PlatformBooksCheckNumDTO platformBooksCheckNumDTO , @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(platformBooksService.checkNum(platformBooksCheckNumDTO));
    }
    @ApiOperation("物流车预约")
    @PostMapping("/checkSurplusNum")
    public ApiResponse<Integer> checkSurplusNum (@RequestBody PlatformBooksApplyDTO platformBooksApplyDTO , @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        platformBooksApplyDTO.setUserId(getLoginUser(token).getMemberId());
        return ApiResponse.success(platformBooksService.apply(platformBooksApplyDTO));
    }
    @ApiOperation("物流车预约记录")
    @PostMapping("/page")
    public ApiResponse<PageData<PlatformBooks>> findPage (@RequestBody PageWrap<PlatformBooks> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        pageWrap.getModel().setQueryDate(DateUtil.getBeforDay(new Date(),30));
        return ApiResponse.success(platformBooksService.findPage(pageWrap));
    }
    @ApiOperation("物流车预约详情")
    @GetMapping("/getDetail")
    public ApiResponse<PlatformBooks> getDetail (@RequestParam Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        PlatformBooks platformBooks = platformBooksService.getDetail(id,getLoginUser(token).getMemberId());
        return ApiResponse.success(platformBooks);
    }
    @ApiOperation("物流车预约撤销")
    @PostMapping("/revoke")
    public ApiResponse  revoke (@RequestBody RevokeDTO revokeDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        platformBooksService.revoke(revokeDTO,getLoginUser(token));
        return ApiResponse.success("操作成功");
    }
    /******************************************************任务接口************************************************************************/
    @ApiOperation("任务签到")
    @PostMapping("/signIn")
    public ApiResponse  signIn (@RequestBody SignInDTO signInDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        signInDTO.setLoginUserInfo(getLoginUser(token));
        platformJobService.signIn(signInDTO);
        return ApiResponse.success("操作成功");
    }
    @ApiOperation("任务详情")
    @PostMapping("/jobDetail")
    public ApiResponse<PlatformJob>  jobDetail (@RequestBody JobDetailDTO jobDetailDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        return ApiResponse.success(platformJobService.getDetail(jobDetailDTO));
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java
@@ -1,6 +1,9 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.vo.ApproveDataVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -56,7 +59,7 @@
    @ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "状态 0待审批 1审批中 2审批通过 3审批不通过", example = "1")
    @ApiModelProperty(value = "状态 0待审批 1审批中 2审批通过 3审批不通过 4已取消", example = "1")
    @ExcelColumn(name="状态 0待审批 1审批中 2审批通过 3审批不通过")
    private Integer status;
@@ -99,6 +102,63 @@
    @ApiModelProperty(value = "司机手机号")
    @ExcelColumn(name="司机手机号")
    private String drivierPhone;
    private String driverPhone;
    @ApiModelProperty(value = "准运证照片")
    @ExcelColumn(name="准运证照片")
    private String transportImg;
    @ApiModelProperty(value = "入园原因")
    @ExcelColumn(name="入园原因")
    private String inReason;
    @ApiModelProperty(value = "入园原因主键")
    @ExcelColumn(name="入园原因主键")
    private Integer reasonId;
    @ApiModelProperty(value = "取消时间")
    @ExcelColumn(name="取消时间")
    private Date cancelTime;
    @ApiModelProperty(value = "取消人")
    @ExcelColumn(name="取消人")
    private Integer cancelUser;
    @ApiModelProperty(value = "取消备注")
    @ExcelColumn(name="取消备注")
    private String cancelInfo;
    @ApiModelProperty(value = "生成任务主键 platform_job:id")
    @ExcelColumn(name="入园原因主键")
    private Integer jobId;
    @ApiModelProperty(value = "查询日期 ç”¨æˆ·å¾®ä¿¡ç«¯æŸ¥è¯¢")
    @TableField(exist = false)
    private String queryDate;
    @ApiModelProperty(value = "审批信息数据")
    @TableField(exist = false)
    private ApproveDataVO approveDateVO;
    public PlatformJob toPlatformJob(){
        PlatformJob platformJob = new PlatformJob();
        platformJob.setCreateDate(new Date());
        platformJob.setIsdeleted(Constants.ZERO);
        platformJob.setStatus(Constants.ZERO);
        platformJob.setDriverId(this.getDriverId());
        platformJob.setDriverName(this.getDriverName());
        platformJob.setDrivierPhone(this.getDriverPhone());
        platformJob.setCarCodeBack(this.getCarCodeBack());
        platformJob.setCarCodeFront(this.getCarCodeFront());
        platformJob.setContractNum(this.getContractNum());
        platformJob.setReason(this.getInReason());
        platformJob.setArriveDate(this.getArriveDate());
        platformJob.setInType(this.getInType());
        platformJob.setTotalNum(this.getTotalNum());
        return platformJob;
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
@@ -1,5 +1,6 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -263,4 +264,16 @@
    @ExcelColumn(name="总运输量")
    private BigDecimal totalNum;
    @ApiModelProperty(value = "前方排队数量", example = "1")
    @TableField(exist = false)
    private Long lineUpNum;
    @ApiModelProperty(value = "作业月台名称")
    @TableField(exist = false)
    private String platformName ;
    @ApiModelProperty(value = "距离签到点距离")
    @TableField(exist = false)
    private BigDecimal getDistance;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/JobDetailDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
package com.doumee.dao.web.reqeust;
import com.doumee.core.model.LoginUserInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2023/12/7 11:19
 */
@Data
@Api(tags = "任务详情请求类" )
public class JobDetailDTO {
    @ApiModelProperty(value = "任务主键")
    private Integer jobId;
    @ApiModelProperty(value = "纬度")
    private Double lat;
    @ApiModelProperty(value = "经度")
    private Double lnt;
    @ApiModelProperty(value = "用户", hidden = true)
    private LoginUserInfo loginUserInfo;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/PlatformBooksApplyDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
package com.doumee.dao.web.reqeust;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2023/12/7 11:19
 */
@Data
@Api(tags = "入园预约申请信息" )
public class PlatformBooksApplyDTO {
    @ApiModelProperty(value = "合同号")
    private String contractNum;
    @ApiModelProperty(value = "预计到场时间")
    private Date arriveDate;
    @ApiModelProperty(value = "入库类型 0整托盘 1件烟", example = "1")
    private Integer inType;
    @ApiModelProperty(value = "总运输量", example = "1")
    private BigDecimal totalNum;
    @ApiModelProperty(value = "前车牌号")
    private String carCodeFront;
    @ApiModelProperty(value = "后车牌号")
    private String carCodeBack;
    @ApiModelProperty(value = "司机编码", example = "1")
    private Integer driverId;
    @ApiModelProperty(value = "司机姓名")
    private String driverName;
    @ApiModelProperty(value = "车牌号")
    private String plateNum;
    @ApiModelProperty(value = "司机手机号")
    private String driverPhone;
    @ApiModelProperty(value = "准运证照片")
    private String transportImg;
    @ApiModelProperty(value = "入园原因")
    private String inReason;
    @ApiModelProperty(value = "入园原因主键")
    private Integer reasonId;
    @ApiModelProperty(value = "用户主键", hidden = true)
    private Integer userId;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/PlatformBooksCheckNumDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
package com.doumee.dao.web.reqeust;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2023/12/7 11:19
 */
@Data
@Api(tags = "入园预约申请信息验证可用数量" )
public class PlatformBooksCheckNumDTO {
    @ApiModelProperty(value = "预计到场时间")
    private Date arriveDate;
    @ApiModelProperty(value = "入园原因主键")
    private Integer reasonId;
    @ApiModelProperty(value = "总运输量", example = "1")
    private BigDecimal totalNum;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/RevokeDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.doumee.dao.web.reqeust;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2024/8/15 10:49
 */
@Data
public class RevokeDTO {
    @ApiModelProperty(value = "记录主键")
    private Integer id;
    @ApiModelProperty(value = "描述")
    private String info;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/SignInDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
package com.doumee.dao.web.reqeust;
import com.doumee.core.model.LoginUserInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2023/12/7 11:19
 */
@Data
@Api(tags = "入园签到" )
public class SignInDTO {
    @ApiModelProperty(value = "任务主键")
    private Integer jobId;
    @ApiModelProperty(value = "签到类型: 0=app签到 1=扫码签到")
    private Integer signType;
    @ApiModelProperty(value = "签到二维码值")
    private String qrCodeKey;
    @ApiModelProperty(value = "纬度")
    private Double lat;
    @ApiModelProperty(value = "经度")
    private Double lnt;
    @ApiModelProperty(value = "用户", hidden = true)
    private LoginUserInfo loginUserInfo;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/DriverHomeVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.doumee.dao.web.response;
import com.doumee.dao.business.model.PlatformBooks;
import com.doumee.dao.business.model.PlatformJob;
import com.doumee.dao.system.model.Multifile;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel("司机首页")
public class DriverHomeVO {
    @ApiModelProperty(value = "轮播图")
    private List<Multifile> multifileList;
    @ApiModelProperty(value = "月台任务列表")
    private List<PlatformJob> platformJobList;
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBooksService.java
@@ -1,8 +1,14 @@
package com.doumee.service.business;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.PlatformBooks;
import com.doumee.dao.web.reqeust.PlatformBooksApplyDTO;
import com.doumee.dao.web.reqeust.PlatformBooksCheckNumDTO;
import com.doumee.dao.web.reqeust.RevokeDTO;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -94,4 +100,34 @@
     * @return long
     */
    long count(PlatformBooks platformBooks);
    /**
     * æŸ¥è¯¢å½“日可预约数量
     * @param platformBooksCheckNumDTO
     * @return
     */
    BigDecimal checkNum(PlatformBooksCheckNumDTO platformBooksCheckNumDTO);
    /**
     * ç‰©æµè½¦é¢„约
     * @param platformBooksApplyDTO
     */
    Integer apply(PlatformBooksApplyDTO platformBooksApplyDTO);
    /**
     * é¢„约详情
     * @param id
     * @return
     */
    PlatformBooks getDetail(Integer id,Integer memberId);
    /**
     * å–消物流车预约
     * @param revokeDTO
     * @param loginUserInfo
     */
    void revoke(RevokeDTO revokeDTO, LoginUserInfo loginUserInfo);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
@@ -3,6 +3,10 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.PlatformJob;
import com.doumee.dao.web.reqeust.JobDetailDTO;
import com.doumee.dao.web.reqeust.SignInDTO;
import com.doumee.dao.web.response.DriverHomeVO;
import java.util.List;
/**
@@ -94,4 +98,21 @@
     * @return long
     */
    long count(PlatformJob platformJob);
    DriverHomeVO getDriverHome(Integer memberId);
    /**
     * è·ç¦»ç­¾åˆ°
     * @param signInDTO
     */
    void signIn(SignInDTO signInDTO);
    /**
     * ä»»åŠ¡è¯¦æƒ…
     * @param jobDetailDTO
     * @return
     */
    PlatformJob getDetail(JobDetailDTO jobDetailDTO);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -89,6 +89,12 @@
    private CarUseBookJoinMapper carUseBookJoinMapper;
    @Autowired
    private NoticesJoinMapper noticesJoinMapper;
    @Autowired
    private PlatformBooksMapper platformBooksMapper;
    @Autowired
    private PlatformJobMapper platformJobMapper;
    @Autowired
    private PlatformLogMapper platformLogMapper;
@@ -1340,7 +1346,29 @@
                Constants.approveObjectType.unCityUseCar)){
            this.updDriver(approveDTO,approve,true);
        }else if(approveDTO.getObjType().equals(Constants.approveObjectType.logisticsCarUse)){
            //TODO  ç‰©æµè½¦é¢„约
            //物流车预约
            PlatformBooks platformBooks = platformBooksMapper.selectById(approveDTO.getObjId());
            if(Objects.isNull(platformBooks)){
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到物流车预约记录");
            }
            platformBooks.setStatus(approveDTO.getStatus());
            platformBooks.setEditDate(new Date());
            platformBooks.setEditor(approveDTO.getLoginUserInfo().getMemberId());
            //生成任务记录
            PlatformJob platformJob = platformBooks.toPlatformJob();
            platformJobMapper.insert(platformJob);
            platformBooks.setJobId(platformJob.getId());
            platformBooksMapper.updateById(platformBooks);
            //生成任务操作记录
            PlatformLog platformLog = new PlatformLog();
            platformLog.setCreateDate(new Date());
            platformLog.setJobId(platformJob.getId());
            platformLog.setIsdeleted(Constants.ZERO);
            platformLog.setObjType(Constants.ZERO);
            platformLog.setObjId(platformJob.getId().toString());
            platformLog.setAfterContent(JSONObject.toJSONString(platformJob));
            platformLogMapper.insert(platformLog);
        }else{
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -2004,6 +2004,7 @@
        systemUser.setSalt(salt);
        systemUser.setPassword(member.getPassward());
        systemUser.setStatus(Constants.ZERO);
        systemUser.setSource(Constants.TWO);
        systemUserMapper.insert(systemUser);
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
@@ -1,20 +1,44 @@
package com.doumee.service.business.impl;
import cn.emay.sdk.util.StringUtil;
import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.ApproveTemplMapper;
import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.PlatformBooksMapper;
import com.doumee.dao.business.model.PlatformBooks;
import com.doumee.dao.business.PlatformReasonMapper;
import com.doumee.dao.business.join.ApproveJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.vo.ApproveDataVO;
import com.doumee.dao.web.reqeust.PlatformBooksApplyDTO;
import com.doumee.dao.web.reqeust.PlatformBooksCheckNumDTO;
import com.doumee.dao.web.reqeust.RevokeDTO;
import com.doumee.service.business.ApproveService;
import com.doumee.service.business.PlatformBooksService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.bcel.Const;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * æœˆå°å…¥å›­é¢„约信息表Service实现
@@ -27,8 +51,29 @@
    @Autowired
    private PlatformBooksMapper platformBooksMapper;
    @Autowired
    private ApproveTemplMapper approveTemplMapper;
    @Autowired
    private PlatformReasonMapper platformReasonMapper;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private ApproveService approveService;
    @Autowired
    private MemberMapper memberMapper;
    @Autowired
    private ApproveJoinMapper approveJoinMapper;
    @Override
    public Integer create(PlatformBooks platformBooks) {
        platformBooksMapper.insert(platformBooks);
        return platformBooks.getId();
    }
@@ -111,7 +156,8 @@
                .eq(pageWrap.getModel().getDriverId() != null, PlatformBooks::getDriverId, pageWrap.getModel().getDriverId())
                .eq(pageWrap.getModel().getDriverName() != null, PlatformBooks::getDriverName, pageWrap.getModel().getDriverName())
                .eq(pageWrap.getModel().getPlateNum() != null, PlatformBooks::getPlateNum, pageWrap.getModel().getPlateNum())
                .eq(pageWrap.getModel().getDrivierPhone() != null, PlatformBooks::getDrivierPhone, pageWrap.getModel().getDrivierPhone())
                .eq(pageWrap.getModel().getDriverPhone() != null, PlatformBooks::getDriverPhone, pageWrap.getModel().getDriverPhone())
                .ge(pageWrap.getModel().getQueryDate() != null, PlatformBooks::getCreateDate, pageWrap.getModel().getQueryDate())
        ;
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
@@ -128,4 +174,159 @@
        QueryWrapper<PlatformBooks> wrapper = new QueryWrapper<>(platformBooks);
        return platformBooksMapper.selectCount(wrapper);
    }
    @Override
    public BigDecimal checkNum(PlatformBooksCheckNumDTO platformBooksCheckNumDTO){
        if(Objects.isNull(platformBooksCheckNumDTO)
        || Objects.isNull(platformBooksCheckNumDTO.getTotalNum())
        || Objects.isNull(platformBooksCheckNumDTO.getReasonId())
        || Objects.isNull(platformBooksCheckNumDTO.getArriveDate())){
            return BigDecimal.ZERO;
        }
        //查询每日配置的总预约量
        PlatformReason platformReason = platformReasonMapper.selectById(platformBooksCheckNumDTO.getReasonId());
        if(Objects.isNull(platformReason)|| Constants.equalsInteger(platformReason.getIsdeleted(),Constants.ZERO)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"入园原因信息异常,请刷新重试");
        }
        List<PlatformBooks> platformBooksList = platformBooksMapper.selectList(new QueryWrapper<PlatformBooks>().lambda()
                .eq(PlatformBooks::getReasonId,platformBooksCheckNumDTO.getReasonId())
                .ne(PlatformBooks::getStatus,Constants.THREE)
                .like(PlatformBooks::getCreateDate, DateUtil.getDate(platformBooksCheckNumDTO.getArriveDate(),"yyyy-MM-dd"))
        );
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformBooksList)){
           BigDecimal countNum =  platformBooksList.stream().map(m->m.getTotalNum()).reduce(BigDecimal.ZERO,BigDecimal::add);
           if(countNum.compareTo(platformReason.getLimitNum())>=Constants.ZERO){
               return BigDecimal.ZERO;
           }
           return platformReason.getLimitNum().subtract(countNum);
        }
        return platformReason.getLimitNum();
    }
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public Integer apply(PlatformBooksApplyDTO platformBooksApplyDTO){
        if(Objects.isNull(platformBooksApplyDTO)
            || StringUtils.isBlank(platformBooksApplyDTO.getContractNum())
            || Objects.isNull(platformBooksApplyDTO.getArriveDate())
            || Objects.isNull(platformBooksApplyDTO.getInType())
            || Objects.isNull(platformBooksApplyDTO.getTotalNum())
            || StringUtils.isBlank(platformBooksApplyDTO.getCarCodeFront())
            || StringUtils.isBlank(platformBooksApplyDTO.getCarCodeBack())
            || Objects.isNull(platformBooksApplyDTO.getDriverId())
            || StringUtils.isBlank(platformBooksApplyDTO.getDriverPhone())
            || StringUtils.isBlank(platformBooksApplyDTO.getDriverName())
            || StringUtils.isBlank(platformBooksApplyDTO.getTransportImg())
            || Objects.isNull(platformBooksApplyDTO.getReasonId())
            || StringUtils.isBlank(platformBooksApplyDTO.getInReason())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        PlatformReason platformReason = platformReasonMapper.selectById(platformBooksApplyDTO.getReasonId());
        if(Objects.isNull(platformReason)|| Constants.equalsInteger(platformReason.getIsdeleted(),Constants.ZERO)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"入园原因信息异常,请刷新重试");
        }
        ApproveTempl approveTempl = approveTemplMapper.selectOne(new QueryWrapper<ApproveTempl>().lambda()
                .eq(ApproveTempl::getIsdeleted,Constants.ZERO)
                .eq(ApproveTempl::getObjId,platformReason.getId())
                .last(" limit 1")
        );
        if(Objects.isNull(approveTempl)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未配置审批流,请联系管理员");
        }
        if(Constants.equalsInteger(platformBooksApplyDTO.getUserId(),platformBooksApplyDTO.getDriverId())){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"人员信息匹配错误");
        }
        if(Objects.nonNull(platformReason.getLimitNum())&&platformReason.getLimitNum().compareTo(platformBooksApplyDTO.getTotalNum())>0){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"超出入园申请线质量");
        }
        PlatformBooks platformBooks = new PlatformBooks();
        BeanUtils.copyProperties(platformBooksApplyDTO,platformBooks);
        platformBooks.setCreateDate(new Date());
        platformBooks.setIsdeleted(Constants.ZERO);
        platformBooks.setStatus(Constants.ZERO);
        platformBooks.setDriverId(platformBooksApplyDTO.getUserId());
        platformBooksMapper.insert(platformBooks);
        //创建审批流信息
        approveService.createApproveFlow(5,platformBooks.getId(),platformBooks.getDriverId());
        return platformBooks.getId();
    }
    @Override
    public PlatformBooks getDetail(Integer id,Integer memberId){
        PlatformBooks model = platformBooksMapper.selectById(id);
        if(Objects.isNull(model)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到预约记录");
        }
        ApproveDataVO approveDataVO = approveService.arrangeApprovedData(id,
               5,
                memberId);
        model.setApproveDateVO(approveDataVO);
        List<Approve> approveList = approveDataVO.getApproveList();
        if(Constants.equalsInteger(model.getStatus(),Constants.FOUR)){
            String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
                    +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
            Member member = memberMapper.selectById(model.getDriverId());
            Approve approve = new Approve();
            approve.setApproveType(Constants.ZERO);
            approve.setCreateDate(model.getCancelTime());
            approve.setTitle("撤销人");
            approve.setStatusInfo("已撤销");
            approve.setStatus(Constants.FOUR);
            approve.setType(Constants.ZERO);
            if(member!=null) {
                approve.setMemberName(member.getName());
                if (StringUtils.isNotBlank(member.getFaceImg())) {
                    approve.setFaceImg(path + member.getFaceImg());
                }
            }
            approve.setCheckInfo(model.getCancelInfo());
            approve.setCheckDate(model.getCancelTime());
            approveList.add(approve);
        }
        return model;
    }
    @Override
    public void revoke(RevokeDTO revokeDTO, LoginUserInfo loginUserInfo){
        if(Objects.isNull(revokeDTO)
                || Objects.isNull(revokeDTO.getId())
                || StringUtils.isBlank(revokeDTO.getInfo())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        PlatformBooks model = platformBooksMapper.selectById(revokeDTO.getId());
        if(Objects.isNull(model)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到预约记录");
        }
        if(!(Constants.equalsInteger(model.getStatus(),Constants.ZERO)||Constants.equalsInteger(model.getStatus(),Constants.ONE))){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"业务状态已流转,无法进行该操作");
        }
        model.setCancelUser(loginUserInfo.getId());
        model.setCancelInfo(revokeDTO.getInfo());
        model.setCancelTime(new Date());
        model.setStatus(Constants.FOUR);
        platformBooksMapper.updateById(model);
        //处理审批记录
        approveJoinMapper.update(null,new UpdateWrapper<Approve>()
                .lambda()
                .set(Approve::getIsdeleted,Constants.ONE)
                .set(Approve::getStatus,Constants.FOUR)
                .set(Approve::getCheckInfo,"物流车预约申请取消")
                .in(Approve::getStatus,Constants.ZERO,Constants.ONE)
                .eq(Approve::getObjType,Constants.approveObjectType.logisticsCarUse)
                .eq(Approve::getObjId,revokeDTO.getId())
        );
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
@@ -1,20 +1,39 @@
package com.doumee.service.business.impl;
import cn.hutool.crypto.asymmetric.Sign;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.PositionUtil;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.PlatformJobMapper;
import com.doumee.dao.business.PlatformMapper;
import com.doumee.dao.business.model.Platform;
import com.doumee.dao.business.model.PlatformBooks;
import com.doumee.dao.business.model.PlatformJob;
import com.doumee.dao.web.reqeust.JobDetailDTO;
import com.doumee.dao.web.reqeust.SignInDTO;
import com.doumee.dao.web.response.DriverHomeVO;
import com.doumee.service.business.PlatformJobService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * æœˆå°è°ƒåº¦ä½œä¸šä¿¡æ¯è¡¨Service实现
@@ -26,6 +45,13 @@
    @Autowired
    private PlatformJobMapper platformJobMapper;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private PlatformMapper platformMapper;
    @Override
    public Integer create(PlatformJob platformJob) {
@@ -178,4 +204,132 @@
        QueryWrapper<PlatformJob> wrapper = new QueryWrapper<>(platformJob);
        return platformJobMapper.selectCount(wrapper);
    }
    //TODO
    @Override
    public DriverHomeVO getDriverHome(Integer memberId){
        DriverHomeVO driverHomeVO = new DriverHomeVO();
        //TODO è½®æ’­å›¾
        List<PlatformJob> platformJobList =  platformJobMapper.selectList(new QueryWrapper<PlatformJob>()
                .lambda()
                .eq(PlatformJob::getDriverId,memberId)
//                        .like(PlatformJob::get)
                .orderByDesc(PlatformJob::getId));
        driverHomeVO.setPlatformJobList(platformJobList);
        return driverHomeVO;
    }
    /**
     * è·ç¦»ç­¾åˆ°
     * @param signInDTO
     */
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public void signIn(SignInDTO signInDTO){
        if(Objects.isNull(signInDTO)
            || Objects.isNull(signInDTO.getSignType())
            || Objects.isNull(signInDTO.getJobId())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        PlatformJob platformJob = platformJobMapper.selectById(signInDTO.getJobId());
        if(Objects.isNull(platformJob)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"业务状态已流转,请刷新查看");
        }
        if(Constants.equalsInteger(signInDTO.getSignType(),Constants.ZERO)){
            this.distanceSignIn(signInDTO,platformJob);
        }else if(Constants.equalsInteger(signInDTO.getSignType(),Constants.ONE)){
            this.sceneSignIn(signInDTO);
        }
        platformJob.setSignDate(new Date());
        platformJob.setSingType(Constants.ZERO);
        platformJob.setStatus(Constants.PlatformJobStatus.WAIT_CALL.getKey());
        platformJobMapper.updateById(platformJob);
    }
    public void distanceSignIn(SignInDTO signInDTO , PlatformJob platformJob){
        if(Objects.isNull(signInDTO.getLat())
                || Objects.isNull(signInDTO.getLnt())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"经纬度信息异常");
        }
        //获取签到点的经纬度
        Double lat = Double.parseDouble(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_LAT).getCode());
        Double lnt = Double.parseDouble(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_LNT).getCode());
        BigDecimal distance = new BigDecimal(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_DISTANCE).getCode());
        //获取2个点的距离Xç±³
        Double getDistanceDouble = PositionUtil.getDistance(signInDTO.getLnt(),signInDTO.getLat(),lnt,lat);
        //转换km
        BigDecimal getDistance = BigDecimal.valueOf(getDistanceDouble).divide(new BigDecimal(1000),2,BigDecimal.ROUND_HALF_UP);
        if(distance.compareTo(getDistance)<Constants.ZERO){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"超出可签到距离,可签到距离["+distance+"]公里]");
        }
        platformJob.setSignDistance(BigDecimal.valueOf(getDistanceDouble));
    }
    public void sceneSignIn(SignInDTO signInDTO){
        if( StringUtils.isNotBlank(signInDTO.getQrCodeKey())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        if(!signInDTO.getQrCodeKey().equals(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_QRCODE).getCode())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"二维码已过期,请刷新重试");
        }
    }
    @Override
    public PlatformJob getDetail(JobDetailDTO jobDetailDTO){
        if(Objects.isNull(jobDetailDTO)
        || Objects.isNull(jobDetailDTO.getJobId())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        PlatformJob platformJob  = platformJobMapper.selectById(jobDetailDTO.getJobId());
        if(Objects.isNull(platformJob)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())){
            //待签到 è®¡ç®—距离
            if(Objects.nonNull(jobDetailDTO.getLnt())&&Objects.nonNull(jobDetailDTO.getLat())){
                //获取签到点的经纬度
                Double lat = Double.parseDouble(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_LAT).getCode());
                Double lnt = Double.parseDouble(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_LNT).getCode());
                //获取2个点的距离Xç±³
                Double getDistanceDouble = PositionUtil.getDistance(jobDetailDTO.getLnt(),jobDetailDTO.getLat(),lnt,lat);
                //转换km
                BigDecimal getDistance = BigDecimal.valueOf(getDistanceDouble).divide(new BigDecimal(1000),2,BigDecimal.ROUND_HALF_UP);
                platformJob.setGetDistance(getDistance);
            }
        }else if( Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey())
                || Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.IN_WAIT.getKey())
        ){//查询排队情况
            Long lineUpNum =  platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
                    .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                    .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey()
                            ,Constants.PlatformJobStatus.IN_WAIT.getKey()
                            ,Constants.PlatformJobStatus.TRANSFERING.getKey())
                    .gt(PlatformJob::getSignDate,platformJob.getSignDate())
                    .like(PlatformJob::getArriveDate,DateUtil.getDate(platformJob.getArriveDate(),"yyyy-MM-dd")));
            platformJob.setLineUpNum(lineUpNum);
        }else if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){
            //作业月台信息
            Platform platform = platformMapper.selectById(platformJob.getPlatformId());
            if(Objects.nonNull(platform)){
                platformJob.setPlatformName(platform.getName());
            }
        }
        return platformJob;
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -246,7 +246,7 @@
        initWithVisitInfo(visits);
        updateProblemLog(visits,problemLog,member);
        //创建审批记录
//        createApprove(visits,visitMember);
        createApprove(visits,visitMember);
        return visits.getId();
    }