|
@@ -320,6 +320,8 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
plan.setCompanyId(companyId);
|
|
plan.setCompanyId(companyId);
|
|
plan.setCreateId(user.getId());
|
|
plan.setCreateId(user.getId());
|
|
|
|
+ //检查数量是否发生改变
|
|
|
|
+ boolean planNumChanged = false;
|
|
if(plan.getStationId()!=null){
|
|
if(plan.getStationId()!=null){
|
|
Department department = departmentMapper.selectById(plan.getStationId());
|
|
Department department = departmentMapper.selectById(plan.getStationId());
|
|
plan.setStationName(department.getDepartmentName());
|
|
plan.setStationName(department.getDepartmentName());
|
|
@@ -399,6 +401,11 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
}else {
|
|
}else {
|
|
plan.setPlanType(1);
|
|
plan.setPlanType(1);
|
|
}
|
|
}
|
|
|
|
+ Plan oldPlan = planMapper.selectById(plan.getId());
|
|
|
|
+
|
|
|
|
+ if(oldPlan.getStatus() > 0 && !oldPlan.getNum().equals(plan.getNum())){
|
|
|
|
+ planNumChanged = true;
|
|
|
|
+ }
|
|
if(planMapper.updateById(plan)<0){
|
|
if(planMapper.updateById(plan)<0){
|
|
msg.setError("验证失败");
|
|
msg.setError("验证失败");
|
|
return msg;
|
|
return msg;
|
|
@@ -460,8 +467,14 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
if(oldPlanProcedureTotals.size()>0){
|
|
if(oldPlanProcedureTotals.size()>0){
|
|
Optional<PlanProcedureTotal> b = oldPlanProcedureTotals.stream().filter(fs -> fs.getPlanId().equals(plan.getId()) && fs.getProdProcedureId().equals(prodProcedure.getId())).findAny();
|
|
Optional<PlanProcedureTotal> b = oldPlanProcedureTotals.stream().filter(fs -> fs.getPlanId().equals(plan.getId()) && fs.getProdProcedureId().equals(prodProcedure.getId())).findAny();
|
|
//存在更新表数据
|
|
//存在更新表数据
|
|
- if(b.isPresent()){
|
|
|
|
- p.setId(b.get().getId());
|
|
|
|
|
|
+ if(b.isPresent()) {
|
|
|
|
+ PlanProcedureTotal oldPT = b.get();
|
|
|
|
+ p.setId(oldPT.getId());
|
|
|
|
+ if (planNumChanged && oldPT.getTotalFillTime() != null) {
|
|
|
|
+ BigDecimal oldFillTime = new BigDecimal(oldPT.getTotalFillTime());
|
|
|
|
+ BigDecimal percent = oldFillTime.multiply(new BigDecimal(100)).divide(new BigDecimal(p.getTotalWorkingHours()),0,RoundingMode.HALF_UP);
|
|
|
|
+ p.setTotalProgress(percent.intValue());
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
planProcedureTotals.add(p);
|
|
planProcedureTotals.add(p);
|
|
@@ -480,38 +493,30 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
}
|
|
}
|
|
}
|
|
}
|
|
planProcedureTotalService.saveOrUpdateBatch(planProcedureTotals);
|
|
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();
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
List<PlanProcedureTotal> totals = planProcedureTotals.stream().filter(ps -> ps.getPlanId().equals(plan.getId())).collect(Collectors.toList());
|
|
List<PlanProcedureTotal> totals = planProcedureTotals.stream().filter(ps -> ps.getPlanId().equals(plan.getId())).collect(Collectors.toList());
|
|
if(totals.size()>0){
|
|
if(totals.size()>0){
|
|
double sum = totals.stream().filter(t->t.getTotalWages()!=null).mapToDouble(PlanProcedureTotal::getTotalWages).sum();
|
|
double sum = totals.stream().filter(t->t.getTotalWages()!=null).mapToDouble(PlanProcedureTotal::getTotalWages).sum();
|
|
plan.setPlanTotalWages(new BigDecimal(sum));
|
|
plan.setPlanTotalWages(new BigDecimal(sum));
|
|
}
|
|
}
|
|
planMapper.updateById(plan);
|
|
planMapper.updateById(plan);
|
|
|
|
+
|
|
|
|
+ if (planNumChanged) {
|
|
|
|
+ //检查该计划下的所有工序是否都已经完成
|
|
|
|
+ List<PlanProcedureTotal> planProcedureTotalList = planProcedureTotalService.list(new QueryWrapper<PlanProcedureTotal>().eq("plan_id", plan.getId()));
|
|
|
|
+ boolean isAllFinish = true;
|
|
|
|
+ for (PlanProcedureTotal p : planProcedureTotalList) {
|
|
|
|
+ if (p.getTotalProgress() == null || p.getTotalProgress() < 100) {
|
|
|
|
+ isAllFinish = false;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (isAllFinish) {
|
|
|
|
+ //该计划下的所有工序都已经完成了,那么该计划就是完成状态
|
|
|
|
+ plan.setRealEndDate(LocalDate.now());
|
|
|
|
+ plan.setHideState(1);//完成的隐藏掉
|
|
|
|
+ planMapper.updateById(plan);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
return msg;
|
|
return msg;
|
|
}
|
|
}
|
|
|
|
|