廖井涛
2025-03-03 aa3bd3741b94f50f0c1d7e3a137bb681d7421294
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -675,13 +675,38 @@
            JSONObject reportingWorkJson = new JSONObject(reportingWorkMap);
            ReportingWork reportingWork = JSONObject.parseObject(JSONObject.toJSONString(reportingWorkJson.get("title")), ReportingWork.class);
            ReportingWorkDetail reportingWorkDetail =JSON.parseObject(JSONObject.toJSONString(reportingWorkJson.get("detail")), ReportingWorkDetail.class);
            //查询流程卡工艺流程
            String technologicalProcess = reportingWorkMapper.SelectTechnologicalProcess(reportingWork.getProcessId(), reportingWorkDetail.getTechnologyNumber());
            int index = technologicalProcess.indexOf("-");
            String interceptProcess = "";
            if (index <0){
                interceptProcess = technologicalProcess;
            }
            else {
                //获取工艺流程第一个工序
                interceptProcess = technologicalProcess.substring(0, index);
            }
            int processNum =0;
            if (interceptProcess.equals(reportingWork.getThisProcess())) {
                processNum = reportingWorkMapper.selectFlowCardNum(
                        reportingWorkDetail.getOrderNumber(),
                        reportingWorkDetail.getTechnologyNumber(),
                        reportingWork.getProcessId(),
                        reportingWork.getThisProcess()
                );
            }else{
                 processNum = reportingWorkMapper.selectGlassProcessNum(
                        reportingWorkDetail.getOrderNumber(),
                        reportingWorkDetail.getTechnologyNumber(),
                        reportingWork.getProcessId(),
                        reportingWork.getThisProcess()
                );
            }
            //获取可报数量
            int processNum = reportingWorkMapper.selectGlassProcessNum(
                    reportingWorkDetail.getOrderNumber(),
                    reportingWorkDetail.getTechnologyNumber(),
                    reportingWork.getProcessId(),
                    reportingWork.getThisProcess()
            );
            //判断是否大于当前数量并且抛出异常
            if (processNum < (reportingWorkDetail.getBreakageQuantity() + reportingWorkDetail.getCompletedQuantity())) {
                return false;