zhou zhou
昨天 cfe049492f81d2c650a2b17348593edbc5054498
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java
@@ -10,12 +10,13 @@
import com.vincent.rsf.server.manager.controller.params.IsptItemsParams;
import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.enums.QlyIsptResult;
import com.vincent.rsf.server.manager.mapper.QlyInspectMapper;
import com.vincent.rsf.server.manager.mapper.QlyIsptItemMapper;
import com.vincent.rsf.server.manager.service.AsnOrderItemService;
import com.vincent.rsf.server.manager.service.QlyInspectResultService;
import com.vincent.rsf.server.manager.service.QlyInspectService;
import com.vincent.rsf.server.manager.service.QlyIsptItemService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -30,16 +31,16 @@
public class QlyIsptItemServiceImpl extends ServiceImpl<QlyIsptItemMapper, QlyIsptItem> implements QlyIsptItemService {
    @Autowired
    private QlyInspectService qlyInspectService;
    private QlyInspectMapper qlyInspectMapper;
    @Autowired
    private AsnOrderItemService asnOrderItemService;
    @Autowired
    private QlyInspectResultService qlyInspectResultService;
    @Autowired
    private QlyIsptItemService qlyIsptItemService;
    @Autowired
    private WarehouseAreasItemServiceImpl warehouseAreasItemService;
    @Autowired
    private CompanysServiceImpl companysService;
    /**
     * @param
@@ -100,34 +101,35 @@
            Double isptQty = isptRelt.stream().mapToDouble(QlyInspectResult::getAnfme).sum();
            if (!qlyIsptItemService.update(new LambdaUpdateWrapper<QlyIsptItem>()
            if (!this.update(new LambdaUpdateWrapper<QlyIsptItem>()
                    .set(QlyIsptItem::getUpdateBy, loginUserId)
                    .set(QlyIsptItem::getAnfme, isptQty)
                    .eq(QlyIsptItem::getId, item.getId()))) {
                throw new CoolException("单据明细数量修改失败!!");
            }
            WarehouseAreasItem orderItem = warehouseAreasItemService.getById(item.getRcptId());
            if (Objects.isNull(orderItem)) {
                throw new CoolException("收货单据不存在!!");
            }
//            WarehouseAreasItem orderItem = warehouseAreasItemService.getById(item.getRcptId());
//            if (Objects.isNull(orderItem)) {
//                throw new CoolException("收货单据不存在!!");
//            }
            Double disQty = Objects.isNull(item.getDisQty()) ? 0 : item.getDisQty();
            Double safeQty = Objects.isNull(item.getSafeQty()) ? 0 : item.getSafeQty();
            Double sum = disQty + safeQty;
            orderItem.setIsptQty(sum);
            if (sum.compareTo(0.0) > 0) {
                if (!warehouseAreasItemService.updateById(orderItem)) {
                    throw new CoolException("收货区库存信息更新失败!!");
                }
                //新建质检单,质检结果不会有质检结果
                if (Objects.isNull(orderItem.getIsptResult())) {
                    operateReceipt(item, orderItem);
                }
            }
//            Double disQty = Objects.isNull(item.getDisQty()) ? 0 : item.getDisQty();
//            Double safeQty = Objects.isNull(item.getSafeQty()) ? 0 : item.getSafeQty();
//
//            Double sum = disQty + safeQty;
//            orderItem.setIsptQty(sum);
//
//            if (sum.compareTo(0.0) > 0) {
//                if (!warehouseAreasItemService.updateById(orderItem)) {
//                    throw new CoolException("收货区库存信息更新失败!!");
//                }
//                //新建质检单,不会有质检结果
//                confirmReceipt(item, orderItem);
//
////                if (Objects.isNull(orderItem.getIsptResult())) {
////                    operateReceipt(item, orderItem);
////                }
//            }
        }
        Set<Long> isptIds = isptItem.stream().map(QlyIsptItem::getIspectId).collect(Collectors.toSet());
@@ -135,7 +137,7 @@
                .in(QlyInspectResult::getIsptId, isptIds));
        Double sum = items.stream().mapToDouble(QlyInspectResult::getAnfme).sum();
        if (sum.compareTo(0.00) > 0) {
            qlyInspectService.update(new LambdaUpdateWrapper<QlyInspect>()
            qlyInspectMapper.update(null, new LambdaUpdateWrapper<QlyInspect>()
                    .set(QlyInspect::getIsptQty, sum)
                    .set(QlyInspect::getUpdateBy, loginUserId)
                    .eq(QlyInspect::getId, isptItem.stream().findFirst().get().getIspectId()));
@@ -150,10 +152,20 @@
     * @description: 质检后修改收货区存信息
     * @version 1.0
     */
    private void operateReceipt(QlyIsptItem item, WarehouseAreasItem orderItem) {
    @Transactional(rollbackFor = Exception.class)
    public void confirmReceipt(QlyIsptItem item, WarehouseAreasItem orderItem) {
        Double disQty = Objects.isNull(item.getDisQty()) ? 0 : item.getDisQty();
        Double safeQty = Objects.isNull(item.getSafeQty()) ? 0 : item.getSafeQty();
        Double sum = disQty + safeQty;
        WkOrderItem wkOrderItem = asnOrderItemService.getById(item.getAsnItemId());
        if (Objects.isNull(wkOrderItem)) {
            if (StringUtils.isNoneBlank(wkOrderItem.getSplrCode())) {
                Companys companys = companysService.getOne(new LambdaQueryWrapper<Companys>().eq(Companys::getCode, wkOrderItem.getSplrCode()));
                orderItem.setSplrId(companys.getId());
            }
        }
        if (sum.compareTo(orderItem.getAnfme()) >= 0) {
            //完成质检,做更新操作
            if (safeQty.compareTo(0.0) > 0) {
@@ -176,7 +188,8 @@
                }
            }
        } else {
            orderItem.setAnfme(orderItem.getAnfme() - sum);
            Double anfme = Math.round((orderItem.getAnfme() - sum) * 10000) / 10000.0;
            orderItem.setAnfme(anfme);
            if (!warehouseAreasItemService.updateById(orderItem)) {
                throw new CoolException("收货区库存明细更新失败!!");
            }
@@ -208,6 +221,11 @@
        }
    }
    @Override
    public List<QlyIsptItem> selectIsptResult(LambdaQueryWrapper<QlyIsptItem> eq) {
        return this.baseMapper.selectIsptResult(eq);
    }
    /**
     * @author Ryan
     * @date 2025/5/12