|
|
|
@ -17,6 +17,7 @@ import javax.annotation.Resource;
|
|
|
|
|
import java.util.Collection;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 主动view请求用户数据job
|
|
|
|
@ -48,40 +49,61 @@ public class UserViewCollectJob extends AbstractCollectJob<UserDTO> {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void batchInsertOrUpdate(List<UserDTO> t) {
|
|
|
|
|
//docus-BasicDataReceive同步user逻辑
|
|
|
|
|
Collection<Object> userNames = ListUtils.distinctSelect(t, UserDTO::getUserName);
|
|
|
|
|
List<PowerUser> powerUsers = userService.findByList("userName", userNames);
|
|
|
|
|
List<String> existUserNames = ListUtils.distinctSelect(powerUsers, PowerUser::getUserName);
|
|
|
|
|
|
|
|
|
|
t.forEach(p -> {
|
|
|
|
|
String userName = p.getUserName();
|
|
|
|
|
String pwd = p.getPwd();
|
|
|
|
|
if (existUserNames.contains(userName)) {
|
|
|
|
|
PowerThirdLogin user = thirdLoginService.findOneBy("user", userName);
|
|
|
|
|
user.setPwd(p.getPwd());
|
|
|
|
|
thirdLoginService.updateById(user);
|
|
|
|
|
updateThirdLogin(pwd, userName);
|
|
|
|
|
} else {
|
|
|
|
|
insertUserAndThirdLogin(p, userName);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<UserDTO> execute(Date startDate, Date endDate, int pageNum, int pageSize) {
|
|
|
|
|
//每家医院按照固定的格式写sql,不同医院需要替换不同的sql即可。
|
|
|
|
|
return hisService.getUserListView(startDate, endDate, pageNum, pageSize);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void insertUserAndThirdLogin(UserDTO p, String userName) {
|
|
|
|
|
p.setPwd(userProperties.getPassword());
|
|
|
|
|
|
|
|
|
|
if (Func.isEmpty(p.getAuthorId())) {
|
|
|
|
|
p.setAuthorId("admin");
|
|
|
|
|
}
|
|
|
|
|
if (Func.isEmpty(p.getAuthorName())) {
|
|
|
|
|
p.setAuthorName("admin");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (Func.isNotBlank(p.getDeptId())) {
|
|
|
|
|
PowerDept powerDept = deptService.findOneBy("deptCode", p.getDeptId());
|
|
|
|
|
p.setDeptId(powerDept.getDeptId().toString());
|
|
|
|
|
if (!Objects.isNull(powerDept)) {
|
|
|
|
|
p.setDeptId(String.valueOf(powerDept.getDeptId()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
userService.insertOrUpdatePowerUser(p);
|
|
|
|
|
PowerUser powerUser = userService.findOneBy("userName", userName);
|
|
|
|
|
|
|
|
|
|
PowerThirdLogin powerThirdLogin = new PowerThirdLogin();
|
|
|
|
|
powerThirdLogin.setId(idService.getDateSeq());
|
|
|
|
|
powerThirdLogin.setPowerUserId(powerUser.getUserId().toString());
|
|
|
|
|
powerThirdLogin.setPowerUserId(String.valueOf(powerUser.getUserId()));
|
|
|
|
|
powerThirdLogin.setUser(userName);
|
|
|
|
|
powerThirdLogin.setPwd(p.getPwd());
|
|
|
|
|
powerThirdLogin.setSource(0);
|
|
|
|
|
powerThirdLogin.setCreateTime(DateUtil.now());
|
|
|
|
|
thirdLoginService.save(powerThirdLogin);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<UserDTO> execute(Date startDate, Date endDate, int pageNum, int pageSize) {
|
|
|
|
|
//每家医院按照固定的格式写sql,不同医院需要替换不同的sql即可。
|
|
|
|
|
return hisService.getUserListView(startDate, endDate, pageNum, pageSize);
|
|
|
|
|
private void updateThirdLogin(String pwd, String userName) {
|
|
|
|
|
PowerThirdLogin user = thirdLoginService.findOneBy("user", userName);
|
|
|
|
|
user.setPwd(pwd);
|
|
|
|
|
thirdLoginService.updateById(user);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|