From e521fe9f2852dd008f176e462bf8ad3e5267e68f Mon Sep 17 00:00:00 2001 From: nidapeng <jp@doumee.com> Date: 星期二, 23 四月 2024 10:57:08 +0800 Subject: [PATCH] 最新版本 --- server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java | 135 ++++++++++++++++++++++++++++++++++---------- 1 files changed, 104 insertions(+), 31 deletions(-) diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java index 26aad7c..e50e043 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java +++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java @@ -36,6 +36,7 @@ import com.doumee.dao.business.model.*; import com.doumee.service.business.ext.ERPSyncService; import com.doumee.service.business.InterfaceLogService; +import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.Synchronized; import org.apache.commons.collections.CollectionUtils; @@ -305,22 +306,22 @@ dealUserChangeList(list,addList,updateList,delList,allList,param); if(addList.size()>0){ memberMapper.insertBatchSomeColumn(addList); - for (Member member:addList) { + /* for (Member member:addList) { dealRoleEmpower(member ); - } + }*/ } if(updateList.size()>0){ for(Member c : updateList){ - dealRoleEmpower(c ); +// dealRoleEmpower(c ); c.setHkStatus(Constants.ZERO); c.setRemark("寰呭悓姝ュ畨闃插钩鍙�"); memberMapper.updateById(c); } } if(delList.size()>0){ - for (Member member:delList) { + /* for (Member member:delList) { dealRoleEmpower(member ); - } + }*/ delIds = delList.stream().map(m->m.getId()).collect(Collectors.toList()); memberMapper.update(null,new UpdateWrapper<Member>().lambda() .set(Member::getHkStatus,Constants.ZERO) @@ -401,7 +402,7 @@ member.setErpDate(date); member.setErpId(param.getId()); member.setIdcardType(param.getIdType()); - member.setFsStatus(Constants.ZERO); + member.setFaceStatus(Constants.ZERO); member.setStatus(param.getStatus()); member.setType(Constants.memberType.internal); String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo()); @@ -770,7 +771,9 @@ company.setParentId(Objects.isNull(parentCompany)?null:parentCompany.getId()); company.setErpParentId(param.getParentId()); company.setFsStatus(Constants.ZERO); + company.setStatus(Constants.ZERO); company.setType(Constants.ONE); + company.setIsdeleted(Constants.ZERO); company.setLinkName(param.getLinkName()); company.setLinkPhone(param.getLinkPhone()); companyMapper.insert(company); @@ -839,20 +842,21 @@ member.setErpStatus(Constants.ONE); member.setErpDate(new Date()); member.setErpId(param.getId()); - member.setFsStatus(Constants.ZERO); + member.setFaceStatus(Constants.ZERO); member.setCompanyId(company.getId()); member.setType(Constants.memberType.internal); member.setCanVisit(Constants.ONE); String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo()); member.setIdcardNo(encryptIdNo); member.setStartTime(param.getValidStartTime()); - member.setRoleId(param.getRoleIds()!=null?JSONObject.toJSONString(param.getRoleIds()):null); +// member.setRoleId(param.getRoleIds()!=null?JSONObject.toJSONString(param.getRoleIds()):null); member.setEndTime(param.getValidEndTime()); member.setIdcardDecode(Constants.getTuominStr(param.getIdNo())); member.setErpOrgId(param.getOrgId()); memberMapper.insert(member); }else{ Integer id = member.getId(); + String faceImg = member.getFaceImg(); BeanUtils.copyProperties(param,member); member.setId(id); member.setCompanyId(company.getId()); @@ -863,15 +867,20 @@ member.setEditDate(new Date()); member.setErpDate(new Date()); member.setHkStatus(Constants.ZERO); - member.setRemark("寰呭悓姝ュ畨闃插钩鍙�"); + if(StringUtils.isNotBlank(param.getFaceImg()) + && !StringUtils.equals(param.getFaceImg(),faceImg)){ + //鍙湁浜鸿劯鍙戠敓鍙樺寲锛屾墠杩涜閲嶆柊鍚屾 + member.setFaceStatus(Constants.ZERO); + member.setRemark("寰呭悓姝ュ畨闃插钩鍙�"); + } member.setStartTime(param.getValidStartTime()); member.setEndTime(param.getValidEndTime()); memberMapper.updateById(member); } //2024骞�3鏈�7鏃�17:49:33 鍙栨秷姝や笟鍔″鐞嗕汉鍛橀棬绂佹潈闄� // getRoleIdByParam(param.getRoleIds(),member); - //娣诲姞浜哄憳鍗$墖鏁版嵁 - dealMemberCard(member,param); + //娣诲姞浜哄憳鍗$墖鏁版嵁(宸插紑鍚櫄鎷熷崱鍔熻兘锛岀郴缁熶笉闇�瑕佺粰铏氭嫙鍗�) +// dealMemberCard(member,param); } } @@ -920,13 +929,57 @@ } } } - private List<Integer> getRoleIdByParam(Integer[] param, Member member) { + private Integer getRoleIdByParam(Integer[] param, Member member) { //娣诲姞浜哄憳瑙掕壊鍏宠仈鏁版嵁 member.setRoleId(null); - if(!Objects.isNull(member)&&!Objects.isNull(member.getId())){ + List<MemberRole> roleList = memberRoleMapper.selectList( new QueryWrapper<MemberRole>().lambda() + .eq(MemberRole::getIsdeleted,Constants.ZERO) + .eq(MemberRole::getMemberId,member.getId())); + if((param == null || param.length==0 ) &&( roleList==null || roleList.size()==0)){ + //妫�鏌ョ敤鎴锋潈闄愭槸鍚﹀彂鐜板彉鍖� + return 0; + } + if((param == null || param.length==0 ) &&( roleList!=null && roleList.size()>0) ){ + //濡傛灉鍘熸潵鏈夋潈闄愶紝鎺ュ彛杩涜鏉冮檺鍒犻櫎 memberRoleMapper.delete(new QueryWrapper<MemberRole>().lambda().eq(MemberRole::getMemberId,member.getId())); + return 1; } if(!Objects.isNull(param)&¶m.length>Constants.ZERO){ + if(roleList!=null && roleList.size()>0) { + //鍜屽師鏈夋潈闄愯繘琛屽姣旓紝鐪嬫槸鍚︽潈闄愬彂鐢熷彉鍖� + boolean ischange1=false; + for (MemberRole role : roleList) { + ischange1=false; + for (int j = 0; j < param.length; j++) { + if(Constants.equalsInteger(role.getRoleId(),param[j])){ + ischange1=true; + break; + } + } + if(!ischange1){ + break; + } + } + + boolean ischange2 =false; + for (int j = 0; j < param.length; j++) { + ischange2=false; + for (MemberRole role : roleList) { + if(Constants.equalsInteger(role.getRoleId(),param[j])){ + ischange2=true; + break; + } + } + if(!ischange2){ + break; + } + } + if(ischange2 && ischange1){ + return 0;//鏉冮檺鏈彂鐢熸敼鍙� + } + } + //濡傛灉鍘熸潵鏈夋潈闄愶紝鎺ュ彛杩涜鏉冮檺鍒犻櫎 + memberRoleMapper.delete(new QueryWrapper<MemberRole>().lambda().eq(MemberRole::getMemberId,member.getId())); //鏌ヨ鏁版嵁搴撳瓨鍦ㄧ殑鏉冮檺 List<DeviceRole> deviceRoleList= deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() .eq(DeviceRole::getType,Constants.TWO) @@ -957,19 +1010,21 @@ memberRole.setCreateDate(new Date()); memberRole.setMemberId(member.getId()); memberRole.setIsdeleted(Constants.ZERO); - memberRole.setRoleId(deviceRole.getId().toString()); + memberRole.setRoleId(deviceRole.getId()); memberRoleList.add(memberRole); } + member.setRoleId(ids); memberRoleMapper.insertBatchSomeColumn(memberRoleList); member.setRoleId(ids); - return r; + return 1; } } - return null; + return 0; } @Override + @Transactional public void roleUserAuthor(UserAuthorRequest param){ if(Objects.isNull(param) ||StringUtils.isBlank(param.getUserId())){ @@ -984,18 +1039,22 @@ if(Objects.isNull(member)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛淇℃伅涓嶅瓨鍦紒"); } - List<Integer> doorIds = getRoleIdByParam(param.getRoleIds(),member); + Integer ischange = getRoleIdByParam(param.getRoleIds(),member); + if(ischange == 0){ + return;//鏈彂鐜版潈闄愬彉鍖栵紝鐩存帴杩斿洖 + } if(param.getRoleIds()!=null && param.getRoleIds().length>0 && StringUtils.isBlank(member.getRoleId())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鏈煡璇㈠埌鏈夋晥闂ㄧ缁勬暟鎹�"); } memberMapper.update(null,new UpdateWrapper<Member>().lambda() - .eq(Member::getId,member.getId()) - .set(Member::getRoleId,member.getRoleId()) - .set(Member::getRemark,"寰呭悓姝ュ畨闃插钩鍙�") - .set(Member::getStartTime,param.getValidStartTime()) - .set(Member::getEndTime,param.getValidEndTime()) - .set(Member::getEditDate,new Date()) - .set(Member::getHkStatus,Constants.ZERO )); + .eq(Member::getId,member.getId()) + .set(Member::getRoleId,member.getRoleId()) + .set(Member::getStartTime,param.getValidStartTime()) + .set(Member::getEndTime,param.getValidEndTime()) + .set(Member::getEditDate,new Date()) ); + //閲嶆柊鎺堟潈 + HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(null,member,deviceRoleMapper,empowerMapper,deviceMapper); + } @@ -1048,34 +1107,48 @@ } } } - + private void isValidDoors(String doors) { + if(StringUtils.isNotBlank(doors)){ + String[] dIds = doors.split(","); + List<DeviceRole> roles = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() + .eq(DeviceRole::getIsdeleted,Constants.ZERO) + .eq(DeviceRole::getType,Constants.DeviceRoleType.fk) + .in(DeviceRole::getId, Arrays.asList(dIds))); + if(roles == null || roles.size()==0 || roles.size() != dIds.length){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇烽�夋嫨鏈夋晥鐨勮瀹㈤棬绂佺粍锛�"); + } + } + } @Override public void approveApply(ApproveNoticeRequest param){ try{ - if(!Objects.isNull(param) - ){ - - } if(Objects.isNull(param) ||Objects.isNull(param.getId()) ||Objects.isNull(param.getStatus())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } if(!(param.getStatus()==Constants.ZERO||param.getStatus()==Constants.ONE)){ - throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鐘舵�佺爜閿欒"); + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀹℃壒缁撴灉鍙傛暟涓嶆纭�"); } if(visitsMapper.selectCount(new QueryWrapper<Visits>().lambda().eq(Visits::getErpId,param.getId()) .ne(Visits::getStatus,Constants.VisitStatus.submitCheck))>Constants.ZERO){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�佺爜閿欒"); + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇ョ敵璇峰綋鍓嶇姸鎬佷笉鏀寔璇ユ搷浣�"); } + isValidDoors(param.getDoors()); List<Visits> visitsList = visitsMapper.selectList(new QueryWrapper<Visits>().lambda().eq(Visits::getErpId,param.getId())); if(CollectionUtils.isNotEmpty(visitsList)){ visitsList.forEach(i->{ + i.setEndCheckInfo("鐢宠鏃堕棿锛�"+DateUtil.getPlusTime2(i.getStarttime())+"-" + +DateUtil.getPlusTime2(i.getEndtime()) + +" 鐢宠闂ㄧ锛�"+i.getDoors()); i.setStatus(!param.getStatus().equals(Constants.ZERO)?Constants.VisitStatus.pass:Constants.VisitStatus.noPass); i.setEndCheckDate(DateUtil.StringToDate(param.getApproveDate(),"yyyy-MM-dd HH:mm:ss")); i.setHkStatus(Constants.ZERO); i.setRemark("寰呭悓姝ュ畨闃插钩鍙�"); + i.setStarttime( param.getStartTime()); + i.setEndtime(param.getEndTime()); + i.setDoors(param.getDoors()); visitsMapper.updateById(i); if(Objects.isNull(i.getParentId())){ wxPlatNotice.sendVisitAuditTemplateNotice(i, -- Gitblit v1.9.3