guoyujie
12 小时以前 b1b5cf4b00ddc12f624f299174a6366d2cdb2617
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -161,6 +161,8 @@
            //工艺流程
            map.put("technologicalProcess", technologicalProcess);
            //获取服务器时间
            map.put("reportingWorkTiem", LocalDateTime.now());
            //设备下拉框
            map.put("device", reportingWorkMapper.SelectWorkBasicDeviceMp(process));
            //班组下拉框
@@ -187,7 +189,7 @@
                   // if (reviewedState==1){//已审核
                        //不是第一道工序,查询报工数据
                        List<Map<String,String>>  details = reportingWorkMapper.SelectReworlDetailMp(processIdStr, splitTechNumbers(technologyStr), process,previousProcess,laminating);
                        if(process.equals("中空")){
                        if(laminating.equals("stepD")){
                            //获取该流程卡订单号
                            String orderId = reportingWorkMapper.selectOrderid(processIdStr);
                            details.forEach( detail -> {
@@ -202,24 +204,7 @@
                            });
                        }
                        map.put("Detail",details );
//                    }else {
//                        //不是第一道工序,查询报工数据
//                        List<Map<String,String>>  details = reportingWorkMapper.SelectReworlDetailMpReview(processIdStr, technologyStr, process,previousProcess,laminating);
//                        if(process.equals("中空")){
//                            String orderId = reportingWorkMapper.selectOrderid(processIdStr);
//                            details.forEach( detail -> {
//                                Integer glassId = orderGlassDetailMapper.
//                                        getMinIdByGroup(orderId,
//                                                String.valueOf(detail.get("order_number")),
//                                                String.valueOf(detail.get("group")));
//                                int listGlassId = Integer.parseInt(String.valueOf(detail.get("glassId")));
//                                if(listGlassId  !=glassId){
//                                    detail.put("rowClass","latter");
//                                }
//                            });
//                        }
//                        map.put("Detail",details );
//                    }
                }
            }
@@ -746,6 +731,14 @@
        JSONObject reportingWorkJson = new JSONObject(reportingWorkMap);
        ReportingWork reportingWork = JSONObject.parseObject(JSONObject.toJSONString(reportingWorkJson.get("title")), ReportingWork.class);
        List<ReportingWorkDetail> reportingWorkDetails = JSONArray.parseArray(JSONObject.toJSONString(reportingWorkJson.get("detail")), ReportingWorkDetail.class);
        ReportingWork reportingWork1 = reportingWorkMapper.selectOne(new LambdaQueryWrapper<ReportingWork>()
                .eq(ReportingWork::getReportingWorkId, reportingWork.getReportingWorkId()));
        reportingWork.setCreatorId(reportingWork1.getCreatorId());
        reportingWork.setCreator(reportingWork1.getCreator());
        reportingWork.setUpdateTime(LocalDateTime.now());
        //查询该报工是否为报工转移订单
        Integer transferState = reportingWorkMapper.selectReviewedState(reportingWork.getReportingWorkId());
        if (transferState !=3){
@@ -904,7 +897,7 @@
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("并行查询报工记录异常:" + e.getMessage(), e);
            throw new RuntimeException("报工查询并行查询报工记录异常:" + e.getMessage(), e);
        }
        return result;
@@ -1690,6 +1683,8 @@
                    stringRedisTemplate.rename(key, "upload:" + key);
                });
            }
        }else{
            return;
        }
        //添加暂停时间,方式获取map时,redis中数据还在变化
        Thread.sleep(200);
