From 38ef4fef1899d8bdbd8d444a2e833a79e9253f5d Mon Sep 17 00:00:00 2001 From: jiaosong <jiaosong6760@dingtalk.com> Date: 星期一, 04 十二月 2023 17:55:15 +0800 Subject: [PATCH] #供应人员新增查询 --- server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 107 insertions(+), 1 deletions(-) diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java index 0c7a0ef..5e4213c 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java +++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java @@ -1,20 +1,40 @@ package com.doumee.service.business.impl; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdcardUtil; +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.Utils; +import com.doumee.dao.admin.request.LaborMemberDTO; +import com.doumee.dao.admin.response.MemberInfoDTO; import com.doumee.dao.business.MemberMapper; +import com.doumee.dao.business.TrainTimeMapper; +import com.doumee.dao.business.join.MemberJoinMapper; +import com.doumee.dao.business.model.Company; +import com.doumee.dao.business.model.Empower; import com.doumee.dao.business.model.Member; +import com.doumee.dao.business.model.TrainTime; import com.doumee.service.business.MemberService; 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.apache.shiro.SecurityUtils; 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.Date; import java.util.List; +import java.util.Objects; /** * 浜哄憳淇℃伅琛⊿ervice瀹炵幇 @@ -27,10 +47,70 @@ @Autowired private MemberMapper memberMapper; + @Autowired + private MemberJoinMapper memberJoinMapper; + + @Autowired + private TrainTimeMapper trainTimeMapper; + @Override public Integer create(Member member) { memberMapper.insert(member); return member.getId(); + } + + @Transactional + @Override + public Integer laborMemberCreate(LaborMemberDTO member) { + + LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + + if (IdcardUtil.isValidCard(member.getIdcardNo())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"韬唤璇佸彿鏍煎紡鏈夎"); + } + if (IdcardUtil.getGenderByIdCard(member.getIdcardNo()) == member.getSex()){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎬у埆鏈夎"); + } + //鑾峰彇鍑虹敓鏃ユ湡 + String birthByIdCard = IdcardUtil.getBirthByIdCard(member.getIdcardNo()); + //鑴辨晱鎿嶄綔 + String hide = IdcardUtil.hide(member.getIdcardNo(), 6, 14); + //杞崲鏃ユ湡 + DateTime yyyyMMdd = DateUtil.parse(birthByIdCard, "yyyyMMdd"); + + Member insert = new Member(); + insert.setCreator(loginUserInfo.getId()); + insert.setCreateDate(new Date()); + insert.setEditor(loginUserInfo.getId()); + insert.setEditDate(new Date()); + insert.setIsdeleted(Constants.ZERO); + insert.setCompanyId(member.getCompanyId()); + insert.setFaceImg(member.getFaceImg()); + insert.setImgurl(member.getImgurl()); + insert.setType(Constants.ZERO); + insert.setName(member.getName()); + insert.setBirthday(yyyyMMdd); + insert.setPhone(member.getPhone()); + insert.setIdcardNo(Utils.Secure.encryptString(member.getIdcardNo())); + IdcardUtil.isValidCard(member.getIdcardNo()); + insert.setIdcardDecode(hide); + insert.setStatus(Constants.ZERO); + insert.setParentId(member.getParentId()); + memberMapper.insert(insert); + + TrainTime trainTime = new TrainTime(); + trainTime.setCreator(loginUserInfo.getId().toString()); + trainTime.setCreateDate(new Date()); + trainTime.setEdirot(loginUserInfo.getId().toString()); + trainTime.setEditDate(new Date()); + trainTime.setIsdeleted(Constants.ZERO); + trainTime.setMemberId(insert.getId()); + trainTime.setStartTime(Utils.Date.getStart(member.getStartTime())); + trainTime.setEndTime(Utils.Date.getDayEnd(member.getEndTime())); +// trainTime.setImportStatus(); +// trainTime.setImportInfo(); + trainTimeMapper.insert(trainTime); + return insert.getId(); } @Override @@ -83,7 +163,7 @@ QueryWrapper<Member> wrapper = new QueryWrapper<>(member); return memberMapper.selectList(wrapper); } - + @Override public PageData<Member> findPage(PageWrap<Member> pageWrap) { IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); @@ -225,6 +305,32 @@ } @Override + public PageData<MemberInfoDTO> findLaborMemberInfoPage(PageWrap<MemberInfoDTO> pageWrap) { + IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); + MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>(); + MemberInfoDTO model = pageWrap.getModel(); + Utils.MP.blankToNull(model); + Date end = Utils.Date.getEnd(pageWrap.getModel().getTrainTimeEndTime()); + queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId) + .leftJoin(TrainTime.class,TrainTime::getMemberId,Member::getId) + .leftJoin(Empower.class,Empower::getMemberId,Member::getId); + + queryWrapper.selectAll(Member.class) + .selectAs(Company::getName,MemberInfoDTO::getCompanyName) + .selectAs(Company::getLinkName,MemberInfoDTO::getLinkName) + .select("Max(t1.endTime)","trainTimeEndTime") + .select("Max(t2.endTime)","empowerEndTime"); + + queryWrapper.eq(Objects.nonNull(model.getCompanyId()),Member::getCompanyId,model.getCompanyId()) + .like(StringUtils.isNotBlank(model.getName()),Member::getName,model.getName()) + .like(StringUtils.isNotBlank(model.getPhone()),Member::getPhone,model.getPhone()) + .like(StringUtils.isNotBlank(model.getIdcardDecode()),Member::getIdcardDecode,model.getIdcardDecode()) + .having("trainTimeEndTime < "+ DateUtil.format(end,"yyyy-MM-dd HH:mm:ss")); + IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper); + return PageData.from(memberIPage); + } + + @Override public long count(Member member) { QueryWrapper<Member> wrapper = new QueryWrapper<>(member); return memberMapper.selectCount(wrapper); -- Gitblit v1.9.3