|
@@ -262,6 +262,8 @@ 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();
|
|
|
plan.setCompanyId(companyId);
|
|
@@ -324,6 +326,7 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
return msg;
|
|
|
}
|
|
|
}else {
|
|
|
+ isNew=false;
|
|
|
if(plan.getPlanType()!=2){
|
|
|
plan.setPlanType(0);
|
|
|
}else {
|
|
@@ -348,6 +351,9 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
if(!StringUtils.isEmpty(plan.getSteelStampNumber())){
|
|
|
List<Map> mapList = JSONArray.parseArray(JSON.toJSON(plan.getSteelStampNumber()).toString(), Map.class);
|
|
|
for (Map map : mapList) {
|
|
|
+ if(StringUtils.isEmpty(map.get("steelStampNumberStart"))||StringUtils.isEmpty(map.get("steelStampNumberEnd"))){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
PlanSteelStampNumber p=new PlanSteelStampNumber();
|
|
|
p.setPlanId(plan.getId());
|
|
|
p.setRuleIndexStart(Integer.valueOf(String.valueOf(map.get("ruleIndexStart"))));
|
|
@@ -407,6 +413,32 @@ 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();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
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();
|