k94314517
2024-08-26 c29ce426a6ce314bc26a23cd92d226cc01825783
代码初始化
已修改25个文件
567 ■■■■ 文件已修改
server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/Constants.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/service/system/SystemLoginService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/PdaPlatformController.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/ApproveDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Approve.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ApproveTempl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java 4 ●●●● 补丁 | 查看 | 原始文档 | 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/PlatformBooksApplyDTO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/DriverHomeVO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ApproveService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java 62 ●●●●● 补丁 | 查看 | 原始文档 | 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 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java 205 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformReasonServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitReasonServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java
@@ -59,6 +59,7 @@
    public ApiResponse<String> login (@Validated @RequestBody LoginDTO dto, ServerWebExchange serverWebExchange) {
        try {
            ServerHttpRequest request = serverWebExchange.getRequest();
            dto.setCheckCode(true);
            LoginUserInfo user = systemLoginService.loginByPasswordNew(dto,request);
            String token = jwtTokenUtil.generateToken(user);
            return ApiResponse.success(token);
@@ -90,6 +91,24 @@
        }
    }
    @PreventRepeat(limit = 10, lockTime = 10000)
    @ApiOperation("司机登录")
    @PostMapping("/loginDriver")
    @LoginNoRequired
    public ApiResponse<String> loginDriver (@Validated @RequestBody LoginDTO dto, ServerWebExchange serverWebExchange) {
        try {
            ServerHttpRequest request = serverWebExchange.getRequest();
            dto.setCheckCode(false);
            LoginUserInfo user = systemLoginService.driverLogin(dto,request);
            String token = jwtTokenUtil.generateToken(user);
            return ApiResponse.success(token);
        }catch (BusinessException e){
            return ApiResponse.failed(e.getCode(),e.getMessage());
        }catch (Exception e){
            e.printStackTrace();
            return ApiResponse.failed(ResponseStatus.SERVER_ERROR);
        }
    }
    /**
     * 刷新JWT令牌,用旧的令牌换新的令牌
server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java
@@ -4,6 +4,7 @@
import com.doumee.dao.system.model.SystemPermission;
import com.doumee.dao.system.model.SystemRole;
import com.doumee.dao.system.model.SystemUser;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.beans.BeanUtils;
@@ -59,15 +60,19 @@
        loginUserInfo.setCompany(company);
        // 设置角色信息
        List<String> rs = new ArrayList<>();
        for (SystemRole role : roles) {
            rs.add(role.getCode());
        if(CollectionUtils.isNotEmpty(roles)){
            for (SystemRole role : roles) {
                rs.add(role.getCode());
            }
        }
        loginUserInfo.setSessionId(sessionId);
        loginUserInfo.setRoles(rs);
        // 设置权限信息
        List<String> pms = new ArrayList<>();
        for (SystemPermission permission : permissions) {
            pms.add(permission.getCode());
        if(CollectionUtils.isNotEmpty(permissions)){
            for (SystemPermission permission : permissions) {
                pms.add(permission.getCode());
            }
        }
        loginUserInfo.setPermissions(pms);
        return loginUserInfo;
server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -1,14 +1,16 @@
package com.doumee.core.utils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.doumee.core.model.LoginUserInfo;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import io.swagger.models.auth.In;
import org.apache.batik.util.Platform;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils;
import java.io.IOException;
import java.math.BigDecimal;
@@ -152,6 +154,11 @@
    // 超时预警配置
    public static final String TIMEOUT_WARNING = "TIMEOUT_WARNING";
    // FTP文件服务器资源访问地址
    //月台预约指南
    public static final String PLATFORM_BOOKING_TIPS = "PLATFORM_BOOKING_TIPS";
    //月台导览图
    public static final String PLATFORM_GUIDEMAP = "PLATFORM_GUIDEMAP";
    public static String getRandom6Num( ) {
        Random random = new Random();
@@ -453,6 +460,7 @@
    int cityUseCar = 3;//市内用车
    int unCityUseCar = 4;//市外用车
    int logisticsCarUse = 5;//物流车预约
    int reason = 6;//入园原因
}
@@ -466,6 +474,10 @@
    }else if(Constants.equalsInteger(approveType,Constants.approveObjectType.cityUseCar)
            ||Constants.equalsInteger(approveType,Constants.approveObjectType.unCityUseCar)){
        return Constants.noticesObjectType.useCar;
    }else if(Constants.equalsInteger(approveType,Constants.approveObjectType.logisticsCarUse)){
        return Constants.noticesObjectType.logisticsCarUse;
    }else if(Constants.equalsInteger(approveType, approveObjectType.reason)){
        return noticesObjectType.reason;
    }else {
        return Constants.noticesObjectType.system;
    }
@@ -481,6 +493,7 @@
    int dangerDeal = 3;//隐患处理
    int logisticsCarUse = 4;//物流车审批
    int system = 5;//系统消息
    int reason = 6;//入园原因
}
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -1823,14 +1823,6 @@
    // StringUtil.getNotNullStr(request.getParameter(strParamName));
    // return getDateByString(strStr);
    // }
    /**
     * 得到当前日期,格式yyyy-MM-dd。
     *
     * @return String 格式化的日期字符串
     */
    public static String getCurrDate() {
        return getFormattedDate(getDateByString(""));
    }
    /**
     * 得到当前日期,格式yyyy-MM-dd。
@@ -1897,6 +1889,17 @@
    }
    /**
     * 得到当前日期时间,格式为yyyy-MM-dd.
     *
     * @return String
     */
    public static String getCurrDate() {
        Timestamp date = new Timestamp(System.currentTimeMillis());
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        return formatter.format(date);
    }
    /**
     * 得到指定的日期,如一年三个月零九天后(以yyyy/MM/dd格式显示)参数为("yyyy/MM/dd",1,3,9)
     *
     * @param strFormat
server/system_service/src/main/java/com/doumee/service/system/SystemLoginService.java
@@ -23,6 +23,7 @@
    LoginUserInfo loginByPasswordNew (LoginDTO dto, ServerHttpRequest request);
    LoginUserInfo driverLogin(LoginDTO dto, ServerHttpRequest request);
    /**
     * 根据 openId登录
     * @param userId
server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
@@ -125,7 +125,7 @@
            loginLog.setOsInfo(Utils.User_Client.getOS(request));
        }
        loginLog.setServerIp(Utils.Server.getIP());
        if(isDebug == null  || !isDebug){
        if(isDebug == null  || !isDebug  && dto.getCheckCode()){
            // 校验验证码
            try {
                captchaService.check(dto.getUuid(), dto.getCode());
@@ -171,6 +171,43 @@
    }
    @Override
    public LoginUserInfo driverLogin(LoginDTO dto, ServerHttpRequest request) {
        SystemLoginLog loginLog = new SystemLoginLog();
        loginLog.setLoginUsername(dto.getUsername());
        loginLog.setLoginTime(new Date());
        loginLog.setSystemVersion(systemVersion);
        loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp()));
        if(request!=null&&request.getHeaders()!=null && request.getHeaders().size()>0){
            loginLog.setIp(Utils.User_Client.getIP(request));
            loginLog.setPlatform(Utils.User_Client.getPlatform(request));
            loginLog.setClientInfo(Utils.User_Client.getBrowser(request));
            loginLog.setOsInfo(Utils.User_Client.getOS(request));
        }
        loginLog.setServerIp(Utils.Server.getIP());
        // 根据用户名查询用户对象
        SystemUser queryDto = new SystemUser();
        queryDto.setUsername(dto.getUsername());
        queryDto.setDeleted(Boolean.FALSE);
        SystemUser user = systemUserService.findOne(queryDto);
        if (user == null) {
            throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
        }
        String pwd = Utils.Secure.encryptPassword(new String(dto.getPassword()), user.getSalt());
        // 比较密码
        if( !StringUtils.equals(pwd, user.getPassword())){
            throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
        }
        Company company = new Company();
        if(Objects.nonNull(user.getCompanyId())){
            company = companyMapper.selectById(user.getCompanyId());
        }
        LoginUserInfo userInfo = LoginUserInfo.from(user, null, null,company,null);
        return  userInfo;
    }
    /**
     * 内部人员 与 司机 根据code查询openId后进行登录接口
     * @return
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java
@@ -9,6 +9,7 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.Platform;
import com.doumee.service.business.PlatformJobService;
import com.doumee.service.business.PlatformService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -16,6 +17,7 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
 * @author 江蹄蹄
@@ -28,6 +30,9 @@
    @Autowired
    private PlatformService platformService;
    @Autowired
    private PlatformJobService platformJobService;
    @PreventRepeat
    @ApiOperation("新建")
@@ -77,6 +82,14 @@
        return ApiResponse.success(platformService.findPage(pageWrap));
    }
    @ApiOperation("根据月台组获取月台列表信息")
    @GetMapping("/listByGroupId")
    @CloudRequiredPermission("business:platform:query")
    public ApiResponse<List<Platform>> listByGroupId (@RequestParam Integer groupId, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        return ApiResponse.success(platformJobService.getPlatformList(groupId,this.getLoginUser(token)));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @CloudRequiredPermission("business:platform:exportExcel")
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java
@@ -1,17 +1,17 @@
package com.doumee.cloud.web;
import cn.hutool.http.useragent.Platform;
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.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.dao.business.model.PlatformBooks;
import com.doumee.dao.business.model.PlatformJob;
import com.doumee.dao.business.model.Visits;
import com.doumee.dao.business.model.*;
import com.doumee.dao.web.reqeust.*;
import com.doumee.dao.web.response.DriverHomeVO;
import com.doumee.dao.web.response.LineUpVO;
@@ -27,6 +27,7 @@
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
 * Created by IntelliJ IDEA.
@@ -52,13 +53,24 @@
    @Autowired
    private PlatformBooksService platformBooksService;
    @Autowired
    private PlatformReasonService platformReasonService;
    @ApiOperation("入园原因")
    @GetMapping("/platformReasonList")
    public ApiResponse<List<PlatformReason>> platformReasonList (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        List<PlatformReason> platformReasons = platformReasonService.findList(null);
        return ApiResponse.success(platformReasons);
    }
    @ApiOperation("司机首页信息")
    @GetMapping("/driverHome")
    public ApiResponse<DriverHomeVO> driverHome (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        DriverHomeVO driverHomeVO = platformJobService.getDriverHome(getLoginUser(token).getMemberId());
        DriverHomeVO driverHomeVO = platformJobService.getDriverHome(getLoginUser(token));
        return ApiResponse.success(driverHomeVO);
    }
    @ApiOperation("查询可预约量")
    @PostMapping("/checkSurplusNum")
@@ -69,14 +81,18 @@
    @ApiOperation("物流车预约")
    @PostMapping("/apply")
    public ApiResponse<Integer> apply (@RequestBody PlatformBooksApplyDTO platformBooksApplyDTO , @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        platformBooksApplyDTO.setUserId(getLoginUser(token).getMemberId());
        LoginUserInfo loginUserInfo = getLoginUser(token);
        platformBooksApplyDTO.setUserId(loginUserInfo.getMemberId());
        platformBooksApplyDTO.setDriverId(loginUserInfo.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) {
        LoginUserInfo loginUserInfo = this.getLoginUser(token);
        pageWrap.getModel().setQueryDate(DateUtil.getBeforDay(new Date(),30));
        pageWrap.getModel().setDriverPhone(loginUserInfo.getMobile());
        return ApiResponse.success(platformBooksService.findPage(pageWrap));
    }
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/PdaPlatformController.java
@@ -8,10 +8,7 @@
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.PlatformGroup;
import com.doumee.dao.business.model.PlatformJob;
import com.doumee.dao.business.model.PlatformShowParam;
import com.doumee.dao.business.model.*;
import com.doumee.dao.web.reqeust.*;
import com.doumee.dao.web.response.DriverHomeVO;
import com.doumee.dao.web.response.LineUpVO;
@@ -54,10 +51,8 @@
    @Autowired
    private PlatformShowParamService platformShowParamService;
    @Autowired
    private PlatformService platformService;
    @ApiOperation("获取月台组信息")
    @ApiImplicitParams({
@@ -69,9 +64,16 @@
    }
    @ApiOperation("更新月台配置信息")
    @GetMapping("/updUserPlatformConfig")
    @PostMapping("/updUserPlatformConfig")
    public ApiResponse  updUserPlatformConfig (@RequestBody List<Integer> ids, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        platformShowParamService.updUserConfig(ids,getLoginUser(token));
        return ApiResponse.success("操作成功");
    }
    @ApiOperation("修改禁启用状态")
    @PostMapping("/updPlatformStatus")
    public ApiResponse  updPlatformStatus (@RequestBody Platform platform, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        platformService.updateStatusById(platform);
        return ApiResponse.success("操作成功");
    }
@@ -131,9 +133,6 @@
        platformJobService.platformInPark(jobOperateDTO);
        return ApiResponse.success("操作成功");
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/ApproveDTO.java
@@ -18,7 +18,7 @@
    @ApiModelProperty(value = "关联业务主键")
    private Integer objId;
    @ApiModelProperty(value = "关联业务类型:0非施工人员访客申请 1非施工人员访客申请 2访客报备 3公车市内用车 4公车室外用车 5市公司物流车预约")
    @ApiModelProperty(value = "关联业务类型:0非施工人员访客申请 1非施工人员访客申请 2访客报备 3公车市内用车 4公车室外用车 5市公司物流车预约 6入园预约")
    private Integer objType;
    @ApiModelProperty(value = "2审批通过 3审批未通过")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Approve.java
@@ -117,8 +117,8 @@
    @ExcelColumn(name="是否修改目的地 0否 1是")
    private Integer addrParam;
    @ApiModelProperty(value = "关联业务类型:0非施工人员访客申请 1非施工人员访客申请 2访客报备 3公车市内用车 4公车室外用车 5市公司物流车预约", example = "1")
    @ExcelColumn(name="关联业务类型:0非施工人员访客申请 1非施工人员访客申请 2访客报备 3公车市内用车 4公车室外用车 5市公司物流车预约")
    @ApiModelProperty(value = "关联业务类型:0非施工人员访客申请 1非施工人员访客申请 2访客报备 3公车市内用车 4公车室外用车 5市公司物流车预约  6入园原因", example = "1")
    @ExcelColumn(name="关联业务类型:0非施工人员访客申请 1非施工人员访客申请 2访客报备 3公车市内用车 4公车室外用车 5市公司物流车预约  6入园原因")
    private Integer objType;
    @ApiModelProperty(value = "类型 0审批 1抄送", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ApproveTempl.java
@@ -52,8 +52,8 @@
    @ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "名称 0非施工人员访客申请 1施工人员访客申请 2访客报备 3公车市内用车 4公车室外用车 5市公司物流车预约", example = "1")
    @ExcelColumn(name="名称 0非施工人员访客申请 1施工人员访客申请 2访客报备 3公车市内用车 4公车室外用车 5市公司物流车预约")
    @ApiModelProperty(value = "名称 0非施工人员访客申请 1施工人员访客申请 2访客报备 3公车市内用车 4公车室外用车 5市公司物流车预约 6入园原因", example = "1")
    @ExcelColumn(name="名称 0非施工人员访客申请 1施工人员访客申请 2访客报备 3公车市内用车 4公车室外用车 5市公司物流车预约 6入园原因")
    private Integer type;
    @ApiModelProperty(value = "名称")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java
@@ -136,6 +136,10 @@
    @TableField(exist = false)
    private String queryDate;
    @ApiModelProperty(value = "图片前缀")
    @TableField(exist = false)
    private String prefixUrl;
    @ApiModelProperty(value = "审批信息数据")
    @TableField(exist = false)
    private ApproveDataVO approveDateVO;
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
@@ -264,7 +264,15 @@
    @ApiModelProperty(value = "前方排队数量", example = "1")
    @TableField(exist = false)
    private Long lineUpNum;
    private Integer lineUpNum;
    @ApiModelProperty(value = "预计等待时间", example = "1")
    @TableField(exist = false)
    private String waitTime;
    @ApiModelProperty(value = "预计完成时间", example = "1")
    @TableField(exist = false)
    private String finishTimeStr;
    @ApiModelProperty(value = "关联月台组编码(关联platform_group表)", example = "1")
    @TableField(exist = false)
@@ -278,6 +286,9 @@
    @TableField(exist = false)
    private BigDecimal getDistance;
    @ApiModelProperty(value = "月台作业效率(万支/小时)", hidden = true)
    @TableField(exist = false)
    private BigDecimal workRate;
    @ApiModelProperty(value = "业务触发时间  时间")
    @TableField(exist = false)
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/PlatformBooksApplyDTO.java
@@ -19,6 +19,8 @@
@Api(tags = "入园预约申请信息" )
public class PlatformBooksApplyDTO {
    @ApiModelProperty(value = "主键 - 修改使用")
    private Integer id;
    @ApiModelProperty(value = "合同号")
    private String contractNum;
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/DriverHomeVO.java
@@ -19,4 +19,11 @@
    @ApiModelProperty(value = "月台任务列表")
    private List<PlatformJob> platformJobList;
    @ApiModelProperty(value = "预约指南")
    private String bookingTips;
    @ApiModelProperty(value = "园区导览图")
    private String reservationMap;
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ApproveService.java
@@ -112,6 +112,8 @@
    void createApproveFlow(Integer tempType,Integer businessId,Integer createMemberId);
    void createApproveForPlatfrom(Integer tempId,Integer businessId,Integer createMemberId);
    ApproveDataVO arrangeApprovedData(Integer businessId, Integer businessType, Integer memberId);
    void approved(ApproveDTO approveDTO);
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
@@ -1,7 +1,9 @@
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.Platform;
import com.doumee.dao.business.model.PlatformJob;
import com.doumee.dao.web.reqeust.JobDetailDTO;
import com.doumee.dao.web.reqeust.JobOperateDTO;
@@ -102,7 +104,7 @@
     */
    long count(PlatformJob platformJob);
    DriverHomeVO getDriverHome(Integer memberId);
    DriverHomeVO getDriverHome(LoginUserInfo loginUserInfo);
    /**
     * 距离签到
@@ -172,4 +174,12 @@
     */
    void finishWork(JobOperateDTO jobOperateDTO);
    /**
     * 获取月台下的任务信息
     * @param groupId
     * @param loginUserInfo
     * @return
     */
    List<Platform> getPlatformList(Integer groupId, LoginUserInfo loginUserInfo);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -31,6 +31,7 @@
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.swagger.models.auth.In;
import javafx.application.Platform;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.xpath.operations.Bool;
@@ -388,6 +389,52 @@
    }
    @Override
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public void createApproveForPlatfrom(Integer tempId,Integer businessId,Integer createMemberId){
        //查询处理模板
        ApproveTempl approveTempl = approveTemplMapper.selectById(tempId);
        if(Objects.isNull(approveTempl)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到审批流配置模板");
        }
        //查询配置流程
        List<ApproveParam> approveParamAllList = approveParamMapper.selectList(new QueryWrapper<ApproveParam>()
                .lambda().eq(ApproveParam::getIsdeleted,Constants.ZERO)
                .eq(ApproveParam::getTemplId,approveTempl.getId())
                .orderByAsc(ApproveParam::getType)
                .orderByAsc(ApproveParam::getLevel)
        );
        if(Objects.isNull(approveParamAllList)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未配置审批流程");
        }
        //审批配置
        List<ApproveParam> approveParamList = approveParamAllList.stream().filter(i->i.getType().equals(Constants.ZERO)).collect(Collectors.toList());
        if(Objects.isNull(approveParamList)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未配置审批流程");
        }
        List<ApproveParam> approveCopyList = approveParamAllList.stream().filter(i->i.getType().equals(Constants.ONE)).collect(Collectors.toList());
        Member createMember = memberMapper.selectById(createMemberId);
        if(Objects.isNull(createMember)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"申请人组织信息异常");
        }
        List<Approve> approveList = new ArrayList<>();
        this.organizeApproveData(approveTempl,approveParamList,createMember,businessId,approveList);
        if(CollectionUtils.isEmpty(approveList)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"审批流配置错误");
        }
        //处理抄送数据
        if(CollectionUtils.isNotEmpty(approveCopyList)){
            this.organizeApproveCopyData(approveTempl,approveCopyList,businessId,approveList);
        }
        approveJoinMapper.insert(approveList);
    }
    /**
     * 组织审批流数据
     * @param approveTempl
@@ -555,8 +602,17 @@
            jsonMap.put("eTime", "结束时间:" + DateUtil.DateToStr(carUseBook.getEndTime() , "yyyy-MM-dd HH:mm"));
            jsonMap.put("usrNum", StringUtils.isBlank(carUseBook.getMemberIds())?"乘车人数: 0人": "乘车人数: " +carUseBook.getMemberIds().split(",").length +"人");
            jsonMap.put("mdd", StringUtils.isBlank(carUseBook.getAddr())?"目的地: - ": "目的地:" +carUseBook.getAddr());
        }else {
            throw new BusinessException(ResponseStatus.NOT_ALLOWED);
        }else if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.reason)){
            //物流车预约
            PlatformBooks platformBooks = platformBooksMapper.selectById(businessId);
            if(Objects.isNull(platformBooks)){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未查询到业务数据信息");
            }
            title = "【物流车入园预约】申请人 - " + platformBooks.getDriverName();
            jsonMap.put("inType", "入库类型:"+(Constants.equalsInteger(platformBooks.getInType(),Constants.ZERO)?"整托盘":"件烟"));
            jsonMap.put("totalNum", "总运输量:"+platformBooks.getTotalNum()+"万支");
            jsonMap.put("arriveDate", "到场时间:" + DateUtil.DateToStr(platformBooks.getArriveDate() , "yyyy-MM-dd HH:mm"));
            jsonMap.put("carNum", "车牌照:"+platformBooks.getCarCodeFront());
        }
        return title;
    }
@@ -1345,7 +1401,7 @@
        }else if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
                Constants.approveObjectType.unCityUseCar)){
            this.updDriver(approveDTO,approve,true);
        }else if(approveDTO.getObjType().equals(Constants.approveObjectType.logisticsCarUse)){
        }else if(approveDTO.getObjType().equals(Constants.approveObjectType.reason)){
            //物流车预约
            PlatformBooks platformBooks = platformBooksMapper.selectById(approveDTO.getObjId());
            if(Objects.isNull(platformBooks)){
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -2002,6 +2002,7 @@
        systemUser.setUsername(registerDriverDTO.getPhone());
        systemUser.setRealname(registerDriverDTO.getName());
        systemUser.setMemberId(member.getId());
        systemUser.setMobile(registerDriverDTO.getPhone());
        systemUser.setSalt(salt);
        systemUser.setPassword(member.getPassward());
        systemUser.setStatus(Constants.ZERO);
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
@@ -186,7 +186,7 @@
        }
        //查询每日配置的总预约量
        PlatformReason platformReason = platformReasonMapper.selectById(platformBooksCheckNumDTO.getReasonId());
        if(Objects.isNull(platformReason)|| Constants.equalsInteger(platformReason.getIsdeleted(),Constants.ZERO)){
        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()
@@ -225,23 +225,15 @@
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        PlatformReason platformReason = platformReasonMapper.selectById(platformBooksApplyDTO.getReasonId());
        if(Objects.isNull(platformReason)|| Constants.equalsInteger(platformReason.getIsdeleted(),Constants.ZERO)){
        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")
        );
        ApproveTempl approveTempl = approveTemplMapper.selectById(platformReason.getId());
        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(),"超出入园申请线质量");
        if(!Constants.equalsInteger(approveTempl.getIsdeleted(),Constants.ZERO)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"审批流已停用,请联系管理员");
        }
        PlatformBooks platformBooks = new PlatformBooks();
        BeanUtils.copyProperties(platformBooksApplyDTO,platformBooks);
@@ -252,9 +244,45 @@
        platformBooksMapper.insert(platformBooks);
        //创建审批流信息
        approveService.createApproveFlow(5,platformBooks.getId(),platformBooks.getDriverId());
        approveService.createApproveForPlatfrom(platformReason.getApproveTemplId(),platformBooks.getId(),platformBooks.getDriverId());
        return platformBooks.getId();
    }
//    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public Integer edit(PlatformBooksApplyDTO platformBooksApplyDTO){
        if(Objects.isNull(platformBooksApplyDTO)
                || Objects.isNull(platformBooksApplyDTO.getId())
                || 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);
        }
        PlatformBooks platformBooks = platformBooksMapper.selectById(platformBooksApplyDTO.getId());
        if(Objects.isNull(platformBooks)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(!Constants.equalsInteger(platformBooks.getStatus(),Constants.ZERO)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"业务状态已流转");
        }
        BeanUtils.copyProperties(platformBooksApplyDTO,platformBooks);
        platformBooks.setEditDate(new Date());
        platformBooksMapper.insert(platformBooks);
        return platformBooks.getId();
    }
    @Override
@@ -263,8 +291,12 @@
        if(Objects.isNull(model)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到预约记录");
        }
        String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +
                systemDictDataBiz.queryByCode(Constants.FTP,Constants.PLATFORM).getCode();
        model.setPrefixUrl(prefixUrl);
        ApproveDataVO approveDataVO = approveService.arrangeApprovedData(id,
               5,
               6,
                memberId);
        model.setApproveDateVO(approveDataVO);
        List<Approve> approveList = approveDataVO.getApproveList();
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
@@ -6,19 +6,24 @@
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.PlatformGroupMapper;
import com.doumee.dao.business.PlatformShowParamMapper;
import com.doumee.dao.business.join.PlatformJobJoinMapper;
import com.doumee.dao.business.join.PlatformJoinMapper;
import com.doumee.dao.business.model.Platform;
import com.doumee.dao.business.model.PlatformGroup;
import com.doumee.dao.business.model.PlatformJob;
import com.doumee.dao.business.model.PlatformShowParam;
import com.doumee.service.business.PlatformGroupService;
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 com.doumee.service.business.PlatformJobService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.java.Log;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -44,6 +49,9 @@
    @Autowired
    private PlatformShowParamMapper platformShowParamMapper;
    @Autowired
    private PlatformJobJoinMapper platformJobJoinMapper;
    @Override
    public Integer create(PlatformGroup platformGroup) {
@@ -206,7 +214,6 @@
                        .selectAll(Platform.class)
                        .select(" ( select count(1) from platform_job pj where t.id = pj.PLATFORM_ID and pj.STATUS = "+Constants.PlatformJobStatus.WORKING.getKey()+" ) as workStatus ")
                        .eq(Platform::getIsdeleted, Constants.ZERO)
                        .eq(Platform::getStatus, Constants.ZERO)
                        .eq(Objects.nonNull(queryType)&&!Constants.equalsInteger(queryType,Constants.ZERO),Platform::getStatus,Constants.ZERO)
        );
        //处理我的月台信息 是否配置隐藏
@@ -240,4 +247,7 @@
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
@@ -4,6 +4,7 @@
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;
@@ -12,6 +13,7 @@
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.*;
import com.doumee.dao.business.join.PlatformJobJoinMapper;
import com.doumee.dao.business.join.PlatformJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.web.reqeust.JobDetailDTO;
import com.doumee.dao.web.reqeust.JobOperateDTO;
@@ -33,6 +35,7 @@
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -58,8 +61,9 @@
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private PlatformMapper platformMapper;
    private PlatformJoinMapper platformJoinMapper;
    @Autowired
    private PlatformLogMapper platformLogMapper;
@@ -69,6 +73,12 @@
    @Autowired
    private PlatformWmsDetailMapper platformWmsDetailMapper;
    @Autowired
    private PlatformGroupMapper platformGroupMapper;
    @Autowired
    private PlatformShowParamMapper platformShowParamMapper;
    @Override
@@ -131,9 +141,13 @@
    @Override
    public PageData<PlatformJob> findPage(PageWrap<PlatformJob> pageWrap) {
        IPage<PlatformJob> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<PlatformJob> queryWrapper = new QueryWrapper<>();
        MPJLambdaWrapper<PlatformJob> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        queryWrapper.lambda()
        queryWrapper
                .selectAll(PlatformJob.class)
                .selectAs(Platform::getName,PlatformJob::getPlatformName)
                .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate)
                .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
                .eq(pageWrap.getModel().getId() != null, PlatformJob::getId, pageWrap.getModel().getId())
                .eq(pageWrap.getModel().getCreator() != null, PlatformJob::getCreator, pageWrap.getModel().getCreator())
                .ge(pageWrap.getModel().getCreateDate() != null, PlatformJob::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
@@ -216,13 +230,18 @@
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        PageData<PlatformJob> pageData = PageData.from(platformJobMapper.selectPage(page, queryWrapper));
        pageData.getRecords().forEach(i->{
       IPage<PlatformJob> platformJobIPage = platformJobJoinMapper.selectJoinPage(page,PlatformJob.class,queryWrapper);
        platformJobIPage.getRecords().forEach(i->{
            i.dealTime();
            this.getWmsJobData(i);
        });
        return pageData;
        return PageData.from(platformJobIPage);
//        PageData<PlatformJob> pageData = PageData.from(platformJobMapper.selectPage(page, queryWrapper));
//        pageData.getRecords().forEach(i->{
//            i.dealTime();
//            this.getWmsJobData(i);
//        });
//        return pageData;
    }
@@ -250,12 +269,60 @@
                platformWmsJob.setPlatformWmsDetailList(platformWmsDetailList);
                platformJob.setPlatformWmsJob(platformWmsJob);
            }
        }
        }
    }
    public void queryWaitNum(PlatformJob platformJob){
        if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey())){
            //查询前方排队数量
            List<PlatformJob> lineUpNum =  platformJobMapper.selectList(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())
                    .eq(PlatformJob::getPlatformGroupId,platformJob.getPlatformGroupId())
                    .like(PlatformJob::getArriveDate,DateUtil.getDate(platformJob.getArriveDate(),"yyyy-MM-dd")));
            platformJob.setLineUpNum(lineUpNum.size());
            BigDecimal sumWorkRate = platformJob.getTotalNum();
            for (PlatformJob linePlatformJob:lineUpNum) {
                this.getWmsJobData(linePlatformJob);
                sumWorkRate = sumWorkRate.add(linePlatformJob.getTotalNum());
            }
            //计算预计等待时间
            List<Platform> platformList = platformJoinMapper.selectList(new QueryWrapper<Platform>().lambda().eq(Platform::getIsdeleted,Constants.ZERO).eq(Platform::getGroupId,platformJob.getPlatformGroupId()));
            BigDecimal workRate = platformList.stream().map(m->m.getWorkRate()).reduce(BigDecimal.ZERO,BigDecimal::add);
            if(sumWorkRate.compareTo(BigDecimal.ZERO) == Constants.ZERO|| workRate.compareTo(BigDecimal.ZERO)  == Constants.ZERO ){
                BigDecimal sumMinute = sumWorkRate.divide(workRate,1, RoundingMode.HALF_DOWN).multiply(BigDecimal.valueOf(60L));
                Integer sumMinuteInteger = sumMinute.intValue();
                Integer hours = sumMinuteInteger/60;
                Integer minus = sumMinuteInteger%60;
                String  waitTime = "预计等待:";
                if(!Constants.equalsInteger(hours,Constants.ZERO)){
                    waitTime = waitTime + hours + "小时";
                }
                if(!Constants.equalsInteger(hours,Constants.ZERO)){
                    waitTime = waitTime + minus + "分钟";
                }
                platformJob.setWaitTime(waitTime);
            }
        }else if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){
            //查询最后开始任务的月台记录  日志表  因为存在异常挂起 转移 等问题
            PlatformLog platformLog = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda()
                    .eq(PlatformLog::getJobId,platformJob.getId())
                    .eq(PlatformLog::getObjType,Constants.PlatformJobStatus.WORKING.getKey())
                    .orderByDesc(PlatformLog::getCreateDate)
                    .last(" limit 1")
            );
            if(Objects.nonNull(platformLog)){
                BigDecimal sumMinute = platformJob.getTotalNum().divide(platformJob.getWorkRate(),1, RoundingMode.HALF_DOWN).multiply(BigDecimal.valueOf(60L));
                platformJob.setFinishTimeStr(DateUtil.DateToStr(DateUtil.afterMinutesDate(platformLog.getCreateDate(),sumMinute.intValue()),"HH:mm"));
            }
        }
    }
    @Override
    public long count(PlatformJob platformJob) {
        QueryWrapper<PlatformJob> wrapper = new QueryWrapper<>(platformJob);
@@ -264,17 +331,34 @@
    //TODO
    @Override
    public DriverHomeVO getDriverHome(Integer memberId){
    public DriverHomeVO getDriverHome(LoginUserInfo loginUserInfo){
        DriverHomeVO driverHomeVO = new DriverHomeVO();
        //TODO 轮播图
        List<PlatformJob> platformJobList =  platformJobMapper.selectList(new QueryWrapper<PlatformJob>()
                .lambda()
                .eq(PlatformJob::getDriverId,memberId)
//                        .like(PlatformJob::get)
                .orderByDesc(PlatformJob::getId));
        List<PlatformJob> platformJobList =  platformJobJoinMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>()
                .selectAll(PlatformJob.class)
                .selectAs(Platform::getName,PlatformJob::getPlatformName)
                .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate)
                .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
                .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                .eq(PlatformJob::getDrivierPhone,loginUserInfo.getMobile())
                .like(PlatformJob::getArriveDate,DateUtil.getCurrDate())
                .orderByDesc(PlatformJob::getId)
        );
        for (PlatformJob platformJob:platformJobList) {
            //处理WSM数量
            this.getWmsJobData(platformJob);
            //查询前方排队数量
            this.queryWaitNum(platformJob);
        }
        driverHomeVO.setPlatformJobList(platformJobList);
        // 园区导览图  图片
        driverHomeVO.setReservationMap(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.PLATFORM_GUIDEMAP).getCode());
        // 预约指南 文本
        driverHomeVO.setBookingTips(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.PLATFORM_BOOKING_TIPS).getCode());
        return driverHomeVO;
    }
@@ -369,18 +453,12 @@
            }
        }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);
        ){
            //查询前方排队数量
            this.queryWaitNum(platformJob);
        }else if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){
            //作业月台信息
            Platform platform = platformMapper.selectById(platformJob.getPlatformId());
            Platform platform = platformJoinMapper.selectById(platformJob.getPlatformId());
            if(Objects.nonNull(platform)){
                platformJob.setPlatformName(platform.getName());
            }
@@ -417,7 +495,7 @@
        );
        //获取所有月台组
        List<Integer> platformIdList = platformJobList.stream().map(m->m.getPlatformGroupId()).collect(Collectors.toList());
        List<Platform> platformList = platformMapper.selectList(new QueryWrapper<Platform>().lambda()
        List<Platform> platformList = platformJoinMapper.selectList(new QueryWrapper<Platform>().lambda()
                .eq(Platform::getIsdeleted,Constants.ZERO)
                .in(Platform::getId,platformIdList));
@@ -841,8 +919,79 @@
    }
    @Override
    public  List<Platform> getPlatformList(Integer groupId, LoginUserInfo loginUserInfo){
        //查询月台组下所有月台
        List<Platform> allPlatformList = platformJoinMapper.selectJoinList(Platform.class,
                new MPJLambdaWrapper<Platform>()
                        .selectAll(Platform.class)
                        .select(" ( select count(1) from platform_job pj where t.id = pj.PLATFORM_ID and pj.STATUS = "+Constants.PlatformJobStatus.WORKING.getKey()+" ) as workStatus ")
                        .eq(Platform::getIsdeleted, Constants.ZERO)
                        .eq(Platform::getStatus,Constants.ZERO)
                        .eq(Platform::getGroupId,groupId)
        );
        this.getPlatformShow(allPlatformList,loginUserInfo);
        for (Platform platform:allPlatformList) {
            this.getJobByPlatform(platform,loginUserInfo);
        }
        return allPlatformList;
    }
    /**
     * 查询月台的开启情况
     * @param allPlatformList
     * @param loginUserInfo
     */
    public void getPlatformShow(List<Platform> allPlatformList , LoginUserInfo loginUserInfo){
        //处理我的月台信息 是否配置隐藏
        List<PlatformShowParam> platformShowParamList = platformShowParamMapper.selectList(new QueryWrapper<PlatformShowParam>()
                .lambda()
                .eq(PlatformShowParam::getIsdeleted, Constants.ZERO)
                .eq(PlatformShowParam::getMemberId,loginUserInfo.getMemberId())
        );
        //如果未配置该数据 则全部显示
        if(CollectionUtils.isEmpty(platformShowParamList)){
            for (Platform platform:allPlatformList) {
                platform.setShowConfig(true);
            }
        }else{
            //根据配置显示数据
            for (PlatformShowParam platformShowParam:platformShowParamList) {
                for (Platform platform:allPlatformList) {
                    if(Constants.equalsInteger(platform.getId(),platformShowParam.getPlatformId())){
                        platform.setShowConfig(true);
                        break;
                    }
                }
            }
        }
    }
    /**
     * 获取月台下的任务列表
     * @param platform
     * @param loginUserInfo
     */
    public void getJobByPlatform(Platform platform,LoginUserInfo loginUserInfo){
        List<PlatformJob> platformJobList =  platformJobJoinMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>()
                .selectAll(PlatformJob.class)
                .selectAs(Platform::getName,PlatformJob::getPlatformName)
                .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate)
                .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
                .eq(PlatformJob::getPlatformId,platform.getId())
                .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                .eq(PlatformJob::getDrivierPhone,loginUserInfo.getMobile())
                .like(PlatformJob::getArriveDate, DateUtil.getCurrDate())
                .orderByDesc(PlatformJob::getId)
        );
        for (PlatformJob platformJob:platformJobList) {
            //处理WSM数量
            this.getWmsJobData(platformJob);
            //查询前方排队数量
            this.queryWaitNum(platformJob);
        }
        platform.setWorkJobList(platformJobList);
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformReasonServiceImpl.java
@@ -106,6 +106,7 @@
    @Override
    public List<PlatformReason> findList(PlatformReason platformReason) {
        QueryWrapper<PlatformReason> wrapper = new QueryWrapper<>(platformReason);
        wrapper.eq("isdeleted",Constants.ZERO);
        return platformReasonMapper.selectList(wrapper);
    }
  
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitReasonServiceImpl.java
@@ -139,4 +139,8 @@
        QueryWrapper<VisitReason> wrapper = new QueryWrapper<>(visitReason);
        return visitReasonMapper.selectCount(wrapper);
    }
}