|
@@ -62,6 +62,8 @@ public class DingDingServiceImpl implements DingDingService {
|
|
|
TempDuserMapper tempDuserMapper;
|
|
|
@Resource
|
|
|
TempDuserService tempDuserService;
|
|
|
+ @Resource
|
|
|
+ ExpenseMainTypeService expenseMainTypeService;
|
|
|
|
|
|
public static String PRE_AUTH_CODE = null;
|
|
|
public static long expireTime = 0L;
|
|
@@ -240,18 +242,32 @@ public class DingDingServiceImpl implements DingDingService {
|
|
|
outsource.add(MessageUtils.message("entry.labourCost"));
|
|
|
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(0);
|
|
|
+ item.setMainType(expenseMainType.getId());
|
|
|
}
|
|
|
if(travel.contains(expenseType)){
|
|
|
- item.setMainType(1);
|
|
|
+ item.setMainType(expenseMainType1.getId());
|
|
|
}
|
|
|
if(outsource.contains(expenseType)){
|
|
|
- item.setMainType(2);
|
|
|
+ item.setMainType(expenseMainType2.getId());
|
|
|
}
|
|
|
expenseTypeList.add(item);
|
|
|
}
|
|
@@ -378,73 +394,80 @@ public class DingDingServiceImpl implements DingDingService {
|
|
|
setting.setCompanyId(company.getId());
|
|
|
projectBasecostSettingMapper.insert(setting);
|
|
|
}
|
|
|
- //直接授权默认人员
|
|
|
- User user = userMapper.selectList(new QueryWrapper<User>().eq("company_id", company.getId()).eq("is_active", 1)).get(0);
|
|
|
- //todo: 生成初始测试项目及任务
|
|
|
- Project project=new Project();
|
|
|
- project.setCompanyId(company.getId());
|
|
|
- project.setInchargerId(user.getId());
|
|
|
- project.setInchargerName(user.getName());
|
|
|
- project.setCreatorId(user.getId());
|
|
|
- project.setCreatorName(user.getName());
|
|
|
- project.setCreateDate(LocalDate.now());
|
|
|
- project.setProjectCode("example");
|
|
|
- project.setProjectName("示例项目");
|
|
|
- //设置为公共项目,这样测试的用户都能填报
|
|
|
- project.setIsPublic(1);
|
|
|
- projectMapper.insert(project);
|
|
|
- //todo: 生成初始项目相关日报审核人
|
|
|
- ProjectAuditor projectAuditor=new ProjectAuditor();
|
|
|
- projectAuditor.setAuditorId(user.getId());
|
|
|
- projectAuditor.setAuditorName(user.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);
|
|
|
+ //生成费用报销默认条目
|
|
|
+ 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("住宿费");
|
|
|
+// travel.add("伙食补助费");
|
|
|
+// travel.add("市内交通费");
|
|
|
+// travel.add("其他差旅费");
|
|
|
+ travel.add(MessageUtils.message("entry.cityTrafficCost"));
|
|
|
+ travel.add(MessageUtils.message("entry.liveCost"));
|
|
|
+ travel.add(MessageUtils.message("entry.eatCost"));
|
|
|
+ travel.add(MessageUtils.message("entry.insideCityCost"));
|
|
|
+ travel.add(MessageUtils.message("entry.otherLiveTraCost"));
|
|
|
+ List<String> outsource = new ArrayList<>();
|
|
|
+// outsource.add("项目外包费");
|
|
|
+// outsource.add("劳务外包费");
|
|
|
+// outsource.add("其他外包费");
|
|
|
+ outsource.add(MessageUtils.message("entry.projectCost"));
|
|
|
+ outsource.add(MessageUtils.message("entry.labourCost"));
|
|
|
+ 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);
|
|
|
}
|
|
|
- //todo: 生成初始项目相关示例任务分组/任务阶段以及示例任务
|
|
|
- TaskGroup taskGroup = new TaskGroup();
|
|
|
- taskGroup.setProjectId(project.getId())
|
|
|
- .setInchargerId(user.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(user.getId());
|
|
|
- task.setCreaterName(user.getName());
|
|
|
- task.setCreatorColor(user.getColor());
|
|
|
- task.setExecutorId(user.getId());
|
|
|
- task.setExecutorColor(user.getColor());
|
|
|
- task.setExecutorName(user.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(user.getId());
|
|
|
- executor.setExecutorColor(user.getColor());
|
|
|
- executor.setExecutorName(user.getName());
|
|
|
- taskExecutorMapper.insert(executor);
|
|
|
+ expenseTypeService.saveBatch(expenseTypeList);
|
|
|
}
|
|
|
//钉钉企业外部关系表
|
|
|
CompanyDingding dingding = new CompanyDingding();
|
|
@@ -487,6 +510,73 @@ public class DingDingServiceImpl implements DingDingService {
|
|
|
|
|
|
//获取授权的部门
|
|
|
getAuthedDeptsAndUsers(dingding, accessToken);
|
|
|
+ //直接授权默认人员
|
|
|
+ User targetUser = userMapper.selectById(id.toString());
|
|
|
+ //todo: 生成初始测试项目及任务
|
|
|
+ Project project=new Project();
|
|
|
+ project.setCompanyId(company.getId());
|
|
|
+ project.setInchargerId(targetUser.getId());
|
|
|
+ project.setInchargerName(targetUser.getName());
|
|
|
+ project.setCreatorId(targetUser.getId());
|
|
|
+ project.setCreatorName(targetUser.getName());
|
|
|
+ project.setCreateDate(LocalDate.now());
|
|
|
+ project.setProjectCode("example");
|
|
|
+ project.setProjectName("示例项目");
|
|
|
+ //设置为公共项目,这样测试的用户都能填报
|
|
|
+ project.setIsPublic(1);
|
|
|
+ projectMapper.insert(project);
|
|
|
+ //todo: 生成初始项目相关日报审核人
|
|
|
+ ProjectAuditor projectAuditor=new ProjectAuditor();
|
|
|
+ projectAuditor.setAuditorId(targetUser.getId());
|
|
|
+ projectAuditor.setAuditorName(targetUser.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(targetUser.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(targetUser.getId());
|
|
|
+ task.setCreaterName(targetUser.getName());
|
|
|
+ task.setCreatorColor(targetUser.getColor());
|
|
|
+ task.setExecutorId(targetUser.getId());
|
|
|
+ task.setExecutorColor(targetUser.getColor());
|
|
|
+ task.setExecutorName(targetUser.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(targetUser.getId());
|
|
|
+ executor.setExecutorColor(targetUser.getColor());
|
|
|
+ executor.setExecutorName(targetUser.getName());
|
|
|
+ taskExecutorMapper.insert(executor);
|
|
|
} else {
|
|
|
System.out.println("AccessToken为空,无法获取部门列表");
|
|
|
}
|