server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java
@@ -14,6 +14,7 @@ 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.LineUpVO; import com.doumee.dao.web.response.MemberVO; import com.doumee.dao.web.response.VisitRecordVO; import com.doumee.service.business.*; @@ -94,7 +95,7 @@ } /******************************************************任塿¥å£************************************************************************/ /******************************************************叿ºä»»å¡æ¥å£************************************************************************/ @ApiOperation("ä»»å¡ç¾å°") @PostMapping("/signIn") @@ -111,6 +112,11 @@ } @ApiOperation("æ¥è¯¢æéæ åµ") @PostMapping("/jobDetail") public ApiResponse<LineUpVO> lineUpDetail (@RequestBody LineUpDetailDTO lineUpDetailDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){ return ApiResponse.success(platformJobService.lineUpDetail(lineUpDetailDTO)); } server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/PdaPlatformController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,78 @@ package com.doumee.cloud.web; import com.doumee.api.BaseController; import com.doumee.config.annotation.LoginNoRequired; 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.PlatformGroup; import com.doumee.dao.business.model.PlatformJob; import com.doumee.dao.business.model.PlatformShowParam; import com.doumee.dao.web.reqeust.*; import com.doumee.dao.web.response.DriverHomeVO; import com.doumee.dao.web.response.LineUpVO; import com.doumee.service.business.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.util.Date; import java.util.List; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2023/12/28 14:31 */ @Api(tags = "ãå ¬ä¼å·ãPDAæå°ä¸å¡") @Trace(exclude = true) @RestController @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/web/pdaPlatform") @Slf4j @LoginNoRequired public class PdaPlatformController extends BaseController { @Autowired private PlatformJobService platformJobService; @Autowired private PlatformBooksService platformBooksService; @Autowired private PlatformGroupService platformGroupService; @Autowired private PlatformShowParamService platformShowParamService; @ApiOperation("è·åæå°ç»ä¿¡æ¯") @ApiImplicitParams({ @ApiImplicitParam(name = "queryType", dataType = "Integer", value = "0=å ¨é¨æå°ï¼1=å¯ç¨æå° 2=é ç½®æçæå°", required = false) }) @GetMapping("/getPlatformGroupList") public ApiResponse<List<PlatformGroup>> getPlatformGroupList (@RequestParam Integer queryType, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){ return ApiResponse.success(platformGroupService.getAllPlatformGroup(queryType,getLoginUser(token))); } @ApiOperation("æ´æ°æå°é 置信æ¯") @GetMapping("/updUserPlatformConfig") public ApiResponse updUserPlatformConfig (@RequestBody List<Integer> ids, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){ platformShowParamService.updUserConfig(ids,getLoginUser(token)); return ApiResponse.success("æä½æå"); } } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/PlatformJobJoinMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.doumee.dao.business.join; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.doumee.dao.business.model.PlatformJob; import com.github.yulichang.base.mapper.MPJJoinMapper; /** * @author æ±è¹è¹ * @date 2024/06/28 10:03 */ public interface PlatformJobJoinMapper extends MPJJoinMapper<PlatformJob> { } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/PlatformJoinMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ package com.doumee.dao.business.join; import com.doumee.dao.business.model.Platform; import com.github.yulichang.base.MPJBaseMapper; /** * @author æ±è¹è¹ * @date 2024/06/28 10:03 */ public interface PlatformJoinMapper extends MPJBaseMapper<Platform> { } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
@@ -11,6 +11,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; import java.math.BigDecimal; import java.util.List; /** * æå°ä¿¡æ¯è¡¨ @@ -48,6 +49,7 @@ @ApiModelProperty(value = "æ¯å¦å é¤0å¦ 1æ¯", example = "1") @ExcelColumn(name="æ¯å¦å é¤0å¦ 1æ¯") private Integer isdeleted; @ApiModelProperty(value = "åç§°") @ExcelColumn(name="åç§°") @@ -162,4 +164,16 @@ @TableField(exist = false) private String broadcaseNames; @ApiModelProperty(value = "ä½ä¸ä¸æé车è¾", example = "1") @TableField(exist = false) private List<PlatformJob> workJobList; @ApiModelProperty(value = "å·²ç¾å°æé车è¾", example = "1") @TableField(exist = false) private List<PlatformJob> signJobList; @ApiModelProperty(value = "é ç½®æ¾ç¤º") @TableField(exist = false) private Boolean showConfig = false; } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.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; @@ -9,6 +10,7 @@ import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; import java.util.List; /** * æå°_åç»ä¿¡æ¯è¡¨ @@ -63,4 +65,7 @@ @ExcelColumn(name="æåºç ") private Integer sortnum; @ApiModelProperty(value = "æå°ç»ä¸çæå°") @TableField(exist = false) private List<Platform> platformList; } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
@@ -268,6 +268,10 @@ @TableField(exist = false) private Long lineUpNum; @ApiModelProperty(value = "å ³èæå°ç»ç¼ç ï¼å ³èplatform_group表ï¼", example = "1") @TableField(exist = false) private Integer groupId; @ApiModelProperty(value = "ä½ä¸æå°åç§°") @TableField(exist = false) private String platformName ; server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/LineUpDetailDTO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,33 @@ package com.doumee.dao.web.reqeust; import com.doumee.core.model.LoginUserInfo; import com.doumee.dao.business.model.PlatformJob; import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2023/12/7 11:19 */ @Data @Api(tags = "æéæ åµè¯·æ±ç±»" ) public class LineUpDetailDTO { @ApiModelProperty(value = "æ¥è¯¢ç±»å«ï¼0=ææºå·ï¼1=ä»»å¡ä¸»é®") private Integer queryType; @ApiModelProperty(value = "ææºå·") private String mobile; @ApiModelProperty(value = "ä»»å¡ä¸»é®") private Integer jobId; @ApiModelProperty(value = "ç¨æ·", hidden = true) private LoginUserInfo loginUserInfo; } server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/LineUpVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,28 @@ package com.doumee.dao.web.response; import com.doumee.core.model.LoginUserInfo; import com.doumee.dao.business.model.Platform; import com.doumee.dao.business.model.PlatformJob; import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2023/12/7 11:19 */ @Data @Api(tags = "æéæ åµ" ) public class LineUpVO { @ApiModelProperty(value = "æå°ç»ä¿¡æ¯") private List<Platform> platformList; @ApiModelProperty(value = "ç¨æ·", hidden = true) private LoginUserInfo loginUserInfo; } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java
@@ -1,5 +1,6 @@ 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.PlatformGroup; @@ -94,4 +95,17 @@ * @return long */ long count(PlatformGroup platformGroup); /** * è·åæå°ç»ä¿¡æ¯ * @param queryType * @param loginUserInfo * @return */ List<PlatformGroup> getAllPlatformGroup(Integer queryType, LoginUserInfo loginUserInfo); } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
@@ -4,8 +4,10 @@ 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.LineUpDetailDTO; import com.doumee.dao.web.reqeust.SignInDTO; import com.doumee.dao.web.response.DriverHomeVO; import com.doumee.dao.web.response.LineUpVO; import java.util.List; @@ -114,5 +116,10 @@ */ PlatformJob getDetail(JobDetailDTO jobDetailDTO); /** * æéæ åµ * @param lineUpDetailDTO * @return */ LineUpVO lineUpDetail(LineUpDetailDTO lineUpDetailDTO); } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformShowParamService.java
@@ -1,5 +1,6 @@ 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.PlatformShowParam; @@ -94,4 +95,12 @@ * @return long */ long count(PlatformShowParam platformShowParam); /** * æ´æ°æå°å¼å¯é ç½® * @param showIdList * @param loginUserInfo */ void updUserConfig(List<Integer> showIdList, LoginUserInfo loginUserInfo); } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
@@ -1,20 +1,29 @@ package com.doumee.service.business.impl; 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.Utils; import com.doumee.dao.business.PlatformGroupMapper; import com.doumee.dao.business.PlatformShowParamMapper; 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.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.github.yulichang.wrapper.MPJLambdaWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** * æå°_åç»ä¿¡æ¯è¡¨Serviceå®ç° @@ -26,6 +35,12 @@ @Autowired private PlatformGroupMapper platformGroupMapper; @Autowired private PlatformJoinMapper platformJoinMapper; @Autowired private PlatformShowParamMapper platformShowParamMapper; @Override public Integer create(PlatformGroup platformGroup) { @@ -118,4 +133,52 @@ QueryWrapper<PlatformGroup> wrapper = new QueryWrapper<>(platformGroup); return platformGroupMapper.selectCount(wrapper); } @Override public List<PlatformGroup> getAllPlatformGroup(Integer queryType,LoginUserInfo loginUserInfo) { List<PlatformGroup> platformGroups = platformGroupMapper.selectList( new QueryWrapper<PlatformGroup>() .lambda().eq(PlatformGroup::getIsdeleted, Constants.ZERO) .orderByAsc(PlatformGroup::getSortnum) ); //æ¥è¯¢æå°ç»ä¸æææå° List<Platform> allPlatformList = platformJoinMapper.selectJoinList(Platform.class, new MPJLambdaWrapper<Platform>() .selectAll(Platform.class) .eq(Platform::getIsdeleted, Constants.ZERO) //TODO å¾ ç¡®è®¤æå°ç¶æå段 .eq(Objects.nonNull(queryType)&&!Constants.equalsInteger(queryType,Constants.ZERO),Platform::getStatus,Constants.ZERO) ); //å¤çæçæå°ä¿¡æ¯ æ¯å¦é ç½®éè if(Constants.equalsInteger(queryType,Constants.TWO)){ 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; } } } } } for (PlatformGroup platformGroup:platformGroups) { platformGroup.setPlatformList(allPlatformList.stream().filter(m->Constants.equalsInteger(m.getGroupId(),platformGroup.getId())).collect(Collectors.toList())); } return platformGroups; } } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
@@ -13,17 +13,22 @@ import com.doumee.core.utils.Utils; import com.doumee.dao.business.PlatformJobMapper; import com.doumee.dao.business.PlatformMapper; import com.doumee.dao.business.join.PlatformJobJoinMapper; 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.business.model.PlatformReason; import com.doumee.dao.web.reqeust.JobDetailDTO; import com.doumee.dao.web.reqeust.LineUpDetailDTO; import com.doumee.dao.web.reqeust.SignInDTO; import com.doumee.dao.web.response.DriverHomeVO; import com.doumee.dao.web.response.LineUpVO; 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 com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -34,6 +39,7 @@ import java.util.Date; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** * æå°è°åº¦ä½ä¸ä¿¡æ¯è¡¨Serviceå®ç° @@ -45,6 +51,9 @@ @Autowired private PlatformJobMapper platformJobMapper; @Autowired private PlatformJobJoinMapper platformJobJoinMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @@ -328,7 +337,78 @@ @Override public LineUpVO lineUpDetail(LineUpDetailDTO lineUpDetailDTO){ if(Objects.isNull(lineUpDetailDTO) || Objects.isNull(lineUpDetailDTO.getQueryType())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } LineUpVO lineUpVO = new LineUpVO(); //æ¥è¯¢ææä»»å¡ List<PlatformJob> platformJobList = platformJobJoinMapper.selectJoinList(PlatformJob.class, new MPJLambdaWrapper<PlatformJob>() .selectAll(PlatformJob.class) .selectAs(PlatformReason::getGroupId,PlatformJob::getGroupId) .leftJoin(PlatformBooks.class,PlatformBooks::getJobId,PlatformJob::getId) .leftJoin(PlatformReason.class,PlatformReason::getId,PlatformBooks::getReasonId) .eq(PlatformJob::getIsdeleted,Constants.ZERO) .eq(Constants.equalsInteger(lineUpDetailDTO.getQueryType(),Constants.ZERO) ,PlatformJob::getDrivierPhone,lineUpDetailDTO.getMobile()) .eq(Constants.equalsInteger(lineUpDetailDTO.getQueryType(),Constants.ONE) ,PlatformJob::getId,lineUpDetailDTO.getJobId()) .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey(), Constants.PlatformJobStatus.IN_WAIT.getKey(), Constants.PlatformJobStatus.CALLED.getKey()) .orderByAsc(PlatformJob::getSignDate) ); //è·åæææå° List<Integer> platformIdList = platformJobList.stream().map(m->m.getGroupId()).collect(Collectors.toList()); List<Platform> platformList = platformMapper.selectList(new QueryWrapper<Platform>().lambda() .eq(Platform::getIsdeleted,Constants.ZERO) .in(Platform::getId,platformIdList)); for (Platform platform:platformList) { //æ¥è¯¢æ¬æå°ä¸ èªå·±çæ°æ® ææ©ç¾å°ç PlatformJob platformJob = platformJobList.stream().filter(i->Constants.equalsInteger(i.getGroupId(),platform.getId())).findFirst().orElse(null); //æ¥è¯¢å¨å½åæå°ä¸ ç¾å°æéè½¦è¾æ°æ® List<PlatformJob> platformJobSignInList = platformJobJoinMapper.selectJoinList(PlatformJob.class, new MPJLambdaWrapper<PlatformJob>() .selectAll(PlatformJob.class) .selectAs(PlatformReason::getGroupId,PlatformJob::getGroupId) .leftJoin(PlatformBooks.class,PlatformBooks::getJobId,PlatformJob::getId) .leftJoin(PlatformReason.class,PlatformReason::getId,PlatformBooks::getReasonId) .eq(PlatformJob::getIsdeleted,Constants.ZERO) .ge(Objects.nonNull(platformJob),PlatformJob::getSignDate,DateUtil.getDate(platformJob.getSignDate(),"yyyy-MM-dd HH:mm:ss")) .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey(), Constants.PlatformJobStatus.IN_WAIT.getKey(), Constants.PlatformJobStatus.CALLED.getKey()) .orderByDesc(PlatformJob::getSignDate)); platform.setSignJobList(platformJobSignInList); //æ¥è¯¢å½åæå°ä¸ List<PlatformJob> platformJobWorkList = platformJobJoinMapper.selectJoinList(PlatformJob.class, new MPJLambdaWrapper<PlatformJob>() .selectAll(PlatformJob.class) .selectAs(PlatformReason::getGroupId,PlatformJob::getGroupId) .leftJoin(PlatformBooks.class,PlatformBooks::getJobId,PlatformJob::getId) .leftJoin(PlatformReason.class,PlatformReason::getId,PlatformBooks::getReasonId) .eq(PlatformJob::getIsdeleted,Constants.ZERO) .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey()) .orderByDesc(PlatformJob::getSignDate)); platform.setSignJobList(platformJobSignInList); platform.setWorkJobList(platformJobWorkList); } lineUpVO.setPlatformList(platformList); return lineUpVO; } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformShowParamServiceImpl.java
@@ -1,7 +1,10 @@ package com.doumee.service.business.impl; 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.Utils; import com.doumee.dao.business.PlatformShowParamMapper; import com.doumee.dao.business.model.PlatformShowParam; @@ -12,8 +15,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.util.ArrayList; import java.util.Date; import java.util.List; /** @@ -118,4 +124,27 @@ QueryWrapper<PlatformShowParam> wrapper = new QueryWrapper<>(platformShowParam); return platformShowParamMapper.selectCount(wrapper); } @Override @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public void updUserConfig(List<Integer> showIdList, LoginUserInfo loginUserInfo){ platformShowParamMapper.delete(new QueryWrapper<PlatformShowParam>() .lambda().eq(PlatformShowParam::getMemberId,loginUserInfo.getMemberId()) ); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(showIdList)){ List<PlatformShowParam> platformShowParamList = new ArrayList<>(); for (Integer id:showIdList) { PlatformShowParam platformShowParam = new PlatformShowParam(); platformShowParam.setCreateDate(new Date()); platformShowParam.setMemberId(loginUserInfo.getMemberId()); platformShowParam.setIsdeleted(Constants.ZERO); platformShowParam.setPlatformId(id); platformShowParamList.add(platformShowParam); } platformShowParamMapper.insert(platformShowParamList); } } }