Min 1 年之前
父节点
当前提交
4278a6d9cf

+ 25 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/PlanProcedureTotalServiceImpl.java

@@ -7,6 +7,7 @@ import com.management.platform.service.PlanProcedureTotalService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.util.HttpRespMsg;
 import com.management.platform.util.HttpRespMsg;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
@@ -38,6 +39,8 @@ public class PlanProcedureTotalServiceImpl extends ServiceImpl<PlanProcedureTota
     private ProdProcedureMapper prodProcedureMapper;
     private ProdProcedureMapper prodProcedureMapper;
     @Resource
     @Resource
     private ProdProcedureTeamMapper prodProcedureTeamMapper;
     private ProdProcedureTeamMapper prodProcedureTeamMapper;
+    @Resource
+    private PlanSteelStampNumberMapper planSteelStampNumberMapper;
 
 
     @Override
     @Override
     public HttpRespMsg getReportForWorkList(String chicleNum) {
     public HttpRespMsg getReportForWorkList(String chicleNum) {
@@ -94,6 +97,28 @@ public class PlanProcedureTotalServiceImpl extends ServiceImpl<PlanProcedureTota
     public HttpRespMsg getFillProcedureDetail(Integer id) {
     public HttpRespMsg getFillProcedureDetail(Integer id) {
         HttpRespMsg msg = new HttpRespMsg();
         HttpRespMsg msg = new HttpRespMsg();
         HashMap prodProcedureTeam = prodProcedureTeamMapper.getFillProcedureDetail(id);
         HashMap prodProcedureTeam = prodProcedureTeamMapper.getFillProcedureDetail(id);
+        Integer planId = Integer.valueOf(String.valueOf(prodProcedureTeam.get("plan_id")));
+        List<PlanSteelStampNumber> planSteelStampNumberList = planSteelStampNumberMapper.selectList(new QueryWrapper<PlanSteelStampNumber>().eq("plan_id", planId));
+        List<String> list=new ArrayList<>();
+        for (PlanSteelStampNumber planSteelStampNumber : planSteelStampNumberList) {
+            if(planSteelStampNumber.getSteelStampNumberEnd().equals(planSteelStampNumber.getSteelStampNumberStart())){
+                list.add(planSteelStampNumber.getSteelStampNumberStart());
+            }else {
+                if(!planSteelStampNumber.getSteelStampNumberStart().matches("\\d+")||!planSteelStampNumber.getSteelStampNumberEnd().matches("\\d+")){
+                    list.add(planSteelStampNumber.getSteelStampNumberStart());
+                    list.add(planSteelStampNumber.getSteelStampNumberEnd());
+                }else {
+                    int index=Integer.valueOf(planSteelStampNumber.getSteelStampNumberStart());
+                    list.add(String.valueOf(index));
+                    list.add(String.valueOf(planSteelStampNumber.getSteelStampNumberEnd()));
+                    while (Integer.valueOf(planSteelStampNumber.getSteelStampNumberEnd())>index){
+                        list.add(String.valueOf(index));
+                        index++;
+                    }
+                }
+            }
+        }
+        prodProcedureTeam.put("planSteelStampNumberList",list.stream().distinct().sorted());
         if (prodProcedureTeam == null) {
         if (prodProcedureTeam == null) {
             msg.setError("找不到该数据");
             msg.setError("找不到该数据");
         } else {
         } else {

+ 99 - 53
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/PlanServiceImpl.java

@@ -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<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<ProdProcedure> allProcedureList = prodProcedureMapper.selectList(new QueryWrapper<ProdProcedure>().eq("company_id", companyId).orderByDesc("id"));
             List<Plan> needInsertList=new ArrayList<>();
             List<Plan> needInsertList=new ArrayList<>();
+            List<PlanSteelStampNumber> allPlanSteelStampNumberList=new ArrayList<>();
             for (int rowIndex = 1; rowIndex <= rowNum; rowIndex++) {
             for (int rowIndex = 1; rowIndex <= rowNum; rowIndex++) {
                 XSSFRow row = sheet.getRow(rowIndex);
                 XSSFRow row = sheet.getRow(rowIndex);
                 if (row == null) {
                 if (row == null) {
@@ -448,13 +449,14 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
                 }
                 }
                 Plan plan=new Plan();
                 Plan plan=new Plan();
                 plan.setCompanyId(companyId);
                 plan.setCompanyId(companyId);
-                if(planType!=2){
+                List<PlanSteelStampNumber> planSteelStampNumberList=new ArrayList<>();
+                if(planType!=1){
                     plan.setPlanType(0);
                     plan.setPlanType(0);
                     //排产工单号 产品名称 钢印号 数量 主工序 工位 开工时间 完工时间 描述
                     //排产工单号 产品名称 钢印号 数量 主工序 工位 开工时间 完工时间 描述
                     XSSFCell productSchedulingNumCell = row.getCell(0);
                     XSSFCell productSchedulingNumCell = row.getCell(0);
                     XSSFCell productNameCell = row.getCell(1);
                     XSSFCell productNameCell = row.getCell(1);
                     XSSFCell steelStampNumberCell = row.getCell(2);
                     XSSFCell steelStampNumberCell = row.getCell(2);
-                    XSSFCell progressCell = row.getCell(3);
+                    XSSFCell vehiclSerialNumberCell = row.getCell(3);
                     XSSFCell numCell = row.getCell(4);
                     XSSFCell numCell = row.getCell(4);
                     XSSFCell mainProcessCell = row.getCell(5);
                     XSSFCell mainProcessCell = row.getCell(5);
                     XSSFCell stationNameCell = row.getCell(6);
                     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 (productSchedulingNumCell != null) productSchedulingNumCell.setCellType(CellType.STRING);
                     if (productNameCell != null) productNameCell.setCellType(CellType.STRING);
                     if (productNameCell != null) productNameCell.setCellType(CellType.STRING);
                     if (steelStampNumberCell != null) steelStampNumberCell.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 (numCell != null) numCell.setCellType(CellType.NUMERIC);
                     if (mainProcessCell != null) mainProcessCell.setCellType(CellType.STRING);
                     if (mainProcessCell != null) mainProcessCell.setCellType(CellType.STRING);
                     if (stationNameCell != null) stationNameCell.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());
                         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){
                     if(productNameCell!=null){
                         Optional<Product> first = productList.stream().filter(pl -> pl.getName().equals(productNameCell.getStringCellValue())).findFirst();
                         Optional<Product> first = productList.stream().filter(pl -> pl.getName().equals(productNameCell.getStringCellValue())).findFirst();
                         if(first.isPresent()){
                         if(first.isPresent()){
@@ -499,7 +517,11 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
                         msg.setError("产品名称不能为空");
                         msg.setError("产品名称不能为空");
                         return msg;
                         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.setNum(numCell==null?0:Double.valueOf(numCell.getNumericCellValue()).intValue());
                     plan.setMainProcess(mainProcessCell==null?"":mainProcessCell.getStringCellValue());
                     plan.setMainProcess(mainProcessCell==null?"":mainProcessCell.getStringCellValue());
                     if(stationNameCell!=null){
                     if(stationNameCell!=null){
@@ -628,52 +650,53 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
                     plan.setDescribtion(describtionCell==null?"":describtionCell.getStringCellValue());
                     plan.setDescribtion(describtionCell==null?"":describtionCell.getStringCellValue());
                 }
                 }
                 needInsertList.add(plan);
                 needInsertList.add(plan);
+                if(save(plan)){
+                    planSteelStampNumberList.forEach(pl->pl.setPlanId(plan.getId()));
+                    allPlanSteelStampNumberList.addAll(planSteelStampNumberList);
+                };
             }
             }
+            planSteelStampNumberService.saveBatch(allPlanSteelStampNumberList);
             if(needInsertList.size()>0){
             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();
                             PlanProcedureTotal p=new PlanProcedureTotal();
                             p.setPlanId(plan.getId());
                             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);
                             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) {
         } catch (IOException e) {
             e.printStackTrace();
             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));
                 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)){
         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<Plan> planList = planMapper.selectList(queryWrapper);
         List<String> titleList=new ArrayList<>();
         List<String> titleList=new ArrayList<>();
@@ -769,20 +800,35 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
         }
         }
         List<List<String>> dataList=new ArrayList<>();
         List<List<String>> dataList=new ArrayList<>();
         dataList.add(titleList);
         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) {
         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<>();
             List<String> item=new ArrayList<>();
-            if(planType!=2){
+            if(planType!=1){
                 item.add(plan.getProductSchedulingNum());
                 item.add(plan.getProductSchedulingNum());
                 item.add(plan.getProductName());
                 item.add(plan.getProductName());
                 item.add(plan.getProjectCode());
                 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(String.valueOf(plan.getNum()==null?"":plan.getNum()));
                 item.add(plan.getMainProcess()==null?"":plan.getMainProcess());
                 item.add(plan.getMainProcess()==null?"":plan.getMainProcess());
                 item.add(plan.getStationName());
                 item.add(plan.getStationName());
                 item.add(plan.getForemanName()==null?"":plan.getForemanName());
                 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 {
             }else {
                 item.add(plan.getTaskChangeNoticeNum());
                 item.add(plan.getTaskChangeNoticeNum());
                 item.add(plan.getTaskName());
                 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.getCheckType()==0?"自检":plan.getCheckType()==1?"互检":plan.getCheckType()==2?"专检":"");
                 item.add(plan.getStationName());
                 item.add(plan.getStationName());
                 item.add(plan.getForemanName());
                 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);
             dataList.add(item);
         }
         }
         Company company = companyMapper.selectById(companyId);
         Company company = companyMapper.selectById(companyId);

二进制
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/今日计划导入模板.xlsx


二进制
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/明日计划导入模板.xlsx