|
@@ -1264,6 +1264,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
final List<Integer> ids = ListUtil.convertIntegerIdsArrayToList(reportIds);
|
|
|
if (company.getPackageEngineering() == 1) {
|
|
|
//检查是否有专业进度待审核
|
|
|
+ Report oneReport = null;
|
|
|
List<ReportProfessionProgress> list = reportProfessionProgressService.list(new QueryWrapper<ReportProfessionProgress>().in("report_id", ids).eq("audit_state", 0));
|
|
|
if (isDepartment != null) {
|
|
|
//进行的是部门审核, 需要专业审核都通过才能进行部门审核
|
|
@@ -1273,6 +1274,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
return httpRespMsg;
|
|
|
} else {
|
|
|
Report report = reportMapper.selectById(ids.get(0));
|
|
|
+ oneReport = report;
|
|
|
//部门待审核,部门审核通过
|
|
|
if (report.getDepartmentAuditState() == 0){
|
|
|
report = new Report();
|
|
@@ -1296,7 +1298,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
httpRespMsg.setError(MessageUtils.message("finance.masterProfessional"));
|
|
|
} else {
|
|
|
List<Integer> collect = myProfessionList.stream().map(ProjectProfession::getProfessionId).collect(Collectors.toList());
|
|
|
-
|
|
|
+ oneReport = reportList.get(0);
|
|
|
ReportProfessionProgress item = new ReportProfessionProgress();
|
|
|
item.setAuditState(1);
|
|
|
reportProfessionProgressService.update(item, new QueryWrapper<ReportProfessionProgress>().in("report_id", ids).in("profession_id", collect));
|
|
@@ -1314,6 +1316,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
} else {
|
|
|
Report report = reportMapper.selectById(ids.get(0));
|
|
|
+ oneReport = report;
|
|
|
if(timeType.getNeedEvaluate()==1){
|
|
|
report.setEvaluate(evaluate);
|
|
|
}
|
|
@@ -1343,6 +1346,82 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ //保存审核记录
|
|
|
+ List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
+ List<Integer> collect = reportList.stream().map(rl -> rl.getProjectId()).distinct().collect(Collectors.toList());
|
|
|
+ List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().in("id", collect));
|
|
|
+ List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", user.getCompanyId()));
|
|
|
+ List<WxCorpInfo> wxCorpInfoList = wxCorpInfoMapper.selectList(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
|
|
|
+ List<CompanyDingding> companyDingdingList = companyDingdingService.list(new QueryWrapper<CompanyDingding>().eq("company_id", company.getId()));
|
|
|
+ String pNames = projectList.stream().map(Project::getProjectName).collect(Collectors.joining(", ", "[", "]"));
|
|
|
+ //审核通过操作 向被审核人推送消息
|
|
|
+ if(timeType.getReportApproveMsgpush()==1){
|
|
|
+ for (Report report : reportList) {
|
|
|
+ if(report.getState()==1){
|
|
|
+ String uId = report.getCreatorId();
|
|
|
+ Optional<User> first = userList.stream().filter(ul -> ul.getId().equals(uId)).findFirst();
|
|
|
+ if(first.isPresent()){
|
|
|
+ User u = first.get();
|
|
|
+ if(u.getCorpwxUserid()!=null){
|
|
|
+ if(wxCorpInfoList.size()>0){
|
|
|
+ JSONObject json=new JSONObject();
|
|
|
+ JSONArray dataJson=new JSONArray();
|
|
|
+ JSONObject item=new JSONObject();
|
|
|
+ item.put("key","审核人");
|
|
|
+ item.put("value",user.getName());
|
|
|
+ dataJson.add(item);
|
|
|
+ if(timeType.getNeedEvaluate()==1){
|
|
|
+ JSONObject item1=new JSONObject();
|
|
|
+ item1.put("key","评价");
|
|
|
+ item1.put("value",StringUtils.isEmpty(report.getEvaluate())?"":report.getEvaluate());
|
|
|
+ dataJson.add(item1);
|
|
|
+ json.put("template_id","tty9TkCAAAWoUyhGnXRCZuhkgCqw_Uow");
|
|
|
+ }else {
|
|
|
+ json.put("template_id","tty9TkCAAANpvEtLrkPUGeOEd1-U7W2w");
|
|
|
+ }
|
|
|
+ JSONObject item2=new JSONObject();
|
|
|
+ item2.put("key","日期");
|
|
|
+ item2.put("value",report.getCreateDate());
|
|
|
+ dataJson.add(item2);
|
|
|
+ json.put("url","https://open.weixin.qq.com/connect/oauth2/authorize?appid=ww4e237fd6abb635af&redirect_uri=http://worktime.ttkuaiban.com/api/corpWXAuth&response_type=code&scope=snsapi_base&state=0#wechat_redirect");
|
|
|
+ json.put("content_item",dataJson);
|
|
|
+ wxCorpInfoService.sendWXCorpTemplateMsg(wxCorpInfoList.get(0),u.getCorpwxUserid(),json);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(u.getDingdingUserid()!=null){
|
|
|
+ if(companyDingdingList.size()>0){
|
|
|
+ CompanyDingding companyDingding = companyDingdingList.get(0);
|
|
|
+ companyDingdingService.sendReportApproveMsg(company.getId(),companyDingding.getAgentId(),user.getName(),report.getEvaluate(),report.getCreateDate(),u.getDingdingUserid());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //对导入审核,添加记录
|
|
|
+ int channel = 1; //0-导入审核, 项目报告审核
|
|
|
+ ReportAuditLog log = new ReportAuditLog();
|
|
|
+ log.setAuditChannel(channel);
|
|
|
+ log.setCompanyId(company.getId());
|
|
|
+ //log.setResult("通过");
|
|
|
+ log.setResult(MessageUtils.message("profession.approved"));
|
|
|
+ log.setUserId(user.getId());
|
|
|
+ log.setUserName(user.getName());
|
|
|
+ log.setProjectName(pNames);
|
|
|
+ reportAuditLogMapper.insert(log);
|
|
|
+ //员工的日期
|
|
|
+ ReportAlogMembdate membdate = new ReportAlogMembdate();
|
|
|
+ membdate.setRlogId(log.getId());
|
|
|
+ membdate.setState(1);//通过
|
|
|
+ membdate.setCreateDate(oneReport.getCreateDate());
|
|
|
+ membdate.setUserId(oneReport.getCreatorId());
|
|
|
+ membdate.setUserName(userMapper.selectById(oneReport.getCreatorId()).getName());
|
|
|
+ reportAlogMembdateMapper.insert(membdate);
|
|
|
+
|
|
|
+ //日报的审核过程记录
|
|
|
+ saveApproveReportLog(reportList, user.getId(), user.getName());
|
|
|
} else {
|
|
|
//先按照大的审核模式进行分类
|
|
|
Report oneReport = reportMapper.selectById(ids.get(0));
|
|
@@ -2956,11 +3035,13 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
try {
|
|
|
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
|
|
|
User curUser = userMapper.selectById(request.getHeader("Token"));
|
|
|
- Integer departmentId = curUser.getManageDeptId();
|
|
|
+ List<Department> manangedDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("manager_id", curUser.getId()));
|
|
|
Integer companyId = curUser.getCompanyId();
|
|
|
-
|
|
|
- //根据权限,管理员查看全部人员的,各个项目负责人只看自己负责的项目参与人员的日报
|
|
|
- List<Map<String, Object>> nameList = reportMapper.getDepartmentDetailByState(departmentId, companyId);
|
|
|
+ List<Integer> collect = manangedDeptList.stream().map(Department::getDepartmentId).collect(Collectors.toList());
|
|
|
+ List<Map<String, Object>> nameList = new ArrayList<>();
|
|
|
+ if (collect.size() > 0) {
|
|
|
+ nameList = reportMapper.getDepartmentDetailByState(collect, companyId);
|
|
|
+ }
|
|
|
|
|
|
//按日期过滤
|
|
|
if (!StringUtils.isEmpty(date)) {
|
|
@@ -3286,6 +3367,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
dataItem.add(userMonthWork.name+(worktimeList.size()==0?"("+MessageUtils.message("entry.noFill")+")":""));
|
|
|
dataItem.add(userMonthWork.departmentName);
|
|
|
}
|
|
|
+ DecimalFormat decimalFormat = new DecimalFormat("0.0");
|
|
|
//找到那一天的工作时间
|
|
|
days.forEach(d->{
|
|
|
// String dateStr = startDate;
|
|
@@ -3296,7 +3378,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
Optional<Map<String, Object>> op = worktimeList.stream().filter(m -> ((String) m.get("createDate")).equals(fDateStr)).findFirst();
|
|
|
if (op.isPresent()) {
|
|
|
Map<String, Object> createDateHour = op.get();
|
|
|
- dataItem.add(""+createDateHour.get("workingTime"));
|
|
|
+ double workingTime = (double)createDateHour.get("workingTime");
|
|
|
+ dataItem.add(""+decimalFormat.format(workingTime));
|
|
|
} else {
|
|
|
dataItem.add("0");
|
|
|
}
|