|
@@ -277,7 +277,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
planProcedureTotal.setTotalFillTime(workingTime);
|
|
|
BigDecimal bigDecimal = new BigDecimal(workingTime);
|
|
|
- bigDecimal=bigDecimal.divide(new BigDecimal(planProcedureTotal.getTotalWorkingHours()));
|
|
|
+ bigDecimal=bigDecimal.divide(new BigDecimal(planProcedureTotal.getTotalWorkingHours()),2,RoundingMode.HALF_UP);
|
|
|
bigDecimal=bigDecimal.multiply(new BigDecimal(100)).setScale(0,RoundingMode.HALF_UP);
|
|
|
planProcedureTotal.setTotalProgress(bigDecimal.intValue());
|
|
|
// planProcedureTotal.setTotalProgress((int)((workingTime / planProcedureTotal.getTotalWorkingHours()) * 100));
|
|
@@ -4046,7 +4046,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
// }
|
|
|
|
|
|
@Override
|
|
|
- public HttpRespMsg getPersonWorkHoursWagesList(Integer deptId, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
|
|
|
+ public HttpRespMsg getPersonWorkHoursWagesList(String deptIds, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
|
|
|
HttpRespMsg httpRespMsg=new HttpRespMsg();
|
|
|
HashMap resultMap=new HashMap();
|
|
|
DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
@@ -4063,16 +4063,19 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
boolean canViewAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部人员工时工价");
|
|
|
QueryWrapper<User> queryWrapper=new QueryWrapper();
|
|
|
queryWrapper.eq("company_id",companyId);
|
|
|
- List<Integer> deptIds=new ArrayList<>();
|
|
|
- if(deptId!=null){
|
|
|
- deptIds = getBranchDepartment(Integer.valueOf(deptId), departmentList);
|
|
|
- deptIds.add(Integer.valueOf(deptId));
|
|
|
- queryWrapper.in("department_id",deptIds);
|
|
|
+ List<Integer> deptIdList=new ArrayList<>();
|
|
|
+ if(deptIds!=null&&!StringUtils.isEmpty(deptIds)){
|
|
|
+ String[] split = deptIds.split(",");
|
|
|
+ for (String deptId : split) {
|
|
|
+ List<Integer> branchDepartment = getBranchDepartment(Integer.valueOf(deptId), departmentList);
|
|
|
+ deptIdList.addAll(branchDepartment);
|
|
|
+ }
|
|
|
+ queryWrapper.in("department_id",deptIdList);
|
|
|
}
|
|
|
if(!StringUtils.isEmpty(userId)){
|
|
|
queryWrapper.eq("id",userId);
|
|
|
}
|
|
|
- List<Map<String,Object>> personWorkHoursWagesList=reportMapper.getPersonWorkHoursWagesList(companyId,startDate,endDate,deptIds,userId);
|
|
|
+ List<Map<String,Object>> personWorkHoursWagesList=reportMapper.getPersonWorkHoursWagesList(companyId,startDate,endDate,deptIdList,userId);
|
|
|
if(!canViewAll){
|
|
|
/*作为工长看到的数据*/
|
|
|
List<Plan> plans = planMapper.selectList(new QueryWrapper<Plan>().eq("foreman_id", user.getId()));
|
|
@@ -4109,16 +4112,126 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
// totalUser.setPersonWorkHoursWages(totalList);
|
|
|
personWorkHoursWagesList.addAll(totalList);
|
|
|
- userList.forEach(u->{
|
|
|
+ //日期范围内所有分配数据
|
|
|
+ List<ProdProcedureTeam> allProcedureTeamList = prodProcedureTeamMapper.selectList(new LambdaQueryWrapper<ProdProcedureTeam>().between(ProdProcedureTeam::getDistributeDate, startDate, endDate));
|
|
|
+ //日期范围内所有派工数据
|
|
|
+ List<Integer> ids = allProcedureTeamList.stream().map(ProdProcedureTeam::getPlanProcedureId).distinct().collect(Collectors.toList());
|
|
|
+ List<PlanProcedureTotal> planProcedureTotalList = planProcedureTotalMapper.selectList(new LambdaQueryWrapper<PlanProcedureTotal>().in(PlanProcedureTotal::getId, ids));
|
|
|
+ for (User u : userList) {
|
|
|
List<Map<String, Object>> mapList = personWorkHoursWagesList.stream().filter(pl -> String.valueOf(pl.get("userId")).equals(u.getId())).collect(Collectors.toList());
|
|
|
+ for (String date : dataStringList) {
|
|
|
+ List<ProdProcedureTeam> targetTeams = allProcedureTeamList.stream().filter(a -> a.getDistributeDate().format(dtf1).equals(date) && u.getId().equals(a.getUserId())).collect(Collectors.toList());
|
|
|
+ //找到当前人员分组的
|
|
|
+ Optional<Map<String, Object>> createDateValue = mapList.stream().filter(m -> String.valueOf(m.get("crateDate")).equals(date)).findFirst();
|
|
|
+ if (createDateValue.isPresent()) {
|
|
|
+ Map<String, Object> map = createDateValue.get();
|
|
|
+ if (targetTeams.size() > 0) {
|
|
|
+ //计算本人被分配数据
|
|
|
+ double workTime = targetTeams.stream().mapToDouble(ProdProcedureTeam::getWorkTime).sum();
|
|
|
+ double cost = targetTeams.stream().mapToDouble(i -> i.getJobOfMoney().doubleValue()).sum();
|
|
|
+ map.put("planCost", String.format("%.2f", cost));
|
|
|
+ map.put("planWorkTime", String.format("%.2f", workTime));
|
|
|
+ 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());
|
|
|
+ BigDecimal lastWorkTime = new BigDecimal(0);
|
|
|
+ BigDecimal lastCost = new BigDecimal(0);
|
|
|
+ for (PlanProcedureTotal targetPlanTotal : targetPlanTotals) {
|
|
|
+ //不同的分配数据对应派工数据不同 需要分开计算
|
|
|
+ //分别计算每个派工单的已填报和总预算
|
|
|
+ List<ProdProcedureTeam> teamList = allProcedureTeamList.stream().filter(a -> targetPlanTotal.getId().equals(a.getPlanProcedureId())).collect(Collectors.toList());
|
|
|
+ List<String> teamIds = teamList.stream().map(ProdProcedureTeam::getUserId).distinct().collect(Collectors.toList());
|
|
|
+ //获当前分配日期下的所分配人员工时成本总和
|
|
|
+ double totalWorkingHours = targetPlanTotal.getTotalWorkingHours();
|
|
|
+ double totalWages = targetPlanTotal.getTotalWages();
|
|
|
+ //获当前分配日期下的所填报人员工时成本总和
|
|
|
+ double workTimeSum = targetPlanTotal.getTotalFillTime();
|
|
|
+ BigDecimal decimal = new BigDecimal(targetPlanTotal.getTotalProgress());
|
|
|
+ decimal = decimal.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
|
|
|
+ BigDecimal costSum = new BigDecimal(targetPlanTotal.getTotalWages());
|
|
|
+ costSum = costSum.multiply(decimal).setScale(1, RoundingMode.HALF_UP);
|
|
|
+
|
|
|
+ BigDecimal decimalCost = new BigDecimal(totalWages);
|
|
|
+ decimalCost = decimalCost.subtract(costSum).setScale(1, RoundingMode.HALF_UP);
|
|
|
+ BigDecimal decimalWorkTime = new BigDecimal(totalWorkingHours);
|
|
|
+ decimalWorkTime = decimalWorkTime.subtract(new BigDecimal(workTimeSum)).setScale(1, RoundingMode.HALF_UP);
|
|
|
+ //根据分配人数重新计算平均值
|
|
|
+ decimalCost = decimalCost.divide(new BigDecimal(teamIds.size()), 1, RoundingMode.HALF_UP);
|
|
|
+ decimalWorkTime = decimalWorkTime.divide(new BigDecimal(teamIds.size()), 1, RoundingMode.HALF_UP);
|
|
|
+ lastWorkTime=lastWorkTime.add(decimalWorkTime);
|
|
|
+ lastCost=lastCost.add(decimalCost);
|
|
|
+ }
|
|
|
+ if (lastWorkTime.doubleValue() >0 && lastCost.doubleValue() > 0) {
|
|
|
+ map.put("surplusCost", lastCost.doubleValue());
|
|
|
+ map.put("surplusTime", lastWorkTime.doubleValue());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ Map map = new HashMap();
|
|
|
+ map.put("crateDate", date);
|
|
|
+ map.put("cost", 0);
|
|
|
+ map.put("workTime", 0);
|
|
|
+ map.put("departmentName", u.getDepartmentName());
|
|
|
+ if (targetTeams.size() > 0) {
|
|
|
+ double workTime = targetTeams.stream().mapToDouble(ProdProcedureTeam::getWorkTime).sum();
|
|
|
+ double cost = targetTeams.stream().mapToDouble(i -> i.getJobOfMoney().doubleValue()).sum();
|
|
|
+ map.put("planCost", String.format("%.2f", cost));
|
|
|
+ map.put("planWorkTime", String.format("%.2f", workTime));
|
|
|
+ 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());
|
|
|
+ BigDecimal lastWorkTime = new BigDecimal(0);
|
|
|
+ BigDecimal lastCost = new BigDecimal(0);
|
|
|
+ for (PlanProcedureTotal targetPlanTotal : targetPlanTotals) {
|
|
|
+ //不同的分配数据对应派工数据不同 需要分开计算
|
|
|
+ //分别计算每个派工单的已填报和总预算
|
|
|
+ List<ProdProcedureTeam> teamList = allProcedureTeamList.stream().filter(a -> targetPlanTotal.getId().equals(a.getPlanProcedureId())).collect(Collectors.toList());
|
|
|
+ List<String> teamIds = teamList.stream().map(ProdProcedureTeam::getUserId).distinct().collect(Collectors.toList());
|
|
|
+ //获当前分配日期下的所分配人员工时成本总和
|
|
|
+ double totalWorkingHours = targetPlanTotal.getTotalWorkingHours();
|
|
|
+ double totalWages = targetPlanTotal.getTotalWages();
|
|
|
+ //获当前分配日期下的所填报人员工时成本总和
|
|
|
+ double workTimeSum = targetPlanTotal.getTotalFillTime();
|
|
|
+ BigDecimal decimal = new BigDecimal(targetPlanTotal.getTotalProgress());
|
|
|
+ decimal = decimal.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
|
|
|
+ BigDecimal costSum = new BigDecimal(targetPlanTotal.getTotalWages());
|
|
|
+ costSum = costSum.multiply(decimal).setScale(1, RoundingMode.HALF_UP);
|
|
|
+
|
|
|
+ BigDecimal decimalCost = new BigDecimal(totalWages);
|
|
|
+ decimalCost = decimalCost.subtract(costSum).setScale(1, RoundingMode.HALF_UP);
|
|
|
+ BigDecimal decimalWorkTime = new BigDecimal(totalWorkingHours);
|
|
|
+ decimalWorkTime = decimalWorkTime.subtract(new BigDecimal(workTimeSum)).setScale(1, RoundingMode.HALF_UP);
|
|
|
+ //根据分配人数重新计算平均值
|
|
|
+ decimalCost = decimalCost.divide(new BigDecimal(teamIds.size()), 1, RoundingMode.HALF_UP);
|
|
|
+ decimalWorkTime = decimalWorkTime.divide(new BigDecimal(teamIds.size()), 1, RoundingMode.HALF_UP);
|
|
|
+ lastWorkTime=lastWorkTime.add(decimalWorkTime);
|
|
|
+ lastCost=lastCost.add(decimalCost);
|
|
|
+ }
|
|
|
+ if (lastWorkTime.doubleValue() >0 && lastCost.doubleValue() > 0) {
|
|
|
+ map.put("surplusCost", lastCost.doubleValue());
|
|
|
+ map.put("surplusTime", lastWorkTime.doubleValue());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ map.put("userId", u.getId());
|
|
|
+ map.put("userName", u.getName());
|
|
|
+ mapList.add(map);
|
|
|
+ }
|
|
|
+ }
|
|
|
u.setPersonWorkHoursWages(mapList);
|
|
|
- u.setDepartmentCascade(u.getId().equals("0")?"小计":convertDepartmentIdToCascade(u.getDepartmentId(),departmentList));
|
|
|
+ u.setDepartmentCascade(u.getId().equals("0") ? "小计" : convertDepartmentIdToCascade(u.getDepartmentId(), departmentList));
|
|
|
double workTime = mapList.stream().mapToDouble(mt -> Double.valueOf(String.valueOf(mt.get("workTime")))).sum();
|
|
|
- BigDecimal bigDecimal=new BigDecimal(workTime);
|
|
|
-// bigDecimal=bigDecimal.multiply(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- double cost = mapList.stream().mapToDouble(mt -> Double.valueOf(String.valueOf(mt.get("cost")))).sum();
|
|
|
- u.setTotalResult(String.valueOf(bigDecimal.doubleValue())+"分钟 "+String.format("%.2f",cost)+"元");
|
|
|
- });
|
|
|
+ BigDecimal bigDecimal = new BigDecimal(workTime);
|
|
|
+ double cost = mapList.stream().mapToDouble(mt -> Double.valueOf(String.valueOf(mt.get("cost")))).sum();
|
|
|
+ double planWorkTime = mapList.stream().filter(mt -> mt.get("planWorkTime") != null).mapToDouble(mt -> Double.valueOf(String.valueOf(mt.get("planWorkTime")))).sum();
|
|
|
+ BigDecimal planBigDecimal = new BigDecimal(planWorkTime);
|
|
|
+ double planCost = mapList.stream().filter(mt -> mt.get("planCost") != null).mapToDouble(mt -> Double.valueOf(String.valueOf(mt.get("planCost")))).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);
|
|
|
+ double surplusCost = mapList.stream().filter(mt -> mt.get("surplusCost") != null).mapToDouble(mt -> Double.valueOf(String.valueOf(mt.get("surplusCost")))).sum();
|
|
|
+ u.setTotalResult(String.valueOf(bigDecimal.doubleValue()) + "分钟 " + String.format("%.2f", cost) + "元");
|
|
|
+ u.setTotalPlanResult(String.valueOf(planBigDecimal.doubleValue()) + "分钟 " + String.format("%.2f", planCost) + "元");
|
|
|
+ u.setTotalSurplusResult(String.valueOf(surplusBigDecimal.doubleValue()) + "分钟 " + String.format("%.2f", surplusCost) + "元");
|
|
|
+ }
|
|
|
resultMap.put("total",userIPage.getTotal());
|
|
|
resultMap.put("records",userList);
|
|
|
httpRespMsg.setData(resultMap);
|
|
@@ -4271,8 +4384,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public HttpRespMsg exportPersonWorkHoursWorkTime(Integer deptId, String userId, String startDate, String endDate) {
|
|
|
- HttpRespMsg respMsg = getPersonWorkHoursWagesList(deptId, userId, startDate, endDate, -1, -1);
|
|
|
+ public HttpRespMsg exportPersonWorkHoursWorkTime(String deptIds, String userId, String startDate, String endDate) {
|
|
|
+ HttpRespMsg respMsg = getPersonWorkHoursWagesList(deptIds, userId, startDate, endDate, -1, -1);
|
|
|
Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
HashMap resultMap= (HashMap) respMsg.data;
|
|
|
List<User> mapList= (List<User>) resultMap.get("records");
|
|
@@ -4437,24 +4550,33 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public HttpRespMsg getProcedureRealTimeProgressList(String deptId, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
|
|
|
+ public HttpRespMsg getProcedureRealTimeProgressList(String deptIds, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
|
|
|
HttpRespMsg httpRespMsg=new HttpRespMsg();
|
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
|
+ List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, user.getCompanyId()));
|
|
|
boolean canViewAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部工序实时进度");
|
|
|
Integer pageStart = null;
|
|
|
if (pageIndex!=null){
|
|
|
pageStart = (pageIndex -1) * pageSize;
|
|
|
}
|
|
|
Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
+ List<Integer> deptIdList=new ArrayList<>();
|
|
|
+ if(!StringUtils.isEmpty(deptIds)){
|
|
|
+ String[] split = deptIds.split(",");
|
|
|
+ for (String deptId : split) {
|
|
|
+ List<Integer> branchDepartment = getBranchDepartment(Integer.valueOf(deptId), departmentList);
|
|
|
+ deptIdList.addAll(branchDepartment);
|
|
|
+ }
|
|
|
+ }
|
|
|
HashMap map=new HashMap();
|
|
|
List<Map<String, Object>> planRealTimeProgressList;
|
|
|
Integer total;
|
|
|
if(!canViewAll){
|
|
|
- planRealTimeProgressList = reportMapper.getProcedureRealTimeProgressList(companyId, deptId,user.getId(), userId, startDate, endDate, pageStart, pageSize);
|
|
|
- total=reportMapper.getProcedureRealTimeProgressCount(companyId, deptId,user.getId(), userId, startDate, endDate);
|
|
|
+ planRealTimeProgressList = reportMapper.getProcedureRealTimeProgressList(companyId, deptIdList,user.getId(), userId, startDate, endDate, pageStart, pageSize);
|
|
|
+ total=reportMapper.getProcedureRealTimeProgressCount(companyId, deptIdList,user.getId(), userId, startDate, endDate);
|
|
|
}else {
|
|
|
- planRealTimeProgressList = reportMapper.getProcedureRealTimeProgressList(companyId, deptId,null, userId, startDate, endDate, pageStart, pageSize);
|
|
|
- total=reportMapper.getProcedureRealTimeProgressCount(companyId, deptId,null, userId, startDate, endDate);
|
|
|
+ planRealTimeProgressList = reportMapper.getProcedureRealTimeProgressList(companyId, deptIdList,null, userId, startDate, endDate, pageStart, pageSize);
|
|
|
+ total=reportMapper.getProcedureRealTimeProgressCount(companyId, deptIdList,null, userId, startDate, endDate);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -4465,9 +4587,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public HttpRespMsg exportProcedureRealTimeProgressList(String deptId, String userId, String startDate, String endDate) {
|
|
|
+ public HttpRespMsg exportProcedureRealTimeProgressList(String deptIds, String userId, String startDate, String endDate) {
|
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
|
- HttpRespMsg respMsg = getProcedureRealTimeProgressList(deptId, userId, startDate, endDate, null, null);
|
|
|
+ HttpRespMsg respMsg = getProcedureRealTimeProgressList(deptIds, userId, startDate, endDate, null, null);
|
|
|
Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
HashMap resultMap= (HashMap) respMsg.data;
|
|
|
List<Map<String, Object>> mapList= (List<Map<String, Object>>) resultMap.get("records");
|
|
@@ -4498,7 +4620,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public HttpRespMsg workReportQuery(Integer productId, String vehicleNum, String steelNum, Integer deptId, String userId, String startDate, String endDate,Integer pageIndex,Integer pageSize) {
|
|
|
+ public HttpRespMsg workReportQuery(Integer productId, String vehicleNum, String steelNum, String deptIds, String userId, String startDate, String endDate,Integer pageIndex,Integer pageSize) {
|
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
|
boolean canViewAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部报工");
|
|
@@ -4507,15 +4629,24 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
pageStart = (pageIndex -1) * pageSize;
|
|
|
}
|
|
|
Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
+ List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, companyId));
|
|
|
+ List<Integer> deptIdList=new ArrayList<>();
|
|
|
+ if(!StringUtils.isEmpty(deptIds)){
|
|
|
+ String[] split = deptIds.split(",");
|
|
|
+ for (String deptId : split) {
|
|
|
+ List<Integer> branchDepartment = getBranchDepartment(Integer.valueOf(deptId), departmentList);
|
|
|
+ deptIdList.addAll(branchDepartment);
|
|
|
+ }
|
|
|
+ }
|
|
|
Map map=new HashMap();
|
|
|
List<Map<String,Object>> mapList;
|
|
|
Integer total;
|
|
|
if(!canViewAll){
|
|
|
- mapList=reportMapper.workReportQuery(companyId,productId,vehicleNum,steelNum,deptId,user.getId(),userId,startDate,endDate,pageStart,pageSize);
|
|
|
- total = reportMapper.selectCountForWorkQuery(companyId, productId, vehicleNum, steelNum, deptId,user.getId(), userId, startDate, endDate);
|
|
|
+ mapList=reportMapper.workReportQuery(companyId,productId,vehicleNum,steelNum,deptIdList,user.getId(),userId,startDate,endDate,pageStart,pageSize);
|
|
|
+ total = reportMapper.selectCountForWorkQuery(companyId, productId, vehicleNum, steelNum, deptIdList,user.getId(), userId, startDate, endDate);
|
|
|
}else {
|
|
|
- mapList=reportMapper.workReportQuery(companyId,productId,vehicleNum,steelNum,deptId,null,userId,startDate,endDate,pageStart,pageSize);
|
|
|
- total = reportMapper.selectCountForWorkQuery(companyId, productId, vehicleNum, steelNum, deptId,null, userId, startDate, endDate);
|
|
|
+ mapList=reportMapper.workReportQuery(companyId,productId,vehicleNum,steelNum,deptIdList,null,userId,startDate,endDate,pageStart,pageSize);
|
|
|
+ total = reportMapper.selectCountForWorkQuery(companyId, productId, vehicleNum, steelNum, deptIdList,null, userId, startDate, endDate);
|
|
|
}
|
|
|
|
|
|
map.put("records",mapList);
|
|
@@ -4525,9 +4656,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public HttpRespMsg exportWorkReportQuery(Integer productId, String vehicleNum, String steelNum, Integer deptId, String userId, String startDate, String endDate) {
|
|
|
+ public HttpRespMsg exportWorkReportQuery(Integer productId, String vehicleNum, String steelNum, String deptIds, String userId, String startDate, String endDate) {
|
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
|
- HttpRespMsg respMsg = workReportQuery(productId, vehicleNum, steelNum, deptId, userId, startDate,endDate,null,null);
|
|
|
+ HttpRespMsg respMsg = workReportQuery(productId, vehicleNum, steelNum, deptIds, userId, startDate,endDate,null,null);
|
|
|
Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
HashMap resultMap= (HashMap) respMsg.data;
|
|
|
List<Map<String, Object>> mapList= (List<Map<String, Object>>) resultMap.get("records");
|
|
@@ -4564,7 +4695,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public HttpRespMsg getPlanRealTimeProgressList(String deptId, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
|
|
|
+ public HttpRespMsg getPlanRealTimeProgressList(String deptIds, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
|
|
|
HttpRespMsg httpRespMsg=new HttpRespMsg();
|
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
|
boolean canViewAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部计划实时进度");
|
|
@@ -4575,15 +4706,24 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
pageStart = (pageIndex -1) * pageSize;
|
|
|
}
|
|
|
Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
+ List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, companyId));
|
|
|
+ List<Integer> deptIdList=new ArrayList<>();
|
|
|
+ if(!StringUtils.isEmpty(deptIds)){
|
|
|
+ String[] split = deptIds.split(",");
|
|
|
+ for (String deptId : split) {
|
|
|
+ List<Integer> branchDepartment = getBranchDepartment(Integer.valueOf(deptId), departmentList);
|
|
|
+ deptIdList.addAll(branchDepartment);
|
|
|
+ }
|
|
|
+ }
|
|
|
List<Map<String, Object>> planRealTimeProgressList;
|
|
|
Integer total;
|
|
|
HashMap map=new HashMap();
|
|
|
if(!canViewAll){
|
|
|
- planRealTimeProgressList = reportMapper.getPlanRealTimeProgressList(companyId, deptId,user.getId(), userId, startDate, endDate, pageStart, pageSize,null);
|
|
|
- total=reportMapper.getPlanRealTimeProgressCount(companyId, deptId,user.getId(), userId, startDate, endDate);
|
|
|
+ planRealTimeProgressList = reportMapper.getPlanRealTimeProgressList(companyId, deptIdList,user.getId(), userId, startDate, endDate, pageStart, pageSize,null);
|
|
|
+ total=reportMapper.getPlanRealTimeProgressCount(companyId, deptIdList,user.getId(), userId, startDate, endDate);
|
|
|
}else {
|
|
|
- planRealTimeProgressList = reportMapper.getPlanRealTimeProgressList(companyId, deptId,null, userId, startDate, endDate, pageStart, pageSize,null);
|
|
|
- total=reportMapper.getPlanRealTimeProgressCount(companyId, deptId,null, userId, startDate, endDate);
|
|
|
+ planRealTimeProgressList = reportMapper.getPlanRealTimeProgressList(companyId, deptIdList,null, userId, startDate, endDate, pageStart, pageSize,null);
|
|
|
+ total=reportMapper.getPlanRealTimeProgressCount(companyId, deptIdList,null, userId, startDate, endDate);
|
|
|
}
|
|
|
planRealTimeProgressList.forEach(pt->{
|
|
|
BigDecimal planWorkTime = new BigDecimal(pt.get("planWorkTime") == null ? 0 : Double.valueOf(String.valueOf(pt.get("planWorkTime"))));
|
|
@@ -4601,9 +4741,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public HttpRespMsg exportPlanRealTimeProgressList(String deptId, String userId, String startDate, String endDate) {
|
|
|
+ public HttpRespMsg exportPlanRealTimeProgressList(String deptIds, String userId, String startDate, String endDate) {
|
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
|
- HttpRespMsg respMsg = getPlanRealTimeProgressList(deptId, userId, startDate, endDate, null, null);
|
|
|
+ HttpRespMsg respMsg = getPlanRealTimeProgressList(deptIds, userId, startDate, endDate, null, null);
|
|
|
Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
HashMap resultMap= (HashMap) respMsg.data;
|
|
|
List<Map<String, Object>> mapList= (List<Map<String, Object>>) resultMap.get("records");
|
|
@@ -4642,7 +4782,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public HttpRespMsg getDpetStatisticsProgressList(String deptId, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
|
|
|
+ public HttpRespMsg getDpetStatisticsProgressList(String deptIds, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
|
|
|
HttpRespMsg httpRespMsg=new HttpRespMsg();
|
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
|
boolean canViewAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部部门生产统计");
|
|
@@ -4654,15 +4794,23 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
|
|
|
+ List<Integer> deptIdList=new ArrayList<>();
|
|
|
+ if(!StringUtils.isEmpty(deptIds)){
|
|
|
+ String[] split = deptIds.split(",");
|
|
|
+ for (String deptId : split) {
|
|
|
+ List<Integer> branchDepartment = getBranchDepartment(Integer.valueOf(deptId), departmentList);
|
|
|
+ deptIdList.addAll(branchDepartment);
|
|
|
+ }
|
|
|
+ }
|
|
|
HashMap map=new HashMap();
|
|
|
List<Map<String, Object>> dpetStatisticsProgressList;
|
|
|
Integer total;
|
|
|
if(!canViewAll){
|
|
|
- dpetStatisticsProgressList = reportMapper.getDpetStatisticsProgressList(companyId, deptId,user.getId(), userId, startDate, endDate, pageStart, pageSize);
|
|
|
- total=reportMapper.getDpetStatisticsProgressCount(companyId, deptId,user.getId(), userId, startDate, endDate);
|
|
|
+ dpetStatisticsProgressList = reportMapper.getDpetStatisticsProgressList(companyId, deptIdList,user.getId(), userId, startDate, endDate, pageStart, pageSize);
|
|
|
+ total=reportMapper.getDpetStatisticsProgressCount(companyId, deptIdList,user.getId(), userId, startDate, endDate);
|
|
|
}else {
|
|
|
- dpetStatisticsProgressList = reportMapper.getDpetStatisticsProgressList(companyId, deptId,null, userId, startDate, endDate, pageStart, pageSize);
|
|
|
- total=reportMapper.getDpetStatisticsProgressCount(companyId, deptId,null, userId, startDate, endDate);
|
|
|
+ dpetStatisticsProgressList = reportMapper.getDpetStatisticsProgressList(companyId, deptIdList,null, userId, startDate, endDate, pageStart, pageSize);
|
|
|
+ total=reportMapper.getDpetStatisticsProgressCount(companyId, deptIdList,null, userId, startDate, endDate);
|
|
|
}
|
|
|
dpetStatisticsProgressList.forEach(pt->{
|
|
|
BigDecimal planWorkTime = new BigDecimal(pt.get("planWorkTime") == null ? 0 : Double.valueOf(String.valueOf(pt.get("planWorkTime"))));
|
|
@@ -4682,9 +4830,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public HttpRespMsg exportDpetStatisticsProgressList(String deptId, String userId, String startDate, String endDate) {
|
|
|
+ public HttpRespMsg exportDpetStatisticsProgressList(String deptIds, String userId, String startDate, String endDate) {
|
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
|
- HttpRespMsg respMsg = getDpetStatisticsProgressList(deptId, userId, startDate, endDate, null, null);
|
|
|
+ HttpRespMsg respMsg = getDpetStatisticsProgressList(deptIds, userId, startDate, endDate, null, null);
|
|
|
Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
HashMap resultMap= (HashMap) respMsg.data;
|
|
|
List<Map<String, Object>> mapList= (List<Map<String, Object>>) resultMap.get("records");
|
|
@@ -4716,12 +4864,14 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
List<Map<String,Object>> reportList=reportMapper.getReportList(startDate,endDate,planId,stateKey,departmentId,companyId);
|
|
|
List<List<String>> dataList=new ArrayList<>();
|
|
|
// String[] title={"员工","工号","所属部门","排除工单号/任务变更通知号","钢印号","工作时长","产品名称","工序名称","进度","质检类型","质检人","工作日期","填报日期"};
|
|
|
- String[] title={"所属部门","工号","员工","排除工单号/任务变更通知号","钢印号","产品名称","工序名称","进度","工作件数", "工作时长","单价","工价","汇总",
|
|
|
- "工作日期","填报日期","质检类型","质检人"};
|
|
|
+// String[] title={"所属部门","工号","员工","排除工单号/任务变更通知号","钢印号","产品名称","工序名称","进度","工作件数", "工作时长","单价","工价","汇总",
|
|
|
+// "工作日期","填报日期","质检类型","质检人"};
|
|
|
+ String[] title={"工位名称","项目名称","包名称","生产订单号","工序名称","零件编码","零件名称","零件图号","生产数量", "工时","单价","合计",
|
|
|
+ "作业人员","日期"};
|
|
|
List<String> titleList=Arrays.asList(title);
|
|
|
dataList.add(titleList);
|
|
|
|
|
|
- int sumCostIndex = 12;
|
|
|
+ int sumCostIndex = 11;
|
|
|
List<String> sumLine = null;
|
|
|
String lastJobNum = null;
|
|
|
for (Map<String, Object> map : reportList) {
|
|
@@ -4729,27 +4879,34 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
String departmentName = convertDepartmentIdToCascade(Integer.valueOf(String.valueOf(map.get("departmentId"))), departmentList);
|
|
|
item.add(departmentName);
|
|
|
String curJobBNum = String.valueOf(map.get("jobNumber"));
|
|
|
- item.add(curJobBNum);
|
|
|
- item.add(String.valueOf(map.get("userName")));
|
|
|
- Integer planType = Integer.valueOf(String.valueOf(map.get("planType")));
|
|
|
- if(planType==0){
|
|
|
- item.add(map.get("productSchedulingNum")==null?"":String.valueOf(map.get("productSchedulingNum")));
|
|
|
- }else {
|
|
|
- item.add(map.get("taskChangeNoticeNum")==null?"":String.valueOf(map.get("taskChangeNoticeNum")));
|
|
|
- }
|
|
|
- item.add(map.get("steelNumArray")==null?"":String.valueOf(map.get("steelNumArray")));
|
|
|
- item.add(String.valueOf(map.get("productName")));
|
|
|
+// item.add(curJobBNum);
|
|
|
+// item.add(String.valueOf(map.get("userName")));
|
|
|
+// Integer planType = Integer.valueOf(String.valueOf(map.get("planType")));
|
|
|
+// if(planType==0){
|
|
|
+// item.add(map.get("productSchedulingNum")==null?"":String.valueOf(map.get("productSchedulingNum")));
|
|
|
+// }else {
|
|
|
+// item.add(map.get("taskChangeNoticeNum")==null?"":String.valueOf(map.get("taskChangeNoticeNum")));
|
|
|
+// }
|
|
|
+// item.add(map.get("steelNumArray")==null?"":String.valueOf(map.get("steelNumArray")));
|
|
|
+ item.add(map.get("projectName")==null?"":String.valueOf(map.get("projectName")));
|
|
|
+// item.add(String.valueOf(map.get("productName")));
|
|
|
+ item.add("");
|
|
|
+ item.add(map.get("productOrderNum")==null?"":String.valueOf(map.get("productOrderNum")));
|
|
|
item.add(String.valueOf(map.get("procedureName")));
|
|
|
- item.add(String.valueOf(map.get("progress"))+"%");
|
|
|
+ item.add("");
|
|
|
+ item.add("");
|
|
|
+ item.add("");
|
|
|
+// item.add(String.valueOf(map.get("progress"))+"%");
|
|
|
item.add(String.valueOf(map.get("finishNum")));
|
|
|
item.add(String.valueOf(map.get("workingTime")));
|
|
|
item.add(String.valueOf(map.get("unitPrice")));
|
|
|
String cost = String.valueOf(map.get("cost"));
|
|
|
- item.add(cost);
|
|
|
+// item.add(cost);
|
|
|
+ item.add(String.valueOf(map.get("userName")));
|
|
|
item.add(String.valueOf(map.get("createDate")));
|
|
|
- item.add(String.valueOf(map.get("reportTime")));
|
|
|
- item.add(String.valueOf(map.get("checkType")));
|
|
|
- item.add(map.get("checkerName")==null?"":String.valueOf(map.get("checkerName")));
|
|
|
+// item.add(String.valueOf(map.get("reportTime")));
|
|
|
+// item.add(String.valueOf(map.get("checkType")));
|
|
|
+// item.add(map.get("checkerName")==null?"":String.valueOf(map.get("checkerName")));
|
|
|
dataList.add(item);
|
|
|
if (lastJobNum == null || !lastJobNum.equals(curJobBNum)) {
|
|
|
//换新的人了
|
|
@@ -5303,7 +5460,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public HttpRespMsg getPlanDataWithStation(Integer isFilterDept,Integer filterDeptId,Integer stationId, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
|
|
|
+ public HttpRespMsg getPlanDataWithStation(Integer isFilterDept,Integer filterDeptId,String stationIds, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
|
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
|
NumberFormat format = NumberFormat.getPercentInstance();
|
|
@@ -5579,8 +5736,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
lastList=list;
|
|
|
|
|
|
- if(stationId!=null){
|
|
|
- lastList=lastList.stream().filter(l->Integer.valueOf(String.valueOf(l.get("deptId"))).equals(stationId)).collect(Collectors.toList());
|
|
|
+ if(stationIds!=null&&!StringUtils.isEmpty(stationIds)){
|
|
|
+ String[] split = stationIds.split(",");
|
|
|
+ List<Integer> collect = Arrays.asList(split).stream().map(i -> Integer.valueOf(i)).collect(Collectors.toList());
|
|
|
+ lastList=lastList.stream().filter(l->collect.contains(Integer.valueOf(String.valueOf(l.get("deptId"))))).collect(Collectors.toList());
|
|
|
}
|
|
|
//得到的数据再根据部门过滤一下
|
|
|
if(pageSize!=null&&pageSize>lastList.size()){
|
|
@@ -5595,10 +5754,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public HttpRespMsg exportPlanDataWithStation(Integer isFilterDept, Integer filterDeptId, Integer stationId, String startDate, String endDate) {
|
|
|
+ public HttpRespMsg exportPlanDataWithStation(Integer isFilterDept, Integer filterDeptId, String stationIds, String startDate, String endDate) {
|
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
|
Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
- HttpRespMsg data = getPlanDataWithStation(isFilterDept, filterDeptId, stationId, startDate, endDate, null, null);
|
|
|
+ HttpRespMsg data = getPlanDataWithStation(isFilterDept, filterDeptId, stationIds, startDate, endDate, null, null);
|
|
|
Map<String, Object> objectMap = (Map<String, Object>) data.data;
|
|
|
boolean isViewUser = (boolean) objectMap.get("isViewUser");
|
|
|
List<Map<String, Object>> mapList = (List<Map<String, Object>>) objectMap.get("records");
|