@@ -1733,6 +1728,38 @@
                                JSONObject.toJSONString(stringRedisTemplate.opsForHash().entries(detailKey))
                                , ReportingWorkDetail.class
                        );
                        //判断流程卡是否报满
                        FlowCard flowCard = flowCardMapper.selectOne(new LambdaQueryWrapper<FlowCard>()
                                .eq(FlowCard::getProcessId, reportingWork.getProcessId())
                                .eq(FlowCard::getOrderNumber, reportingWorkDetail.getOrderNumber())
                                .eq(FlowCard::getTechnologyNumber, reportingWorkDetail.getTechnologyNumber())
                        );
                        //生产数量= 流程卡数量-终止数量
                        int flowCardReportingWorkNum = flowCard.getQuantity()-flowCard.getTerminationQuantity();
                        OrderProcessDetail orderProcessDetail = orderProcessDetailMapper
                                .selectOne(new LambdaQueryWrapper<OrderProcessDetail>()
                                        .eq(OrderProcessDetail::getProcessId, reportingWork.getProcessId())
                                        .eq(OrderProcessDetail::getOrderNumber, reportingWorkDetail.getOrderNumber())
                                        .eq(OrderProcessDetail::getTechnologyNumber, reportingWorkDetail.getTechnologyNumber())
                                        .eq(OrderProcessDetail::getProcess, reportingWork.getThisProcess())
                                );
                        //报工数量
                        int completedQuantity = reportingWorkDetail.getCompletedQuantity();
                        //已报数量
                        int finishReportingWorkNum =  orderProcessDetail.getReportingWorkNum();
                        //若报工数量+已报数量>流程卡数量 则报工数量为流程卡数量-已报数量
                        if((completedQuantity+finishReportingWorkNum)>flowCardReportingWorkNum){
                            completedQuantity = flowCardReportingWorkNum - finishReportingWorkNum;
                            reportingWorkDetail.setCompletedQuantity(completedQuantity);
                            //若报工数量小于0 则报工数量为0
                            if(completedQuantity<0){
                                reportingWorkDetail.setCompletedQuantity(0);
                            }
                        }
                        reportingWorkDetail.setReportingWorkId(reportingWorkId);
                        reportingWorkDetailMapper.insert(reportingWorkDetail);
@@ -1748,7 +1775,17 @@
                        orderProcessDetailMapper.update(null, updateWrapper);
                    });
                    //获取完工明细数量总和
                    int num   = reportingWorkDetailMapper.selectFinishQuantity(reportingWorkId);
                    reportingWorkMapper.update(null,
                            new LambdaUpdateWrapper<ReportingWork>()
                                    .eq(ReportingWork::getReportingWorkId, reportingWorkId)
                                    .setSql("this_completed_quantity = " + num)
                    );
                }
            });
        }
@@ -1784,4 +1821,37 @@
        return result;
    }
    @Transactional(rollbackFor = Exception.class)
    public Result addWorkInProgress(Map<String, Object> object) {
        List<Map<String,Object>> list = (List<Map<String,Object>>) object.get("reportingWorks");
        list.forEach(item -> {
            ReportingWork reportingWork = JSONObject.parseObject(
                    JSONObject.toJSONString(item.get("processTitle")), ReportingWork.class);
            Map<String, String> mapTitle = new HashMap<>();
            String[] processIdStr = reportingWork.getProcessId() != null
                    ? reportingWork.getProcessId().split("/")
                    : new String[]{""};
            mapTitle.put("process", reportingWork.getPreviousProcess());
            mapTitle.put("processId", reportingWork.getProcessId());
            mapTitle.put("thisProcess", reportingWork.getThisProcess());
            mapTitle.put("technologyStr", processIdStr[1]);
            mapTitle.put("userName", object.get("userName").toString());
            ReviewReportingWorkSv(mapTitle);
            Map<String, Object> map = new HashMap<>();
            map.put("detail", item.get("processList"));
            map.put("title", item.get("processTitle"));
            map.put("type", object.get("type"));
            map.put("userId", object.get("userId"));
            map.put("userName", object.get("userName"));
            map.put("qualityInsStatus", object.get("qualityInsStatus"));
            map.put("class", object.get("class"));
            SaveReportingWorkSv(map);
        });
        return Result.success(true);
    }
}