From c8bc6fdbdc37f551388b71372c35d4f42f58e571 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期三, 22 五月 2024 18:14:29 +0800 Subject: [PATCH] 代码初始化 --- server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarUseBookCloudController.java | 7 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ApproveParam.java | 12 + server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarUseBookService.java | 3 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java | 13 + server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/ApproveJoinMapper.java | 18 ++ server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Approve.java | 36 +++ server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 55 ++++++ server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java | 9 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java | 6 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java | 59 +++++ server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java | 238 ++++++++++++++++++++++++++ server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ApproveService.java | 2 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java | 7 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/RegisterDriverDTO.java | 29 +++ 14 files changed, 472 insertions(+), 22 deletions(-) diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarUseBookCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarUseBookCloudController.java index 7657b26..0c6e2df 100644 --- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarUseBookCloudController.java +++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarUseBookCloudController.java @@ -100,4 +100,11 @@ return ApiResponse.success(carUseBookService.checkDateUse(carId,dateDay)); } + @ApiOperation("鐢宠鎾ら攢") + @GetMapping("/revoke") + public ApiResponse revoke (@RequestParam Integer id, @RequestParam String info, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){ + carUseBookService.revoke(id,info,getLoginUser(token)); + return ApiResponse.success("鎿嶄綔鎴愬姛"); + } + } diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java index 69592d7..31c8ac8 100644 --- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java +++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java @@ -13,6 +13,7 @@ import com.doumee.dao.admin.request.LaborMemberDTO; import com.doumee.dao.admin.request.MemberImport; import com.doumee.dao.admin.request.MemberQuery; +import com.doumee.dao.business.dto.RegisterDriverDTO; import com.doumee.dao.business.dto.ResetPasswordDTO; import com.doumee.dao.business.model.Member; import com.doumee.dao.business.model.MemberRole; @@ -327,4 +328,16 @@ return ApiResponse.success(null); } + + @LoginNoRequired + @ApiOperation("鍙告満娉ㄥ唽") + @PostMapping("/registerDriver") + public ApiResponse registerDriver(@RequestBody RegisterDriverDTO registerDriverDTO ){ + memberService.registerDriver(registerDriverDTO); + return ApiResponse.success("娉ㄥ唽鎴愬姛"); + } + + + + } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/RegisterDriverDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/RegisterDriverDTO.java new file mode 100644 index 0000000..3af8b5c --- /dev/null +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/RegisterDriverDTO.java @@ -0,0 +1,29 @@ +package com.doumee.dao.business.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Created by IntelliJ IDEA. + * + * @Author : Rk + * @create 2024/5/20 14:54 + */ +@Data +public class RegisterDriverDTO { + + @ApiModelProperty(value = "濮撳悕") + private String name; + + @ApiModelProperty(value = "鎵嬫満鍙�") + private String phone; + + @ApiModelProperty(value = "楠岃瘉鐮�") + private String validCode; + + @ApiModelProperty(value = "瀵嗙爜") + private String password; + + + +} diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/ApproveJoinMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/ApproveJoinMapper.java new file mode 100644 index 0000000..86d86d7 --- /dev/null +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/join/ApproveJoinMapper.java @@ -0,0 +1,18 @@ +package com.doumee.dao.business.join; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.doumee.dao.business.model.Approve; +import com.github.yulichang.base.mapper.MPJJoinMapper; + +import java.util.List; + +/** + * @author 姹熻箘韫� + * @date 2023/12/28 14:09 + */ +public interface ApproveJoinMapper extends MPJJoinMapper<Approve> { + + void insertBatchSomeColumn(List<Approve> list); + + +} diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Approve.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Approve.java index d3e8ec1..46c455d 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Approve.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Approve.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 com.doumee.core.model.LoginUserModel; import io.swagger.annotations.ApiModel; @@ -96,9 +97,6 @@ @ExcelColumn(name="鍏宠仈涓氬姟涓婚敭") private Integer objId; - @ApiModelProperty(value = "鍏宠仈涓氬姟绫诲瀷锛�0=璁垮鐢宠锛�1=鐢ㄨ溅鐢宠", example = "1") - @ExcelColumn(name="鍏宠仈涓氬姟绫诲瀷锛�0=璁垮鐢宠锛�1=鐢ㄨ溅鐢宠") - private Integer objType; @ApiModelProperty(value = "瀹℃壒绛夌骇", example = "1") @ExcelColumn(name="瀹℃壒绛夌骇") @@ -108,7 +106,39 @@ @ExcelColumn(name="澶氫汉瀹℃壒鏂瑰紡 0鎴栫 1浼氱") private Integer approveType; + + @ApiModelProperty(value = "鏄惁鎸囧畾鍙告満椤� 0涓嶆寚瀹� 1鎸囧畾", example = "1") + @ExcelColumn(name="鏄惁鎸囧畾鍙告満椤� 0涓嶆寚瀹� 1鎸囧畾") + private Integer driverParam; + + @ApiModelProperty(value = "鏄惁淇敼鐩殑鍦� 0鍚� 1鏄�", example = "1") + @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甯傚叕鍙哥墿娴佽溅棰勭害") + private Integer objType; + @ApiModelProperty(value = "绫诲瀷 0瀹℃壒 1鎶勯��", example = "1") @ExcelColumn(name="绫诲瀷 0瀹℃壒 1鎶勯��") private Integer type; + + + + + @ApiModelProperty(value = "濮撳悕", example = "1") + @ExcelColumn(name="濮撳悕") + @TableField(exist = false) + private String memberName; + + @ApiModelProperty(value = "鎵嬫満鍙�", example = "1") + @ExcelColumn(name="鎵嬫満鍙�") + @TableField(exist = false) + private String memberPhone; + + @ApiModelProperty(value = "閮ㄩ棬", example = "1") + @ExcelColumn(name="閮ㄩ棬") + @TableField(exist = false) + private String companyName; + } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ApproveParam.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ApproveParam.java index 8147a87..001d95d 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ApproveParam.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ApproveParam.java @@ -93,4 +93,16 @@ @ExcelColumn(name="鏃犱富绠¢�夐」 0娴佺▼缁撴潫 1鐢变笂绾т富绠′唬鏇垮鏍�") private Integer noleaderOpt; + @ApiModelProperty(value = "妯$増缂栫爜锛堝叧鑱攁pprove_templ)", example = "1") + @ExcelColumn(name="妯$増缂栫爜锛堝叧鑱攁pprove_templ)") + private Integer templId; + + @ApiModelProperty(value = "鏄惁鎸囧畾鍙告満椤� 0涓嶆寚瀹� 1鎸囧畾", example = "1") + @ExcelColumn(name="鏄惁鎸囧畾鍙告満椤� 0涓嶆寚瀹� 1鎸囧畾") + private Integer driverParam; + + + @ApiModelProperty(value = "鏄惁淇敼鐩殑鍦� 0鍚� 1鏄�", example = "1") + @ExcelColumn(name="鏄惁淇敼鐩殑鍦� 0鍚� 1鏄�") + private Integer addrParam; } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java index 218f678..b9b1d62 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java @@ -93,13 +93,11 @@ @ApiModelProperty(value = "鍙栨秷绫诲瀷 0鐢宠浜哄彇娑� 1娲捐溅鍛樻挙閿�") @ExcelColumn(name="鍙栨秷绫诲瀷 0鐢宠浜哄彇娑� 1娲捐溅鍛樻挙閿�") - @JsonFormat(pattern = "yyyy-MM-dd") - private Date cancelType; + private Integer cancelType; @ApiModelProperty(value = "鏄惁宸插彇娑� 0鏈彇娑� 1宸插彇娑�") @ExcelColumn(name="鏄惁宸插彇娑� 0鏈彇娑� 1宸插彇娑�") - @JsonFormat(pattern = "yyyy-MM-dd") - private Date cancelStatus; + private Integer cancelStatus; @ApiModelProperty(value = "鍙栨秷鏃堕棿") @ExcelColumn(name="鍙栨秷鏃堕棿") @@ -172,4 +170,7 @@ @ApiModelProperty(value = "鐢宠浜虹數璇�") @TableField(exist = false) private String memberMobile; + @ApiModelProperty(value = "瀹℃壒璁板綍") + @TableField(exist = false) + private List<Approve> approveList; } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ApproveService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ApproveService.java index d773779..1259862 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ApproveService.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ApproveService.java @@ -104,4 +104,6 @@ * @return */ InternalHomeVO getHomeData(Integer memberId); + + void createApproveFlow(Integer tempType,Integer businessId,Integer createMemberId); } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarUseBookService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarUseBookService.java index 5652f03..9754f62 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarUseBookService.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarUseBookService.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.CarUseBook; @@ -101,4 +102,6 @@ List<CarUseBook> carUseBookList(CarUseBook carUseBook); List<DateIntervalVO> checkDateUse(Integer cars, String dateDay); + + void revoke(Integer id, String info, LoginUserInfo loginUserInfo); } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java index 2fabbd8..883b71d 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java @@ -7,6 +7,7 @@ import com.doumee.dao.admin.request.LaborMemberDTO; import com.doumee.dao.admin.request.MemberQuery; import com.doumee.dao.admin.response.StagingDataVO; +import com.doumee.dao.business.dto.RegisterDriverDTO; import com.doumee.dao.business.dto.ResetPasswordDTO; import com.doumee.dao.business.model.Member; import com.doumee.dao.business.model.MemberRole; @@ -161,6 +162,11 @@ void memberFreeze(); /********************************************鍏紬鍙锋帴鍙�***********************************************************************/ + /** + * 鍙告満娉ㄥ唽 + * @param registerDriverDTO + */ + void registerDriver(RegisterDriverDTO registerDriverDTO); /** * 寰俊鎺堟潈鎺ュ彛 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 08320d3..289c28d 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 @@ -1,23 +1,31 @@ package com.doumee.service.business.impl; import com.doumee.biz.system.SystemDictDataBiz; +import com.doumee.core.constants.ResponseStatus; +import com.doumee.core.exception.BusinessException; 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.ApproveMapper; -import com.doumee.dao.business.model.Approve; +import com.doumee.dao.business.*; +import com.doumee.dao.business.dao.CompanyMapper; +import com.doumee.dao.business.model.*; +import com.doumee.dao.system.SystemUserMapper; +import com.doumee.dao.system.model.SystemUser; import com.doumee.dao.web.response.InternalHomeVO; import com.doumee.service.business.ApproveService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * 瀹℃壒淇℃伅璁板綍琛⊿ervice瀹炵幇 @@ -32,6 +40,24 @@ @Autowired private SystemDictDataBiz systemDictDataBiz; + + @Autowired + private ApproveTemplMapper approveTemplMapper; + + @Autowired + private ApproveParamMapper approveParamMapper; + + @Autowired + private MemberMapper memberMapper; + + @Autowired + private CompanyMapper companyMapper; + + @Autowired + private CarUseBookMapper carUseBookMapper; + + @Autowired + private CarDriverMapper carDriverMapper; @Override public Integer create(Approve approve) { @@ -189,10 +215,214 @@ } + /** + * 鍒涘缓瀹℃壒娴佺▼ + * @param tempType 妯℃澘绫诲瀷 0闈炴柦宸ヤ汉鍛樿瀹㈢敵璇� 1闈炴柦宸ヤ汉鍛樿瀹㈢敵璇� 2璁垮鎶ュ 3鍏溅甯傚唴鐢ㄨ溅 4鍏溅瀹ゅ鐢ㄨ溅 5甯傚叕鍙哥墿娴佽溅棰勭害 + * @param businessId 涓氬姟涓婚敭 鏍规嵁 tempType + * @param createMemberId 鎻愪氦娴佺▼浜哄憳 + */ + @Override + @Transactional(rollbackFor = {Exception.class,BusinessException.class}) + public void createApproveFlow(Integer tempType,Integer businessId,Integer createMemberId){ + //鏌ヨ澶勭悊妯℃澘 + ApproveTempl approveTempl = approveTemplMapper.selectOne(new QueryWrapper<ApproveTempl>().lambda() + .eq(ApproveTempl::getType,tempType) + .eq(ApproveTempl::getIsdeleted,Constants.ZERO) + .last(" limit 1 ") + ); + 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)|| Objects.isNull(createMember.getCompanyId())){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鐢宠浜虹粍缁囦俊鎭紓甯�"); + } + List<Approve> approveList = new ArrayList<>(); + + this.organizeApproveData(approveTempl,approveParamList,createMember,businessId,approveList); + + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(approveList)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀹℃壒娴侀厤缃敊璇�"); + } + + //澶勭悊鎶勯�佹暟鎹� + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(approveCopyList)){ + this.organizeApproveCopyData(approveTempl,approveParamList,businessId,approveList); + } + approveMapper.insertBatchSomeColumn(approveList); + + } + + + /** + * 缁勭粐瀹℃壒娴佹暟鎹� + * @param approveTempl + * @param approveParamList + * @param createMember + * @param businessId + * @param approveList + */ + public void organizeApproveData(ApproveTempl approveTempl,List<ApproveParam> approveParamList,Member createMember,Integer businessId,List<Approve> approveList){ + //瀹℃壒涓氬姟鏁版嵁 + for (int i = 0; i < approveParamList.size(); i++) { + ApproveParam approveParam = approveParamList.get(i); + List<Integer> ids = this.getApproveUserIds(approveParam,createMember); + for (Integer memberId:ids) { + Approve approve = new Approve(); + approve.setCreateDate(new Date()); + approve.setIsdeleted(Constants.ZERO); + approve.setTemplatId(approveTempl.getId()); + approve.setChekorId(memberId); + approve.setStatus(Constants.ZERO); + approve.setStatusInfo("寰呭鎵�"); + approve.setIsEndCheck((i+1) == approveParamList.size()?Constants.ONE:Constants.ZERO); + approve.setObjId(businessId); + approve.setLevel(i+1); + approve.setApproveType(approveParam.getApproveType()); + approve.setDriverParam(approveParam.getDriverParam()); + approve.setAddrParam(approveParam.getAddrParam()); + approve.setType(Constants.ZERO); + approveList.add(approve); + } + } + } + + + public void organizeApproveCopyData(ApproveTempl approveTempl,List<ApproveParam> approveCopyList,Integer businessId,List<Approve> approveList){ + for (ApproveParam approveParam:approveCopyList) { + if(StringUtils.isBlank(approveParam.getObjIds())){ + return; + } + List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda() + .eq(Member::getIsdeleted,Constants.ZERO) + .eq(Member::getWorkStatus,Constants.ZERO) + .in(Member::getId,approveParam.getObjIds().split(","))); + List<Integer> userIds = new ArrayList<>(); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(memberList)){ + userIds.addAll(memberList.stream().map(m->m.getId()).collect(Collectors.toList())); + } + //鍏姟鐢ㄨ溅 榛樿鍔犲叆 鍙告満鎶勯�� + if(approveTempl.getType()==Constants.THREE||approveTempl.getType()==Constants.FOUR){ + CarUseBook carUseBook = carUseBookMapper.selectById(businessId); + if(Objects.isNull(carUseBook)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"涓烘煡璇㈠埌鐢ㄨ溅鐢宠淇℃伅"); + } + CarDriver carDriver = carDriverMapper.selectById(carUseBook.getDriverId()); + if(Objects.isNull(carDriver)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"涓烘煡璇㈠埌鍙告満淇℃伅"); + } + userIds.add(carDriver.getMemberId()); + } + + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(userIds)){ + for (Integer memberId:userIds) { + Approve approve = new Approve(); + approve.setCreateDate(new Date()); + approve.setIsdeleted(Constants.ZERO); + approve.setTemplatId(approveTempl.getId()); + approve.setChekorId(memberId); + approve.setObjId(businessId); + approve.setType(Constants.ONE); + approveList.add(approve); + } + } + } + } + + + public List<Integer> getApproveUserIds(ApproveParam approveParam,Member createMember){ + List<Integer> userIds = new ArrayList<>(); + if(approveParam.getMemberType().equals(Constants.ZERO)){ + //鐢宠浜� + userIds.add(createMember.getId()); + }else if(approveParam.getMemberType().equals(Constants.ONE)){ + //鎸囧畾浜哄憳 + if(StringUtils.isBlank(approveParam.getObjIds())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀹℃壒娴侀厤缃敊璇痆鏈厤缃寚瀹氬鎵逛汉鍛榏"); + } + List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda() + .eq(Member::getIsdeleted,Constants.ZERO) + .in(Member::getId,approveParam.getObjIds().split(","))); + if(memberList.size()!=approveParam.getObjIds().split(",").length){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀹℃壒娴侀厤缃敊璇痆鎸囧畾瀹℃壒浜哄憳淇℃伅寮傚父]"); + } + userIds.addAll(memberList.stream().map(m->m.getId()).collect(Collectors.toList())); + }else if(approveParam.getMemberType().equals(Constants.TWO)){ + //閮ㄩ棬涓荤瀹℃壒 + //瀹℃壒閮ㄩ棬 + Company memberCompany = companyMapper.selectById(createMember.getCompanyId()); + if(Objects.isNull(memberCompany)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀹℃壒娴侀厤缃敊璇痆鎸囧畾瀹℃壒閮ㄩ棬鏈煡璇㈠埌]"); + } + Company auditCompany = this.getAuditCompanyHead(memberCompany.getParentId(),approveParam.getObjLevel()); + if(Objects.isNull(auditCompany)){ + //瀹℃壒閮ㄩ棬涓虹┖ 鑷姩娴佽浆涓嬩竴绾у鎵归厤缃� + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀹℃壒娴侀厤缃敊璇痆鎸囧畾瀹℃壒閮ㄩ棬鏈煡璇㈠埌]"); + }else{ + //鏌ヨ閮ㄩ棬璐熻矗浜� + Member headMember = memberMapper.selectById(auditCompany.getHeadId()); + if(Objects.isNull(headMember)){ + //鏈煡璇㈠埌閮ㄩ棬璐熻矗浜� 鏍规嵁閰嶇疆澶勭悊 鐢变笂绾т富绠′唬鏇垮鏍�/鐩存帴缁撴潫娴佺▼ + if(approveParam.getNoleaderOpt().equals(Constants.ONE)&&!Objects.isNull(auditCompany.getParentId())){ + auditCompany = companyMapper.selectOne(new QueryWrapper<Company>().lambda().eq(Company::getId,auditCompany.getParentId())); + //鏃犵埗绾� 鐩存帴娴佷紶涓嬩竴绾у鎵� + if(Objects.isNull(auditCompany)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀹℃壒娴侀厤缃敊璇痆鎸囧畾瀹℃壒閮ㄩ棬鏈煡璇㈠埌]"); + } + headMember = memberMapper.selectById(auditCompany.getHeadId()); + if(Objects.isNull(headMember)){ + //鏌ヨ閮ㄩ棬璐熻矗浜� 涓虹┖ 鑷姩娴佽浆涓嬩竴绾у鎵归厤缃� + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀹℃壒娴侀厤缃敊璇痆鎸囧畾瀹℃壒閮ㄩ棬鏈缃礋璐d汉]"); + }else{ + //娣诲姞瀹℃壒浜� + userIds.add(headMember.getId()); + } + }else{ + //娣诲姞瀹℃壒浜� + userIds.add(headMember.getId()); + } + } + } + } + return userIds; + } - + /** + * 鏍规嵁閰嶇疆鏌ヨ涓婄骇鏁版嵁 + * @param companyId 鐖剁骇閮ㄩ棬涓婚敭 + * @param objLevel 鏌ヨ绾у埆 + */ + public Company getAuditCompanyHead(Integer companyId, Integer objLevel){ + Integer queryLevel = Constants.ZERO; + Company auditCompany = companyMapper.selectById(companyId); + while(queryLevel.equals(objLevel)){ + auditCompany = companyMapper.selectById(auditCompany.getParentId()); + if(Objects.isNull(auditCompany)){ + return null; + } + queryLevel = queryLevel + 1; + } + return auditCompany; + } } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java index 2479504..2b41210 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java @@ -10,12 +10,15 @@ import com.doumee.core.utils.DESUtil; import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.Utils; +import com.doumee.dao.business.ApproveMapper; import com.doumee.dao.business.CarUseBookMapper; import com.doumee.dao.business.CarsMapper; +import com.doumee.dao.business.join.ApproveJoinMapper; import com.doumee.dao.business.join.CarUseBookJoinMapper; import com.doumee.dao.business.model.*; import com.doumee.dao.business.vo.DateIntervalVO; import com.doumee.dao.system.model.SystemDictData; +import com.doumee.service.business.ApproveService; import com.doumee.service.business.CarUseBookService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -56,6 +59,12 @@ @Autowired private SystemDictDataBiz systemDictDataBiz; + + @Autowired + private ApproveJoinMapper approveJoinMapper; + + @Autowired + private ApproveService approveService; @Override @@ -103,6 +112,8 @@ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪杞﹁締棰勭害鏃堕棿涓庡凡棰勭害鏃堕棿鍐茬獊~"); } carUseBookMapper.insert(carUseBook); + //鐢ㄨ溅鐢宠 瀹℃壒璁板綍鍒涘缓 + approveService.createApproveFlow(carUseBook.getType()==0?3:4,carUseBook.getId(),carUseBook.getMemberId()); return carUseBook.getId(); } @@ -155,6 +166,21 @@ .eq(CarUseBook::getId,id) .last("limit 1" ); CarUseBook model = carUseBookMapper.selectJoinOne(CarUseBook.class,queryWrapper); + //瀹℃壒璁板綍 + List<Approve> approveList = approveJoinMapper.selectJoinList(Approve.class, + new MPJLambdaWrapper<Approve>() + .selectAll(Approve.class) + .selectAs(Member::getName,Approve::getMemberName) + .selectAs(Member::getPhone,Approve::getMemberPhone) + .selectAs(Company::getName,Approve::getCompanyName) + .leftJoin(Member.class,Member::getId,Approve::getChekorId) + .leftJoin(Company.class,Company::getId,Member::getCompanyId) + .eq(Approve::getIsdeleted,Constants.ZERO) + .eq(Approve::getObjType,Constants.ONE) + .eq(Approve::getObjId,id) + .orderByAsc(Approve::getLevel) + ); + model.setApproveList(approveList); return model; } @@ -207,10 +233,8 @@ .le(pageWrap.getModel().getCheckDate() != null, CarUseBook::getCheckDate, Utils.Date.getEnd(pageWrap.getModel().getCheckDate())) .eq(pageWrap.getModel().getCheckUserId() != null, CarUseBook::getCheckUserId, pageWrap.getModel().getCheckUserId()) .eq(pageWrap.getModel().getCheckInfo() != null, CarUseBook::getCheckInfo, pageWrap.getModel().getCheckInfo()) - .ge(pageWrap.getModel().getCancelType() != null, CarUseBook::getCancelType, Utils.Date.getStart(pageWrap.getModel().getCancelType())) - .le(pageWrap.getModel().getCancelType() != null, CarUseBook::getCancelType, Utils.Date.getEnd(pageWrap.getModel().getCancelType())) - .ge(pageWrap.getModel().getCancelStatus() != null, CarUseBook::getCancelStatus, Utils.Date.getStart(pageWrap.getModel().getCancelStatus())) - .le(pageWrap.getModel().getCancelStatus() != null, CarUseBook::getCancelStatus, Utils.Date.getEnd(pageWrap.getModel().getCancelStatus())) + .eq(pageWrap.getModel().getCancelType() != null, CarUseBook::getCancelType, pageWrap.getModel().getCancelType()) + .eq(pageWrap.getModel().getCancelStatus() != null, CarUseBook::getCancelStatus, pageWrap.getModel().getCancelStatus()) .ge(pageWrap.getModel().getCancelTime() != null, CarUseBook::getCancelTime, Utils.Date.getStart(pageWrap.getModel().getCancelTime())) .le(pageWrap.getModel().getCancelTime() != null, CarUseBook::getCancelTime, Utils.Date.getEnd(pageWrap.getModel().getCancelTime())) .eq(pageWrap.getModel().getCancelUser() != null, CarUseBook::getCancelUser, pageWrap.getModel().getCancelUser()) @@ -377,11 +401,30 @@ } - public void revoke(Integer id, LoginUserInfo loginUserInfo){ + @Override + public void revoke(Integer id, String info, LoginUserInfo loginUserInfo){ CarUseBook carUseBook = carUseBookMapper.selectById(id); - - - + if(Objects.isNull(carUseBook)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鐢ㄨ溅鐢宠淇℃伅"); + } + carUseBook.setCancelInfo(info); + carUseBook.setCancelTime(new Date()); + carUseBook.setCancelStatus(Constants.ONE); + carUseBook.setStatus(Constants.FOUR); + carUseBook.setCancelUser(loginUserInfo.getId()); + carUseBook.setCancelType(Constants.ONE); + if(loginUserInfo.getId().equals(carUseBook.getCreator())){ + carUseBook.setCancelType(Constants.ZERO); + } + carUseBookMapper.updateById(carUseBook); + //澶勭悊瀹℃壒璁板綍 + approveJoinMapper.update(null,new UpdateWrapper<Approve>() + .lambda() + .set(Approve::getStatus,Constants.FOUR) + .set(Approve::getCheckInfo,"鐢ㄨ溅鐢宠鍙栨秷") + .in(Approve::getStatus,Constants.ZERO,Constants.ONE) + .eq(Approve::getObjId,id) + ); } 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 a4ce820..f394837 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 @@ -34,6 +34,7 @@ import com.doumee.dao.admin.response.StagingDataVO; import com.doumee.dao.business.*; import com.doumee.dao.business.dao.CompanyMapper; +import com.doumee.dao.business.dto.RegisterDriverDTO; import com.doumee.dao.business.dto.ResetPasswordDTO; import com.doumee.dao.business.join.MemberJoinMapper; import com.doumee.dao.business.join.RetentionJoinMapper; @@ -48,6 +49,7 @@ import com.doumee.dao.web.response.MemberVO; import com.doumee.dao.web.response.WxAuthorizeVO; import com.doumee.service.business.MemberService; +import com.doumee.service.business.SmsEmailService; import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl; import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; @@ -119,6 +121,8 @@ @Autowired private SystemUserMapper systemUserMapper; + @Autowired + private SmsEmailService smsEmailService; @Value("${debug_model}") private Boolean isDebug; @@ -1932,6 +1936,57 @@ } + @Override + @Transactional(rollbackFor = {Exception.class,BusinessException.class}) + public void registerDriver(RegisterDriverDTO registerDriverDTO){ + if(Objects.isNull(registerDriverDTO) + || StringUtils.isBlank(registerDriverDTO.getName()) + || StringUtils.isBlank(registerDriverDTO.getPassword()) + || StringUtils.isBlank(registerDriverDTO.getValidCode()) + || StringUtils.isBlank(registerDriverDTO.getPhone()) + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + if(memberMapper.selectCount(new QueryWrapper<Member>().lambda() + .eq(Member::getIsdeleted,Constants.ZERO) + .eq(Member::getPhone,registerDriverDTO.getPhone()) + )>Constants.ZERO){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎵嬫満鍙峰凡娉ㄥ唽!"); + }; + if(systemUserMapper.selectCount(new QueryWrapper<SystemUser>().lambda() + .eq(SystemUser::getDeleted,Constants.ZERO) + .and(i->i.eq(SystemUser::getMobile,registerDriverDTO.getPhone()).or().eq(SystemUser::getUsername,registerDriverDTO.getPhone())) + )>Constants.ZERO){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎵嬫満鍙峰凡娉ㄥ唽!"); + }; + + smsEmailService.validateCode(registerDriverDTO.getValidCode(),registerDriverDTO.getPhone()); + String salt = RandomStringUtils.randomAlphabetic(6); + ; + Member member = new Member(); + member.setCreateDate(new Date()); + member.setIsdeleted(Constants.ZERO); + member.setType(Constants.TWO); + member.setName(registerDriverDTO.getName()); + member.setPhone(registerDriverDTO.getPhone()); + member.setStatus(Constants.ZERO); + member.setPassward(Utils.Secure.encryptPassword(registerDriverDTO.getPassword(), salt)); + memberMapper.insert(member); + + + SystemUser systemUser = new SystemUser(); + systemUser.setCreateTime(new Date()); + systemUser.setDeleted(Boolean.FALSE); + systemUser.setUsername(registerDriverDTO.getPhone()); + systemUser.setRealname(registerDriverDTO.getName()); + systemUser.setMemberId(member.getId()); + systemUser.setSalt(salt); + systemUser.setPassword(member.getPassward()); + systemUser.setStatus(Constants.ZERO); + systemUserMapper.insert(systemUser); + + } + } 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 55ca0be..59ca333 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 @@ -39,6 +39,7 @@ import com.doumee.dao.web.reqeust.VisitRecordDTO; import com.doumee.dao.web.response.VisitDetailVO; import com.doumee.dao.web.response.VisitRecordVO; +import com.doumee.service.business.ApproveService; import com.doumee.service.business.InterfaceLogService; import com.doumee.service.business.SmsEmailService; import com.doumee.service.business.VisitsService; @@ -104,6 +105,8 @@ private SmsEmailService smsEmailService; @Autowired private SystemUserMapper systemUserMapper; + @Autowired + private ApproveService approveService; @Override @@ -237,6 +240,7 @@ }else if(dataSyncConfig.getVisitorDataOrigin().equals(Constants.ZERO)){ visits.setStatus(Constants.VisitStatus.pass); visitsMapper.updateById(visits); + approveService.createApproveFlow(visits.getType(),visits.getId(),visits.getReceptMemberId()); }else{ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鍙戣捣鎷滆瀹℃壒鐢宠澶辫触锛�"); } @@ -490,7 +494,6 @@ .eq(ApproveParam::getMemberType,Constants.ZERO) .last("limit 1")); return Objects.isNull(approveParam)?null:approveParam.getId(); - } @@ -1356,8 +1359,6 @@ dto.setId(systemUser.getId()); dto.setOperaUserId(systemUser.getId()); systemUserBiz.resetPwd(dto); - - } } -- Gitblit v1.9.3