chen.lin
1 天以前 11514b301466eb7598073d0126c6d9781daaa3ba
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/CheckDiffItemController.java
@@ -13,9 +13,12 @@
import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.manager.entity.CheckDiff;
import com.vincent.rsf.server.manager.entity.CheckDiffItem;
import com.vincent.rsf.server.manager.entity.WkOrder;
import com.vincent.rsf.server.manager.enums.CheckDiffExceStatus;
import com.vincent.rsf.server.manager.enums.CheckExceStatus;
import com.vincent.rsf.server.manager.service.CheckDiffItemService;
import com.vincent.rsf.server.manager.service.CheckDiffService;
import com.vincent.rsf.server.manager.service.CheckOrderService;
import com.vincent.rsf.server.manager.service.impl.CheckDiffServiceImpl;
import com.vincent.rsf.server.system.controller.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
@@ -33,6 +36,8 @@
    private CheckDiffItemService checkDiffItemService;
    @Autowired
    private CheckDiffService checkDiffService;
    @Autowired
    private CheckOrderService checkOrderService;
    @PreAuthorize("hasAuthority('manager:checkDiff:list')")
    @PostMapping("/checkDiffItem/page")
@@ -88,11 +93,20 @@
        if (!diffItems.isEmpty()) {
            Map<Integer, List<CheckDiffItem>> listMap = diffItems.stream().collect(Collectors.groupingBy(CheckDiffItem::getExceStatus));
            List<CheckDiffItem> checkDiffItems = listMap.get(CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_END.val);
            if (diffItems.size() == checkDiffItems.size()) {
            if (checkDiffItems != null && diffItems.size() == checkDiffItems.size()) {
                if (!checkDiffService.update(new LambdaUpdateWrapper<CheckDiff>()
                        .eq(CheckDiff::getId, checkDiffItem.getCheckId())
                        .set(CheckDiff::getExceStatus, CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_END.val))) {
                    throw new CoolException("盘点单状态更新失败!!");
                }
                // 仅在有单时更新盘点单(WkOrder)执行状态;无单盘点无盘点单,不更新
                CheckDiff checkDiff = checkDiffService.getById(checkDiffItem.getCheckId());
                if (checkDiff != null && checkDiff.getOrderId() != null) {
                    if (!checkOrderService.update(new LambdaUpdateWrapper<WkOrder>()
                            .eq(WkOrder::getId, checkDiff.getOrderId())
                            .set(WkOrder::getExceStatus, CheckExceStatus.CHECK_ORDER_STATUS_EXCE_DONE.val))) {
                        throw new CoolException("盘点单执行状态修改失败!!");
                    }
                }
            } else {
                if (!checkDiffService.update(new LambdaUpdateWrapper<CheckDiff>()
@@ -102,8 +116,6 @@
                }
            }
        }
        return R.ok("Update Success").add(checkDiffItem);
    }