shiyunteng
2025-03-27 a7ad35b3e20867204cda9faa7bdf8a686264e906
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package com.by4cloud.platformx.device.service.impl;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.by4cloud.platformx.device.dto.ReceivingNoteQueryDTO;
import com.by4cloud.platformx.device.entity.*;
import com.by4cloud.platformx.device.mapper.*;
import com.by4cloud.platformx.device.service.ReceivingNoteService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
 
import java.io.Serializable;
import java.util.List;
 
/**
 * 验收表
 *
 * @author pig
 * @date 2025-03-13 11:03:52
 */
@Service
@AllArgsConstructor
public class ReceivingNoteServiceImpl extends ServiceImpl<ReceivingNoteMapper, ReceivingNote> implements ReceivingNoteService {
 
    private final ReceivingNoteItemMapper itemMapper;
    private final DeviceInventoryMapper inventoryMapper;
    private final InventoryFlowWaterMapper inventoryFlowWaterMapper;
    private final DeviceMapper deviceMapper;
    private final ContractMapper contractMapper;
 
    @Override
    public IPage pageNew(Page page, ReceivingNoteQueryDTO queryDTO) {
        return baseMapper.pageNew(page,queryDTO);
    }
 
    @Override
    public boolean saveDeep(ReceivingNote entity) {
        baseMapper.insert(entity);
        if (entity.getNoteItemList()!=null&&entity.getNoteItemList().size()>0){
            for (ReceivingNoteItem item:entity.getNoteItemList()
                 ) {
                item.setNoteId(entity.getId());
                itemMapper.insert(item);
                //设备库存同步新增
                if (item.getSerialNos()!=null&&item.getSerialNos().size()>0){
                    for (String serialNo:item.getSerialNos()
                         ) {
                        Device device = deviceMapper.selectById(item.getDeviceId());
                        Contract contract = contractMapper.selectById(entity.getContractId());
                        if (device!=null) {
                            DeviceInventory inventory = new DeviceInventory();
                            inventory.setDeviceId(item.getDeviceId());
                            inventory.setDeviceNumber(item.getDeviceCode());
                            inventory.setName(device.getName());
                            inventory.setSerialNo(serialNo);
                            if (contract!=null&&(contract.getType()==1||contract.getType()==2)){
                                inventory.setSource(1);
                                inventory.setInventoryStatus(1);
                            }
                            if (contract!=null&&contract.getType()==0){
                                inventory.setSource(1);
                                inventory.setInventoryStatus(2);
                            }
                            inventoryMapper.insert(inventory);
                            //设备库存流水同步新增
                            InventoryFlowWater flowWater = new InventoryFlowWater();
                            flowWater.setDeviceId(item.getDeviceId());
                            flowWater.setSerialNo(serialNo);
                            flowWater.setInventoryId(inventory.getId());
                            flowWater.setClassId(device.getClassId());
                            if (contract!=null&&(contract.getType()==1||contract.getType()==2)){
                                flowWater.setOperateType(2);
                            }
                            if (contract!=null&&contract.getType()==0){
                                flowWater.setOperateType(1);
                            }
                            inventoryFlowWaterMapper.insert(flowWater);
                        }
                    }
 
                }
            }
        }
        return Boolean.TRUE;
    }
 
    @Override
    public boolean updateByIdDeep(ReceivingNote entity) {
        baseMapper.updateById(entity);
        QueryWrapper<ReceivingNoteItem> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("note_id",entity.getId());
        itemMapper.delete(queryWrapper);
        if (entity.getNoteItemList()!=null&&entity.getNoteItemList().size()>0){
            for (ReceivingNoteItem item:entity.getNoteItemList()
            ) {
                item.setNoteId(entity.getId());
                itemMapper.insert(item);
            }
        }
        return Boolean.TRUE;
    }
 
    @Override
    public ReceivingNote getByIdDeep(Long id) {
        ReceivingNote note = baseMapper.selectById(id);
        QueryWrapper<ReceivingNoteItem> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("note_id",note.getId());
        List<ReceivingNoteItem> itemList = itemMapper.selectList(queryWrapper);
        note.setNoteItemList(itemList);
        return note;
    }
}