From 995436f56f93874f19b8094fe5537e96d413b6fd Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 30 七月 2024 18:07:49 +0800
Subject: [PATCH] 修复bug
---
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java | 164 ++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 121 insertions(+), 43 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..0f9a0ab 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,
@@ -1087,25 +1160,30 @@
}catch (BusinessException e){
throw e;
}finally {
- saveInterfaceLog(param,"/visitBiz/resource/approveApply",null,Constants.ZERO);
+// saveInterfaceLog(param,"/visitBiz/resource/approveApply",null,Constants.ZERO);
}
}
@Override
public void saveInterfaceLog(Object param, String path, String result, Integer type) {
- InterfaceLog interfaceLog=new InterfaceLog();
- interfaceLog.setType(type);
- interfaceLog.setCreateDate(new Date());
- interfaceLog.setIsdeleted(Constants.ZERO);
- if(param!=null){
- interfaceLog.setRequest(JSONObject.toJSONString(param));
+ try {
+ InterfaceLog interfaceLog=new InterfaceLog();
+ interfaceLog.setType(type);
+ interfaceLog.setCreateDate(new Date());
+ interfaceLog.setIsdeleted(Constants.ZERO);
+ if(param!=null){
+ interfaceLog.setRequest(JSONObject.toJSONString(param));
+ }
+ interfaceLog.setPlat(Constants.ONE);
+ interfaceLog.setRepose(result);
+ interfaceLog.setName(path);
+ interfaceLog.setUrl(path);
+ interfaceLogService.create(interfaceLog);
+ }catch (Exception e){
+e.printStackTrace();
}
- interfaceLog.setPlat(Constants.ONE);
- interfaceLog.setRepose(result);
- interfaceLog.setName(path);
- interfaceLog.setUrl(path);
- interfaceLogService.create(interfaceLog);
+
}
}
--
Gitblit v1.9.3