From c1e829fcf97594aaa30ffb531f213b703e0eb21f Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期二, 26 十二月 2023 18:23:16 +0800 Subject: [PATCH] ERP接口 --- server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java | 111 +++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 75 insertions(+), 36 deletions(-) diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java index e35fe39..40f22bd 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java +++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java @@ -35,6 +35,7 @@ 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.xiaoymin.knife4j.core.util.CollectionUtils; import com.github.yulichang.wrapper.MPJLambdaWrapper; import io.swagger.models.auth.In; import org.apache.commons.lang3.StringUtils; @@ -42,7 +43,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; import org.springframework.util.DigestUtils; import java.util.*; @@ -91,15 +91,22 @@ //妫�鏌ユ槸鍚﹀繀椤荤瓟棰橈紝骞朵笖绗﹀悎绛旈瑕佹眰 ProblemLog problemLog = isValidProblemLog(visits); //鑾峰彇鐢宠鐨勬捣搴疯闂棬绂佺粍淇℃伅 - String[] hkIds = getHkDeviceRoles(visits); + getHkDeviceRoles(visits); //妫�楠屾嫓璁夸汉鏄惁鍚堟硶 Member visitMember = isValideVisitedUser(visits.getReceptMemberId()); if(Constants.equalsInteger(Constants.ZERO, visits.getIdcardType()) &&!IdcardUtil.isValidCard(visits.getIdcardNo())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝韬唤璇佸彿鐮佹湁璇紝璇锋牳瀹炲悗閲嶈瘯锛�"); } Date date = new Date(); + //鍒涘缓鏃堕棿 + visits.setCreateDate(date); + //鏅�氳瀹� + visits.setType(Constants.ONE); + //闅忚浜哄憳鏁伴噺 + visits.setMemberNum(CollectionUtils.isNotEmpty(visits.getWithUserList())?visits.getWithUserList().size():0); //璁垮淇℃伅(浣跨敤韬唤璇佸彿鏌ヨ鏄惁宸插瓨鍦ㄦ敼鏅�氳瀹紝娌℃湁鍒欐柊澧烇紝瀛樺湪鍒欐洿鏂皁penid绛変俊鎭�),鍖呮嫭闅忚浜哄憳鏍¢獙鍜屽鐞� Member member =dealMemberAndVisits(visits); + visits.setMemberId(member.getId()); //鍒濆鍖栬瀹俊鎭� initVisitInfo(visits,date); //鍙戣捣ERP瀹℃壒鐢宠 @@ -120,13 +127,13 @@ * @param visits */ private void isValidBaseParam(Visits visits) { - if(visits.getStarttime() == null - || visits.getEndtime() == null + if(visits.getEndtime() == null + || visits.getStarttime() == null || StringUtils.isBlank(visits.getReason()) || StringUtils.isBlank( visits.getName()) || StringUtils.isBlank( visits.getPhone()) || visits.getIdcardType() == null - || StringUtils.isBlank( visits.getFaceImg() ) +// || StringUtils.isBlank( visits.getFaceImg() ) || StringUtils.isBlank( visits.getIdcardNo() ) || visits.getReceptMemberId() == null){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝淇℃伅濉啓涓嶆纭紒"); @@ -177,13 +184,16 @@ } private void initWithVisitInfo(Visits visits) { - if(visits.getWithUserList()!=null && visits.getLwWithUserList().size()>0){ + if(CollectionUtils.isNotEmpty(visits.getWithUserList())){ for(Visits v :visits.getWithUserList()){ v.setParentId(visits.getId()); v.setStarttime(visits.getStarttime()); v.setEndtime(visits.getEndtime()); v.setIsdeleted(Constants.ZERO); v.setCreateDate(visits.getCreateDate()); + v.setSex(Constants.getSexByCardNo(v.getIdcardNo())); + v.setIdcardDecode(Constants.getTuominStr(v.getIdcardNo()));//鑴辨晱韬唤璇佸彿 + v.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, v.getIdcardNo()));//韬唤璇佸彿鍔犲瘑 v.setErpId(visits.getErpId()); v.setHkStatus(Constants.ZERO); v.setStatus(Constants.ZERO); @@ -197,9 +207,10 @@ visits.setHkStatus(Constants.ZERO);//鏈悓姝� visits.setBirthday(Constants.getBirthdyByCardNo(visits.getIdcardNo())); visits.setStatus(Constants.ZERO);//寰呭鎵� + visits.setSex(Constants.getSexByCardNo(visits.getIdcardNo())); + visits.setIdcardDecode(Constants.getTuominStr(visits.getIdcardNo()));//鑴辨晱韬唤璇佸彿 visits.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, visits.getIdcardNo()));//韬唤璇佸彿鍔犲瘑 - //韬唤璇佸彿瀛樺偍瀵嗘枃 - visits.setIdcardDecode(Constants.getTuominStr(visits.getIdcardNo()));//鑴辨晱鎵嬫満鍙� + visits.setIsdeleted(Constants.ZERO); visits.setCreateDate(date); } @@ -207,7 +218,7 @@ ApproveAddRequest param = new ApproveAddRequest(); List<Visits> withUserVisitsList = visits.getWithUserList(); List<UserInfoRequest> withUserList = new ArrayList<>(); - if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(withUserVisitsList)){ + if(CollectionUtils.isNotEmpty(withUserVisitsList)){ for (Visits v:withUserVisitsList) { UserInfoRequest userInfoRequest = new UserInfoRequest(); userInfoRequest.setName(v.getName()); @@ -231,7 +242,7 @@ } if(StringUtils.isNotBlank(visits.getDoors())){ List<DeviceRole> deviceRoleList = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda().in(DeviceRole::getId,Arrays.asList(visits.getDoors().split(",")))); - if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(deviceRoleList)){ + if(CollectionUtils.isNotEmpty(deviceRoleList)){ param.setRoleIds(deviceRoleList.stream().map(m->m.getId()).collect(Collectors.toList())); param.setRoleNames(deviceRoleList.stream().map(m->m.getName()).collect(Collectors.toList())); } @@ -281,25 +292,39 @@ //闅忚浜哄憳淇℃伅澶勭悊 if(visits.getWithUserList()!= null && visits.getWithUserList().size()>0){ for(Visits model:visits.getWithUserList()){ + model.setStarttime(visits.getStarttime()); + model.setEndtime(visits.getEndtime()); //鏍¢獙闅忚浜哄憳濉姤鏁版嵁鍚堟硶鎬� isValidWithVisitParam(model,addList,editList); model.setCreateDate(visits.getCreateDate()); - getMemberListParam(model.getIdcardNo(),visits,addList,editList); + getMemberListParam(model.getIdcardNo(),model,addList,editList); } } + + if(CollectionUtils.isNotEmpty(addList)){ + memberMapper.insertBatchSomeColumn(addList); + } + if(CollectionUtils.isNotEmpty(editList)){ + editList.forEach(i->{ + memberMapper.updateById(i); + }); + + } + return m; } private Member getMemberListParam(String cardno, Visits visits, List<Member> addList, List<Member> editList) { - if(!Constants.checkCarNo(visits.getCarNos())){ + if(StringUtils.isNotBlank(visits.getCarNos())&&!Constants.checkCarNo(visits.getCarNos())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝杞︾墝鍙枫��"+visits.getCarNos()+"銆戜笉鍚堟硶锛岃鏍稿疄鍚庨噸璇晘"); } Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda() .eq(Member::getType,Constants.memberType.visitor) .eq(Member::getIdcardType,visits.getIdcardType()) - .eq(Member::getIdcardNo,visits.getIdcardNo()).last("limit 1" ) + .eq(Member::getIdcardNo,DESUtil.encrypt(Constants.EDS_PWD, cardno)).last("limit 1" ) ); if(member == null){ + member = new Member(); //濡傛灉鐢ㄦ埛涓嶅瓨鍦紝鍒欐柊澧� member.setCreateDate(visits.getCreateDate()); member.setIsdeleted(Constants.ZERO); @@ -307,12 +332,18 @@ member.setIdcardDecode(visits.getIdcardDecode()); member.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, cardno));//韬唤璇佸彿鍔犲瘑 member.setIdcardDecode(Constants.getTuominStr(cardno));//鑴辨晱鎵嬫満鍙� + member.setFaceImg(visits.getFaceImg()); + member.setSex(Constants.getSexByCardNo(cardno)); + member.setImgurl(StringUtils.isNotBlank(visits.getImgurl())?visits.getImgurl():null); + member.setIdcardType(visits.getIdcardType()); member.setName(visits.getName()); member.setPhone(visits.getPhone()); member.setOpenid(visits.getOpenid()); member.setType(Constants.memberType.visitor); member.setStatus(Constants.ZERO); member.setSex(Constants.getSexByCardNo(cardno)); + member.setHkStatus(Constants.ZERO); + member.setErpStatus(Constants.ZERO); // 鏂板璁垮璁板綍 addList.add(member); }else{ @@ -322,24 +353,28 @@ } //鏍告煡棰勭害鐢ㄦ埛鏄惁瀛樺湪鏈绂荤殑棰勭害璁板綍 isExsitNoOutVisisRecord(member); + member.setFaceImg(visits.getFaceImg()); + member.setImgurl(StringUtils.isNotBlank(visits.getImgurl())?visits.getImgurl():null); member.setEditDate(visits.getCreateDate()); member.setIsdeleted(Constants.ZERO); - member.setIdcardNo(visits.getIdcardNo()); - member.setIdcardDecode(visits.getIdcardDecode()); + member.setSex(Constants.getSexByCardNo(cardno)); + member.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, cardno));//韬唤璇佸彿鍔犲瘑 + member.setIdcardDecode(Constants.getTuominStr(cardno));//鑴辨晱韬唤璇佸彿 member.setName(visits.getName()); member.setPhone(visits.getPhone()); member.setOpenid(visits.getOpenid()); member.setSex(Constants.getSexByCardNo(cardno)); + member.setHkStatus(Constants.ZERO); + member.setErpStatus(Constants.ZERO); // 鏇存柊璁垮淇℃伅, editList.add(member); } //鏍规嵁鎵嬫満鍙峰拰韬唤璇佸彿鐮佹煡璇� 褰撳墠棰勭害鐨勬椂闂存槸鍚︿笌鍏朵粬棰勭害璁板綍鏈夊啿绐� if (visitsMapper.selectCount(new QueryWrapper<Visits>().lambda() - .eq(Visits::getPhone, member.getPhone()) - .and(ms -> ms.eq(Visits::getPhone, member.getPhone()) - .or().eq(Visits::getIdcardDecode, member.getIdcardDecode())) - .and(ms -> ms.apply(" visits.STARTTIME <= '" + visits.getStarttime() + "' and visits.ENDTIME >= '" + visits.getStarttime() + "' ") - .or().apply(" visits.STARTTIME <= '" + visits.getEndtime() + "' and visits.ENDTIME >= '" + visits.getEndtime() + "' ") + .and(ms -> ms.eq(Visits::getPhone, visits.getPhone()) + .or().eq(Visits::getIdcardDecode, Constants.getTuominStr(cardno))) + .and(ms -> ms.apply(" visits.STARTTIME <= '" + DateUtil.DateToStr(visits.getStarttime(),"yyyy-MM-dd HH:mm:ss") + "' and visits.ENDTIME >= '" + DateUtil.DateToStr(visits.getStarttime(),"yyyy-MM-dd HH:mm:ss") + "' ") + .or().apply(" visits.STARTTIME <= '" + DateUtil.DateToStr(visits.getEndtime(),"yyyy-MM-dd HH:mm:ss") + "' and visits.ENDTIME >= '" + DateUtil.DateToStr(visits.getEndtime(),"yyyy-MM-dd HH:mm:ss") + "' ") )) > Constants.ZERO) { throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝鎵嬫満鍙枫��"+member.getPhone()+"銆戞垨韬唤璇併��"+ member.getIdcardDecode() +"銆戝瓨鍦ㄩ绾︽椂闂村啿绐侊紝鏃犳硶鐢宠鍝︼紒"); } @@ -384,6 +419,7 @@ private void updateProblemLog(Visits visits, ProblemLog problemLog,Member member) { if(problemLog!=null){ problemLog.setEditDate(visits.getCreateDate()); + problemLog.setStatus(Constants.ONE); problemLog.setName(visits.getName()); problemLog.setUserId(member.getId()); problemLog.setPhone(member.getPhone()); @@ -398,7 +434,7 @@ */ private Member isValideVisitedUser(Integer receptMemberId) { Member member = memberMapper.selectById(receptMemberId); - if(member == null || Constants.equalsInteger(Constants.ZERO,member.getIsdeleted())){ + if(member == null || !Constants.equalsInteger(Constants.ZERO,member.getIsdeleted())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇ユ嫓璁夸汉鏆傛椂涓嶈兘鎺ュ彈鎮ㄧ殑鎷滆鐢宠锛�"); } if(!Constants.equalsInteger(member.getStatus(), Constants.ZERO)){ @@ -421,7 +457,7 @@ if(log == null){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇峰厛鎸夎姹傝繘琛屽畨鍏ㄧ煡璇嗙瓟棰�."); } - if(log.getLogId() !=null){ + if(log.getLogId() !=null&&log.getStatus().equals(Constants.ZERO)){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇峰厛鎸夎姹傝繘琛屽畨鍏ㄧ煡璇嗙瓟棰榽"); } return log; @@ -438,11 +474,23 @@ String mustSelectDoors = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SELECT_DOORS_VISIT_REQUIRED).getCode(); List<DeviceRole> roles = null; if(StringUtils.equals(mustSelectDoors,Constants.ZERO+"")){ - //濡傛灉蹇呴』閫夋嫨闂ㄧ锛屼絾鏈�夋嫨 + //濡傛灉璁剧疆涓嶉�夋嫨闂ㄧ锛屽垯鎻愪緵榛樿闂ㄧ缁勪俊鎭� + if(StringUtils.isBlank(visits.getDoors())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇烽�夋嫨璁块棶闂ㄧ锛�"); } //鏍¢獙闂ㄧ缁勪俊鎭槸鍚︽纭� + String[] dIds = visits.getDoors().split(","); + roles = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() + .eq(DeviceRole::getIsDefault,Constants.ZERO) + .eq(DeviceRole::getIsdeleted,Constants.ZERO) + .eq(DeviceRole::getType,Constants.DeviceRoleType.fk)); + if(roles.size() ==0){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝鏆備笉瀛樺湪鍙闂殑璁垮闂ㄧ锛屾棤娉曡繘琛岀敵璇锋搷浣滐紒"); + } + + }else{ + //濡傛灉蹇呴』閫夋嫨闂ㄧ锛屼絾鏈�夋嫨 String[] dIds = visits.getDoors().split(","); roles = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() .eq(DeviceRole::getIsdeleted,Constants.ZERO) @@ -450,17 +498,6 @@ .in(DeviceRole::getId, Arrays.asList(dIds))); if(roles == null || roles.size()==0 || roles.size() != dIds.length){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇烽�夋嫨鏈夋晥璁块棶闂ㄧ锛�"); - } - }else{ - //濡傛灉璁剧疆涓嶉�夋嫨闂ㄧ锛屽垯鎻愪緵榛樿闂ㄧ缁勪俊鎭� - String[] dIds = visits.getDoors().split(","); - roles = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() - .eq(DeviceRole::getIsdeleted,Constants.ZERO) - .eq(DeviceRole::getIsDefault,Constants.ZERO) - .eq(DeviceRole::getType,Constants.DeviceRoleType.fk)); - if(roles.size() ==0){ - - throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝鏆備笉瀛樺湪鍙闂殑璁垮闂ㄧ锛屾棤娉曡繘琛岀敵璇锋搷浣滐紒"); } } String[] ids =new String[roles.size()]; @@ -537,6 +574,8 @@ BeanUtils.copyProperties(result,v); visitsList.add(0,v); result.setWithUserList(visitsList); + result.setPrefixUrl(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() + + systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode()); return result; } @@ -565,9 +604,9 @@ queryWrapper.eq(Visits::getIsdeleted,Constants.ZERO); queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType()),Visits::getType,pageWrap.getModel().getType()); - queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getName()),ms->ms.like(Visits::getPhone,pageWrap.getModel().getName()) + queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getName()),ms->ms.like(Visits::getName,pageWrap.getModel().getName()) .or().like(Visits::getPhone,pageWrap.getModel().getName())) - .eq(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Visits::getIdcardNo,StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo())) + .eq(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Visits::getIdcardNo,DESUtil.encrypt(Constants.EDS_PWD, pageWrap.getModel().getIdcardNo())) .eq(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Visits::getCompanyName,pageWrap.getModel().getCompanyName()) .eq(Objects.nonNull(pageWrap.getModel().getStatus()),Visits::getStatus,pageWrap.getModel().getStatus()); queryWrapper.isNull(Visits::getParentId); -- Gitblit v1.9.3