From d2902daad7261ac7d0148dbb9f33f39e52d433f6 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 16 八月 2024 18:15:40 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
server/system_service/src/main/java/com/doumee/core/utils/Constants.java | 20
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/SignInDTO.java | 39 +
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/PlatformJobJoinMapper.java | 13
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/LineUpVO.java | 28 +
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/PlatformJoinMapper.java | 12
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/RevokeDTO.java | 24 +
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/PlatformBooksCheckNumDTO.java | 29 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java | 30 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java | 234 ++++++++++
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/LineUpDetailDTO.java | 33 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java | 63 ++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java | 207 ++++++++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java | 14
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java | 64 ++
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/DriverHomeVO.java | 22
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformShowParamService.java | 9
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java | 14
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java | 17
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/JobDetailDTO.java | 30 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java | 28 +
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/PdaPlatformController.java | 78 +++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBooksService.java | 36 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 1
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/PlatformBooksApplyDTO.java | 64 ++
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java | 5
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java | 12
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java | 124 +++++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformShowParamServiceImpl.java | 29 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java | 2
server/system_service/src/main/java/com/doumee/core/utils/PositionUtil.java | 43 +
30 files changed, 1,311 insertions(+), 13 deletions(-)
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
index 8646006..90cea78 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/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, "宸茬鍥� ","宸茬鍥� " ),
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java b/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
index 7f25314..11635cf 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
+++ b/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());
+ // 杞崲涓簀ava.time.LocalDate,璁$畻x澶╃殑鏃ユ湡
+ LocalDate dateBeforeDay = zonedDateTime.toLocalDate().minusDays(beforDays);
+ return dateBeforeDay.toString();
+ }
}
\ No newline at end of file
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/PositionUtil.java b/server/system_service/src/main/java/com/doumee/core/utils/PositionUtil.java
new file mode 100644
index 0000000..8cf28fc
--- /dev/null
+++ b/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 杩斿洖璺濈锛屽崟浣峬
+ */
+ 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;
+ }
+
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java
new file mode 100644
index 0000000..b3ca71c
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java
@@ -0,0 +1,124 @@
+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.LineUpVO;
+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));
+ }
+
+
+ @ApiOperation("鏌ヨ鎺掗槦鎯呭喌")
+ @PostMapping("/jobDetail")
+ public ApiResponse<LineUpVO> lineUpDetail (@RequestBody LineUpDetailDTO lineUpDetailDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ return ApiResponse.success(platformJobService.lineUpDetail(lineUpDetailDTO));
+ }
+
+
+
+
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/PdaPlatformController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/PdaPlatformController.java
new file mode 100644
index 0000000..b9c77b5
--- /dev/null
+++ b/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 = "銆愬叕浼楀彿銆慞DA鏈堝彴涓氬姟")
+@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("鎿嶄綔鎴愬姛");
+ }
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/PlatformJobJoinMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/PlatformJobJoinMapper.java
new file mode 100644
index 0000000..887c38a
--- /dev/null
+++ b/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> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/PlatformJoinMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/PlatformJoinMapper.java
new file mode 100644
index 0000000..c4d0062
--- /dev/null
+++ b/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> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
index ca20201..8063798 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
+++ b/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;
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java
index 482fbd7..cea4575 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java
+++ b/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;
+ }
+
+
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java
index 6ff8f36..f15c611 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java
+++ b/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;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
index 3958bb0..b5a6f17 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
+++ b/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,20 @@
@ExcelColumn(name="鎬昏繍杈撻噺")
private BigDecimal totalNum;
+ @ApiModelProperty(value = "鍓嶆柟鎺掗槦鏁伴噺", example = "1")
+ @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 ;
+
+ @ApiModelProperty(value = "璺濈绛惧埌鐐硅窛绂�")
+ @TableField(exist = false)
+ private BigDecimal getDistance;
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/JobDetailDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/JobDetailDTO.java
new file mode 100644
index 0000000..d34974c
--- /dev/null
+++ b/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;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/LineUpDetailDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/LineUpDetailDTO.java
new file mode 100644
index 0000000..e83da18
--- /dev/null
+++ b/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;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/PlatformBooksApplyDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/PlatformBooksApplyDTO.java
new file mode 100644
index 0000000..6273b5f
--- /dev/null
+++ b/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;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/PlatformBooksCheckNumDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/PlatformBooksCheckNumDTO.java
new file mode 100644
index 0000000..5d9f0ea
--- /dev/null
+++ b/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;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/RevokeDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/RevokeDTO.java
new file mode 100644
index 0000000..24920eb
--- /dev/null
+++ b/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;
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/SignInDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/SignInDTO.java
new file mode 100644
index 0000000..3ce2b1c
--- /dev/null
+++ b/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;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/DriverHomeVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/DriverHomeVO.java
new file mode 100644
index 0000000..e677f12
--- /dev/null
+++ b/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;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/LineUpVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/LineUpVO.java
new file mode 100644
index 0000000..3c7b6c7
--- /dev/null
+++ b/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;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBooksService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBooksService.java
index baaf67e..8931030 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBooksService.java
+++ b/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);
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java
index 386eac0..5a4b617 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java
+++ b/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);
+
+
+
+
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
index cef117e..e663954 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
@@ -3,6 +3,12 @@
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.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;
/**
@@ -94,4 +100,26 @@
* @return long
*/
long count(PlatformJob platformJob);
+
+ DriverHomeVO getDriverHome(Integer memberId);
+
+ /**
+ * 璺濈绛惧埌
+ * @param signInDTO
+ */
+ void signIn(SignInDTO signInDTO);
+
+ /**
+ * 浠诲姟璇︽儏
+ * @param jobDetailDTO
+ * @return
+ */
+ PlatformJob getDetail(JobDetailDTO jobDetailDTO);
+
+ /**
+ * 鎺掗槦鎯呭喌
+ * @param lineUpDetailDTO
+ * @return
+ */
+ LineUpVO lineUpDetail(LineUpDetailDTO lineUpDetailDTO);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformShowParamService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformShowParamService.java
index 96cc3ea..3798e7d 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformShowParamService.java
+++ b/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);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
index 1af24c0..4742664 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
+++ b/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);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 398ac8f..23a6c33 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/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);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
index d1cc8d5..a155825 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
+++ b/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;
/**
* 鏈堝彴鍏ュ洯棰勭害淇℃伅琛⊿ervice瀹炵幇
@@ -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();
}
@@ -83,7 +128,7 @@
QueryWrapper<PlatformBooks> wrapper = new QueryWrapper<>(platformBooks);
return platformBooksMapper.selectList(wrapper);
}
-
+
@Override
public PageData<PlatformBooks> findPage(PageWrap<PlatformBooks> pageWrap) {
IPage<PlatformBooks> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
@@ -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())
+ );
+ }
+
+
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
index 7258755..3895a97 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
+++ b/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;
/**
* 鏈堝彴_鍒嗙粍淇℃伅琛⊿ervice瀹炵幇
@@ -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;
+ }
+
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
index 38cfd43..f8860db 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
@@ -1,20 +1,45 @@
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.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;
+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;
+import java.util.stream.Collectors;
/**
* 鏈堝彴璋冨害浣滀笟淇℃伅琛⊿ervice瀹炵幇
@@ -26,6 +51,16 @@
@Autowired
private PlatformJobMapper platformJobMapper;
+
+ @Autowired
+ private PlatformJobJoinMapper platformJobJoinMapper;
+
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+
+ @Autowired
+ private PlatformMapper platformMapper;
+
@Override
public Integer create(PlatformJob platformJob) {
@@ -178,4 +213,203 @@
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涓偣鐨勮窛绂籜绫�
+ 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涓偣鐨勮窛绂籜绫�
+ 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;
+ }
+
+
+
+ @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;
+ }
+
+
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformShowParamServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformShowParamServiceImpl.java
index d18bfe7..168ed88 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformShowParamServiceImpl.java
+++ b/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);
+ }
+ }
+
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
index af5ee41..6cb1dbd 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
+++ b/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();
}
--
Gitblit v1.9.3