|
@@ -165,22 +165,23 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
List<Integer> otherDeptIds = otherManagers.stream().map(DepartmentOtherManager::getDepartmentId).distinct().collect(Collectors.toList());
|
|
|
deptIds.addAll(otherDeptIds);
|
|
|
/*作为部门负责人看到的数据*/
|
|
|
- if(departmentMapper.selectCount(new LambdaQueryWrapper<Department>().eq(Department::getManagerId,user.getId()))>0
|
|
|
- ||departmentOtherManagerService.count(new LambdaQueryWrapper<DepartmentOtherManager>().eq(DepartmentOtherManager::getOtherManagerId,user.getId()))>0){
|
|
|
- queryWrapper.and(wrapper->wrapper.and(wr->wr.in(Plan::getStationId,deptIds).eq(Plan::getStatus,1)).or().eq(Plan::getCreateId,user.getId()));
|
|
|
- }else {
|
|
|
- /*作为组员可以查看的数据*/
|
|
|
- List<ProdProcedureTeam> prodProcedureTeams = prodProcedureTeamService.list(new QueryWrapper<ProdProcedureTeam>().eq("company_id", companyId).eq("user_id", user.getId()));
|
|
|
- List<Integer> collect=new ArrayList<>();
|
|
|
- if(prodProcedureTeams!=null&&prodProcedureTeams.size()>0){
|
|
|
- List<Integer> ids = prodProcedureTeams.stream().map(ProdProcedureTeam::getPlanProcedureId).collect(Collectors.toList());
|
|
|
- List<PlanProcedureTotal> list = planProcedureTotalService.list(new QueryWrapper<PlanProcedureTotal>().in("id", ids));
|
|
|
- collect = list.stream().map(PlanProcedureTotal::getPlanId).distinct().collect(Collectors.toList());
|
|
|
- }
|
|
|
- collect.add(-1);
|
|
|
- List<Integer> finalCollect = collect;
|
|
|
- queryWrapper.and(wrapper->wrapper.in(Plan::getId, finalCollect).or().eq(Plan::getCreateId,user.getId())).eq(Plan::getStatus,1);
|
|
|
+// if(departmentMapper.selectCount(new LambdaQueryWrapper<Department>().eq(Department::getManagerId,user.getId()))>0
|
|
|
+// ||departmentOtherManagerService.count(new LambdaQueryWrapper<DepartmentOtherManager>().eq(DepartmentOtherManager::getOtherManagerId,user.getId()))>0){
|
|
|
+//// queryWrapper.and(wrapper->wrapper.and(wr->wr.in(Plan::getStationId,deptIds).eq(Plan::getStatus,1)).or().eq(Plan::getCreateId,user.getId()));
|
|
|
+// queryWrapper.and(wrapper->wrapper.and(wr->wr.in(Plan::getStationId,deptIds)).or().eq(Plan::getCreateId,user.getId()));
|
|
|
+// }else {
|
|
|
+//
|
|
|
+// }
|
|
|
+ List<ProdProcedureTeam> prodProcedureTeams = prodProcedureTeamService.list(new QueryWrapper<ProdProcedureTeam>().eq("company_id", companyId).eq("user_id", user.getId()));
|
|
|
+ List<Integer> collect=new ArrayList<>();
|
|
|
+ if(prodProcedureTeams!=null&&prodProcedureTeams.size()>0){
|
|
|
+ List<Integer> ids = prodProcedureTeams.stream().map(ProdProcedureTeam::getPlanProcedureId).collect(Collectors.toList());
|
|
|
+ List<PlanProcedureTotal> list = planProcedureTotalService.list(new QueryWrapper<PlanProcedureTotal>().in("id", ids));
|
|
|
+ collect = list.stream().map(PlanProcedureTotal::getPlanId).distinct().collect(Collectors.toList());
|
|
|
}
|
|
|
+ collect.add(-1);
|
|
|
+ List<Integer> finalCollect = collect;
|
|
|
+ queryWrapper.and(wrapper->wrapper.in(Plan::getId, finalCollect).or().eq(Plan::getCreateId,user.getId()).or().in(Plan::getStationId,deptIds)).eq(Plan::getStatus,1);
|
|
|
}
|
|
|
if(!StringUtils.isEmpty(steelStampNumber)){
|
|
|
QueryWrapper<PlanSteelStampNumber> queryWrapperSSN=new QueryWrapper<>();
|
|
@@ -220,6 +221,9 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
if(totals.size()>0){
|
|
|
double sum = totals.stream().filter(t->t.getTotalWages()!=null).mapToDouble(PlanProcedureTotal::getTotalWages).sum();
|
|
|
rs.setTotalMoney(sum);
|
|
|
+ List<Integer> totalIds = totals.stream().map(PlanProcedureTotal::getId).collect(Collectors.toList());
|
|
|
+ boolean b = procedureTeams.stream().anyMatch(p -> totalIds.contains(p.getPlanProcedureId()));
|
|
|
+ rs.setHasAllocation(b?1:0);
|
|
|
}
|
|
|
if(planType==2){
|
|
|
totals.forEach(ps->{
|
|
@@ -275,7 +279,6 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
@Override
|
|
|
public HttpRespMsg addOrUpdatePlan(Plan plan) {
|
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
|
- List<Plan> plans = planMapper.selectList(new LambdaQueryWrapper<Plan>().eq(Plan::getStationId, plan.getStationId()).eq(Plan::getProductId, plan.getProductId()).orderByDesc(Plan::getCreateTime));
|
|
|
boolean isNew=true;
|
|
|
Integer companyId = user.getCompanyId();
|
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
@@ -287,6 +290,14 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
}
|
|
|
if(plan.getProductId()!=null){
|
|
|
Product product = productMapper.selectById(plan.getProductId());
|
|
|
+ List<Plan> plans = planMapper.selectList(new LambdaQueryWrapper<Plan>().select(Plan::getNum));
|
|
|
+ double sum = plans.stream().mapToDouble(Plan::getNum).sum();
|
|
|
+ BigDecimal decimal = new BigDecimal(sum);
|
|
|
+ decimal=decimal.add(new BigDecimal(plan.getNum())).setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ if(decimal.doubleValue()>product.getOrderNumber()){
|
|
|
+ msg.setError("创建失败,该产品下的排产计划总数量大于当前产品下的订单数量");
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
plan.setProductName(product.getName());
|
|
|
}
|
|
|
if(plan.getTaskTypeId()!=null){
|
|
@@ -427,31 +438,31 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
}
|
|
|
planProcedureTotalService.saveOrUpdateBatch(planProcedureTotals);
|
|
|
//新增的时候 计划相同的产品 分配到相同的班组的时候 组员自动分配到上次分配到的人员上
|
|
|
- if(isNew){
|
|
|
- if(plans.size()>0){
|
|
|
- Plan oldPlan = plans.get(0);
|
|
|
- List<PlanProcedureTotal> oldTotalList = planProcedureTotalService.list(new LambdaQueryWrapper<PlanProcedureTotal>().eq(PlanProcedureTotal::getPlanId, oldPlan.getId()));
|
|
|
- List<Integer> ids = oldTotalList.stream().map(PlanProcedureTotal::getId).distinct().collect(Collectors.toList());
|
|
|
- ids.add(-1);
|
|
|
- List<ProdProcedureTeam> procedureTeams = prodProcedureTeamService.list(new LambdaQueryWrapper<ProdProcedureTeam>().in(ProdProcedureTeam::getPlanProcedureId, ids));
|
|
|
- for (PlanProcedureTotal planProcedureTotal : planProcedureTotals) {
|
|
|
- Optional<PlanProcedureTotal> first = oldTotalList.stream().filter(ot -> ot.getProdProcedureId().equals(planProcedureTotal.getProdProcedureId())).findFirst();
|
|
|
- if(!first.isPresent()){
|
|
|
- continue;
|
|
|
- }
|
|
|
- List<ProdProcedureTeam> teams = procedureTeams.stream().filter(ps -> ps.getPlanProcedureId().equals(first.get().getId())).collect(Collectors.toList());
|
|
|
- if(teams!=null&&teams.size()>0){
|
|
|
- String teamIds = teams.stream().map(ProdProcedureTeam::getUserId).distinct().collect(Collectors.joining(","));
|
|
|
- try {
|
|
|
- teamAllocation(planProcedureTotal,teamIds,plan.getPlanType());
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
+// if(isNew){
|
|
|
+// if(plans.size()>0){
|
|
|
+// Plan oldPlan = plans.get(0);
|
|
|
+// List<PlanProcedureTotal> oldTotalList = planProcedureTotalService.list(new LambdaQueryWrapper<PlanProcedureTotal>().eq(PlanProcedureTotal::getPlanId, oldPlan.getId()));
|
|
|
+// List<Integer> ids = oldTotalList.stream().map(PlanProcedureTotal::getId).distinct().collect(Collectors.toList());
|
|
|
+// ids.add(-1);
|
|
|
+// List<ProdProcedureTeam> procedureTeams = prodProcedureTeamService.list(new LambdaQueryWrapper<ProdProcedureTeam>().in(ProdProcedureTeam::getPlanProcedureId, ids));
|
|
|
+// for (PlanProcedureTotal planProcedureTotal : planProcedureTotals) {
|
|
|
+// Optional<PlanProcedureTotal> first = oldTotalList.stream().filter(ot -> ot.getProdProcedureId().equals(planProcedureTotal.getProdProcedureId())).findFirst();
|
|
|
+// if(!first.isPresent()){
|
|
|
+// continue;
|
|
|
+// }
|
|
|
+// List<ProdProcedureTeam> teams = procedureTeams.stream().filter(ps -> ps.getPlanProcedureId().equals(first.get().getId())).collect(Collectors.toList());
|
|
|
+// if(teams!=null&&teams.size()>0){
|
|
|
+// String teamIds = teams.stream().map(ProdProcedureTeam::getUserId).distinct().collect(Collectors.joining(","));
|
|
|
+// try {
|
|
|
+// teamAllocation(planProcedureTotal,teamIds,plan.getPlanType());
|
|
|
+// } catch (Exception e) {
|
|
|
+// e.printStackTrace();
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// }
|
|
|
+// }
|
|
|
List<PlanProcedureTotal> totals = planProcedureTotals.stream().filter(ps -> ps.getPlanId().equals(plan.getId())).collect(Collectors.toList());
|
|
|
if(totals.size()>0){
|
|
|
double sum = totals.stream().filter(t->t.getTotalWages()!=null).mapToDouble(PlanProcedureTotal::getTotalWages).sum();
|
|
@@ -870,7 +881,7 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public HttpRespMsg exportData(String date, Integer planType,String steelStampNumber) {
|
|
|
+ public HttpRespMsg exportData(String startDate,String endDate,Integer planType,Integer productId,Integer deptId) {
|
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
|
Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
QueryWrapper<Plan> queryWrapper=new QueryWrapper();
|
|
@@ -881,27 +892,37 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
}else {
|
|
|
queryWrapper.eq("plan_type",1);
|
|
|
}
|
|
|
- if(!StringUtils.isEmpty(date)){
|
|
|
- LocalDate parse = LocalDate.parse(date,df);
|
|
|
- queryWrapper.eq("start_date",parse);
|
|
|
+ if(!StringUtils.isEmpty(startDate)&&!StringUtils.isEmpty(endDate)){
|
|
|
+ LocalDate parse1 = LocalDate.parse(startDate,df);
|
|
|
+ LocalDate parse2 = LocalDate.parse(endDate,df);
|
|
|
+ queryWrapper.between("start_date",parse1,parse2);
|
|
|
}else {
|
|
|
if(planType!=2){
|
|
|
LocalDate now = LocalDate.now();
|
|
|
queryWrapper.eq("start_date",planType==0?now:now.plusDays(1));
|
|
|
}
|
|
|
}
|
|
|
+ if(productId!=null){
|
|
|
+ queryWrapper.eq("product_id",productId);
|
|
|
+ }
|
|
|
+ if(deptId!=null){
|
|
|
+ List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getDepartmentId, deptId).or().eq(Department::getSuperiorId, deptId));
|
|
|
+ List<Integer> list = departmentList.stream().map(Department::getDepartmentId).distinct().collect(Collectors.toList());
|
|
|
+ list.add(-1);
|
|
|
+ queryWrapper.in("station_id",list);
|
|
|
+ }
|
|
|
+//// if(!StringUtils.isEmpty(steelStampNumber)){
|
|
|
+//// queryWrapper.gt("steel_stamp_number_start",steelStampNumber);
|
|
|
+//// queryWrapper.lt("steel_stamp_number_end",steelStampNumber);
|
|
|
+//// }
|
|
|
// if(!StringUtils.isEmpty(steelStampNumber)){
|
|
|
-// queryWrapper.gt("steel_stamp_number_start",steelStampNumber);
|
|
|
-// queryWrapper.lt("steel_stamp_number_end",steelStampNumber);
|
|
|
+// QueryWrapper<PlanSteelStampNumber> queryWrapperSSN=new QueryWrapper<>();
|
|
|
+// queryWrapperSSN.apply("'"+steelStampNumber+"'"+" between steel_stamp_number_start AND steel_stamp_number_end");
|
|
|
+// List<PlanSteelStampNumber> list = planSteelStampNumberService.list(queryWrapperSSN);
|
|
|
+// List<Integer> ids = list.stream().map(PlanSteelStampNumber::getPlanId).collect(Collectors.toList());
|
|
|
+// ids.add(-1);
|
|
|
+// queryWrapper.in("id",ids);
|
|
|
// }
|
|
|
- if(!StringUtils.isEmpty(steelStampNumber)){
|
|
|
- QueryWrapper<PlanSteelStampNumber> queryWrapperSSN=new QueryWrapper<>();
|
|
|
- queryWrapperSSN.apply("'"+steelStampNumber+"'"+" between steel_stamp_number_start AND steel_stamp_number_end");
|
|
|
- List<PlanSteelStampNumber> list = planSteelStampNumberService.list(queryWrapperSSN);
|
|
|
- List<Integer> ids = list.stream().map(PlanSteelStampNumber::getPlanId).collect(Collectors.toList());
|
|
|
- ids.add(-1);
|
|
|
- queryWrapper.in("id",ids);
|
|
|
- }
|
|
|
List<Plan> planList = planMapper.selectList(queryWrapper);
|
|
|
List<String> titleList=new ArrayList<>();
|
|
|
if(planType!=2){
|
|
@@ -1387,4 +1408,36 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
msg.setError("‘已有员工报工,删除失败");
|
|
|
return msg;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public HttpRespMsg allocationUser(Integer planId) {
|
|
|
+ HttpRespMsg msg=new HttpRespMsg();
|
|
|
+ Plan plan = planMapper.selectById(planId);
|
|
|
+ List<Plan> plans = planMapper.selectList(new LambdaQueryWrapper<Plan>().eq(Plan::getStationId, plan.getStationId()).ne(Plan::getId,plan.getId()).eq(Plan::getProductId, plan.getProductId()).orderByDesc(Plan::getCreateTime));
|
|
|
+ List<PlanProcedureTotal> planProcedureTotals = planProcedureTotalService.list(new LambdaQueryWrapper<PlanProcedureTotal>().eq(PlanProcedureTotal::getPlanId, plan.getId()));
|
|
|
+ if(plans.size()>0){
|
|
|
+ Plan oldPlan = plans.get(0);
|
|
|
+ List<PlanProcedureTotal> oldTotalList = planProcedureTotalService.list(new LambdaQueryWrapper<PlanProcedureTotal>().eq(PlanProcedureTotal::getPlanId, oldPlan.getId()));
|
|
|
+ List<Integer> ids = oldTotalList.stream().map(PlanProcedureTotal::getId).distinct().collect(Collectors.toList());
|
|
|
+ ids.add(-1);
|
|
|
+ List<ProdProcedureTeam> procedureTeams = prodProcedureTeamService.list(new LambdaQueryWrapper<ProdProcedureTeam>().in(ProdProcedureTeam::getPlanProcedureId, ids));
|
|
|
+ for (PlanProcedureTotal planProcedureTotal : planProcedureTotals) {
|
|
|
+ Optional<PlanProcedureTotal> first = oldTotalList.stream().filter(ot -> ot.getProdProcedureId().equals(planProcedureTotal.getProdProcedureId())).findFirst();
|
|
|
+ if(!first.isPresent()){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ List<ProdProcedureTeam> teams = procedureTeams.stream().filter(ps -> ps.getPlanProcedureId().equals(first.get().getId())).collect(Collectors.toList());
|
|
|
+ if(teams!=null&&teams.size()>0){
|
|
|
+ String teamIds = teams.stream().map(ProdProcedureTeam::getUserId).distinct().collect(Collectors.joining(","));
|
|
|
+ try {
|
|
|
+ teamAllocation(planProcedureTotal,teamIds,plan.getPlanType());
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
}
|