diff --git a/src/main/java/com/xujie/sys/modules/pms/controller/QcController.java b/src/main/java/com/xujie/sys/modules/pms/controller/QcController.java index ee5e73f..ad19b53 100644 --- a/src/main/java/com/xujie/sys/modules/pms/controller/QcController.java +++ b/src/main/java/com/xujie/sys/modules/pms/controller/QcController.java @@ -1600,6 +1600,17 @@ public class QcController { return R.ok(); } + /** + * 取消审核 + * @param data + * @return + */ + @PostMapping("/reverseFQASSubmitResult") + public R reverseFQASSubmitResult(@RequestBody QcFAIRecordData data){ + qcService.reverseFQASSubmitResult(data); + return R.ok(); + } + /** * 删除检验记录 * @param data diff --git a/src/main/java/com/xujie/sys/modules/pms/mapper/QcMapper.java b/src/main/java/com/xujie/sys/modules/pms/mapper/QcMapper.java index d70cf49..bdba4b6 100644 --- a/src/main/java/com/xujie/sys/modules/pms/mapper/QcMapper.java +++ b/src/main/java/com/xujie/sys/modules/pms/mapper/QcMapper.java @@ -547,6 +547,12 @@ public interface QcMapper { void updateFQASSubDetailSubmitFlag(QcFAIRecordData qcData); + void reverseFQASMasterSubmitFlag(QcFAIRecordData qcData); + + void reverseFQASDetailSubmitFlag(QcFAIRecordData qcData); + + void reverseFQASSubDetailSubmitFlag(QcFAIRecordData qcData); + void deleteFQASRecord(QcFAIRecordData qcData); void deleteFQASDetailedRecord(QcFAIRecordData qcData); diff --git a/src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java b/src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java index 99a6885..afeda3e 100644 --- a/src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java @@ -5219,16 +5219,17 @@ public class QcServiceImpl implements QcService { @Transactional public void saveFQASSubmitResult(QcFAIRecordData data) { for (QcFAIRecordData qcData : data.getSubmitList()) { + QcFAIRecordData latestRecord = this.getAndCheckFQASRecordState(qcData, "待审核", "审核"); // 修改主记录标识为已提交 - qcMapper.updateFQASMasterSubmitFlag(qcData); + qcMapper.updateFQASMasterSubmitFlag(latestRecord); // 修改明细记录标识为已提交 - qcMapper.updateFQASDetailSubmitFlag(qcData); + qcMapper.updateFQASDetailSubmitFlag(latestRecord); // 修改子明细记录标识为已提交 - qcMapper.updateFQASSubDetailSubmitFlag(qcData); + qcMapper.updateFQASSubDetailSubmitFlag(latestRecord); - if ("生产入库检验".equals(qcData.getOrderRefType()) || "工序调拨".equals(qcData.getOrderRefType())) { + if ("生产入库检验".equals(latestRecord.getOrderRefType()) || "工序调拨".equals(latestRecord.getOrderRefType())) { // 调用存储过程执行 - Map resultMap = this.dboSaveFQASSubmitResult(qcData); + Map resultMap = this.dboSaveFQASSubmitResult(latestRecord); // 判断是否检验成功 String code = String.valueOf(resultMap.get("resultCode")); if ("400".equalsIgnoreCase(code)) { @@ -5239,6 +5240,45 @@ public class QcServiceImpl implements QcService { } } + /** + * 取消审核 + */ + @Override + @Transactional + public void reverseFQASSubmitResult(QcFAIRecordData data) { + for (QcFAIRecordData qcData : data.getSubmitList()) { + QcFAIRecordData latestRecord = this.getAndCheckFQASRecordState(qcData, "已完成", "取消审核"); + // 修改主记录标识为未提交 + qcMapper.reverseFQASMasterSubmitFlag(latestRecord); + // 修改明细记录标识为未提交 + qcMapper.reverseFQASDetailSubmitFlag(latestRecord); + // 修改子明细记录标识为未提交 + qcMapper.reverseFQASSubDetailSubmitFlag(latestRecord); + + if ("生产入库检验".equals(latestRecord.getOrderRefType()) || "工序调拨".equals(latestRecord.getOrderRefType())) { + // 调用取消审核存储过程 + Map resultMap = this.dboReverseFQASSubmitResult(latestRecord); + // 判断是否检验成功 + String code = String.valueOf(resultMap.get("resultCode")); + if ("400".equalsIgnoreCase(code)) { + String msg = String.valueOf(resultMap.get("resultMsg")); + throw new XJException(msg, Integer.parseInt(code)); + } + } + } + } + + private QcFAIRecordData getAndCheckFQASRecordState(QcFAIRecordData data, String expectedState, String actionName) { + QcFAIRecordData latestRecord = qcMapper.getFQASInspectionRecord(data); + if (latestRecord == null) { + throw new RuntimeException("检验单号 " + data.getInspectionNo() + " 不存在或已被删除,不允许" + actionName + "!"); + } + if (!expectedState.equals(latestRecord.getState())) { + throw new RuntimeException("检验单号 " + data.getInspectionNo() + " 当前状态为" + latestRecord.getState() + ",不允许" + actionName + "!"); + } + return latestRecord; + } + public Map dboSaveFQASSubmitResult(QcFAIRecordData inData) { //公共参数 String site = inData.getSite(); @@ -5263,6 +5303,26 @@ public class QcServiceImpl implements QcService { return resultList.get(0); } + public Map dboReverseFQASSubmitResult(QcFAIRecordData inData) { + //公共参数 + String site = inData.getSite(); + String transNo = inData.getOrderRef1(); + String itemNo = inData.getOrderRef2(); + Float inspectedQty = inData.getRollCount().floatValue(); // 检验数量 + String inspectStatus = inData.getInspectionResult(); // 检验结果 + String disposalMeasures = inData.getDisposalMeasures() == null ? "" : inData.getDisposalMeasures(); // 处置措施 + List params = new ArrayList<>(); + params.add(site); + params.add(transNo); + params.add(itemNo); + params.add(inspectedQty); + params.add(inspectStatus); + params.add(disposalMeasures); + //执行方法 + List> resultList = procedureDao.getProcedureData("Reverse_ERPSOOpsTransfer", params); + return resultList.get(0); + } + /** * 删除检验记录 diff --git a/src/main/java/com/xujie/sys/modules/pms/service/QcService.java b/src/main/java/com/xujie/sys/modules/pms/service/QcService.java index ef95a1f..776b5d0 100644 --- a/src/main/java/com/xujie/sys/modules/pms/service/QcService.java +++ b/src/main/java/com/xujie/sys/modules/pms/service/QcService.java @@ -306,6 +306,8 @@ public interface QcService { void saveFQASSubmitResult(QcFAIRecordData data); + void reverseFQASSubmitResult(QcFAIRecordData data); + void fqasRecordDelete(QcFAIRecordData data); void fqasRecordOverLoad(QcFAIRecordData data); diff --git a/src/main/resources/mapper/pms/QcMapper.xml b/src/main/resources/mapper/pms/QcMapper.xml index a7b94ea..85938d0 100644 --- a/src/main/resources/mapper/pms/QcMapper.xml +++ b/src/main/resources/mapper/pms/QcMapper.xml @@ -4286,6 +4286,28 @@ WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo} + + + UPDATE qc_stock_record + SET submit_flag = 'N', + state = '待审核' + WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo} + + + + + UPDATE qc_stock_detailed_record + SET is_submit = 'N' + WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo} + + + + + UPDATE qc_stock_sub_detail_record + SET is_submit = 'N' + WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo} + + DELETE FROM qc_stock_record @@ -4416,6 +4438,7 @@ site, bu_no, inspection_no, + state, order_ref1, not_pass_qty, roll_count,