|
@@ -133,6 +133,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
private ProdProcedureMapper prodProcedureMapper;
|
|
private ProdProcedureMapper prodProcedureMapper;
|
|
@Resource
|
|
@Resource
|
|
private LeaveSheetService leaveSheetService;
|
|
private LeaveSheetService leaveSheetService;
|
|
|
|
+ @Resource
|
|
|
|
+ private ProdProcedureTeamService prodProcedureTeamService;
|
|
|
|
|
|
@Value(value = "${upload.path}")
|
|
@Value(value = "${upload.path}")
|
|
private String path;
|
|
private String path;
|
|
@@ -4106,10 +4108,14 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
List<Map<String, Object>> targetList = personWorkHoursWagesList.stream().filter(p -> String.valueOf(p.get("crateDate")).equals(date)).collect(Collectors.toList());
|
|
List<Map<String, Object>> targetList = personWorkHoursWagesList.stream().filter(p -> String.valueOf(p.get("crateDate")).equals(date)).collect(Collectors.toList());
|
|
BigDecimal cost = targetList.stream().map(m -> new BigDecimal(String.valueOf(m.get("cost")))).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
BigDecimal cost = targetList.stream().map(m -> new BigDecimal(String.valueOf(m.get("cost")))).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
BigDecimal workTime = targetList.stream().map(m -> new BigDecimal(String.valueOf(m.get("workTime")))).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
BigDecimal workTime = targetList.stream().map(m -> new BigDecimal(String.valueOf(m.get("workTime")))).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
+ BigDecimal tempCost = targetList.stream().map(m -> new BigDecimal(String.valueOf(m.get("tempCost")))).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
+ BigDecimal tempWorkTime = targetList.stream().map(m -> new BigDecimal(String.valueOf(m.get("tempWorkTime")))).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
map.put("userId","0");
|
|
map.put("userId","0");
|
|
map.put("crateDate",date);
|
|
map.put("crateDate",date);
|
|
map.put("cost",cost.doubleValue());
|
|
map.put("cost",cost.doubleValue());
|
|
map.put("workTime",workTime.doubleValue());
|
|
map.put("workTime",workTime.doubleValue());
|
|
|
|
+ map.put("tempCost",tempCost.doubleValue());
|
|
|
|
+ map.put("tempWorkTime",tempWorkTime.doubleValue());
|
|
totalList.add(map);
|
|
totalList.add(map);
|
|
}
|
|
}
|
|
// totalUser.setPersonWorkHoursWages(totalList);
|
|
// totalUser.setPersonWorkHoursWages(totalList);
|
|
@@ -4120,6 +4126,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
List<LeaveSheet> leaveSheetList = leaveSheetService.list(new LambdaQueryWrapper<LeaveSheet>().le(LeaveSheet::getStartDate, endDate).ge(LeaveSheet::getEndDate, startDate));
|
|
List<LeaveSheet> leaveSheetList = leaveSheetService.list(new LambdaQueryWrapper<LeaveSheet>().le(LeaveSheet::getStartDate, endDate).ge(LeaveSheet::getEndDate, startDate));
|
|
//日期范围内所有派工数据
|
|
//日期范围内所有派工数据
|
|
List<Integer> ids = allProcedureTeamList.stream().map(ProdProcedureTeam::getPlanProcedureId).distinct().collect(Collectors.toList());
|
|
List<Integer> ids = allProcedureTeamList.stream().map(ProdProcedureTeam::getPlanProcedureId).distinct().collect(Collectors.toList());
|
|
|
|
+ ids.add(-1);
|
|
List<PlanProcedureTotal> planProcedureTotalList = planProcedureTotalMapper.selectList(new LambdaQueryWrapper<PlanProcedureTotal>().in(PlanProcedureTotal::getId, ids));
|
|
List<PlanProcedureTotal> planProcedureTotalList = planProcedureTotalMapper.selectList(new LambdaQueryWrapper<PlanProcedureTotal>().in(PlanProcedureTotal::getId, ids));
|
|
for (User u : userList) {
|
|
for (User u : userList) {
|
|
List<Map<String, Object>> mapList = personWorkHoursWagesList.stream().filter(pl -> String.valueOf(pl.get("userId")).equals(u.getId())).collect(Collectors.toList());
|
|
List<Map<String, Object>> mapList = personWorkHoursWagesList.stream().filter(pl -> String.valueOf(pl.get("userId")).equals(u.getId())).collect(Collectors.toList());
|
|
@@ -4135,6 +4142,13 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
double cost = targetTeams.stream().mapToDouble(i -> i.getJobOfMoney().doubleValue()).sum();
|
|
double cost = targetTeams.stream().mapToDouble(i -> i.getJobOfMoney().doubleValue()).sum();
|
|
map.put("planCost", String.format("%.2f", cost));
|
|
map.put("planCost", String.format("%.2f", cost));
|
|
map.put("planWorkTime", String.format("%.2f", workTime));
|
|
map.put("planWorkTime", String.format("%.2f", workTime));
|
|
|
|
+ Optional<LeaveSheet> first = leaveSheetList.stream().filter(l ->
|
|
|
|
+ (l.getStartDate().isBefore(LocalDate.parse(date, dtf1)) || l.getStartDate().isEqual(LocalDate.parse(date, dtf1)))
|
|
|
|
+ &&
|
|
|
|
+ (l.getEndDate().isAfter(LocalDate.parse(date, dtf1)) || l.getEndDate().isEqual(LocalDate.parse(date, dtf1))) && l.getOwnerId().equals(u.getId())).findFirst();
|
|
|
|
+ if(first.isPresent()){
|
|
|
|
+ map.put("leave",LeaveSheet.leaveTypes[first.get().getLeaveType()]+"/"+first.get().getTimeHours()+"h");
|
|
|
|
+ }
|
|
List<Integer> totalIds = targetTeams.stream().map(ProdProcedureTeam::getPlanProcedureId).distinct().collect(Collectors.toList());
|
|
List<Integer> totalIds = targetTeams.stream().map(ProdProcedureTeam::getPlanProcedureId).distinct().collect(Collectors.toList());
|
|
//获取与本人分配相关的所有派工数据
|
|
//获取与本人分配相关的所有派工数据
|
|
List<PlanProcedureTotal> targetPlanTotals = planProcedureTotalList.stream().filter(p -> totalIds.contains(p.getId())).collect(Collectors.toList());
|
|
List<PlanProcedureTotal> targetPlanTotals = planProcedureTotalList.stream().filter(p -> totalIds.contains(p.getId())).collect(Collectors.toList());
|
|
@@ -4173,16 +4187,18 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
} else {
|
|
} else {
|
|
Map map = new HashMap();
|
|
Map map = new HashMap();
|
|
//不存在报工数据显示请假详情数据
|
|
//不存在报工数据显示请假详情数据
|
|
- boolean match = leaveSheetList.stream().anyMatch(l ->
|
|
|
|
|
|
+ Optional<LeaveSheet> first = leaveSheetList.stream().filter(l ->
|
|
(l.getStartDate().isBefore(LocalDate.parse(date, dtf1)) || l.getStartDate().isEqual(LocalDate.parse(date, dtf1)))
|
|
(l.getStartDate().isBefore(LocalDate.parse(date, dtf1)) || l.getStartDate().isEqual(LocalDate.parse(date, dtf1)))
|
|
&&
|
|
&&
|
|
- (l.getEndDate().isAfter(LocalDate.parse(date, dtf1)) || l.getEndDate().isEqual(LocalDate.parse(date, dtf1))) && l.getOwnerId().equals(u.getId()));
|
|
|
|
- if(match){
|
|
|
|
- map.put("leave","当天请假");
|
|
|
|
|
|
+ (l.getEndDate().isAfter(LocalDate.parse(date, dtf1)) || l.getEndDate().isEqual(LocalDate.parse(date, dtf1))) && l.getOwnerId().equals(u.getId())).findFirst();
|
|
|
|
+ if(first.isPresent()){
|
|
|
|
+ map.put("leave",LeaveSheet.leaveTypes[first.get().getLeaveType()]+"/"+first.get().getTimeHours()+"h");
|
|
}
|
|
}
|
|
map.put("crateDate", date);
|
|
map.put("crateDate", date);
|
|
map.put("cost", 0);
|
|
map.put("cost", 0);
|
|
map.put("workTime", 0);
|
|
map.put("workTime", 0);
|
|
|
|
+ map.put("tempCost", 0);
|
|
|
|
+ map.put("tempWorkTime", 0);
|
|
map.put("departmentName", u.getDepartmentName());
|
|
map.put("departmentName", u.getDepartmentName());
|
|
if (targetTeams.size() > 0) {
|
|
if (targetTeams.size() > 0) {
|
|
double workTime = targetTeams.stream().mapToDouble(ProdProcedureTeam::getWorkTime).sum();
|
|
double workTime = targetTeams.stream().mapToDouble(ProdProcedureTeam::getWorkTime).sum();
|
|
@@ -4240,9 +4256,13 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
double surplusWorkTime = mapList.stream().filter(mt -> mt.get("surplusTime") != null).mapToDouble(mt -> Double.valueOf(String.valueOf(mt.get("surplusTime")))).sum();
|
|
double surplusWorkTime = mapList.stream().filter(mt -> mt.get("surplusTime") != null).mapToDouble(mt -> Double.valueOf(String.valueOf(mt.get("surplusTime")))).sum();
|
|
BigDecimal surplusBigDecimal = new BigDecimal(surplusWorkTime);
|
|
BigDecimal surplusBigDecimal = new BigDecimal(surplusWorkTime);
|
|
double surplusCost = mapList.stream().filter(mt -> mt.get("surplusCost") != null).mapToDouble(mt -> Double.valueOf(String.valueOf(mt.get("surplusCost")))).sum();
|
|
double surplusCost = mapList.stream().filter(mt -> mt.get("surplusCost") != null).mapToDouble(mt -> Double.valueOf(String.valueOf(mt.get("surplusCost")))).sum();
|
|
|
|
+ double tempWorkTime = mapList.stream().filter(mt -> mt.get("tempWorkTime") != null).mapToDouble(mt -> Double.valueOf(String.valueOf(mt.get("tempWorkTime")))).sum();
|
|
|
|
+ BigDecimal tempBigDecimal = new BigDecimal(tempWorkTime);
|
|
|
|
+ double tempCost = mapList.stream().filter(mt -> mt.get("tempCost") != null).mapToDouble(mt -> Double.valueOf(String.valueOf(mt.get("tempCost")))).sum();
|
|
u.setTotalResult(String.valueOf(bigDecimal.doubleValue()) + "分钟 " + String.format("%.2f", cost) + "元");
|
|
u.setTotalResult(String.valueOf(bigDecimal.doubleValue()) + "分钟 " + String.format("%.2f", cost) + "元");
|
|
u.setTotalPlanResult(String.valueOf(planBigDecimal.doubleValue()) + "分钟 " + String.format("%.2f", planCost) + "元");
|
|
u.setTotalPlanResult(String.valueOf(planBigDecimal.doubleValue()) + "分钟 " + String.format("%.2f", planCost) + "元");
|
|
u.setTotalSurplusResult(String.valueOf(surplusBigDecimal.doubleValue()) + "分钟 " + String.format("%.2f", surplusCost) + "元");
|
|
u.setTotalSurplusResult(String.valueOf(surplusBigDecimal.doubleValue()) + "分钟 " + String.format("%.2f", surplusCost) + "元");
|
|
|
|
+ u.setTotalTempResult(String.valueOf(tempBigDecimal.doubleValue()) + "分钟 " + String.format("%.2f", tempCost) + "元");
|
|
}
|
|
}
|
|
resultMap.put("total",userIPage.getTotal());
|
|
resultMap.put("total",userIPage.getTotal());
|
|
resultMap.put("records",userList);
|
|
resultMap.put("records",userList);
|
|
@@ -4287,11 +4307,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
@Override
|
|
@Override
|
|
public HttpRespMsg getPersonWorkHoursWagesDetail(String date, String userId,String startDate,String endDate) {
|
|
public HttpRespMsg getPersonWorkHoursWagesDetail(String date, String userId,String startDate,String endDate) {
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
-// if(checkStatus!=null&&checkStatus==0&&StringUtils.isEmpty(userId)){
|
|
|
|
-// userId=user.getId();
|
|
|
|
-// }
|
|
|
|
- boolean canViewAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部人员工时工价");
|
|
|
|
- List<Department> allDeptList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, user.getCompanyId()));
|
|
|
|
List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", user.getCompanyId()).eq("manager_id", user.getId()));
|
|
List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", user.getCompanyId()).eq("manager_id", user.getId()));
|
|
List<DepartmentOtherManager> departmentOtherManagers = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("company_id", user.getCompanyId()).eq("other_manager_id", user.getId()));
|
|
List<DepartmentOtherManager> departmentOtherManagers = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("company_id", user.getCompanyId()).eq("other_manager_id", user.getId()));
|
|
List<Integer> deptIds = departmentList.stream().map(Department::getDepartmentId).distinct().collect(Collectors.toList());
|
|
List<Integer> deptIds = departmentList.stream().map(Department::getDepartmentId).distinct().collect(Collectors.toList());
|
|
@@ -4327,7 +4342,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
HttpRespMsg httpRespMsg=new HttpRespMsg();
|
|
HttpRespMsg httpRespMsg=new HttpRespMsg();
|
|
HashMap map=new HashMap();
|
|
HashMap map=new HashMap();
|
|
if(checkStatus!=null && detailStatus==null){
|
|
if(checkStatus!=null && detailStatus==null){
|
|
- List<Map<String,Object>> mapList=reportMapper.getPersonWorkHoursWagesDetailForMob(date,user.getId(),user.getCompanyId(),startDate,endDate,checkStatus,detailStatus);
|
|
|
|
|
|
+ List<Map<String,Object>> mapList=reportMapper.getPersonWorkHoursWagesDetailForMob(date,userId,user.getCompanyId(),startDate,endDate,checkStatus,detailStatus);
|
|
DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
DateTimeFormatter dtf1=DateTimeFormatter.ofPattern("yyyyMMdd");
|
|
DateTimeFormatter dtf1=DateTimeFormatter.ofPattern("yyyyMMdd");
|
|
List<LocalDate> allDateList = getDays(LocalDate.parse(startDate, dtf), LocalDate.parse(endDate, dtf));
|
|
List<LocalDate> allDateList = getDays(LocalDate.parse(startDate, dtf), LocalDate.parse(endDate, dtf));
|
|
@@ -4406,6 +4421,19 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
return httpRespMsg;
|
|
return httpRespMsg;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public HttpRespMsg getPersonWorkHoursWagesDetailForTemp(String date, String userId, String startDate, String endDate) {
|
|
|
|
+ User user = userMapper.selectById(request.getHeader("token"));
|
|
|
|
+ List<Map<String,Object>> mapList=reportMapper.getPersonWorkHoursWagesDetailForTemp(date,userId,user.getCompanyId(),startDate,endDate);
|
|
|
|
+ HttpRespMsg httpRespMsg=new HttpRespMsg();
|
|
|
|
+ HashMap map=new HashMap();
|
|
|
|
+ map.put("record",mapList);
|
|
|
|
+ map.put("totalWorkingTime",mapList.stream().filter(i->i.get("working_time")!=null).mapToDouble(mt->Double.valueOf(String.valueOf(mt.get("working_time")))).sum());
|
|
|
|
+ map.put("totalCost",mapList.stream().filter(i->i.get("cost")!=null).mapToDouble(mt->Double.valueOf(String.valueOf(mt.get("cost")))).sum());
|
|
|
|
+ httpRespMsg.setData(map);
|
|
|
|
+ return httpRespMsg;
|
|
|
|
+ }
|
|
|
|
+
|
|
private List<Integer> getBranchDepartment(Integer departmentId, List<Department> departmentList) {
|
|
private List<Integer> getBranchDepartment(Integer departmentId, List<Department> departmentList) {
|
|
List<Integer> list = new ArrayList<>();
|
|
List<Integer> list = new ArrayList<>();
|
|
list.add(departmentId);
|
|
list.add(departmentId);
|
|
@@ -4932,7 +4960,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
}
|
|
}
|
|
item.add(map.get("productOrderNum")==null?"":String.valueOf(map.get("productOrderNum")));
|
|
item.add(map.get("productOrderNum")==null?"":String.valueOf(map.get("productOrderNum")));
|
|
item.add(String.valueOf(map.get("procedureName")));
|
|
item.add(String.valueOf(map.get("procedureName")));
|
|
- item.add("");
|
|
|
|
|
|
+ item.add(map.get("steelNumArray")==null?"":String.valueOf(map.get("steelNumArray")));
|
|
item.add("");
|
|
item.add("");
|
|
item.add("");
|
|
item.add("");
|
|
// item.add(String.valueOf(map.get("progress"))+"%");
|
|
// item.add(String.valueOf(map.get("progress"))+"%");
|
|
@@ -5001,7 +5029,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
}
|
|
}
|
|
planProcedureTotal.setTotalFillTime(workingTime);
|
|
planProcedureTotal.setTotalFillTime(workingTime);
|
|
BigDecimal bigDecimal = new BigDecimal(workingTime);
|
|
BigDecimal bigDecimal = new BigDecimal(workingTime);
|
|
- bigDecimal=bigDecimal.divide(new BigDecimal(planProcedureTotal.getTotalWorkingHours()));
|
|
|
|
|
|
+ bigDecimal=bigDecimal.divide(new BigDecimal(planProcedureTotal.getTotalWorkingHours()), 4,RoundingMode.HALF_UP);
|
|
bigDecimal=bigDecimal.multiply(new BigDecimal(100)).setScale(0,RoundingMode.HALF_UP);
|
|
bigDecimal=bigDecimal.multiply(new BigDecimal(100)).setScale(0,RoundingMode.HALF_UP);
|
|
planProcedureTotal.setTotalProgress(bigDecimal.intValue());
|
|
planProcedureTotal.setTotalProgress(bigDecimal.intValue());
|
|
// planProcedureTotal.setTotalProgress((int)((workingTime / planProcedureTotal.getTotalWorkingHours()) * 100));
|
|
// planProcedureTotal.setTotalProgress((int)((workingTime / planProcedureTotal.getTotalWorkingHours()) * 100));
|
|
@@ -6150,4 +6178,74 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
msg.setData("修复完成, 共修复"+updateList.size()+"条数据");
|
|
msg.setData("修复完成, 共修复"+updateList.size()+"条数据");
|
|
return msg;
|
|
return msg;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional
|
|
|
|
+ public HttpRespMsg updateHasDeleteTeamData() {
|
|
|
|
+ HttpRespMsg msg=new HttpRespMsg();
|
|
|
|
+ List<Report> reportList = reportService.list(new LambdaQueryWrapper<Report>().inSql(Report::getId, "SELECT r.id FROM report r\n" +
|
|
|
|
+ "LEFT JOIN prod_procedure_team ppt ON r.user_procedure_team_id=ppt.id\n" +
|
|
|
|
+ "WHERE ppt.id IS NULL AND r.user_procedure_team_id IS NOT NULL"));
|
|
|
|
+ List<ProdProcedureTeam> list=new ArrayList<>();
|
|
|
|
+ for (Report report : reportList) {
|
|
|
|
+ PlanProcedureTotal planProcedureTotal = planProcedureTotalMapper.selectOne(new LambdaQueryWrapper<PlanProcedureTotal>().eq(PlanProcedureTotal::getPlanId, report.getPlanId()).eq(PlanProcedureTotal::getProdProcedureId, report.getProdProcedureId()));
|
|
|
|
+ if(planProcedureTotal!=null){
|
|
|
|
+ //未删除的数据
|
|
|
|
+ List<ProdProcedureTeam> procedureTeams = prodProcedureTeamMapper.selectList(new LambdaQueryWrapper<ProdProcedureTeam>().eq(ProdProcedureTeam::getPlanProcedureId, planProcedureTotal.getId()));
|
|
|
|
+ List<String> ptlist = procedureTeams.stream().map(u -> u.getUserId()).collect(Collectors.toList());
|
|
|
|
+ ptlist.add(report.getCreatorId());
|
|
|
|
+ List<Report> reports = reportList.stream().filter(f -> f.getProdProcedureId().equals(planProcedureTotal.getProdProcedureId()) && f.getPlanId().equals(planProcedureTotal.getPlanId())).collect(Collectors.toList());
|
|
|
|
+ List<String> integers = reports.stream().map(Report::getCreatorId).distinct().collect(Collectors.toList());
|
|
|
|
+ ptlist.addAll(integers);
|
|
|
|
+ String teamIds=integers.stream().distinct().collect(Collectors.joining(","));
|
|
|
|
+ String[] team = teamIds.split(",");
|
|
|
|
+ Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
|
+ BigDecimal totalWages=new BigDecimal((planProcedureTotal.getTotalWages()==null||StringUtils.isEmpty(planProcedureTotal.getTotalWages()))?0:planProcedureTotal.getTotalWages());
|
|
|
|
+ BigDecimal totalWorkingHours=new BigDecimal((planProcedureTotal.getTotalWorkingHours()==null||StringUtils.isEmpty(planProcedureTotal.getTotalWorkingHours())?0:planProcedureTotal.getTotalWorkingHours()));
|
|
|
|
+ BigDecimal overCountWages = new BigDecimal(0);
|
|
|
|
+ BigDecimal overWorkingHours = new BigDecimal(0);
|
|
|
|
+ Plan plan = planMapper.selectById(planProcedureTotal.getPlanId());
|
|
|
|
+ totalWages=totalWages.divide(new BigDecimal(team.length),1, RoundingMode.HALF_UP);
|
|
|
|
+ totalWorkingHours=totalWorkingHours.divide(new BigDecimal(team.length),1, RoundingMode.HALF_UP);
|
|
|
|
+ overCountWages=totalWages.multiply(new BigDecimal(team.length));
|
|
|
|
+ overWorkingHours=totalWorkingHours.multiply(new BigDecimal(team.length));
|
|
|
|
+ List<ProdProcedureTeam> procedureTeamList = prodProcedureTeamService.list(new QueryWrapper<ProdProcedureTeam>().eq("plan_procedure_id",planProcedureTotal.getId()));
|
|
|
|
+ List<User> userList = userMapper.selectBatchIds(Arrays.asList(team));
|
|
|
|
+ for (int i = 0; i < team.length; i++) {
|
|
|
|
+ ProdProcedureTeam prodProcedureTeam=new ProdProcedureTeam();
|
|
|
|
+ int finalI1 = i;
|
|
|
|
+ Optional<ProdProcedureTeam> first1 = procedureTeams.stream().filter(p -> p.getUserId().equals(team[finalI1])).findFirst();
|
|
|
|
+ if(first1.isPresent()){
|
|
|
|
+ prodProcedureTeam.setId(first1.get().getId());
|
|
|
|
+ prodProcedureTeam.setDistributeDate(first1.get().getDistributeDate());
|
|
|
|
+ }else {
|
|
|
|
+ prodProcedureTeam.setDistributeDate(report.getCreateDate());
|
|
|
|
+ }
|
|
|
|
+ prodProcedureTeam.setCompanyId(companyId);
|
|
|
|
+ prodProcedureTeam.setPlanProcedureId(planProcedureTotal.getId());
|
|
|
|
+ prodProcedureTeam.setUserId(team[i]);
|
|
|
|
+ prodProcedureTeam.setStatus(2);
|
|
|
|
+ int finalI = i;
|
|
|
|
+ //已存在的人员更新处理
|
|
|
|
+ Optional<ProdProcedureTeam> first = procedureTeamList.stream().filter(pl -> pl.getUserId().equals(team[finalI])).findFirst();
|
|
|
|
+ if(first.isPresent()){
|
|
|
|
+ prodProcedureTeam.setId(first.get().getId());
|
|
|
|
+ }
|
|
|
|
+ if(i==team.length-1){
|
|
|
|
+ double wagesAbs =new BigDecimal(planProcedureTotal.getTotalWages()).subtract(overCountWages).doubleValue();
|
|
|
|
+ double workTimesAbs =new BigDecimal(planProcedureTotal.getTotalWorkingHours()).subtract(overWorkingHours).doubleValue();
|
|
|
|
+ prodProcedureTeam.setWorkTime(totalWorkingHours.add(new BigDecimal(workTimesAbs)).doubleValue());
|
|
|
|
+ prodProcedureTeam.setJobOfMoney(totalWages.add(new BigDecimal(wagesAbs)));
|
|
|
|
+ }else {
|
|
|
|
+ prodProcedureTeam.setWorkTime(totalWorkingHours.doubleValue());
|
|
|
|
+ prodProcedureTeam.setJobOfMoney(totalWages);
|
|
|
|
+ }
|
|
|
|
+ prodProcedureTeamService.saveOrUpdate(prodProcedureTeam);
|
|
|
|
+ report.setUserProcedureTeamId(prodProcedureTeam.getId());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ reportService.updateBatchById(reportList);
|
|
|
|
+ return msg;
|
|
|
|
+ }
|
|
}
|
|
}
|