|
@@ -292,7 +292,7 @@ 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));
|
|
|
+ List<Plan> plans = planMapper.selectList(new LambdaQueryWrapper<Plan>().select(Plan::getNum).eq(Plan::getProductId,product.getId()));
|
|
|
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);
|
|
@@ -307,6 +307,10 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
plan.setTaskTypeName(taskType.getTaskTypeName());
|
|
|
}
|
|
|
List<ProdProcedure> procedureList = prodProcedureMapper.selectList(new QueryWrapper<ProdProcedure>().eq("company_id", companyId).eq("product_id",plan.getProductId()).orderByDesc("id"));
|
|
|
+ if(procedureList.size()<=0){
|
|
|
+ msg.setError("当前产品工序配置未完成,请先完成工序配置");
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
List<PlanProcedureTotal> planProcedureTotals=new ArrayList<>();
|
|
|
List<PlanProcedureTotal> oldPlanProcedureTotals=new ArrayList<>();
|
|
|
List<ProdProcedure> list;
|
|
@@ -803,7 +807,12 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
}
|
|
|
planSteelStampNumberService.saveBatch(allPlanSteelStampNumberList);
|
|
|
if(needInsertList.size()>0){
|
|
|
+ List<Integer> productIds = needInsertList.stream().map(Plan::getProductId).collect(Collectors.toList());
|
|
|
+ List<Product> products = productMapper.selectList(new LambdaQueryWrapper<Product>().in(Product::getId, productIds));
|
|
|
+ List<Plan> planList = planMapper.selectList(new LambdaQueryWrapper<Plan>().in(Plan::getProductId, productIds));
|
|
|
List<PlanProcedureTotal> planProcedureTotals=new ArrayList<>();
|
|
|
+ StringBuilder sb=new StringBuilder();
|
|
|
+ List<Plan> lastPlanList=new ArrayList<>();
|
|
|
for (Plan plan : needInsertList) {
|
|
|
if(plan.getPlanType()==0){
|
|
|
//处理工序 获取当前产品最新版本的工序的版本号
|
|
@@ -811,6 +820,26 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
if(procedureList!=null&&procedureList.size()>0){
|
|
|
String versionNumber = procedureList.get(0).getVersionNumber();
|
|
|
plan.setVersionNumber(versionNumber);
|
|
|
+ }else {
|
|
|
+ if(StringUtils.isEmpty(sb.toString())){
|
|
|
+ sb.append(plan.getProductName());
|
|
|
+ }else {
|
|
|
+ sb.append(","+plan.getProductName());
|
|
|
+ }
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ Product product = products.stream().filter(p->p.getId().equals(plan.getProductId())).findFirst().get();
|
|
|
+ List<Plan> plans = planList.stream().filter(p->p.getProductId().equals(plan.getProductId())).collect(Collectors.toList());
|
|
|
+ List<Plan> importPlan = needInsertList.stream().filter(n -> n.getProductId().equals(plan.getProductId())).collect(Collectors.toList());
|
|
|
+ plans.addAll(importPlan);
|
|
|
+ //要减去当前这个计划的数量
|
|
|
+ double allSum = plans.stream().mapToDouble(Plan::getNum).sum();
|
|
|
+ BigDecimal decimal = new BigDecimal(allSum);
|
|
|
+ decimal=decimal.subtract(new BigDecimal(plan.getNum()));
|
|
|
+ decimal=decimal.add(new BigDecimal(plan.getNum())).setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ if(decimal.doubleValue()>product.getOrderNumber()){
|
|
|
+ msg.setError("创建失败,该产品下的排产计划总数量大于当前产品下的订单数量");
|
|
|
+ return msg;
|
|
|
}
|
|
|
List<ProdProcedure> list = procedureList.stream().filter(pl -> pl.getVersionNumber().equals(procedureList.get(0).getVersionNumber())).collect(Collectors.toList());
|
|
|
list=list.stream().sorted(Comparator.comparing(ProdProcedure::getId)).collect(Collectors.toList());
|
|
@@ -840,9 +869,13 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
p.setTotalWorkingHours(plan.getPlanWorkHour());
|
|
|
planProcedureTotals.add(p);
|
|
|
}
|
|
|
+ lastPlanList.add(plan);
|
|
|
}
|
|
|
planProcedureTotalService.saveBatch(planProcedureTotals);
|
|
|
- saveOrUpdateBatch(needInsertList);
|
|
|
+ if(lastPlanList.size()>0){
|
|
|
+ saveOrUpdateBatch(lastPlanList);
|
|
|
+ };
|
|
|
+ msg.setData("导入成功,其中产品["+sb.toString()+"]产品工序未完成,请完成工序配置");
|
|
|
}
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|