gaoluyang
5 天以前 6fa82a1ad7c3ae061ef499f0d0806a16846e122b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package cn.iocoder.yudao.module.mes.api.arrivalnotice;
 
import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.mes.api.arrivalnotice.dto.MesArrivalNoticeRespDTO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.arrivalnotice.MesWmArrivalNoticeDO;
import cn.iocoder.yudao.module.mes.dal.mysql.wm.arrivalnotice.MesWmArrivalNoticeMapper;
import cn.iocoder.yudao.module.mes.enums.wm.MesWmArrivalNoticeStatusEnum;
import cn.iocoder.yudao.module.mes.service.wm.arrivalnotice.MesWmArrivalNoticeService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
 
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
 
/**
 * MES 到货通知单 API 实现类
 */
@Service
public class MesArrivalNoticeApiImpl implements MesArrivalNoticeApi {
 
    @Resource
    private MesWmArrivalNoticeService arrivalNoticeService;
    @Resource
    private MesWmArrivalNoticeMapper arrivalNoticeMapper;
 
    @Override
    public Long generateArrivalNoticeFromPurchaseOrder(Long purchaseOrderId) {
        return arrivalNoticeService.generateArrivalNoticeFromPurchaseOrder(purchaseOrderId);
    }
 
    @Override
    public List<MesArrivalNoticeRespDTO> getArrivalNoticeListByPurchaseOrderIds(Collection<Long> purchaseOrderIds) {
        if (CollUtil.isEmpty(purchaseOrderIds)) {
            return List.of();
        }
        List<MesWmArrivalNoticeDO> notices = arrivalNoticeMapper.selectListByPurchaseOrderIds(purchaseOrderIds);
        if (CollUtil.isEmpty(notices)) {
            return List.of();
        }
        return notices.stream().map(notice -> BeanUtils.toBean(notice, MesArrivalNoticeRespDTO.class,
                resp -> resp.setStatusName(resolveStatusName(notice.getStatus())))).toList();
    }
 
    private String resolveStatusName(Integer status) {
        return Arrays.stream(MesWmArrivalNoticeStatusEnum.values())
                .filter(item -> Objects.equals(item.getStatus(), status))
                .map(MesWmArrivalNoticeStatusEnum::getName)
                .findFirst().orElse(null);
    }
 
}