|
@@ -236,17 +236,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
|
} else if (userList.get(0).getIsActive() == 0) {
|
|
|
httpRespMsg.setError(MessageUtils.message("user.inactive"));
|
|
|
} else {
|
|
|
- if(userList.get(0).getCompanyId()==3523){
|
|
|
- int i = username.indexOf("@");
|
|
|
- String substring = username.substring(0, i);
|
|
|
- EqualsFilter filter = new EqualsFilter("sAMAccountName", substring);
|
|
|
- boolean res = ldapTemplate.authenticate("",filter.toString(), password);
|
|
|
- if(!res){
|
|
|
- httpRespMsg.setError("AD域控用户账号或者密码错误,验证失败");
|
|
|
- return httpRespMsg;
|
|
|
- }
|
|
|
- userList.get(0).setPassword(MD5Util.getPassword(password));
|
|
|
- }
|
|
|
if (MD5Util.getPassword(password).equals(userList.get(0).getPassword())){
|
|
|
//查看该公司非会员公司,只能允许试用三天,超时不可登录
|
|
|
Company company = companyMapper.selectOne(new QueryWrapper<Company>().eq("id", userList.get(0).getCompanyId()));
|
|
@@ -2187,6 +2176,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
|
item.setVcode(""+vcode);
|
|
|
if (isPrivateDeploy) {
|
|
|
userVcodeMapper.insert(item);
|
|
|
+ msg.setData(item);
|
|
|
} else {
|
|
|
SendSmsResponse sendSmsResponse = SmsUtil.sendSms(mobile, "" + vcode);
|
|
|
if (!sendSmsResponse.getBody().getCode().equals("OK")) {
|
|
@@ -3049,7 +3039,230 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
|
return jsonObjectList;
|
|
|
}
|
|
|
|
|
|
- private LdapContext adLogin() {
|
|
|
+ @Override
|
|
|
+ public HttpRespMsg initSystemForAd(String companyName) throws Exception {
|
|
|
+ HttpRespMsg msg = new HttpRespMsg();
|
|
|
+ Integer count = companyMapper.selectCount(new QueryWrapper<Company>().eq("company_name", companyName));
|
|
|
+ if (count>0){
|
|
|
+ msg.setError("当前公司名称已存在");
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
+ Company company = new Company().setCompanyName(companyName)
|
|
|
+ .setExpirationDate(LocalDateTime.now().plusDays(36500));
|
|
|
+ company.setPackageWorktime(1);
|
|
|
+ companyMapper.insert(company);
|
|
|
+ //生成工作时长
|
|
|
+ TimeType timeType = new TimeType();
|
|
|
+ timeType.setCompanyId(company.getId());
|
|
|
+ timeTypeMapper.insert(timeType);
|
|
|
+ SysRole smanager = sysRoleService.generateDefaultRoles(company.getId());
|
|
|
+ //创建企业负责人账号
|
|
|
+ Long id = SnowFlake.nextId();
|
|
|
+ User manager = new User()
|
|
|
+ .setId(id.toString())
|
|
|
+ .setRoleId(smanager.getId())
|
|
|
+ .setRoleName(smanager.getRolename())
|
|
|
+ .setName("sysadmin")
|
|
|
+ .setPhone("sysadmin@"+dcFirst+dcSecond)
|
|
|
+ .setPassword(MD5Util.getPassword("000000"))
|
|
|
+ .setColor(ColorUtil.randomColor())
|
|
|
+ .setCompanyId(company.getId());
|
|
|
+ userMapper.insert(manager);
|
|
|
+ System.out.println("生成超级管理员:sysadmin");
|
|
|
+ //生成项目的成本基线默认条目
|
|
|
+ String[] array = Constant.DEFAULT_BASE_COST_ITEMS;
|
|
|
+ for (String baseItem : array) {
|
|
|
+ ProjectBasecostSetting setting = new ProjectBasecostSetting();
|
|
|
+ setting.setName(baseItem);
|
|
|
+ setting.setCompanyId(company.getId());
|
|
|
+ projectBasecostSettingMapper.insert(setting);
|
|
|
+ }
|
|
|
+ //生成费用报销默认条目
|
|
|
+ String[] expenseTypes = Constant.EXPENSE_TYPES;
|
|
|
+ List<String> commonly = new ArrayList<>();
|
|
|
+ commonly.add("材料费");
|
|
|
+ //commonly.add(MessageUtils.message("entry.materialCost"));
|
|
|
+ commonly.add("办公用品");
|
|
|
+ //commonly.add(MessageUtils.message("entry.workCost"));
|
|
|
+ commonly.add("培训费");
|
|
|
+ //commonly.add(MessageUtils.message("entry.trainCost"));
|
|
|
+ commonly.add("打印费");
|
|
|
+ //commonly.add(MessageUtils.message("entry.printCost"));
|
|
|
+ commonly.add("快递费");
|
|
|
+ //commonly.add(MessageUtils.message("entry.expressCost"));
|
|
|
+ commonly.add("制作费");
|
|
|
+ //commonly.add(MessageUtils.message("entry.makeCost"));
|
|
|
+ commonly.add("律师费");
|
|
|
+ //commonly.add(MessageUtils.message("entry.lawyerCost"));
|
|
|
+ commonly.add("水费");
|
|
|
+ //commonly.add(MessageUtils.message("entry.waterCost"));
|
|
|
+ commonly.add("电费");
|
|
|
+ //commonly.add(MessageUtils.message("entry.electricCost"));
|
|
|
+ commonly.add("团建费");
|
|
|
+ //commonly.add(MessageUtils.message("entry.leagueCost"));
|
|
|
+ commonly.add("其他");
|
|
|
+ //commonly.add(MessageUtils.message("entry.other"));
|
|
|
+ List<String> travel = new ArrayList<>();
|
|
|
+ travel.add("城市间交通费");
|
|
|
+ //travel.add(MessageUtils.message("entry.cityTrafficCost"));
|
|
|
+ travel.add("住宿费");
|
|
|
+ //travel.add(MessageUtils.message("entry.liveCost"));
|
|
|
+ travel.add("伙食补助费");
|
|
|
+ //travel.add(MessageUtils.message("entry.eatCost"));
|
|
|
+ travel.add("市内交通费");
|
|
|
+ //travel.add(MessageUtils.message("entry.insideCityCost"));
|
|
|
+ travel.add("其他差旅费");
|
|
|
+ //travel.add(MessageUtils.message("entry.otherLiveTraCost"));
|
|
|
+ List<String> outsource = new ArrayList<>();
|
|
|
+ outsource.add("项目外包费");
|
|
|
+ //outsource.add(MessageUtils.message("entry.projectCost"));
|
|
|
+ outsource.add("劳务外包费");
|
|
|
+ //outsource.add(MessageUtils.message("entry.labourCost"));
|
|
|
+ outsource.add("其他外包费");
|
|
|
+ //outsource.add(MessageUtils.message("entry.OtherOutsourceCost"));
|
|
|
+ List<ExpenseType> expenseTypeList=new ArrayList<>();
|
|
|
+ List<ExpenseMainType> expenseMainTypes=new ArrayList<>();
|
|
|
+ ExpenseMainType expenseMainType=new ExpenseMainType();
|
|
|
+ expenseMainType.setName("一般费用");
|
|
|
+ expenseMainType.setCompanyId(company.getId());
|
|
|
+ ExpenseMainType expenseMainType1=new ExpenseMainType();
|
|
|
+ expenseMainType1.setName("差旅费用");
|
|
|
+ expenseMainType1.setCompanyId(company.getId());
|
|
|
+ ExpenseMainType expenseMainType2=new ExpenseMainType();
|
|
|
+ expenseMainType2.setName("外包费用");
|
|
|
+ expenseMainType2.setCompanyId(company.getId());
|
|
|
+ expenseMainTypes.add(expenseMainType);
|
|
|
+ expenseMainTypes.add(expenseMainType1);
|
|
|
+ expenseMainTypes.add(expenseMainType2);
|
|
|
+ expenseMainTypeService.saveBatch(expenseMainTypes);
|
|
|
+ for (String expenseType : expenseTypes) {
|
|
|
+ ExpenseType item=new ExpenseType();
|
|
|
+ item.setCompanyId(company.getId());
|
|
|
+ item.setTypeName(expenseType);
|
|
|
+ if(commonly.contains(expenseType)){
|
|
|
+ item.setMainType(expenseMainType.getId());
|
|
|
+ }
|
|
|
+ if(travel.contains(expenseType)){
|
|
|
+ item.setMainType(expenseMainType1.getId());
|
|
|
+ }
|
|
|
+ if(outsource.contains(expenseType)){
|
|
|
+ item.setMainType(expenseMainType2.getId());
|
|
|
+ }
|
|
|
+ expenseTypeList.add(item);
|
|
|
+ }
|
|
|
+ expenseTypeService.saveBatch(expenseTypeList);
|
|
|
+ //todo: 生成初始测试项目及任务
|
|
|
+ Project project=new Project();
|
|
|
+ project.setCompanyId(company.getId());
|
|
|
+ project.setInchargerId(manager.getId());
|
|
|
+ project.setInchargerName(manager.getName());
|
|
|
+ project.setCreatorId(manager.getId());
|
|
|
+ project.setCreatorName(manager.getName());
|
|
|
+ project.setCreateDate(LocalDate.now());
|
|
|
+ project.setProjectCode("example");
|
|
|
+ project.setProjectName("示例项目");
|
|
|
+ //设置为公共项目,这样测试的用户都能填报
|
|
|
+ project.setIsPublic(1);
|
|
|
+ projectMapper.insert(project);
|
|
|
+ //todo: 生成初始项目相关日报审核人
|
|
|
+ ProjectAuditor projectAuditor=new ProjectAuditor();
|
|
|
+ projectAuditor.setAuditorId(manager.getId());
|
|
|
+ projectAuditor.setAuditorName(manager.getName());
|
|
|
+ projectAuditor.setProjectId(project.getId());
|
|
|
+ projectAuditorMapper.insert(projectAuditor);
|
|
|
+ //todo: 生成项目报表服务默认条目
|
|
|
+ Integer[] arrayInteger = new Integer[]{1, 2, 3, 4, 7};
|
|
|
+ for (Integer integerItem : arrayInteger) {
|
|
|
+ CompanyReport companyReport = new CompanyReport();
|
|
|
+ companyReport.setCompanyId(company.getId());
|
|
|
+ companyReport.setReportFormId(integerItem);
|
|
|
+ companyReportMapper.insert(companyReport);
|
|
|
+ }
|
|
|
+ //todo: 生成初始项目相关示例任务分组/任务阶段以及示例任务
|
|
|
+ TaskGroup taskGroup = new TaskGroup();
|
|
|
+ taskGroup.setProjectId(project.getId())
|
|
|
+ .setInchargerId(manager.getId())
|
|
|
+ .setName("项目阶段");
|
|
|
+ taskGroupMapper.insert(taskGroup);
|
|
|
+ Stages stage = new Stages();
|
|
|
+ stage.setGroupId(taskGroup.getId());
|
|
|
+ stage.setSequence(1);
|
|
|
+ stage.setProjectId(project.getId());
|
|
|
+ stage.setStagesName("工作开展");
|
|
|
+ stagesMapper.insert(stage);
|
|
|
+ Task task=new Task();
|
|
|
+ Integer oneDayHours = 8;
|
|
|
+ task.setCreateDate(LocalDate.now());
|
|
|
+ task.setProjectId(project.getId());
|
|
|
+ task.setCompanyId(company.getId());
|
|
|
+ task.setCreaterId(manager.getId());
|
|
|
+ task.setCreaterName(manager.getName());
|
|
|
+ task.setCreatorColor(manager.getColor());
|
|
|
+ task.setExecutorId(manager.getId());
|
|
|
+ task.setExecutorColor(manager.getColor());
|
|
|
+ task.setExecutorName(manager.getName());
|
|
|
+ task.setPlanHours(oneDayHours);
|
|
|
+ task.setStagesId(stage.getId());
|
|
|
+ task.setGroupId(taskGroup.getId());
|
|
|
+ task.setSeq(0);
|
|
|
+ task.setName("示例任务");
|
|
|
+ taskMapper.insert(task);
|
|
|
+ //任务执行人表也要插入,不然会导致编辑任务的时候执行人为空
|
|
|
+ TaskExecutor executor = new TaskExecutor();
|
|
|
+ executor.setTaskId(task.getId());
|
|
|
+ executor.setPlanHours(oneDayHours);
|
|
|
+ executor.setProjectId(project.getId());
|
|
|
+ executor.setExecutorId(manager.getId());
|
|
|
+ executor.setExecutorColor(manager.getColor());
|
|
|
+ executor.setExecutorName(manager.getName());
|
|
|
+ taskExecutorMapper.insert(executor);
|
|
|
+ SysRole role = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id", company.getId()).eq("rolename","普通员工"));
|
|
|
+ List<JSONObject> deptArrays = ldapGetOU();
|
|
|
+ for (JSONObject dept : deptArrays) {
|
|
|
+ Department department=new Department();
|
|
|
+ department.setDepartmentName(dept.getString("name"))
|
|
|
+ .setCompanyId(company.getId());
|
|
|
+ String canonicalName = dept.getString("canonicalName");
|
|
|
+ String[] split = canonicalName.split("/");
|
|
|
+ if(split.length>2){
|
|
|
+ String s = split[split.length - 2];
|
|
|
+ Department one = departmentMapper.selectOne(new QueryWrapper<Department>().eq("department_name", s).eq("company_id", company.getId()));
|
|
|
+ if(one!=null&&Optional.of(one).isPresent()){
|
|
|
+ department.setSuperiorId(one.getDepartmentId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ departmentMapper.insert(department);
|
|
|
+ }
|
|
|
+ List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", company.getId()));
|
|
|
+ List<JSONObject> userArrays = getUser();
|
|
|
+ for (JSONObject user : userArrays) {
|
|
|
+ User u=new User();
|
|
|
+ u.setId(SnowFlake.nextId()+"")
|
|
|
+ .setName(user.getString("name"))
|
|
|
+ .setPhone(user.getString("userPrincipalName"))
|
|
|
+ .setId(SnowFlake.nextId()+"")
|
|
|
+ .setRoleId(role.getId())//默认普通员工
|
|
|
+ .setRoleName(role.getRolename())
|
|
|
+ .setCompanyId(company.getId())
|
|
|
+ .setColor(ColorUtil.randomColor())
|
|
|
+ .setPassword(MD5Util.getPassword("000000"));
|
|
|
+ String distinguishedName = user.getString("distinguishedName");
|
|
|
+ String[] split = distinguishedName.split(",");
|
|
|
+ List<String> list = Arrays.asList(split);
|
|
|
+ List<String> collect = list.stream().filter(l -> l.contains("OU=")).collect(Collectors.toList());
|
|
|
+ if(collect.size()>0){
|
|
|
+ String s = collect.get(0).replaceAll("OU=", "");
|
|
|
+ Department one = departmentMapper.selectOne(new QueryWrapper<Department>().eq("department_name", s).eq("company_id", company.getId()));
|
|
|
+ if(one!=null){
|
|
|
+ u.setDepartmentId(one.getDepartmentId()).setDepartmentName(one.getDepartmentName()).setDepartmentCascade(convertDepartmentIdToCascade(one.getDepartmentId(),departmentList));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ userMapper.insert(u);
|
|
|
+ }
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
+
|
|
|
+ public LdapContext adLogin() {
|
|
|
|
|
|
LdapContext ldapContext = null;
|
|
|
Hashtable<String, Object> env = new Hashtable<String, Object>();
|