Commit be01aaa9902836ec6d763bf3e59b3476cc8f45c9

Authored by 易文鹏
1 parent 47946f4a

1、入库单和出库单的明细,如果创建人是MOM就不能新增。

2、完善入库回传接口。
src/main/java/com/huaheng/pc/receipt/receiptDetail/controller/ReceiptDetailController.java
... ... @@ -270,6 +270,9 @@ public class ReceiptDetailController extends BaseController {
270 270 @PostMapping("/add")
271 271 @ResponseBody
272 272 public AjaxResult addSave(ReceiptDetail receiptDetail) {
  273 + if (receiptDetail.getCreatedBy().equals("MOM")) {
  274 + AjaxResult.error("MOM下发的单据不能新增");
  275 + }
273 276 return receiptDetailService.saveReceiptDetaial(receiptDetail);
274 277 }
275 278  
... ...
src/main/java/com/huaheng/pc/shipment/shipmentDetail/controller/ShipmentDetailController.java
... ... @@ -149,6 +149,9 @@ public class ShipmentDetailController extends BaseController {
149 149 @PostMapping("/add")
150 150 @ResponseBody
151 151 public AjaxResult addSave(ShipmentDetail shipmentDetail) {
  152 + if (shipmentDetail.getCreatedBy().equals("MOM")) {
  153 + AjaxResult.error("MOM下发的单据不能新增");
  154 + }
152 155 return shipmentDetailService.insertDetail(shipmentDetail);
153 156 }
154 157  
... ...
src/main/java/com/huaheng/pc/task/taskHeader/service/ReceiptTaskService.java
... ... @@ -680,46 +680,66 @@ public class ReceiptTaskService {
680 680 taskHeaderService.updateById(taskHeader);
681 681 return AjaxResult.success("回传成功");
682 682 }
  683 +
  684 + boolean allSuccessful = true;
  685 + BigDecimal pushQty = BigDecimal.ZERO;
  686 + ReceiptHeader receiptHeader = null; // 在循环外部初始化
  687 +
683 688 for (TaskDetail taskDetail : taskDetailList) {
684   - /*查询入库单明细*/
  689 + // 查询入库单明细
685 690 ReceiptDetail receiptDetail = receiptDetailService.getById(taskDetail.getBillDetailId());
686 691 if ("MOM".equals(receiptDetail.getCreatedBy())) {
687 692 receiptDetail.setTaskQty(taskDetail.getQty());
688   - ReceiptHeader receiptHeader = receiptHeaderService.getById(receiptDetail.getReceiptId());
  693 + receiptHeader = receiptHeaderService.getById(receiptDetail.getReceiptId()); // 更新receiptHeader
  694 +
  695 + // 特殊条件处理
689 696 if ("199".equals(receiptHeader.getReceiptType()) && !"MOM".equals(receiptHeader.getCreatedBy())) {
690   - taskHeader.setBackMoM(1);//1回传成功
  697 + taskHeader.setBackMoM(1); // 1回传成功
691 698 taskHeaderService.updateById(taskHeader);
692 699 continue;
693 700 }
  701 +
  702 + // 调用接口进行回传
694 703 ReturnInfo returnInfo = mesReceiptController.postE_Rd_In(receiptDetail);
695 704 receiptHeader.setPushErrorCount(receiptHeader.getPushErrorCount() + 1);
  705 +
696 706 if (returnInfo == null) {
697   - receiptHeader.setErrorMsg("入库回传错误:接口地址错误,或接口超时,或MOM报错,请用入库单号到接口日志查询具体错误!");
698   - receiptHeader.setPushSuccessStatus(2);//单据回传失败
699   - taskHeader.setBackMoM(3);//3回传失败
  707 + receiptHeader.setErrorMsg("入库回传错误:接口地址错误,可能是接口超时,或MOM报错,请用入库单号到接口日志查询具体错误!");
  708 + receiptHeader.setPushSuccessStatus(2); // 回传失败
  709 + taskHeader.setBackMoM(3); // 3回传失败
700 710 taskHeader.setPushErrorCount(taskHeader.getPushErrorCount() + 1);
  711 + allSuccessful = false;
  712 + } else if (returnInfo.noError()) {
  713 + // 累加已回传数量
  714 + pushQty = pushQty.add(taskDetail.getQty());
  715 + receiptHeader.setPushQty(pushQty);
  716 + receiptHeader.setFirstStatus(QuantityConstant.RECEIPT_HEADER_RETURN);
  717 + receiptHeader.setPushSuccessStatus(3); // 部分回传
701 718 } else {
702   - if (returnInfo.noError()) {
703   - BigDecimal pushQty = receiptHeader.getPushQty().add(taskDetail.getQty());
704   - receiptHeader.setPushQty(pushQty);
705   - receiptHeader.setFirstStatus(QuantityConstant.RECEIPT_HEADER_RETURN);
706   - receiptHeader.setPushSuccessStatus(3);//3回传了部分
707   - if (receiptHeader.getPushQty().compareTo(receiptHeader.getTotalQty()) == 0) {
708   - receiptHeader.setPushSuccessStatus(1);//1成功
709   - receiptHeader.setLastStatus(QuantityConstant.RECEIPT_HEADER_RETURN);
710   - }
711   - taskHeader.setBackMoM(1);//1回传成功
712   - } else {
713   - taskHeader.setPushErrorCount(taskHeader.getPushErrorCount() + 1);
714   - taskHeader.setBackMoM(3);//3回传失败
715   - receiptHeader.setErrorMsg(returnInfo.getMsg());
716   - receiptHeader.setPushSuccessStatus(2);//2失败
717   - }
  719 + taskHeader.setPushErrorCount(taskHeader.getPushErrorCount() + 1);
  720 + taskHeader.setBackMoM(3); // 3回传失败
  721 + receiptHeader.setErrorMsg(returnInfo.getMsg());
  722 + receiptHeader.setPushSuccessStatus(2); // 失败
  723 + allSuccessful = false;
718 724 }
  725 +
719 726 receiptHeaderService.updateById(receiptHeader);
720 727 }
721   - taskHeaderService.updateById(taskHeader);
722 728 }
  729 +
  730 + // 确保在所有TaskDetail处理完后更新最终状态
  731 + if (receiptHeader != null && pushQty.compareTo(receiptHeader.getTotalQty()) == 0) {
  732 + receiptHeader.setPushSuccessStatus(1); // 1成功
  733 + receiptHeader.setLastStatus(QuantityConstant.RECEIPT_HEADER_RETURN);
  734 + taskHeader.setBackMoM(1); // 1回传成功
  735 + } else if (!allSuccessful) {
  736 + taskHeader.setBackMoM(3); // 3回传失败
  737 + }
  738 +
  739 + taskHeaderService.updateById(taskHeader);
  740 +
723 741 return AjaxResult.success("回传成功");
724 742 }
  743 +
  744 +
725 745 }
... ...
src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html
... ... @@ -546,13 +546,10 @@
546 546 return ''; // 若无值则返回空字符串
547 547 }
548 548 },
  549 +
