ezhizao_zx hai 10 meses
pai
achega
8433a0de1c

+ 96 - 53
src/main/java/cn/ezhizao/project/business/product/controller/BizProcessInspecionController.java

@@ -100,7 +100,6 @@ public class BizProcessInspecionController extends BaseController {
 
     final private String processInspectionNoKey = "processInspectionCode";
 
-
     /**
      * 查询序检主列表
      */
@@ -196,7 +195,6 @@ public class BizProcessInspecionController extends BaseController {
         return success(processInspecion);
     }
 
-
     @PostMapping("/selectOutsourcedInspecion")
     public AjaxResult selectOutsourcedInspecion(@RequestBody BizProcessInspecion processInspecion) throws NoSuchFieldException, IllegalAccessException {
         List<BizDayworkItemConsult> itemConsults = bizDayworkItemConsultService.query().eq("process_inspection_id", processInspecion.getId()).eq("is_outsourced_inspection", 1).list();
@@ -229,6 +227,41 @@ public class BizProcessInspecionController extends BaseController {
         return success(processInspecion);
     }
 
+//    @PostMapping("/selectOutsourcedInspecion")
+    public AjaxResult selectOutsourcedInspecionV1(@RequestBody BizProcessInspecion processInspecion) throws NoSuchFieldException, IllegalAccessException {
+        List<BizDayworkItemConsult> itemConsults = bizDayworkItemConsultService.query().eq("process_inspection_id", processInspecion.getId()).eq("is_outsourced_inspection", 1).list();
+        List<BizDayworkItemReject> itemRejects = bizDayworkItemRejectService.query().eq("process_inspection_id", processInspecion.getId()).list();
+        List<BizProcessInspectionDetail> reject = processInspectionDetailService.query().eq("process_inspection_id", processInspecion.getId()).list();
+        processInspecion.setDayworkItemConsults(itemConsults);
+        processInspecion.setDayworkItemRejects(itemRejects);
+        processInspecion.setRejects(reject);
+        List<BizProcessInspecion> oldProcessInspection = bizProcessInspecionService.query().in("outsource_order_detail_id", processInspecion.getOutsourceOrderDetailId()).ne("id", processInspecion.getId()).list();
+        List<BizProcessInspectionDetail> oldReject = processInspectionDetailService.query().in("process_inspection_id", oldProcessInspection.isEmpty() ? Collections.singletonList(0L) : oldProcessInspection.stream().map(BizProcessInspecion::getId).collect(Collectors.toList())).list();
+        processInspecion.setOldRejects(oldReject);
+
+        BizDayworkItem dayworkItem = bizDayworkItemService.selById(processInspecion.getDayworkItemId());
+
+        BizLot lot = new BizLot();
+        lot.setId(processInspecion.getLotId());
+        lot = bizLotService.getAllList(lot).get(0);
+
+        if (lot.getIsAmend() == 1 || lot.getIsWasteRecycling() == 1) {
+            BizLotTechnologicalProcessDetail process = bizLotTechnologicalProcessDetailService.getById(dayworkItem.getTechnologicalProcessDetailId());
+            lot.setProcessAlias(process.getProcessAlias());
+        } else {
+            BizTechnologicalProcessDetail process = bizTechnologicalProcessDetailService.getById(dayworkItem.getTechnologicalProcessDetailId());
+            lot.setProcessAlias(process.getProcessAlias());
+        }
+
+        lot.setAllCarrierName(dayworkItem.getCarrierName());
+        lot.setDayworkItemId(dayworkItem.getId());
+        lot.setCarrierCode(dayworkItem.getCarrierCode());
+        lot.setCarrierId(dayworkItem.getCarrierId());
+        lot.setPudName(dayworkItem.getProdNum() == 0 ? lot.getProductionQuantity() : dayworkItem.getProdNum());
+        processInspecion.setLot(lot);
+        return success(processInspecion);
+    }
+
     /**
      * 新增外协序检信息
      */
@@ -428,7 +461,6 @@ public class BizProcessInspecionController extends BaseController {
         }
         //保存
         bizProcessInspecionService.saveOrUpdate(processInspecion);
-
         //保存废品信息
         List<BizDayworkItemReject> rejects = processInspecion.getDayworkItemRejects();
         //保存前先删除原先废品信息
@@ -528,23 +560,25 @@ public class BizProcessInspecionController extends BaseController {
         SysUser user = sysUserService.selectUserById(processInspecion.getUser().getUserId());
 
         // 判断是否已经进行过质检
-        BizProcessInspecion previousItem = bizProcessInspecionService.query().eq("outsource_order_detail_id", bizReturnReceiptDetail.getOutsourceDetailId()).one();
-        if (previousItem != null) {
-            if (processInspecion.getId() == null) {
-                previousItem.setRecheckDate(DateTime.now().toJdkDate());
-            }
-            previousItem.setIsInspectionCarrierChanged(0);
-            previousItem.setInspectionCarrierChangedTime(null);
-            previousItem.setStatus(processInspecion.getStatus());
-            previousItem.setRejectNum(processInspecion.getRejectNum());
-            previousItem.setExaminingNum(processInspecion.getExaminingNum());
-            previousItem.setDisqualificationNum(processInspecion.getDisqualificationNum());
-        } else {
-            previousItem = new BizProcessInspecion(processInspecion);
+        BizProcessInspecion previousItem = bizProcessInspecionService.query().eq("outsource_order_detail_id", bizReturnReceiptDetail.getOutsourceDetailId()).isNull("recheck_date").ne("id", processInspecion.getId() == null ? 0L : processInspecion.getId()).one();
+        BizOutsourcedOrderDetail outsourceOrderDetail = bizOutsourcedOrderDetailService.query().eq("id", bizReturnReceiptDetail.getOutsourceDetailId()).one();
+
+//        if (previousItem != null) {
+//            if (processInspecion.getId() == null) {
+//                previousItem.setRecheckDate(DateTime.now().toJdkDate());
+//            }
+//            previousItem.setIsInspectionCarrierChanged(0);
+//            previousItem.setInspectionCarrierChangedTime(null);
+//            previousItem.setStatus(processInspecion.getStatus());
+//            previousItem.setRejectNum(processInspecion.getRejectNum());
+//            previousItem.setExaminingNum(processInspecion.getExaminingNum());
+//            previousItem.setDisqualificationNum(processInspecion.getDisqualificationNum());
+//        } else {
+//            previousItem = new BizProcessInspecion(processInspecion);
             String beginCode = "WDD" + DateTime.now().toString("yyMM");
             String previous = redisCache.hasKey(processInspectionNoKey) ? redisCache.getCacheObject(processInspectionNoKey) : "";
             String codeValue = "";
-            if (previous.isEmpty()) {
+            if (previous.isEmpty() || !previous.startsWith(beginCode)) {
                 previous = (beginCode + "000001");
             } else {
                 codeValue = previous;
@@ -553,34 +587,35 @@ public class BizProcessInspecionController extends BaseController {
                 codeValue = codeValue.substring(0, 7) + String.format("%06d", lastFourDigits);
                 previous = codeValue;
             }
-            previousItem.setOutsourcedInspectionNo(previous);
+        processInspecion.setOutsourcedInspectionNo(previous);
             redisCache.setCacheObject(processInspectionNoKey, previous);
+//        }
+        processInspecion.setReturnReceiptDetailId(bizReturnReceiptDetail.getId());
+        processInspecion.setUserId(user == null ? 0L : user.getUserId());
+        processInspecion.setNickName(user == null ? "" : user.getNickName());
+        processInspecion.setCarrierId(processInspecion.getLot().getCarrierId());
+        processInspecion.setCarrierCode(processInspecion.getLot().getCarrierCode());
+        processInspecion.setDayworkId(daywork.getId());
+        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());
+        processInspecion.setInspectionCarrierCode(processInspecion.getInspectionCarrierCode());
+        processInspecion.setInspectionCarrierId(processInspecion.getInspectionCarrierId());
+        processInspecion.setOutsourceOrderId(outsourceOrderDetail.getMasterId());
+
+        if (processInspecion.getStartTime() == null) {
+            processInspecion.setStartTime(new Date());
         }
-        previousItem.setReturnReceiptDetailId(bizReturnReceiptDetail.getId());
-        previousItem.setUserId(user == null ? 0L : user.getUserId());
-        previousItem.setNickName(user == null ? "" : user.getNickName());
-        previousItem.setCarrierId(processInspecion.getLot().getCarrierId());
-        previousItem.setCarrierCode(processInspecion.getLot().getCarrierCode());
-        previousItem.setDayworkId(daywork.getId());
-        previousItem.setProductionPlanId(daywork.getProductionPlanId());
-        previousItem.setDayworkItemId(dayworkItem.getId());
-        previousItem.setProductionPlanDetailId(daywork.getProductionPlanDetailId());
-        previousItem.setProductionPlanDetailSubDetailId(daywork.getProductionPlanDetailSubDetailId());
-        previousItem.setProductDescription(processInspecion.getLot().getProductDescription());
-        previousItem.setLotId(processInspecion.getLot().getId());
-        previousItem.setLotCode(processInspecion.getLot().getLotCode());
-        previousItem.setDeptId(daywork.getDeptId());
-        previousItem.setProductId(processInspecion.getLot().getProductId());
-        previousItem.setTechnologicalProcessId(processInspecion.getLot().getTechnologicalProcessId());
-        previousItem.setInspectionCarrierCode(processInspecion.getInspectionCarrierCode());
-        previousItem.setInspectionCarrierId(processInspecion.getInspectionCarrierId());
-
-        if (previousItem.getStartTime() == null) {
-            previousItem.setStartTime(new Date());
-        }
-        if (previousItem.getStatus() != 0) {
-            previousItem.setEndTime(new Date());
-            previousItem.setFirstUpdaterId(processInspecion.getFirstUpdaterId() == null || processInspecion.getFirstUpdaterId().equals(0L) ? user != null ? user.getUserId() : 0L : processInspecion.getFirstUpdaterId());
+        if (processInspecion.getStatus() != 0) {
+            processInspecion.setEndTime(new Date());
+            processInspecion.setFirstUpdaterId(processInspecion.getFirstUpdaterId() == null || processInspecion.getFirstUpdaterId().equals(0L) ? user != null ? user.getUserId() : 0L : processInspecion.getFirstUpdaterId());
 
         }
         if (!checkOutsourceDayworkItem(processInspecion.getOutsourceOrderDetailId())) {
@@ -592,20 +627,26 @@ public class BizProcessInspecionController extends BaseController {
         if (dayworkCarriers.stream().anyMatch(v -> !v.getDayworkId().equals(daywork.getId()))) {
             return error("检测载具已绑定其他批次");
         }
-
+        if (previousItem != null && previousItem.getAuditStatus() == 1) {
+            return error("已通过结算审核,请取消后再进行质检。");
+        }
         //保存
-        bizProcessInspecionService.saveOrUpdate(previousItem);
+        if (previousItem != null) {
+            previousItem.setRecheckDate(DateTime.now().toJdkDate());
+            bizProcessInspecionService.updateById(previousItem);
+        }
+        bizProcessInspecionService.saveOrUpdate(processInspecion);
 
-        if (dayworkCarriers.stream().noneMatch(v -> v.getDayworkId().equals(daywork.getId())) && (previousItem.getIsInspectionCarrierChanged() == null || previousItem.getIsInspectionCarrierChanged().equals(0))) {
+        if (dayworkCarriers.stream().noneMatch(v -> v.getDayworkId().equals(daywork.getId())) && (processInspecion.getIsInspectionCarrierChanged() == null || processInspecion.getIsInspectionCarrierChanged().equals(0))) {
             // 该检测载具需要绑定到当前批次
             BizDayworkCarrier newDayworkCarrier = new BizDayworkCarrier();
-            newDayworkCarrier.setDayworkId(previousItem.getDayworkId());
+            newDayworkCarrier.setDayworkId(processInspecion.getDayworkId());
             newDayworkCarrier.setCarrierCode(carrier.getCode());
             newDayworkCarrier.setCarrierId(carrier.getId());
-            newDayworkCarrier.setLotCode(previousItem.getLotCode());
-            newDayworkCarrier.setLotId(previousItem.getLotId());
-            newDayworkCarrier.setProductionPlanDetailId(previousItem.getProductionPlanDetailId());
-            newDayworkCarrier.setProcessInspectionId(previousItem.getId());
+            newDayworkCarrier.setLotCode(processInspecion.getLotCode());
+            newDayworkCarrier.setLotId(processInspecion.getLotId());
+            newDayworkCarrier.setProductionPlanDetailId(processInspecion.getProductionPlanDetailId());
+            newDayworkCarrier.setProcessInspectionId(processInspecion.getId());
             bizDayworkCarrierService.save(newDayworkCarrier);
         }
         List<BizDayworkItemConsult> consults = new ArrayList<>();
@@ -634,7 +675,7 @@ public class BizProcessInspecionController extends BaseController {
                     reject.setLotId(processInspecion.getLot().getId());
                     reject.setDayworkItemId(dayworkItem.getId());
                     Long rejectNum = reject.getRejectNum() == null ? 0L : reject.getRejectNum();
-                    newRej.setRejectNum(newRej.getRejectNum());
+                    newRej.setRejectNum(rejectNum);
                     newRej.setUserId(user == null ? 0L : user.getUserId());
                     newRej.setProcessInspectionId(processInspecion.getId());
                     newRej.setDayworkId(0L);
@@ -650,7 +691,7 @@ public class BizProcessInspecionController extends BaseController {
             processInspectionDetailService.saveBatch(rejects);
             bizDayworkItemRejectService.save(newRej);
             //保存咨询信息
-            consults.addAll(processInspecion.getDayworkItemConsults());
+            consults.addAll(processInspecion.getDayworkItemConsults() == null ? new ArrayList<>() : processInspecion.getDayworkItemConsults());
             if (consults.size() > 0) {
                 for (BizDayworkItemConsult consult : consults) {
                     consult.setUserId(user == null ? 0L : user.getUserId());
@@ -695,6 +736,7 @@ public class BizProcessInspecionController extends BaseController {
         SysUser technicianUser = sysUserService.selectUserById(product.getTechnicianId());
         BizDayworkItem dayworkItem = bizDayworkItemService.getById(processInspecion.getLot().getDayworkItemId());
         BizReturnReceiptDetail bizReturnReceiptDetail = bizReturnReceiptDetailService.query().eq("daywork_id", dayworkItem.getDayworkId()).eq("technological_process_detail_id", dayworkItem.getTechnologicalProcessDetailId()).eq("deleted", 0).one();
+        BizOutsourcedOrderDetail outsourceOrderDetail = bizOutsourcedOrderDetailService.query().eq("id", bizReturnReceiptDetail.getOutsourceDetailId()).one();
 
         // 判断是否已经进行过质检
 //        BizProcessInspecion previousItem = bizProcessInspecionService.query().eq("outsource_order_detail_id", bizReturnReceiptDetail.getOutsourceDetailId()).one();
@@ -719,6 +761,7 @@ public class BizProcessInspecionController extends BaseController {
         processInspecion.setTechnologicalProcessId(processInspecion.getLot().getTechnologicalProcessId());
         processInspecion.setInspectionCarrierCode(processInspecion.getInspectionCarrierCode());
         processInspecion.setInspectionCarrierId(processInspecion.getInspectionCarrierId());
+        processInspecion.setOutsourceOrderId(outsourceOrderDetail.getMasterId());
         if (processInspecion.getStartTime() == null) {
             processInspecion.setStartTime(new Date());
         }

+ 6 - 1
src/main/java/cn/ezhizao/project/business/product/domain/BizProcessInspecion.java

@@ -147,6 +147,8 @@ public class BizProcessInspecion extends BaseEntity
 
     @TableField(exist = false)
     private List<BizProcessInspectionDetail> rejects;
+    @TableField(exist = false)
+    private List<BizProcessInspectionDetail> oldRejects;
 
     /** 产品描述 */
     private String productDescription;
@@ -181,8 +183,10 @@ public class BizProcessInspecion extends BaseEntity
     @ApiModelProperty("外协序检工序")
     private String processNames;
 
-    @ApiModelProperty("外协单id")
+    @ApiModelProperty("外协单明细id")
     private Long outsourceOrderDetailId;
+    @ApiModelProperty("外协单id")
+    private Long outsourceOrderId;
     @TableField(exist = false)
     private String processAlias;
     @TableField(exist = false)
@@ -216,6 +220,7 @@ public class BizProcessInspecion extends BaseEntity
         this.productionPlanDetailId = processInspecion.getProductionPlanDetailId();
         this.productionPlanDetailSubDetailId = processInspecion.getProductionPlanDetailSubDetailId();
         this.returnReceiptDetailId = processInspecion.getReturnReceiptDetailId();
+        this.outsourceOrderId = processInspecion.getOutsourceOrderId();
         this.lotId = processInspecion.getLotId();
         this.lotCode = processInspecion.getLotCode();
         this.deptId = processInspecion.getDeptId();