guoyujia vor 9 Monaten
Ursprung
Commit
c5bdcbc07f

+ 223 - 8
src/main/java/cn/ezhizao/project/business/product/controller/BizProcessInspecionController.java

@@ -1169,7 +1169,7 @@ public TableDataInfo examineList(@RequestBody BizProcessInspecion bizProcessInsp
             inspection.setEquipmentDetailCode(processInspecion.getLot().getEquipmentDetailCode());
             inspection.setEquipmentDetailId(processInspecion.getLot().getEquipmentDetailId());
             inspection.setInspectionChamberId(processInspecion.getInspectionChamberId());
-            inspection.setReviewerId(SecurityUtils.getLoginUser().getUserId());
+            //inspection.setReviewerId(SecurityUtils.getLoginUser().getUserId());
             inspection.setProcessStepNumber(processInspecion.getProcessStepNumber());
             inspection.setFromId(processInspecion.getId());
             inspection.setType("instrumentRoomInspection");
@@ -1218,8 +1218,6 @@ public TableDataInfo examineList(@RequestBody BizProcessInspecion bizProcessInsp
         //保存废品信息
         List<BizProcessInspectionDetail> rejects = processInspecion.getProcessInspectionDetails();
         //保存前先删除原先废品信息
-        BizDayworkItemReject rej = new BizDayworkItemReject();
-        rej.setProcessInspectionId(processInspecion.getId());
         List<BizProcessInspectionDetail> processInspectionDetailList = processInspectionDetailService.query().eq("process_inspection_id", processInspecion.getId()).list();
         processInspectionDetailService.removeBatchByIds(processInspectionDetailList);
 
@@ -1468,7 +1466,7 @@ public TableDataInfo examineList(@RequestBody BizProcessInspecion bizProcessInsp
             inspection.setEquipmentDetailCode(processInspecion.getLot().getEquipmentDetailCode());
             inspection.setEquipmentDetailId(processInspecion.getLot().getEquipmentDetailId());
             inspection.setInspectionChamberId(processInspecion.getInspectionChamberId());
-            inspection.setReviewerId(SecurityUtils.getLoginUser().getUserId());
+            //inspection.setReviewerId(SecurityUtils.getLoginUser().getUserId());
             inspection.setProcessStepNumber(processInspecion.getProcessStepNumber());
             inspection.setFromId(processInspecion.getId());
             inspection.setType("instrumentRoomInspection");
@@ -1514,8 +1512,6 @@ public TableDataInfo examineList(@RequestBody BizProcessInspecion bizProcessInsp
         //保存废品信息
         List<BizProcessInspectionDetail> rejects = processInspecion.getProcessInspectionDetails();
         //保存前先删除原先废品信息
-        BizDayworkItemReject rej = new BizDayworkItemReject();
-        rej.setProcessInspectionId(processInspecion.getId());
         List<BizProcessInspectionDetail> processInspectionDetailList = processInspectionDetailService.query().eq("process_inspection_id", processInspecion.getId()).list();
         processInspectionDetailService.removeBatchByIds(processInspectionDetailList);
 
@@ -1649,8 +1645,6 @@ public TableDataInfo examineList(@RequestBody BizProcessInspecion bizProcessInsp
         //保存废品信息
         List<BizProcessInspectionDetail> rejects = processInspecion.getProcessInspectionDetails();
         //保存前先删除原先废品信息
-        BizDayworkItemReject rej = new BizDayworkItemReject();
-        rej.setProcessInspectionId(processInspecion.getId());
         List<BizProcessInspectionDetail> processInspectionDetailList = processInspectionDetailService.query().eq("process_inspection_id", processInspecion.getId()).list();
         processInspectionDetailService.removeBatchByIds(processInspectionDetailList);
 
@@ -1717,6 +1711,175 @@ public TableDataInfo examineList(@RequestBody BizProcessInspecion bizProcessInsp
         dayworkItem.setIsProcessInspection(1);
         return success(bizDayworkItemService.saveOrUpdate(dayworkItem));
     }
+    //出厂检
+    @Transactional
+    @PostMapping("/saveFactoryInspection")
+    public AjaxResult saveFactoryInspection(@RequestBody BizProcessInspecion processInspecion) throws NoSuchFieldException, IllegalAccessException {
+        //根据lot信息保存序检表
+        BizDaywork daywork = bizDayworkService.query().eq("lot_code", processInspecion.getLot().getLotCode()).one();
+        BizProduct product = bizProductService.getById(processInspecion.getLot().getProductId());
+        SysUser technicianUser = sysUserService.selectUserById(product.getTechnicianId());
+        BizDayworkItem dayworkItem = bizDayworkItemService.getById(processInspecion.getLot().getDayworkItemId());
+        processInspecion.setCarrierId(processInspecion.getLot().getCarrierId());
+        processInspecion.setCarrierCode(processInspecion.getLot().getCarrierCode());
+        processInspecion.setDayworkId(daywork.getId());
+        processInspecion.setProcessStepNumber(processInspecion.getLot().getProcessStepNumber());
+        processInspecion.setProductionPlanId(daywork.getProductionPlanId());
+        processInspecion.setDayworkItemId(dayworkItem.getId());
+        processInspecion.setProductionPlanDetailId(daywork.getProductionPlanDetailId());
+        processInspecion.setProductionPlanDetailSubDetailId(daywork.getProductionPlanDetailSubDetailId());
+        processInspecion.setProductDescription(processInspecion.getLot().getProductDescription());
+        processInspecion.setLotId(processInspecion.getLot().getId());
+        processInspecion.setLotCode(processInspecion.getLot().getLotCode());
+        processInspecion.setDeptId(daywork.getDeptId());
+        processInspecion.setProductId(processInspecion.getLot().getProductId());
+        processInspecion.setTechnologicalProcessId(processInspecion.getLot().getTechnologicalProcessId());
+        if(processInspecion.getId() == null) {
+            processInspecion.setInspectionCarrierCode(processInspecion.getLot().getInspectionCarrierCode());
+            processInspecion.setInspectionCarrierId(processInspecion.getLot().getInspectionCarrierId());
+        }else {
+            processInspecion.setInspectionCarrierCode(processInspecion.getInspectionCarrierCode());
+            processInspecion.setInspectionCarrierId(processInspecion.getInspectionCarrierId());
+        }
+        if(processInspecion.getId() ==null) {
+            processInspecion.setStatus(0);
+        }
+        //出厂检创建时不添加检察员id
+        if(processInspecion.getId() !=null) {
+            processInspecion.setReviewerId(SecurityUtils.getLoginUser().getUserId());
+        }
+        processInspecion.setType("factoryInspection");
+        if (processInspecion.getStartTime() == null) {
+            processInspecion.setStartTime(new Date());
+        }
+        if (processInspecion.getStatus() != 0) {
+            processInspecion.setEndTime(new Date());
+            processInspecion.setFirstUpdaterId(processInspecion.getFirstUpdaterId() == null || processInspecion.getFirstUpdaterId().equals(0L) ? SecurityUtils.getLoginUser().getUserId() : processInspecion.getFirstUpdaterId());
+        }
+        //BizCarrier carrier = bizCarrierService.query().eq("id", processInspecion.getInspectionCarrierId()).one();
+        List<BizDayworkCarrier> dayworkCarriers = bizDayworkCarrierService.query().eq("carrier_id", processInspecion.getInspectionCarrierId()).eq("is_changed", 0).list();
+        if (dayworkCarriers.stream().anyMatch(v -> !v.getDayworkId().equals(processInspecion.getDayworkId()))) {
+            return error("检测载具已绑定其他批次");
+        }
+        Boolean isSave = false;
+        if(processInspecion.getId() == null) {
+            isSave = true;
+        }
+        //载具保存
+        bizProcessInspecionService.saveOrUpdate(processInspecion);
+        if(isSave) {
+            if (dayworkCarriers.stream().noneMatch(v -> v.getDayworkId().equals(processInspecion.getDayworkId())) && (processInspecion.getIsInspectionCarrierChanged() == null || processInspecion.getIsInspectionCarrierChanged().equals(0))) {
+                // 该检测载具需要绑定到当前批次
+                BizDayworkCarrier newDayworkCarrier = new BizDayworkCarrier();
+                newDayworkCarrier.setDayworkId(processInspecion.getDayworkId());
+                newDayworkCarrier.setCarrierCode(processInspecion.getInspectionCarrierCode());
+                newDayworkCarrier.setCarrierId(processInspecion.getInspectionCarrierId());
+                newDayworkCarrier.setLotCode(processInspecion.getLotCode());
+                newDayworkCarrier.setLotId(processInspecion.getLotId());
+                newDayworkCarrier.setProductionPlanDetailId(processInspecion.getProductionPlanDetailId());
+                newDayworkCarrier.setProcessInspectionId(processInspecion.getId());
+                bizDayworkCarrierService.save(newDayworkCarrier);
+            }
+        }
+        //检查详情,咨询保存
+        if(isSave) {
+            //保存检查明细
+            List<BizInspectionStandardsCheck> inspectionStandardsCheckList = bizInspectionStandardsCheckService.query()
+                    .eq("inspection_code", "factoryInspection")
+                    .eq("product_id", processInspecion.getProductId())
+                    .eq("process_id", processInspecion.getLot().getProcessId()).list();
+            List<BizProcessInspectionDetail> detailList = new ArrayList<>();
+            inspectionStandardsCheckList.forEach(inspectionStandardsCheck -> {
+                BizProcessInspectionDetail detail = new BizProcessInspectionDetail();
+                detail.setId(null);
+                detail.setUserId(processInspecion.getLot().getUserId());
+                detail.setProcessInspectionId(processInspecion.getId());
+                detail.setDayworkId(0L);
+                detail.setProductionPlanId(daywork.getProductionPlanId());
+                detail.setProductionPlanDetailId(daywork.getProductionPlanDetailId());
+                detail.setProductionPlanDetailSubDetailId(daywork.getProductionPlanDetailSubDetailId());
+                detail.setLotId(processInspecion.getLot().getId());
+                detail.setDayworkItemId(dayworkItem.getId());
+                detail.setCheckStandard(inspectionStandardsCheck.getStandard());
+                detail.setInspectionStandardsId(inspectionStandardsCheck.getId());
+                detailList.add(detail);
+            });
+            if(!detailList.isEmpty()) {
+                processInspectionDetailService.saveBatch(detailList);
+            }
+        }else {
+            //保存废品信息
+            List<BizProcessInspectionDetail> rejects = processInspecion.getProcessInspectionDetails();
+            //保存前先删除原先废品信息
+            List<BizProcessInspectionDetail> processInspectionDetailList = processInspectionDetailService.query().eq("process_inspection_id", processInspecion.getId()).list();
+            processInspectionDetailService.removeBatchByIds(processInspectionDetailList);
+
+            if (rejects != null && rejects.size() > 0) {
+                for (BizProcessInspectionDetail reject : rejects) {
+                    reject.setId(null);
+                    reject.setUserId(processInspecion.getLot().getUserId());
+                    reject.setProcessInspectionId(processInspecion.getId());
+                    reject.setDayworkId(0L);
+                    reject.setProductionPlanId(daywork.getProductionPlanId());
+                    reject.setProductionPlanDetailId(daywork.getProductionPlanDetailId());
+                    reject.setProductionPlanDetailSubDetailId(daywork.getProductionPlanDetailSubDetailId());
+                    reject.setLotId(processInspecion.getLot().getId());
+                    reject.setDayworkItemId(dayworkItem.getId());
+                }
+            }
+            processInspectionDetailService.saveBatch(rejects);
+
+
+            //保存咨询信息
+
+            List<BizDayworkItemConsult> consults = processInspecion.getDayworkItemConsults().stream().filter(item -> item.getId() == null).collect(Collectors.toList());
+            List<BizDayworkItemConsult> needAdd = new ArrayList<>();
+            if (consults != null && consults.size() > 0) {
+                for (BizDayworkItemConsult consult : consults) {
+                    BizDayworkItemConsult consultInfo = new BizDayworkItemConsult();
+                    consultInfo.setPictures(consult.getPictures());
+                    consultInfo.setUserId(SecurityUtils.getLoginUser().getUserId());
+                    consultInfo.setNickName(SecurityUtils.getLoginUser().getUser().getNickName());
+                    consultInfo.setDayworkId(daywork.getId());
+                    consultInfo.setContent(consult.getContent());
+                    consultInfo.setConsultDepartment(consult.getConsultDepartment());
+                    consultInfo.setProcessInspectionId(processInspecion.getId());
+                    consultInfo.setProductionPlanId(daywork.getProductionPlanId());
+                    consultInfo.setProductionPlanDetailId(daywork.getProductionPlanDetailId());
+                    consultInfo.setProductionPlanDetailSubDetailId(daywork.getProductionPlanDetailSubDetailId());
+                    consultInfo.setLotId(processInspecion.getLot().getId());
+                    consultInfo.setLotCode(processInspecion.getLot().getLotCode());
+                    consultInfo.setDayworkId(daywork.getId());
+                    consultInfo.setDayworkItemId(dayworkItem.getId());
+                    consultInfo.setProductId(processInspecion.getLot().getProductId());
+                    consultInfo.setProductDescription(processInspecion.getLot().getProductDescription());
+                    consultInfo.setTechnologicalProcessId(processInspecion.getLot().getTechnologicalProcessId());
+                    consultInfo.setTechnologicalProcessDetailId(dayworkItem.getTechnologicalProcessDetailId());
+                    consultInfo.setProcessId(dayworkItem.getProcessId());
+                    consultInfo.setIsProcessInspection(1);
+                    consultInfo.setProcessAlias(processInspecion.getLot().getProcessAlias());
+                    consultInfo.setTechnicianId(technicianUser == null ? 0L : technicianUser.getUserId());
+                    needAdd.add(consultInfo);
+                }
+                bizDayworkItemConsultService.saveBatch(needAdd);
+                List<BizDayworkItemConsultPicture> pictures = new ArrayList<>();
+                needAdd.forEach(ne -> {
+                    ne.getPictures().forEach(info -> {
+                        BizDayworkItemConsultPicture consultPicture = new BizDayworkItemConsultPicture();
+                        consultPicture.setDayworkItemConsultId(ne.getId());
+                        consultPicture.setPictureName(info.getPictureName());
+                        consultPicture.setUrl(info.getUrl());
+                        pictures.add(consultPicture);
+                    });
+                });
+                bizDayworkItemConsultPictureService.saveBatch(pictures);
+            }
+        }
+
+        //修改daywaork信息
+        dayworkItem.setIsProcessInspection(1);
+        return success(bizDayworkItemService.saveOrUpdate(dayworkItem));
+    }
     /**
      * 根据箱号查询批次信息
      */
@@ -1920,6 +2083,58 @@ public TableDataInfo examineList(@RequestBody BizProcessInspecion bizProcessInsp
         lot.setPudName(item.getProdNum() == 0 ? lot.getProductionQuantity() : item.getProdNum());
         return success(lot);
     }
+    @PostMapping("/getLotInfoByFactoryInspection")
+    public AjaxResult getLotInfoByFactoryInspection(@RequestBody BizDayworkCarrier dayworkCarrier) throws NoSuchFieldException, IllegalAccessException {
+        //根据箱号查询当前绑定信息
+        dayworkCarrier = bizDayworkCarrierService.getByCarrierCode(dayworkCarrier);
+        if (dayworkCarrier == null) {
+            return error("该箱号未绑定任何批次");
+        }
+
+        //获取报工信息
+        List<BizDayworkItem> itemList = bizDayworkItemService.getByDayworkId(dayworkCarrier.getDayworkId());
+        if (itemList.size() == 0) {
+            return error("该批次未开始加工");
+        }
+        BizDayworkItem item = itemList.get(0);
+        BizProductionPlanDetail productionPlanDetail = productionPlanDetailService.getById(item.getProductionPlanDetailId());
+        BizProduct product = productService.getById(productionPlanDetail.getProductId());
+        SysUser user = sysUserService.selectUserById(product.getTechnicianId());
+        if (user != null) {
+            item.setTechnicianName(user.getNickName());
+            item.setTechnicianId(user.getUserId());
+        } else {
+            item.setTechnicianName("");
+            item.setTechnicianId(0L);
+        }
+
+        //查询是否为正常批次
+        BizLot lot = new BizLot();
+        lot.setId(item.getLotId());
+        lot = bizLotService.getAllList(lot).get(0);
+        if (lot.getIsWaste() == 1) {
+            return error("该批次已批废");
+        }
+        if (lot.getIsAmend() == 1 || lot.getIsWasteRecycling() == 1) {
+            BizLotTechnologicalProcessDetail process = bizLotTechnologicalProcessDetailService.getById(item.getTechnologicalProcessDetailId());
+            lot.setProcessAlias(process.getProcessAlias());
+            lot.setProcessCode(process.getProcessCode());
+            lot.setProcessId(process.getProcessId());
+        } else {
+            BizTechnologicalProcessDetail process = bizTechnologicalProcessDetailService.getById(item.getTechnologicalProcessDetailId());
+            lot.setProcessAlias(process.getProcessAlias());
+            lot.setProcessCode(process.getProcessCode());
+            lot.setProcessId(process.getProcessId());
+        }
+        lot.setAllCarrierName(item.getCarrierName());
+        lot.setDeptName(item.getDeptName());
+        lot.setDayworkItemId(item.getId());
+        lot.setProcessStepNumber(item.getProcessStepNumber());
+        lot.setCarrierCode(dayworkCarrier.getCarrierCode());
+        lot.setCarrierId(dayworkCarrier.getCarrierId());
+        lot.setPudName(item.getProdNum() == 0 ? lot.getProductionQuantity() : item.getProdNum());
+        return success(lot);
+    }
 
 //    /**
 //     * 根据箱号查询批次信息