549 550 {
550   - field: 'transferWarehouseName',
551   - title: '调入仓库名称',
552   - },
553   - {
554   - field: 'shipmentNote',
555   - title: '备注',
  551 + field: 'superiorName',
  552 + title: '母件名称',
556 553 formatter: function (value, row, index) {
557 554 var actions = [];
558 555 if (value == undefined || value == '')
... ... @@ -563,8 +560,8 @@
563 560 }
564 561 },
565 562 {
566   - field: 'superiorName',
567   - title: '母件名称',
  563 + field: 'superiorCode',
  564 + title: '母件编码',
568 565 formatter: function (value, row, index) {
569 566 var actions = [];
570 567 if (value == undefined || value == '')
... ... @@ -575,8 +572,12 @@
575 572 }
576 573 },
577 574 {
578   - field: 'superiorCode',
579   - title: '母件编码',
  575 + field: 'transferWarehouseName',
  576 + title: '调入仓库名称',
  577 + },
  578 + {
  579 + field: 'shipmentNote',
  580 + title: '备注',
580 581 formatter: function (value, row, index) {
581 582 var actions = [];
582 583 if (value == undefined || value == '')
... ... @@ -587,6 +588,7 @@
587 588 }
588 589 },
589 590  
  591 +
590 592 {
591 593 field: 'warehouseCode',
592 594 title: '仓库',
... ...
src/main/resources/templates/shipment/shipmentHeaderHistory/shipmentHeaderHistory.html
... ... @@ -477,12 +477,8 @@
477 477 }
478 478 },
479 479 {
480   - field: 'transferWarehouseName',
481   - title: '调入仓库名称',
482   - },
483   - {
484   - field: 'shipmentNote',
485   - title: '备注',
  480 + field: 'superiorName',
  481 + title: '母件名称',
486 482 formatter: function (value, row, index) {
487 483 var actions = [];
488 484 if (value == undefined || value == '')
... ... @@ -493,8 +489,8 @@
493 489 }
494 490 },
495 491 {
496   - field: 'superiorName',
497   - title: '母件名称',
  492 + field: 'superiorCode',
  493 + title: '母件编码',
498 494 formatter: function (value, row, index) {
499 495 var actions = [];
500 496 if (value == undefined || value == '')
... ... @@ -505,8 +501,12 @@
505 501 }
506 502 },
507 503 {
508   - field: 'superiorCode',
509   - title: '母件编码',
  504 + field: 'transferWarehouseName',
  505 + title: '调入仓库名称',
  506 + },
  507 + {
  508 + field: 'shipmentNote',
  509 + title: '备注',
510 510 formatter: function (value, row, index) {
511 511 var actions = [];
512 512 if (value == undefined || value == '')
... ... @@ -517,6 +517,7 @@
517 517 }
518 518 },
519 519  
  520 +
520 521 {
521 522 field: 'warehouseCode',
522 523 title: '仓库',
... ...