|
@@ -30,6 +30,7 @@ import org.springframework.stereotype.Service;
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
import com.google.common.collect.Lists;
|
|
import com.google.common.collect.Lists;
|
|
|
|
|
|
|
|
+import jodd.util.StringUtil;
|
|
import me.chanjar.weixin.cp.bean.WxCpUser;
|
|
import me.chanjar.weixin.cp.bean.WxCpUser;
|
|
|
|
|
|
@Service
|
|
@Service
|
|
@@ -95,38 +96,36 @@ public class SapUserService extends BaseService {
|
|
if (sapUserDb == null) {
|
|
if (sapUserDb == null) {
|
|
this.saveSapUser(sapUser);
|
|
this.saveSapUser(sapUser);
|
|
} else {
|
|
} else {
|
|
- if (sapUserDb.toString().equals(sapUser.toString())) {
|
|
|
|
- // 用户数据没变,result保留SUCCESS,不用重复同步
|
|
|
|
- this.updateDelFlag(sapUser.getUserId(), DelFlagEnum.ENABLE);
|
|
|
|
- } else {
|
|
|
|
- this.updateSapUser(sapUser);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // 验证sap是否为垃圾数据
|
|
|
|
- sapUserDb = this.selectByUserId(sapUser.getUserId());
|
|
|
|
- String checkResult = checkUserGarbageOrBlacklist(sapUserDb);
|
|
|
|
- if (StringUtils.isNotBlank(checkResult)) {
|
|
|
|
- updateResultByUserId(checkResult, sapUserDb.getUserId());
|
|
|
|
|
|
+ this.updateSapUser(sapUser);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- // 更新所有无效数据为LEAVE
|
|
|
|
- this.updateResultByDelFlag(SapUserResultEnum.LEAVE, DelFlagEnum.UNABLE);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * 判断是不是垃圾数据或者黑名单
|
|
|
|
- *
|
|
|
|
- * @param sapUser
|
|
|
|
- * @return
|
|
|
|
- * @throws Exception
|
|
|
|
- */
|
|
|
|
- public String checkUserGarbageOrBlacklist(SapUser sapUser) throws Exception {
|
|
|
|
|
|
+ public String getCheckResultByWx(SapUser sapUser) throws Exception {
|
|
if (Tools.isEmpty(sapUser.getPersonId()) || Tools.isEmpty(sapUser.getFirstOrgName())
|
|
if (Tools.isEmpty(sapUser.getPersonId()) || Tools.isEmpty(sapUser.getFirstOrgName())
|
|
|| WebConstants.INGORE_PERSONIDS.contains("," + sapUser.getPersonId() + ",")) {
|
|
|| WebConstants.INGORE_PERSONIDS.contains("," + sapUser.getPersonId() + ",")) {
|
|
return SapUserResultEnum.GARBAGE.getCode();
|
|
return SapUserResultEnum.GARBAGE.getCode();
|
|
} else if (sapBlacklistService.findByUserId(sapUser.getPersonId()) != null) {
|
|
} else if (sapBlacklistService.findByUserId(sapUser.getPersonId()) != null) {
|
|
return SapUserResultEnum.BLACKLIST.getCode();
|
|
return SapUserResultEnum.BLACKLIST.getCode();
|
|
|
|
+ } else {
|
|
|
|
+ WxUser wxUser = wxUserService.selectById(sapUser.getPersonId(), sapUser.getEmail());
|
|
|
|
+ if (wxUser == null) {
|
|
|
|
+ return SapUserResultEnum.ENTRY.getCode();
|
|
|
|
+ } else {
|
|
|
|
+ if (!wxUser.getPosition().equals(sapUser.getPosition()) || !wxUserService
|
|
|
|
+ .getFullDepartName(sapUser.getPersonId()).equals(getFullOrgName(sapUser.getPersonId()))) {
|
|
|
|
+ return SapUserResultEnum.SENSITIVE.getCode();
|
|
|
|
+ } else { // 因为上面已经验证过敏感数据,这次判断其他数据是否修改过 就可以
|
|
|
|
+ // name+mobile+email+telephone
|
|
|
|
+ if ((StringUtil.equals(wxUser.getEmail(), sapUser.getEmail())
|
|
|
|
+ || StringUtil.equals(wxUser.getUserId(), sapUser.getEmail()))
|
|
|
|
+ && StringUtil.equals(wxUser.getMobile(), sapUser.getMobile())
|
|
|
|
+ && StringUtil.equals(wxUser.getName(), sapUser.getName())
|
|
|
|
+ && StringUtil.equals(wxUser.getTelephone(), sapUser.getBusinessPhone())) {
|
|
|
|
+ return SapUserResultEnum.SUCCESS.getCode();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
@@ -137,25 +136,24 @@ public class SapUserService extends BaseService {
|
|
* @throws Exception
|
|
* @throws Exception
|
|
*/
|
|
*/
|
|
public void updateAbnormalResult() throws Exception {
|
|
public void updateAbnormalResult() throws Exception {
|
|
|
|
+ // 查询NORMAL有效数据,判断异常,入职,没变化
|
|
List<SapUser> normalList = selectPrimaryListByResult(SapUserResultEnum.NORMAL.getCode());
|
|
List<SapUser> normalList = selectPrimaryListByResult(SapUserResultEnum.NORMAL.getCode());
|
|
- SapUserResultEnum resultEnum = null;
|
|
|
|
for (SapUser sapUser : normalList) {
|
|
for (SapUser sapUser : normalList) {
|
|
- resultEnum = checkSensitiveOrEntryData(sapUser);
|
|
|
|
- if (resultEnum != null) {
|
|
|
|
- this.updateResultByPersonId(resultEnum.getCode(), sapUser.getPersonId());
|
|
|
|
|
|
+ String checkResult = getCheckResultByWx(sapUser);
|
|
|
|
+ if (StringUtils.isNotBlank(checkResult)) {
|
|
|
|
+ updateResultByUserId(checkResult, sapUser.getUserId());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- }
|
|
|
|
-
|
|
|
|
- private SapUserResultEnum checkSensitiveOrEntryData(SapUser sapUser) throws Exception {
|
|
|
|
- WxUser wxUser = wxUserService.selectById(sapUser.getPersonId());
|
|
|
|
- if (wxUser == null) {
|
|
|
|
- return SapUserResultEnum.ENTRY;
|
|
|
|
- } else if (!wxUser.getPosition().equals(sapUser.getPosition()) || !wxUserService
|
|
|
|
- .getFullDepartName(sapUser.getPersonId()).equals(getFullOrgName(sapUser.getPersonId()))) {
|
|
|
|
- return SapUserResultEnum.SENSITIVE;
|
|
|
|
|
|
+ // 查询UNABLE数据,判断已不存在或离职
|
|
|
|
+ List<SapUser> unableList = selectPrimaryListByDelFlag(DelFlagEnum.UNABLE.getCode());
|
|
|
|
+ for (SapUser sapUser : unableList) {
|
|
|
|
+ WxUser wxUser = wxUserService.selectById(sapUser.getPersonId(), sapUser.getEmail());
|
|
|
|
+ if(wxUser != null) {
|
|
|
|
+ updateResultByUserId(SapUserResultEnum.LEAVE.getCode(), sapUser.getUserId());
|
|
|
|
+ } else {
|
|
|
|
+ updateResultByUserId(SapUserResultEnum.NON_EXISTENT.getCode(), sapUser.getUserId());
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- return null;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -310,7 +308,7 @@ public class SapUserService extends BaseService {
|
|
sapUser.setDepartList(departList);
|
|
sapUser.setDepartList(departList);
|
|
sapUser.setSapPosition(sapUser.getPosition());
|
|
sapUser.setSapPosition(sapUser.getPosition());
|
|
sapUser.setSapFullDepart(getFullOrgName(sapUser.getPersonId()));
|
|
sapUser.setSapFullDepart(getFullOrgName(sapUser.getPersonId()));
|
|
- WxUser wxUser = wxUserService.selectById(sapUser.getPersonId());
|
|
|
|
|
|
+ WxUser wxUser = wxUserService.selectById(sapUser.getPersonId(), sapUser.getEmail());
|
|
if (wxUser != null) {
|
|
if (wxUser != null) {
|
|
sapUser.setWxPosition(wxUser.getPosition());
|
|
sapUser.setWxPosition(wxUser.getPosition());
|
|
sapUser.setWxFullDepart(wxUserService.getFullDepartName(sapUser.getPersonId()));
|
|
sapUser.setWxFullDepart(wxUserService.getFullDepartName(sapUser.getPersonId()));
|