8 天以前 1c1daebcb9f89138a84e9a7643d1909bb1a5a342
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package cn.iocoder.yudao.module.mes.service.wm.miscissue;
 
import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.mes.controller.admin.wm.miscissue.vo.line.MesWmMiscIssueLineSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.miscissue.MesWmMiscIssueDetailDO;
import cn.iocoder.yudao.module.mes.dal.mysql.wm.miscissue.MesWmMiscIssueDetailMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
 
import java.util.List;
 
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_MISC_ISSUE_DETAIL_NOT_EXISTS;
 
/**
 * MES 杂项出库明细 Service 实现类
 */
@Service
@Validated
public class MesWmMiscIssueDetailServiceImpl implements MesWmMiscIssueDetailService {
 
    @Resource
    private MesWmMiscIssueDetailMapper issueDetailMapper;
 
    @Override
    public Long createMiscIssueDetail(MesWmMiscIssueLineSaveReqVO createReqVO) {
        MesWmMiscIssueDetailDO detail = BeanUtils.toBean(createReqVO, MesWmMiscIssueDetailDO.class);
        detail.setId(null); // 清空 id,让数据库自动生成
        detail.setLineId(createReqVO.getId()); // VO 的 id 就是 lineId
        issueDetailMapper.insert(detail);
        return detail.getId();
    }
 
    @Override
    public void updateMiscIssueDetail(MesWmMiscIssueLineSaveReqVO updateReqVO) {
        // 基于 lineId 查询唯一的 detail 记录(VO 的 id 字段是 lineId)
        List<MesWmMiscIssueDetailDO> details = issueDetailMapper.selectListByLineId(updateReqVO.getId());
        if (CollUtil.isEmpty(details)) {
            return;
        }
 
        // 更新 detail(应该只有一条记录)
        MesWmMiscIssueDetailDO updateObj = BeanUtils.toBean(updateReqVO, MesWmMiscIssueDetailDO.class);
        updateObj.setId(details.get(0).getId()); // 使用查询到的 detail id
        updateObj.setLineId(updateReqVO.getId()); // VO 的 id 就是 lineId
        issueDetailMapper.updateById(updateObj);
    }
 
    @Override
    public void deleteMiscIssueDetailByIssueId(Long issueId) {
        issueDetailMapper.deleteByIssueId(issueId);
    }
 
    @Override
    public void deleteMiscIssueDetailByLineId(Long lineId) {
        issueDetailMapper.deleteByLineId(lineId);
    }
 
    @Override
    public void validateMiscIssueDetailExists(Long id) {
        if (issueDetailMapper.selectById(id) == null) {
            throw exception(WM_MISC_ISSUE_DETAIL_NOT_EXISTS);
        }
    }
 
}