|
@@ -437,6 +437,7 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
List<Product> productList = productMapper.selectList(new QueryWrapper<Product>().eq("company_id", companyId));
|
|
|
List<ProdProcedure> allProcedureList = prodProcedureMapper.selectList(new QueryWrapper<ProdProcedure>().eq("company_id", companyId).orderByDesc("id"));
|
|
|
List<Plan> needInsertList=new ArrayList<>();
|
|
|
+ List<PlanSteelStampNumber> allPlanSteelStampNumberList=new ArrayList<>();
|
|
|
for (int rowIndex = 1; rowIndex <= rowNum; rowIndex++) {
|
|
|
XSSFRow row = sheet.getRow(rowIndex);
|
|
|
if (row == null) {
|
|
@@ -448,13 +449,14 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
}
|
|
|
Plan plan=new Plan();
|
|
|
plan.setCompanyId(companyId);
|
|
|
- if(planType!=2){
|
|
|
+ List<PlanSteelStampNumber> planSteelStampNumberList=new ArrayList<>();
|
|
|
+ if(planType!=1){
|
|
|
plan.setPlanType(0);
|
|
|
//排产工单号 产品名称 钢印号 数量 主工序 工位 开工时间 完工时间 描述
|
|
|
XSSFCell productSchedulingNumCell = row.getCell(0);
|
|
|
XSSFCell productNameCell = row.getCell(1);
|
|
|
XSSFCell steelStampNumberCell = row.getCell(2);
|
|
|
- XSSFCell progressCell = row.getCell(3);
|
|
|
+ XSSFCell vehiclSerialNumberCell = row.getCell(3);
|
|
|
XSSFCell numCell = row.getCell(4);
|
|
|
XSSFCell mainProcessCell = row.getCell(5);
|
|
|
XSSFCell stationNameCell = row.getCell(6);
|
|
@@ -465,7 +467,7 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
if (productSchedulingNumCell != null) productSchedulingNumCell.setCellType(CellType.STRING);
|
|
|
if (productNameCell != null) productNameCell.setCellType(CellType.STRING);
|
|
|
if (steelStampNumberCell != null) steelStampNumberCell.setCellType(CellType.STRING);
|
|
|
- if (progressCell != null) progressCell.setCellType(CellType.STRING);
|
|
|
+ if (vehiclSerialNumberCell != null) vehiclSerialNumberCell.setCellType(CellType.STRING);
|
|
|
if (numCell != null) numCell.setCellType(CellType.NUMERIC);
|
|
|
if (mainProcessCell != null) mainProcessCell.setCellType(CellType.STRING);
|
|
|
if (stationNameCell != null) stationNameCell.setCellType(CellType.STRING);
|
|
@@ -485,6 +487,22 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
}
|
|
|
plan.setProductSchedulingNum(productSchedulingNumCell.getStringCellValue());
|
|
|
}
|
|
|
+ if(steelStampNumberCell!=null){
|
|
|
+ String stringCellValue = steelStampNumberCell.getStringCellValue();
|
|
|
+ String[] split = stringCellValue.split("[|\\,\\,]");
|
|
|
+ for (String s : split) {
|
|
|
+ PlanSteelStampNumber p=new PlanSteelStampNumber();
|
|
|
+ if(s.contains("-")){
|
|
|
+ String[] split1 = s.split("-");
|
|
|
+ p.setSteelStampNumberStart(split1[0]);
|
|
|
+ p.setSteelStampNumberEnd(split1[1]);
|
|
|
+ }else {
|
|
|
+ p.setSteelStampNumberStart(s);
|
|
|
+ p.setSteelStampNumberEnd(s);
|
|
|
+ }
|
|
|
+ planSteelStampNumberList.add(p);
|
|
|
+ }
|
|
|
+ }
|
|
|
if(productNameCell!=null){
|
|
|
Optional<Product> first = productList.stream().filter(pl -> pl.getName().equals(productNameCell.getStringCellValue())).findFirst();
|
|
|
if(first.isPresent()){
|
|
@@ -499,7 +517,11 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
msg.setError("产品名称不能为空");
|
|
|
return msg;
|
|
|
}
|
|
|
- plan.setProgress(progressCell==null?"":progressCell.getStringCellValue());
|
|
|
+ if(vehiclSerialNumberCell!=null){
|
|
|
+ String[] split = vehiclSerialNumberCell.getStringCellValue().split("-");
|
|
|
+ plan.setChicleNumStart(Integer.valueOf(split[0]));
|
|
|
+ plan.setChicleNumEnd(split.length>1?Integer.valueOf(split[1]):Integer.valueOf(split[0]));
|
|
|
+ }
|
|
|
plan.setNum(numCell==null?0:Double.valueOf(numCell.getNumericCellValue()).intValue());
|
|
|
plan.setMainProcess(mainProcessCell==null?"":mainProcessCell.getStringCellValue());
|
|
|
if(stationNameCell!=null){
|
|
@@ -628,52 +650,53 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
plan.setDescribtion(describtionCell==null?"":describtionCell.getStringCellValue());
|
|
|
}
|
|
|
needInsertList.add(plan);
|
|
|
+ if(save(plan)){
|
|
|
+ planSteelStampNumberList.forEach(pl->pl.setPlanId(plan.getId()));
|
|
|
+ allPlanSteelStampNumberList.addAll(planSteelStampNumberList);
|
|
|
+ };
|
|
|
}
|
|
|
+ planSteelStampNumberService.saveBatch(allPlanSteelStampNumberList);
|
|
|
if(needInsertList.size()>0){
|
|
|
- if(saveBatch(needInsertList)){
|
|
|
- List<PlanProcedureTotal> planProcedureTotals=new ArrayList<>();
|
|
|
- for (Plan plan : needInsertList) {
|
|
|
- if(plan.getPlanType()==0){
|
|
|
- //处理工序 获取当前产品最新版本的工序的版本号
|
|
|
- List<ProdProcedure> procedureList = allProcedureList.stream().filter(al -> al.getProductId().equals(plan.getProductId())).collect(Collectors.toList());
|
|
|
- if(procedureList!=null&&procedureList.size()>0){
|
|
|
- String versionNumber = procedureList.get(0).getVersionNumber();
|
|
|
- plan.setVersionNumber(versionNumber);
|
|
|
- }
|
|
|
- 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());
|
|
|
- for (ProdProcedure prodProcedure : list) {
|
|
|
- PlanProcedureTotal p=new PlanProcedureTotal();
|
|
|
- p.setPlanId(plan.getId());
|
|
|
- p.setProdProcedureId(prodProcedure.getId());
|
|
|
- BigDecimal totalWages=new BigDecimal(String.valueOf(prodProcedure.getUnitPrice()));
|
|
|
- totalWages=totalWages.multiply(new BigDecimal(plan.getNum()));
|
|
|
- p.setTotalWages(totalWages.doubleValue());
|
|
|
- BigDecimal totalWorkingHours=new BigDecimal(String.valueOf(prodProcedure.getWorkingTime()));
|
|
|
- totalWorkingHours=totalWorkingHours.multiply(new BigDecimal(plan.getNum()));
|
|
|
- p.setTotalWorkingHours(totalWorkingHours.doubleValue());
|
|
|
- planProcedureTotals.add(p);
|
|
|
- }
|
|
|
- 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();
|
|
|
- plan.setPlanTotalWages(new BigDecimal(sum));
|
|
|
- }
|
|
|
- }else {
|
|
|
+ List<PlanProcedureTotal> planProcedureTotals=new ArrayList<>();
|
|
|
+ for (Plan plan : needInsertList) {
|
|
|
+ if(plan.getPlanType()==0){
|
|
|
+ //处理工序 获取当前产品最新版本的工序的版本号
|
|
|
+ List<ProdProcedure> procedureList = allProcedureList.stream().filter(al -> al.getProductId().equals(plan.getProductId())).collect(Collectors.toList());
|
|
|
+ if(procedureList!=null&&procedureList.size()>0){
|
|
|
+ String versionNumber = procedureList.get(0).getVersionNumber();
|
|
|
+ plan.setVersionNumber(versionNumber);
|
|
|
+ }
|
|
|
+ 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());
|
|
|
+ for (ProdProcedure prodProcedure : list) {
|
|
|
PlanProcedureTotal p=new PlanProcedureTotal();
|
|
|
p.setPlanId(plan.getId());
|
|
|
- BigDecimal bigDecimal=new BigDecimal(String.valueOf(plan.getMoneyOfJob()));
|
|
|
- bigDecimal=bigDecimal.multiply(new BigDecimal(String.valueOf(plan.getPlanWorkHour())));
|
|
|
- p.setTotalWages(bigDecimal.doubleValue());
|
|
|
- p.setTotalWorkingHours(plan.getPlanWorkHour());
|
|
|
+ p.setProdProcedureId(prodProcedure.getId());
|
|
|
+ BigDecimal totalWages=new BigDecimal(String.valueOf(prodProcedure.getUnitPrice()));
|
|
|
+ totalWages=totalWages.multiply(new BigDecimal(plan.getNum()));
|
|
|
+ p.setTotalWages(totalWages.doubleValue());
|
|
|
+ BigDecimal totalWorkingHours=new BigDecimal(String.valueOf(prodProcedure.getWorkingTime()));
|
|
|
+ totalWorkingHours=totalWorkingHours.multiply(new BigDecimal(plan.getNum()));
|
|
|
+ p.setTotalWorkingHours(totalWorkingHours.doubleValue());
|
|
|
planProcedureTotals.add(p);
|
|
|
}
|
|
|
+ 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();
|
|
|
+ plan.setPlanTotalWages(new BigDecimal(sum));
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ PlanProcedureTotal p=new PlanProcedureTotal();
|
|
|
+ p.setPlanId(plan.getId());
|
|
|
+ BigDecimal bigDecimal=new BigDecimal(String.valueOf(plan.getMoneyOfJob()));
|
|
|
+ bigDecimal=bigDecimal.multiply(new BigDecimal(String.valueOf(plan.getPlanWorkHour())));
|
|
|
+ p.setTotalWages(bigDecimal.doubleValue());
|
|
|
+ p.setTotalWorkingHours(plan.getPlanWorkHour());
|
|
|
+ planProcedureTotals.add(p);
|
|
|
}
|
|
|
- planProcedureTotalService.saveBatch(planProcedureTotals);
|
|
|
- saveOrUpdateBatch(needInsertList);
|
|
|
- }else {
|
|
|
- msg.setError("验证失败");
|
|
|
- };
|
|
|
+ }
|
|
|
+ planProcedureTotalService.saveBatch(planProcedureTotals);
|
|
|
+ saveOrUpdateBatch(needInsertList);
|
|
|
}
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
@@ -734,9 +757,17 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
queryWrapper.eq("start_date",planType==0?now:now.plusDays(1));
|
|
|
}
|
|
|
}
|
|
|
+// 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);
|
|
|
}
|
|
|
List<Plan> planList = planMapper.selectList(queryWrapper);
|
|
|
List<String> titleList=new ArrayList<>();
|
|
@@ -769,20 +800,35 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
}
|
|
|
List<List<String>> dataList=new ArrayList<>();
|
|
|
dataList.add(titleList);
|
|
|
+ List<Integer> planIds = planList.stream().map(Plan::getId).distinct().collect(Collectors.toList());
|
|
|
+ planIds.add(-1);
|
|
|
+ List<PlanSteelStampNumber> planSteelStampNumbers = planSteelStampNumberService.list(new QueryWrapper<PlanSteelStampNumber>().in("plan_id", planIds));
|
|
|
for (Plan plan : planList) {
|
|
|
+ if(planSteelStampNumbers.size()>0){
|
|
|
+ List<PlanSteelStampNumber> list = planSteelStampNumbers.stream().filter(ps -> ps.getPlanId().equals(plan.getId())).collect(Collectors.toList());
|
|
|
+ plan.setSteelStampNumberList(list);
|
|
|
+ }
|
|
|
List<String> item=new ArrayList<>();
|
|
|
- if(planType!=2){
|
|
|
+ if(planType!=1){
|
|
|
item.add(plan.getProductSchedulingNum());
|
|
|
item.add(plan.getProductName());
|
|
|
item.add(plan.getProjectCode());
|
|
|
-// item.add(plan.getSteelStampNumberStart()+"-"+plan.getSteelStampNumberEnd());
|
|
|
+ StringBuilder sb=new StringBuilder();
|
|
|
+ if(plan.getSteelStampNumberList()!=null&&plan.getSteelStampNumberList().size()>0){
|
|
|
+ List<PlanSteelStampNumber> steelStampNumberList = plan.getSteelStampNumberList();
|
|
|
+ for (int i = 0; i < steelStampNumberList.size(); i++) {
|
|
|
+ PlanSteelStampNumber planSteelStampNumber = steelStampNumberList.get(i);
|
|
|
+ if(i!=steelStampNumberList.size()-1){
|
|
|
+ sb.append(planSteelStampNumber.getSteelStampNumberStart()).append("-").append(planSteelStampNumber.getSteelStampNumberEnd()).append(",");
|
|
|
+ }else sb.append(planSteelStampNumber.getSteelStampNumberStart()).append("-").append(planSteelStampNumber.getSteelStampNumberEnd());
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ item.add(StringUtils.isEmpty(sb)?"":sb.toString());
|
|
|
item.add(String.valueOf(plan.getNum()==null?"":plan.getNum()));
|
|
|
item.add(plan.getMainProcess()==null?"":plan.getMainProcess());
|
|
|
item.add(plan.getStationName());
|
|
|
item.add(plan.getForemanName()==null?"":plan.getForemanName());
|
|
|
- item.add(df.format(plan.getStartDate()));
|
|
|
- item.add(df.format(plan.getEndDate()));
|
|
|
- item.add(plan.getDescribtion()==null?"":plan.getDescribtion());
|
|
|
}else {
|
|
|
item.add(plan.getTaskChangeNoticeNum());
|
|
|
item.add(plan.getTaskName());
|
|
@@ -794,10 +840,10 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
|
|
|
item.add(plan.getCheckType()==0?"自检":plan.getCheckType()==1?"互检":plan.getCheckType()==2?"专检":"");
|
|
|
item.add(plan.getStationName());
|
|
|
item.add(plan.getForemanName());
|
|
|
- item.add(df.format(plan.getStartDate()));
|
|
|
- item.add(df.format(plan.getEndDate()));
|
|
|
- item.add(plan.getDescribtion()==null?"":plan.getDescribtion());
|
|
|
}
|
|
|
+ item.add(df.format(plan.getStartDate()));
|
|
|
+ item.add(df.format(plan.getEndDate()));
|
|
|
+ item.add(plan.getDescribtion()==null?"":plan.getDescribtion());
|
|
|
dataList.add(item);
|
|
|
}
|
|
|
Company company = companyMapper.selectById(companyId);
|